2012-03-17 10 views
0

このコードを使用して画面にテキストを印刷しようとしています。 main.cppにファイルのこのコードは、それが実行されますC++画面にテキストが表示されない

int main(int argc, char* argv[]) {  
glutInit(&argc, argv); 

glutInitWindowSize(640, 480); 

int WindowHandle = glutCreateWindow("Maze"); 

if (WindowHandle < 1) { 
    fprintf(stderr, "ERROR: Could not create a new rendering window.\n"); 
    exit(EXIT_FAILURE); 
} 

//Initialize OpenGL 
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

//Initialize the viewport 
glViewport(0, 0, 640, 480); 

//Initialize OpenGL projection matrix 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrtho(0.0f, 640.0f, 480.0f, 0.0f, -2.0f, 2.0f); 

//Clear back buffer 
glClear(GL_COLOR_BUFFER_BIT); 

//Create font 
GLuint textureName; 
glGenTextures(1, &textureName); 
PixelPerfectGLFont font; 
try { 
    font.Create("fonts\\quad20.glf", textureName); 
} 
catch(GLFontError::InvalidFile) { 
    cerr << "Cannot load font\n"; 
    abort(); 
} 

//Draw some stuff 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glEnable(GL_TEXTURE_2D); 
glColor3f(1.0f, 0.0f, 0.0f); 

try { 
    font.Begin(); 
    font.TextOut("hello world", 50, 50, 0); 
} 
catch(GLFontError::InvalidFont) { 
    cerr << "Trying to draw with an uninitialized font\n"; 
    abort(); 
} 
glDisable(GL_TEXTURE_2D); 
glLoadIdentity(); 


glutMainLoop(); 
return 0; 
} 

置き、私は

#ifdef __APPLE__ 
#include <GLUT/glut.h> 
#else 
#include <GL/glew.h> 
#include <GL/glut.h> 
#endif 
#include "glfont.h" 

がglfont.hを使用する必要が

コードの上に(あなたが右のリンカーを持っていると仮定)あなたは上にusing namespace std;を追加します(そうでなければ、コンパイルエラーを投げます)

だから...アプリケーションを実行すると、テキストが表示されない白い画面しか表示されません。

誰かが間違っていることを教えてもらえますか?

P.S. glfontはここにありますhttp://students.cs.byu.edu/~bfish/glfontdl.php

答えて

0

誰かが間違っていることを教えてもらえますか?

すべてです。

これは、GLUTでレンダリングする方法ではありません。 GLUTが情報を表示する準備ができたらコールされるコールバックを登録するはずです。あなたはバッファや何かを交換することはないので、あなたはものを見るつもりはありません。等々。

を参照してください。 GLUTの例があります。このようには見えません。

テキストレンダリングを再生する前に、まず通常のレンダリングを理解する必要があります。

関連する問題