2016-07-09 5 views
0

SDL로 표면을 만들 때, HWSURFACE 태그를 사용하는 옵션이 있습니다. 이것은 표면이 CPU 대신 GPU에 의해 처리된다는 것을 의미합니다. 하지만 이제는 SDL2에서 질감이 생겼습니다. 그 차이점은 무엇입니까? 텍스처 대신 하드웨어 표면을 사용하면 성능 차이가 발생합니까? 그들은 똑같은 행동을합니까?HWSURFACE는 텍스처와 어떻게 다른가요?

나는 인터넷 검색을 모두 시도했지만 일반 소프트웨어 화면에서만 정보를 찾을 수 있습니다.

답변

1

SDL_HWSURFACE를 지정하면 비디오 메모리를 사용하여 서페이스가 만들어집니다. GPU가없는 PC는 여전히 비디오 메모리를 가지고 있으며 시스템 RAM에서 복사하는 것보다 화면에 메모리 영역에 데이터를 넣는 것이 빠릅니다.

텍스처는 GPU의 전용 RAM에 업로드되며 데이터는 메모리에 저장되어 화면에 표시됩니다. SDL2는 SDL_HWSURFACE 플래그를 더 이상 가지고 있지 않습니다. 왜냐하면 렌더링 서브 시스템이 OpenGL이나 Direct3D를 통해 GPU를 사용하기 때문에 이전 방법을 사용하여 화면에 그래픽을 가져올 수 없기 때문입니다.

2

SDL1에는 텍스처 지원이없고 SDL2에는 HWSURFACE (또는 다른 표면 플래그)이 없습니다. flags in SDL_CreateRGBSurface은 "플래그가 사용되지 않으며 0으로 설정되어야합니다."라고 주석 처리되었습니다. 그들을 섞을 수있는 좋은 방법이 없습니다.

+0

그러나 SDL1.2에서 HWSURFACE를 사용했다면 SDL2의 텍스처와 거의 동일한 성능을 얻을 수 있습니까? –

+0

텍스처가 훨씬 더 좋은 성능을 발휘할 가능성이 높습니다 (그러나 많은 것들에 달려 있습니다). – keltar

+0

큰 차이가 있다고 생각합니까? 특히 SPriG와 같은 라이브러리의 경우 표면을 더 쉽게 사용할 수 있습니다. –

관련 문제