FTGL でテクスチャ フォントを使用して、フォントを軸などのラベルとして複数のキャンバスにレンダリングしています。私の最初のプロットはうまくいきます。ただし、後続のすべてのキャンバスは、テクスチャ フォントを単なる黒い四角としてレンダリングします。また、実際にレンダリングされるキャンバスに一部の数値が表示されないことにも気付きました。"Center Time" には 8.3956 が表示されるはずですが、代わりに次のように表示されます。
フォントのレンダリングは次のとおりです。
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
PushGLMatrices();
GrSetPixelProjection();
glTranslatef(pixelX, pixelY, 0.0);
glRotatef(ang, 0.0, 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); しかし、それは役に立たなかったようです。何らかの理由で、テキストの幅を返すルーチンの 1 つに FTTextureFont::FaceSize(int) を追加すると、(ゆっくりではありますが) すべてが正しく表示されます。FTGL ソース コードを見ると、FaceSize() が glDeleteTexture() 呼び出しを除いて openGL パラメーターを操作するようには見えないので、なぜこれが機能するのか少し混乱しています。