OpenGL-重新绑定已经绑定的纹理
OpenGL - Re-binding an already bound texture
可能的重复:
进行多余的OpenGL调用
假设我有一个Image
类,该类具有一种称为draw
的方法,该方法在屏幕上绘制图像的一部分,并且还将手柄存储到包含实际图像数据的2D纹理中。
可以实现这样的draw()方法吗?
// ix, iy, w and h specify which part of the image to draw
void Image::draw(int x, int y, int ix, int iy, int w, int h)
{
glBindTexture(GL_TEXTURE_2D, m_textureHandle);
//and then draw the specified part of the image
}
我主要关注的是呼叫glBindTexture
。假设纹理已经绑定,此调用不会导致某种性能命中?
曾在OpenGL,OpenVG和类似的某些实现(驱动程序)上工作过,GlbIndTexture实际上只是将M_TextureHandle存储在"当前上下文"内的某个"好地方"中。这不是一件困难的事情,也不应该"花费太多"。
如果您试图保存执行的最后一个周期,则一定要添加一个变量以确定您是否已经绑定了纹理,并且只有在需要时进行。但是总的来说,如果您无法通过做其他聪明的事情来节省5-10倍的时间,我会感到非常惊讶。
相关文章:
- 更正GLSL无绑定纹理句柄中的结构布局
- OpenGL - 绑定到默认纹理的做法?
- 将多个纹理 OpenGL 绑定到不同的四边形
- 为每个对象绑定不同的纹理
- 纹理绑定不起作用 / C++ / OpenGL
- OpenGL 加载将上次加载的纹理绑定到所有 textureID
- OpenGL-重新绑定已经绑定的纹理
- 在C++,OpenGL,Glut,如何将image.c绑定到纹理,其中image.c来自Gimp>Export>C源代码
- 如何绑定纹理openGL的一部分
- OpenGL 纹理绑定到对象
- 将QImage绑定到纹理以在QOpenGLWidget中显示视频的正确方法是什么
- 将绑定到FBO的纹理复制到另一个OpenGL上下文
- Qt 5 OpenGL绑定纹理导致奇怪的错误
- 纹理绑定:OpenGL+OpenCV
- 在OpenGL中绑定多于MAX_TEXTURE_UNITS的纹理
- QOpenGLFramebufferObject绑定纹理
- 在重复模式下绑定纹理
- OpenGL绑定几个2D纹理
- 如何解除对RenderTarget纹理的绑定,这样它就可以被用作下一个通道的输入
- OpenGL:使用纹理时至少绑定一个纹理