OpenGL을 직접 호출하지 않는 Ogre3d 및 SDL을 사용하는 OpenGL 응용 프로그램이 있고 런타임에 해상도를 변경하려고합니다. 새로운 해결 방법으로 OpenGL 컨텍스트를 다시 초기화해야 할 필요가있는 것으로 보이지만 여러 항목이 진행되고 있습니다. 리눅스에서는 당분간 작동하는 것처럼 보입니다. 그러면 화면 상에 그래픽 손상이 생깁니다. Windows에서는 다음에 프레임을 렌더링하려고 할 때 충돌이 발생합니다. Ogre에서 텍스처를 다시로드하도록 강요했지만, 텍스처 만 렌더링하면 (3D 모델 없음)이 작업은 정상적으로 작동하지만 3D 모델은 렌더링 전에 크래시 및 다시로드가 발생하지 않으므로 아무런 효과가 없습니다. 여기 리소스 초기화 및 OpenGL 컨텍스트
는 Ogre3d의 깊이 설명에 대한 링크가 우리가하고있는 호출입니다 : http://www.ogre3d.org/forums/viewtopic.php?f=2&t=62825우리가 정말 때, 자원을 복원 할 필요는 OpenGL 컨텍스트를 다시 초기화 알아야 할 모든?
왜 OpenGL 컨텍스트를 조정하면 다른 리소스에 영향을 줍니까? OpenGL이 작동하는 방식입니까, 아니면 우리가 사용하는 라이브러리 중 하나가이 문제를 소개 했습니까? 알지 못하면서이 문제를 추가 할 수 있었습니까?
개발 SDL 1.3 분기로 전환하여이 문제를 완전히 해결했습니다. – Sqeaky
이 문제의 핵심은 Ogre-SDL 'Binder'에 포인터를 어떻게 되짚어 놓았는지입니다. 참조로 스택에있는 해당 객체를 반환 했으므로 삭제되는 중이었고 이전에 사용한 주소를 실제로 반환했습니다. 그래서 초등이지만 신선한 관점을 얻지 않고는 그것을 볼 수 없었습니다. – Sqeaky