(SDL_ttf를 사용하여) 서페이스에 텍스트를 그린 다음 서페이스의 텍스트를 변경하고 싶습니다. 표면을 다시 그리면 텍스트가 사라지지 않습니다. 문제를 해결하는 방법에 대한 몇 가지 포럼 게시물을 살펴 봤지만 그 사실을 알 수없는 것 같습니다. 이 솔루션이 작동하지 않는 이유 특히 나는 이해할 수 없다 : 클래스 파일에서SDL 리셋 서페이스
선언 (이것은 단지 필수 제공하므로 코드가 긴) :
: 내 렌더링 함수의 시작에서 SDL_Surface* box; // These two are initialised to the
SDL_Surface* boxCopy; // same image
을 포인터와 (일반적으로 인정 하듯이 제한됩니다) C++의
*box = *boxCopy; \\Reset box surface
나의 이해는이 표면이 boxCopy가 가리키는 표면에 동일한 상자가 가리키는 만들어야한다고 제안합니다. 대신 boxCopy 서페이스는 상자의 복사본이됩니다. boxCopy가이 코드 줄로 어떻게 바뀔 수 있는지는 모르겠지만 그런 일이 일어나고있는 것처럼 보입니다. 그것은이에 그려 표면이 실제 텍스트가 업데이트 될 때마다이를 업데이트하는 것이 아니라 업데이트 할 때마다 텍스트를 업데이트하는 것이 더 쉽습니다 ..
물론 떠나지 않습니다. 표면에 그림을 그려 넣으면 좋게 변경됩니다. 복사가 필요하면 SDL_CreateRGBSurface()를 사용하고 수동으로 픽셀 데이터를 복사하십시오. – this