SDL2 위키의 SDL_RenderSetScale()과 SDL_RenderSetLogicalSize()에 대한 간단한 설명에서부터 나는이 명령이 기본적으로 그래픽 편집기에서 이미지의 크기를 조절하는 방식으로 내용에 상관없이 전체 프레임의 크기를 조절한다는 인상하에있었습니다.SDL_RenderSetScale과 SDL_RenderDrawLine은 어떻게 상호 작용합니까?
이전의 SDL_Rects 및 SDL_Texture 만 크기 조정하고 렌더링 한 이전 프로그램에서는 그 것처럼 보였습니다. 그러나 RenderDrawLine()을 사용하여 선을 그리는 경우는 부분적으로 만 가능합니다.
x 축이나 y 축에 평행 한 선은 올바르게 축척되지만 다른 경우에는 축척되지 않습니다.
SDL_RenderSetScale(gRenderer, gScaler, gScaler);
SDL_SetRenderDrawColor(gRenderer, 0x00, 0x00, 0x00, 0xFF);
SDL_RenderClear(gRenderer);
SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
SDL_RenderDrawLine(gRenderer, x1, y1, x2, y2);
SDL_RenderPresent(gRenderer);
SDL_RenderSetScale()을 사용하여 각도에 상관없이 선의 크기를 조절하는 방법이 있습니까? 함수가 무엇을 확장하고 무엇을 무시할지 결정하는 방법은 무엇입니까?
머리를 주셔서 감사합니다. 이 버그의 영향을받지 않는 sdl2로 확장 할 수있는 다른 방법이 있습니까? 프레젠테이션을하기 전에 전체 프레임의 스냅 샷을 찍은 다음 크기를 조정하는 것과 같은 것이 있습니까? 성능이 그다지 큰 문제는 아닙니다. – mwyah
@ boristhesp1der 아마도 라인 (또는 전체 장면)을 SDL_Surface로 렌더링 한 다음 확장 할 수 있습니다. –
@ boristhesp1der 렌더러에 대한 다른 대상 (케이스의 질감)을 사용하고 선을 그려 넣은 다음 이미 수행 한 것처럼 텍스처의 크기를 조정할 수 있습니다. 나는 내 마음에서 이름을 얻었지만'SDL_SetRendererTarget'과 같은 것입니다. – skypjack