2012-01-22 4 views
0

새 해상도로 glViewport을 발행 할 때 (앞면 및 뒷면) 프레임 버퍼의 크기가 업데이트되지 않는 것 같습니다. FBO 텍스처를 새로운 크기로 다시 생성하기 때문에 FBO에서 크기 조정 작업을 처리하는 것처럼 보입니다.SDL OpenGL 창 크기 조정

내가 누락 된 것이 있거나 Linux에서 지원되지 않는 이런 종류의 것이 있습니까? SDL_SetVideoMode을 호출하는 것을 피하려고 노력 중이므로 OpenGL 컨텍스트를 유지할 수 있습니다.

답변

2

glViewport은 창 크기에 영향을주지 않습니다. 사실 OpenGL 명령으로 창 크기를 변경할 수 없습니다. 모두 glViewport은 변환을 정규화 된 장치 좌표 공간에서 창 공간으로 변경합니다. 효과적으로 윈도우의 크기가 아닌 부분의을 렌더링합니다.

창의 크기는 창을 만든 시스템에 의해 관리됩니다. SDL에 창 크기를 변경하는 기능이 없으면 창 크기를 변경할 수 없습니다.

+0

그래서 리눅스에서 프레임 버퍼가 업데이트되지 않는 이유는 무엇입니까? SDL에 문제가 있습니까? 리눅스에서는 여전히 왼쪽 800 픽셀 만 렌더링합니다 (초기 크기는 800x600이지만 윈도우에서는 전체 윈도우로 그릴 수 있습니다). –

+0

@StevenLu : glViewport가 프레임 버퍼 크기를 변경하지 않기 때문입니다. 투영법이 매핑해야하는 프레임 버퍼의 부분을 선택합니다. 적절한 클리핑 (clipping)을 설정하지 않더라도, glScissor가 필요합니다. – datenwolf