다음과 같은 문제가 발생합니다. 웹 검색을 해결할 수없는 문제가 있습니다.SDL2 텍스처에서 픽셀 정보 얻기
저는 현재 셰이프 (사각형, 원, 삼각형 등)를 캔버스로 끌어서 회전시켜 주위를 이동할 수있는 SDL2를 사용하여 간단한 프로그램을 작성하고 있습니다. 각 모양은 PNG 파일에서 생성 된 SDL 텍스처로 시각적으로 표현됩니다 (SDL_image 라이브러리의 IMG_LoadTexture 함수 사용).
텍스처의 특정 픽셀이 투명한지 여부를 알고 싶습니다. 누군가가 이미지를 클릭하면 내가 어떤 동작을해야 할지를 결정할 수 있습니다 (클릭이 투명하지 않기 때문에). 지역). 일부 학교 과제이므로 일부 제한이 있습니다. 즉, SDL2 라이브러리 만 사용하고 이미지가 dinamically 선택되어 있기 때문에 문제의 픽셀이 투명하면 어떤지도를 볼 수 없습니다. 게다가 원래의 이미지에서 SDL 서페이스를 만드는 방법에 대해 생각해 보았습니다.하지만 모양이 작동하지 않는 텍스처를 통해 회전하고 있기 때문에 생각했습니다.
SDL2에 대한 문서가별로 없기 때문에 어디서나 만족스러운 답변을 찾을 수 없으므로 도움을 주시면 감사하겠습니다.
감사합니다.
SDL_LockTexture에 대한 문서를 보면 픽셀 데이터를 쓰기 권한으로 만 사용할 수있는 것으로 보입니다. 읽기 액세스를 위해 픽셀 데이터에 액세스 할 수있는 또 다른 방법이 있습니까? –
@Julian 텍스처를 잠그면 픽셀이 전달 된 void 포인터에 저장됩니다. 그래서 그냥 읽고 싶다면 텍스처를 잠그고 잠금 해제하면 픽셀이 저장됩니다. – user2437378
@ user2437378 공식적으로 - https : //wiki.libsdl.org/SDL_LockTexture -'최적화를 위해 편집 가능한 픽셀에 이전 텍스처 데이터가 반드시 포함되는 것은 아닙니다. 이 작업은 쓰기 전용 작업이므로 텍스처 데이터의 복사본을 유지해야하는 경우 응용 프로그램 수준에서 수행해야합니다 .' 구현할 수있는 방법을 생각하기는 어렵지만 무언가에 의존하는 것이 좋지 않은 것처럼 보입니다 그들은 명시 적으로 말하지 않는다. 이 제안에 의존하는 독자는 언젠가 코드가 깨지는 위험에 처해있을 수 있습니다. 그 시점까지는 너무 늦었을 것입니다. –