我正在尝试使用SDL和C++编写程序。如何在SDL中获取屏幕的像素宽度和高度?我想要获取屏幕的宽度而不是窗口的宽度。
SDL_GetCurrentDisplayMode
或SDL_GetDesktopDisplayMode
。使用示例:SDL_DisplayMode DM;
SDL_GetCurrentDisplayMode(0, &DM);
auto Width = DM.w;
auto Height = DM.h;
全屏显示:使用SDL_GetRendererOutputSize
非常容易实现。
只需像这样传递您的SDL_Renderer*
即可:
int w, h;
SDL_GetRendererOutputSize(renderer, &w, &h);
void SDL_GetRendererOutputSize(SDL_Renderer* 渲染器, int* 宽度, int* 高度)
渲染器:一个渲染上下文
宽度:填充渲染器宽度的指针
高度:填充渲染器高度的指针
非全屏模式:
使用SDL_GetDesktopDisplayMode()
函数。
SDL_DisplayMode dm;
if (SDL_GetDesktopDisplayMode(0, &dm) != 0)
{
SDL_Log("SDL_GetDesktopDisplayMode failed: %s", SDL_GetError());
return 1;
}
int w, h;
w = dm.w;
h = dm.h;
请务必进行错误检查!否则当SDL_GetDesktopDisplayMode
失败时,你会很痛苦!