【发布时间】:2012-04-08 20:00:12
【问题描述】:
我开始使用 Java 中的 OpenGL,我遇到了一种情况,我需要在许多 glBegin() 和 glEnd() 调用之间放置大量代码,并且希望代码是自动格式化,以便一眼就能看出哪个代码属于哪个 glBegin/glEnd。
为此,我一直在使用匿名代码块,如下所示:
glBegin(GL_QUADS);
{
glVertex2f(100, 100);
glVertex2f(100+200, 100);
glVertex2f(100+200, 100+200);
glVertex2f(100, 100+200);
}
glEnd();
我的问题是:以这种方式使用代码块是否有任何性能问题,即使非常轻微?还是和程序编译后完全不使用代码块一样?
【问题讨论】:
-
如果您担心性能,您应该真正使用现代 OpenGL 技术。使用 VBO (OpenGL 1.5+) 的性能优势将比您在立即模式渲染周围优化所有内容的尝试高出几个数量级。
-
需要考虑的一点是,阅读您的代码的任何人都可能对为什么这些调用在不同的范围内感到困惑。
-
其实我经常使用这样的积木。这与范围有点关系,但更多的是与可读性有关。好吧,我发现它更容易阅读,我不了解我的同事:-)。