格温+普朗格什么也看不见
gwen + opengl can't see anything
我正在尝试使用 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+
Ah GWEN.那个令人沮丧的 GUI 库。
当我开始使用它并将其集成到我们在学校编写的引擎中时,我遇到了与您相同的问题,但是使用库存的OpenGL渲染器。事实证明它的位置错误,调用 glLoadIdentity() 重置身份矩阵似乎可以解决它。
您遇到的问题很可能最终与我遇到的问题相同,或者您的自定义 OpenGL 渲染器可能存在问题。我不确定您是否对 GWEN 了解很多,或者它是如何工作的,但它运行在单一的纹理上,该纹理使 GUI 蒙皮。你在装进去吗?也许您的纹理加载器没有正确加载它。
尝试使用调试器并单步执行程序。感兴趣的区域是您尝试加载 GUI 皮肤的位置、分配 GWEN 可以使用的屏幕空间的位置,以及实际尝试渲染 GUI 的位置。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 写入.ini文件 - SimpleIni SetValue 尽管看起来成功了,但什么也没做
- Qmenubar在Linux上缺少或看不见
- 格温+普朗格什么也看不见
- 什么是UMThunkStubAMD64,为什么它看起来是一个瓶颈
- 我的复制构造函数导致使用我的类的方法失败.有人能看一眼,告诉我我做错了什么吗
- 编译器在尝试优化/内联我看起来微不足道但并非微不足道的 dtor 时搬起石头砸自己的脚,我做错了什么
- C++ LP64 中通过引用更改我的指针值传递.我应该看什么
- SVM能预测看不见的表情吗
- 我看过这个节目.这是什么- re(r), im(i){}在构造函数complex (double r, double i
- .csv ifstreams看起来像什么?