2012-03-17 5 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 예제를 찾아 보면 알 수 있습니다.

텍스트 렌더링을 시작하기 전에 먼저 일반 렌더링을 이해해야합니다.

관련 문제