복사/클립 블릿 (표면의 작은 부분을 스프라이트 시트로 블 리팅하는 spritesheets)의 알파 채널을 보존하는 문제가 발생했습니다. 나는 다양한 솔루션을 시도했지만 최종 결과는 투명성이 있어야만하는 모든 표면이 완전히 불투명 해지는 것입니다 (알파 마스크는 흰색이됩니다).알파 채널을 사용하여 SDL_Surfaces 복사하기
그럼 내 질문은 알파 채널을 포함하여 RGBA SDL_Surface를 다른 새로운 표면 (RGBA)으로 어떻게 복사하나요? 그리고 다른 점이 있다면 RGBA 표면의 한 섹션을 새로운 RGBA 표면 (원본 표면의 잘린 부분과 동일한 크기)으로 복사하는 방법, 타일 시트 블라이 팅 (ala tilesheet blitting)입니다.
SDL_BlitSurface가 알파 채널을 블렌딩 한 것처럼 보입니다. 예를 들어 타일 시트를 새 표면으로 복사하고 싶을 때 (물론 비어 있습니다. SDL이 검정색 또는 기본적으로 흰색), 알파 마스크를 잃어 버리므로 타일이 마침내 화면에 blitted되면 화면에 무엇이든지 블렌드되지 않습니다.
SDL_DisplayFormatAlpha는 알파 마스크가있는 서페이스를 복사하는 데 적합하지만 클립 매개 변수를 사용하지 않으며 일부만 복사하지 않고 전체 표면을 복사하기 때문에 문제가됩니다.