进行冗余的OpenGL调用

Pub*_*bby 6 c++ opengl buffer driver call

我想知道是否建议消除所有冗余的opengl调用.

例如,我应该做什么(包裹在一个函数中):

if(foobuffer != boundbuffer) {
  glBindBuffer(GL_BAR_BUFFER, foobuffer);
  boundbuffer = foobuffer;
}
Run Code Online (Sandbox Code Playgroud)

或者是驱动程序自动执行此类操作,这实际上是一个冗余的reduntant-check?

Jos*_*osh 5

你应该避免它.在这里(特别是22.040,你将不得不向下滚动页面,因为它没有锚点),注意到冗余调用通常是不好的做法,即使某些实现试图最小化影响.

gDEBugger这样的工具也可用于帮助追踪您可能正在进行冗余调用的位置,如果您处于不确定代码库中可能产生的数量的位置.