2009-08-21 9 views
-1

OpenGL에서 만든 일련의 스크롤 창을 만듭니다. 이 코드는 기존 코드이며이를 성공적으로 수행 할 수 있습니다. 그런 다음 드로 콜백 기능을 통해 수행하는 이러한 스크롤 목록에 텍스트를 추가하려고합니다. 스크롤 목록이 창에 나타나면 그리기 콜백이 텍스트를 목록에 인쇄합니다. 이것은 정상적으로 작동합니다. 그러나 7 번째 목록으로 스크롤하면 텍스트 인쇄가 중지됩니다. 선택할 수는 있지만 텍스트를 인쇄하지는 않습니다. 스크롤 목록 창에 텍스트를 인쇄 할 때 사용하는 코드는 다음과 같습니다.스크롤 창에 텍스트를 인쇄하는 OpenGL

void PrintString(const char *str, int ListBase) 
{ 
    glPushAttrib(GL_LIST_BIT) 
    glListBase(ListBase) 
    glCallLists(strlen(str), GL_UNSIGNED_BYTE, str) 
    glPopAttrib() 
} 

각 목록을 스크롤 할 때이 번호를 여러 번 호출합니다. 이 함수에 도달하고 처음 여섯 개의 스크롤 목록에 대한 텍스트를 인쇄합니다. 7에 도달하면 텍스트 인쇄가 중지됩니다. 나는이 문제에 몇 시간을 보냈다. 그리고 나는 이것이 OpenGL이며 인쇄 텍스트라는 결론에 도달했다. 도와주세요. OpenGL에서 텍스트를 어떻게 인쇄합니까, 내 글꼴은 이미 정의되어 있습니까? 왜 인쇄하지 않을까요?

+0

char가 취할 수있는 모든 256 가지 값에 대한 표시 목록을 갖고 계십니까? – genpfault

답변

1

최소한의 코드 변경으로이 코드를 디버그하고 싶다면 gDEBugger을 봐야합니다. 그것은 기본적으로 그런 것들을 조사 할 때 제정신이 될 수있는 유일한 방법입니다.

당신이 당신의 텍스트 렌더링을 다시 작성하는 경우, 당신은 (Cairo, Anti-Grain하거나 Windows API를 사용하여) 오프 스크린 버퍼에 작은 블록을 그리기 고려 텍스처로 업로드하고 다음을 그린다. 이렇게하면 렌더링 품질 (적절한 커닝 등)과 속도가 향상되고 OpenGL 호출을 디버그하는 데 더 쉽게 사용해야합니다.

관련 문제