2012-02-12 14 views
1

私はglutBitmapCharacter()を使ってテキストをレンダリングしようとしています。 OpenGL 4でのテキストのレンダリングが動作しない

この

は、私がこれまでの2Dテキストレンダリング機能として持っているものです:

drawString(0, 0, "TESTING"); 

これらは唯一のx、次のとおりです。シーンのレンダリング機能で

void drawString(int x, int y, char* string) { 
int i, len; 

glDisable(GL_TEXTURE); 
glDisable(GL_TEXTURE_2D); 
glDisable(GL_LIGHTING); 

glColor3f(1.0f, 0.0f, 0.0f); 
glRasterPos2i(x, y); 

for (i = 0, len = strlen(string); i < len; i++) { 
    glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, (int)string[i]); 
} 
glEnable(GL_TEXTURE); 
glEnable(GL_TEXTURE_2D); 
glEnable(GL_LIGHTING); 
} 

、私はこの電話をかけますとyの値は、テキストが表示されます。この場合、 "TE"が赤色(私が望む色)で、 "STING"が黒色で、画面の中央に "TESTING"が表示されます。

私が見たこの機能を扱うためのコードは、以前のバージョンのOpenGLと廃止予定のコードを使用していたため、何をすべきか分かりません。

答えて

4

上記は、明らかにOpenGL 4準拠のコードではありません。

OpenGLを使用する方法を学ぶためにthe OpenGL 4 Reference manualを参照してください、あなたはglColorをseethatなり、glRasterPosも(私も戻ってOpenGLの3で信じている...彼らは廃止されている)が存在していない

固定機能を使用していない近代的な方法で私が推薦する

this tutorialそこで、基本的な答えglRasterPosせずに、私は、この関数はそのマットのためのOpenGLの4(または3に を働くことができないと信じているということです実現可能な方法についてはTER)

このanswer

+0

前方のみの互換性がある対ランタイムごとのコンテキストオプションを参照し、コンパイルからコードを防ぐことはできません。 –

+0

はい、あなたは正しいですベン、コンパイルを言うつもりはありませんでした。ありがとうございました – Lefteris

+0

彼の問題が*削除された*機能(非推奨と削除は* 2つの異なる*)を使用していた場合、彼のコードは全くテキストを表示しません。しかし、それは彼が見ているものではありません。彼は表示するテキストを取得することができますが、それは壊れています。また、偶然、4.0コアのコンテキストを作成するのは難しいです。いずれの場合も、特別なケースのコードが必要です。 –

関連する問題