2014-11-22 2 views
0

저는 OpenGL을 사용하고 freeglut과 glew (v 1.11.0)을 사용하여 그래픽 프로젝트를 개발 중입니다. GLUI를 사용하여 합계 UI 컨트롤을 추가하고 싶습니다. 소스 코드를 다운로드하여 Microsoft Visual Studio 2012 (GLUI 버전 2.35와 2.36 모두 사용)로 빌드하십시오. 내 프로젝트 라이브러리에 lib 파일을 문제없이 추가하십시오. 그래서, 지금 프로젝트에서 GLUI를 사용할 수 있습니다.
그러나 컨트롤 디스플레이에 문제가 있습니다. 메인 윈도우의 서브 윈도우로 GLUI 윈도우를 추가하려고합니다. subwindow, reshape 등을 추가하는 데는 문제가 없습니다. 또한 서브 윈도우에도 컨트롤을 추가 할 수 있습니다. 하지만, 내가 그들을 추가 할 때, 그들은 서브 윈도우에 나타나지 않습니다. 흥미롭게도, 그들은 실제로 거기에 있습니다. 버튼 위치를 대략 클릭하면 컨트롤에 첨부 된 콜백 함수가 해당 효과를 호출하여 작업을 수행하는 효과가 있습니다.
또한 서브 윈 도우 대신 독립형 GLUI 창을 사용해 보았지만 그 결과는 같습니다.
GLUI 컨트롤이 나타나지 않지만 효과가 있습니다.

GLUI* glui_subwin = GLUI_Master.create_glui_subwindow(mainWindowID,GLUI_SUBWINDOW_BOTTOM); 

GLUI_Button* b_RotateX = glui_subwin->add_button("Rotate X", 0, (GLUI_CB)CB_rotate); 

glui_subwin->add_column(true); 

GLUI_Button* b_RotateY = glui_subwin->add_button("Rotate Y", 1, (GLUI_CB)CB_rotate); 
glui_subwin->add_column(true); 

GLUI_Button* b_RotateZ = glui_subwin->add_button("Rotate Z", 2, (GLUI_CB)CB_rotate); 
glui_subwin->add_column(true); 
... 
glui_subwin->set_main_gfx_window(mainWindowID); 

GLUI_Master.set_glutKeyboardFunc(keyboard); 
GLUI_Master.set_glutSpecialFunc(NULL); 
GLUI_Master.set_glutMouseFunc(mouse); 
GLUI_Master.set_glutReshapeFunc(reshape); 
GLUI_Master.set_glutIdleFunc(idle); 

사람이 문제가 처리 또는 그 문제가 무엇인지 어떤 생각을 가지고 여기
내 코드?
나를 도와 주시면 감사하겠습니다.

답변

0

OpenGL-3 핵심 프로필 컨텍스트를 만들었습니까? GLUI는 OpenGL-3에서 비추천 된 기능을 사용합니다. 호환성 문맥이 없으면 전혀 작동하지 않습니다. 또한 GLUI는 쉐이더를 알지 못하므로 쉐이더를 사용하는 경우 쉐이더를 사용했다면 사용을 마친 후에 사용을 중지해야한다는 것을 잊지 마십시오. 그렇지 않으면 GLUI가 고정 기능 파이프 라인을 정상적으로 작동 시키려고합니다.

+0

답장을 보내 주셔서 감사합니다. 말했듯이, 그것은 deprecated 함수에 관한 것입니다. glutInitContextVersion (3, 2);을 사용했습니다. 기능. 그것은 글루를 차단하고 컨트롤을 보이지 않게합니다. 함수에서 3,1을 사용하면 제대로 작동합니다. 하지만, glutInitContextFlags (GLUT_FORWARD_COMPATIBLE) 주석 처리해야; 함수 호출도. – onrrgn

+0

@onrrgn : 예 forward compatible은 핵심 프로필을 의미합니다. "순방향 호환성"은 "(역방향) 호환성 프로파일"과 다른 점에 유의하십시오. 사실 반대입니다. – datenwolf

관련 문제