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
ところで、私は3.0+ではなくOpenGL 2.1を使用しています