2011-01-20 7 views
4

저는 FreeGLut을 사용하여 C에서 첫 번째 OpenGL 프로그램을 작성하고 있습니다.glutBitmapString 대신 glutStrokeString을 사용할 때 문제가 발생했습니다.

glColor3f(0.5f, 0.5f, 0.5f); 
glRasterPos2f(0, 0); 
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (unsigned char*)"some text"); 

지금 내가 대신 glutBitmapString의 glutStrokeString 시도하고 싶습니다 : 나는 잘 작동과 회색 색상의 텍스트를 출력 내 표시 기능에 다음과 같은 코드가 있습니다.

glScalef(0.003,0.003,1); 
glutStrokeString(GLUT_STROKE_ROMAN, (unsigned char*)"some text"); 

대신 glutBitmapString 통화의 두 라인 내 프로그램 실행이 사라지기 전에 한 번 텍스트를 보여줍니다 API를 내 (겸손) 이해에서 다음 작업을해야합니다. 게다가 glutBitmapString으로 표시되는 모든 텍스트는 그 시점에서 작동하지 않습니다. 내가 여기서 무엇을 놓치고 있니?

+0

각 프레임의 색상 버퍼와 함께 깊이 버퍼를 지우시겠습니까? – genpfault

+0

예. glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); – martin

+0

마지막으로 glLoadIdentity()가 누락되었습니다. 조금도! – martin

답변

0

마침내 해결했습니다. 문제는 glutIdleFunc이 제 display 함수로 설정되어 매트릭스를 재설정하는 것을 잊었 기 때문입니다 (그래서 glScalef를 계속 호출했습니다). 지금은 잘 작동합니다.

관련 문제