2012-02-12 3 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 호환 코드가 아닙니다.

the OpenGL 4 Reference manual를 참조하면 glColor 함수, 위해 glRasterPos도 OpenGL을 사용하는 방법을 배울하기 위해 (심지어 다시 OpenGL을 3 저는 믿습니다 .. 그들이되지 않습니다)

이 존재하지 않는를 seethat합니다 고정 기능을 사용하지 않는 현대적인 방법으로 내가 추천 할 것입니다

this tutorial 그래서 기본적으로 대답 위해 glRasterPos없이 나는이 함수가 매트에 대한 OpenGL을 4 (또는 3 작동하지 않을 수 있다고 생각한다는 것입니다 실현 가능한 방법 TER)

answer

+0

앞으로 만 호환성이 대 런타임 별 상황에 맞는 옵션을 참조하고 컴파일에서 코드를 방지 할 수 없습니다. –

+0

네가 맞다. 벤. 말하기를 꺼려하지 않았다. 머리말을 내 주셔서 감사합니다 – Lefteris

+0

그의 문제가 제거 된 * 기능을 사용하고 있다면 (비추천 및 삭제가 * 다른 두 가지 *입니다), 그의 코드는 텍스트를 전혀 표시하지 않습니다. 그러나 그것이 그가 보는 것과는 다릅니다. 그는 텍스트를 표시 할 수는 있지만 깨졌습니다. 또한 실수로 4.0 핵심 컨텍스트를 만드는 것이 어렵습니다. 모든 경우에 특별 케이스 코드가 필요합니다. –

관련 문제