这是一个关于 OpenGL 同步的问题。问题是:
在以下(伪)代码示例中,同步发生在哪一点。
// 1.
try to map buffer object (write only and invalidate buffer)
copy new data to mapped buffer
unmap buffer
// 2.
bind buffer
call subteximage to fill texture from buffer
unbind buffer
// 3.
render with texture
据我所知,同步会在“使用对象”时立即发生。如果纹理是从缓冲区填充的,或者它是否用于渲染,现在是值得怀疑的。
如果 glSubTexImage 不阻塞,通常可以通过在纹理更新调用中使用缓冲区更新来流式传输纹理数据。
弗洛里安
最佳答案
在使用纹理渲染(或帧缓冲区交换)后,您的代码可以在 copy 和 glFlush 之间的任何地方阻塞。这取决于实现。
关于opengl - glSubTexImage 会阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767206/