新手问题......与OpenGLES 2.0 + Android相关
1)是否在drawarrays调用中保留了上传的纹理和状态? 当我们使用glTexImage2D为一个活动的Texture5上传纹理时(比方说),即使另一个GL上下文使用Texture5并上传另一个纹理,它仍会存在吗? 如果是这样,它将为我在两个视频帧之间的操作节省相当多的考验。
2)如果我将textureobjectA绑定到活动的Texture5并上传纹理,如果我将textureobjectB绑定到活动的Texture5并将其他一些数据上传到它,它会被覆盖吗?
3)激活Texture5相当于激活纹理硬件单元还是只是状态激活?我问这个是因为,如果另一个上下文激活同一个单元可能会出现问题,这导致我认为它只是一个状态激活。 如果是这样,GPU中所有上下文和纹理上传可用的内存是多少?
欣赏任何回复
答案 0 :(得分:0)
您对active Texture
一词的使用令人担忧。您不会将纹理上传到纹理单元,而是将纹理对象绑定到它们。您将纹理图像数据上传到纹理对象。
现在,如果您询问在一个上下文中绑定到纹理图像单元5的纹理是否影响另一个,则答案绝对不是。即使使用上下文资源共享,每个上下文都有自己独立的纹理图像单元集(因为每个上下文都有自己的状态机)。
“激活”纹理单元仅仅是OpenGL可疑设计的结果,您必须使用选择器函数来指示下一个命令适用于哪个对象。例如,它不会告诉glTexImage2D (...)
,它适用于当前绑定到活动纹理图像单元的2D纹理。