gpt4 book ai didi

qt - 将RGBA32像素直接存储到OpenGL ES纹理中

转载 作者:行者123 更新时间:2023-12-04 19:36:14 28 4
gpt4 key购买 nike

我正在使用一个图书馆,该图书馆为我提供了我必须绷紧到屏幕上的帧。我分配了一个缓冲区,该库直接写入该缓冲区。需要时,我必须将此缓冲区的指定部分涂抹到屏幕上。我正在将Qt与OpenGL / ES绘制引擎一起使用。

问题是:什么是最快的blit到屏幕的方法?我目前正在使用接受指向数据的指针的构造函数在QImage中加载缓冲区。这应该避免任何复制。然后,我使用QPainter的drawImage方法将正确的区域绘制到屏幕上。我猜想这种方法会将区域的副本加载到GPU内存中,然后使用OpenGL纹理将其涂抹到屏幕上。

是否可以避免使用此副本以加快流程?例如,是否可以直接在OpenGL纹理中绘制,这样我就不必转移到GPU上了?我读了像素缓冲区对象。可以解决吗?我可以为此使用QGLFramebufferObject吗?

最佳答案

最终,您必须写入GPU,您所要做的就是最大程度地减少不必要的副本数量以及从RGBA到BGRA的任何CPU内转换。

我将从QImage和QPainter开始,然后看看图形速度是否是限制步骤,然后再开始进行优化。

看看this link

请注意,许多通用的OpenGL建议不适用于opengl-ES,最好将ES视为与openGL完全独立的概念。

关于qt - 将RGBA32像素直接存储到OpenGL ES纹理中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448879/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com