2012-06-08 2 views
0

SDL + OpenGL을 사용하여 그래픽을 표시하는 응용 프로그램을 만들었다 고 가정합니다. 장면은 동적이 아니므로 버퍼링을 한 번만 수행하면됩니다.최소화 후 OpenGL 버퍼를 복구하는 방법은 무엇입니까?

Windows 7을 최소화하고 다시 가져온 후 표시되는 콘텐츠가 파괴되고 임의의 콘텐츠가 표시된다는 것을 알게되었습니다. 마지막 렌더링을 반복하지 않고 복구 할 수있는 방법이 있습니까?

인텔 G45 ​​/ G43 익스프레스 칩셋이 장착 된 Windows 7 Proffesional SP1을 사용하고 있습니다.

+0

어떤 경우에도 텍스처로 렌더링 한 다음 렌더링 된 텍스처가 필요할 때마다 전체 화면 쿼드를 그립니다. – Robinson

+0

글쎄, 중간 버퍼를 사용하면 쉽게 해결할 수 있다는 것을 알고 있지만 렌더링을 반복하지 않고 ** 내가 언급 했어야하는 전체 버퍼를 복사하지 않고 만들 수 있는지 궁금합니다. 왜 내가 이것을 원했는지 설명하기가 어렵습니다. 문제는 완전히 만들어졌습니다. 왜냐하면 제가 실제로하고있는 일은 너무 복잡해서 말할 수 없었기 때문입니다. 몇 가지 추가 조사를 통해 이제는 내 기대가 비현실적임을 알았으며 첫 번째 작업이나 후자 작업 중 하나를 수행했습니다. –

답변

2

질감을 복사하여 (glCopyTexSubImage2D) 텍스처를 렌더링해야 할 때 그 텍스처를 렌더링 할 수 있습니다. 또는 FBO를 통해 텍스처를 렌더링 할 수 있습니다.

그러나 이미지 데이터를 자동으로 복구 할 수있는 방법은 없습니다. 실제로 디스플레이가 복원 될 때 디스플레이를 다시 렌더링하는 것이 더 쉬울 것입니다. 창이 겹치면 같은 문제가 발생할 수 있습니다.

관련 문제