我真的不懂如何使用SDL_RenderSetViewport,或者它有一种奇怪的行为。
SDL_Rect viewportRect = {-viewportX, viewportY - viewportH + windowH, viewportW, viewportH};
SDL_RenderSetViewport(renderer, &viewportRect);
此代码是我用于窗口大小(640; 480)的代码,以及任何n的视窗大小(windowW * n,windowH * n)。
但是,如果我在代码中更改窗口大小,则在显示视口时会发生移位。
默认情况下,viewportX = viewportY = 0;
我不明白为什么viewportRect
如此奇怪,以及当我改变窗口大小时它为什么不起作用。
答案 0 :(得分:0)
据我所知,SDL在调整大小后不会自动重新调整窗口设置。你在处理SDL_WINDOWEVENT_RESIZED
吗?如果没有,请尝试处理它并在其上调用SDL_RenderSetViewport(renderer, &viewportRect)
。