加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – FTGL纹理字体在使用多个画布时仅显示黑框

发布时间:2020-12-16 07:03:01 所属栏目:百科 来源:网络整理
导读:我在FTGL中使用纹理字体将字体渲染成多个画布作为轴等的标签.我的第一个情节很好.然而,所有后续的画布都将我的纹理字体渲染为简单的黑色方块.我还注意到一些数字不会显示在画布上实际渲染. “中心时间”应显示8.3956,但显示以下内容. 字体渲染如下: glPolyg
我在FTGL中使用纹理字体将字体渲染成多个画布作为轴等的标签.我的第一个情节很好.然而,所有后续的画布都将我的纹理字体渲染为简单的黑色方块.我还注意到一些数字不会显示在画布上实际渲染. “中心时间”应显示8.3956,但显示以下内容.

字体渲染如下:

glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
    PushGLMatrices();
            GrSetPixelProjection();
            glTranslatef(pixelX,pixelY,0.0);
            glRotatef(ang,0.0,1.0);
            savedFont->Render(label);
    PopGLMatrices();

哪里

void PushGLMatrices()
    {
            glMatrixMode(GL_PROJECTION);
            glPushMatrix();
            glMatrixMode(GL_MODELVIEW);
            glPushMatrix();
    }

void PopGLMatrices()
{
    glMatrixMode(GL_PROJECTION);
    glPopMatrix();
    glMatrixMode(GL_MODELVIEW);
    glPopMatrix();
}

我尝试了一些东西,比如清除颜色和深度位,以及glEnable(GL_TEXTURE_2D); glDisable(GL_DEPTH_TEST);但这似乎没有帮助.出于某种原因,如果我将FTTextureFont :: FaceSize(int)添加到我的一个返回文本宽度的例程中,所有内容都会正确显示(尽管速度很慢).从查看FTGL源代码看,除了glDeleteTexture()调用之外,FaceSize()似乎不会操纵openGL参数,所以我有点困惑为什么这样做.

解决方法

在绘制后续图时,似乎禁用了Alpha混合.在渲染文本之前,请确保已启用它:

glEnable(GL_BLEND);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读