我正在尝试使用 GWEN 在我的 opengl 场景之上绘制一些 GUI 元素。它似乎设置正确,但实际上没有绘制 gwen 的任何内容(至少可见)。我正在使用一个自定义渲染器,它本质上是 GWEN 的股票 opengl 渲染器,但具有不同的加载纹理的功能。并且 OpenGL::Begin() 和 OpenGL::End() 替换为这些:
void coRenderer::Begin()
{
glUseProgram(0);
glDisable(GL_DEPTH_TEST);
glDepthMask(0);
glEnable(GL_BLEND);
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glPushMatrix(); // Store The Projection Matrix
glLoadIdentity();
glOrtho(0, screen->w, screen->h, 0, -1, 1 );
glMatrixMode(GL_MODELVIEW);
glActiveTexture(GL_TEXTURE0);
}
void coRenderer::End()
{
Flush();
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glPopMatrix(); // Restore The Old Projection Matrix
glDisable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
glDepthMask(1);
glEnable(GL_TEXTURE_2D);
}
gwen 的 opengl 渲染器的代码在这里:
http://gwen.googlecode.com/svn/trunk/trunk/gwen/Renderers/OpenGL/OpenGL.cpp
顺便说一句,我使用的是 OpenGL 2.1 而不是 3.0+