在屏幕上显示位图文本并使用 glRasterPos3f 函数定位它们时,我遇到了一个相当奇怪的错误。当我启动应用程序时,我的所有文本都适合视图,并且一切正常且花花公子。然而,一旦其中一个离开视图,事情就开始变得一团糟——我的所有文本都消失了,并且即使我将视图设置回其原始位置也不会再次出现。
我做了一些调查并对光栅位置有效性标志进行了明确的检查,如下所示:
glRasterPos3f(xPos, yPos, zPos);
// check raster position validity
GLboolean valid;
pin_ptr<GLboolean> p_valid = &valid;
glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, p_valid);
if (!valid)
return;
好吧,现在事情开始让我大吃一惊 - 这段代码末尾的条件不仅会在文本位置超出视图时触发,而且从那时起!它让我陷入绝望。即使我将视图恢复到其通常的工作状态,有效性位似乎永远保持清除。关于可能是什么原因或如何以某种方式手动恢复光栅位置的任何想法?
编辑:一些图片...
初始状态,一切正常:http: //i.imgur.com/SFGU4QI.png
我放大,一些光栅位置无效,文本消失:http: //i.imgur.com/cj2xVAs.png
当我再次缩小时,仍然没有任何文本...