我正在使用SDL_gfx尝试调整图像大小,但我无法完成它。
案件是我有:
SDL_Surface* screen = SDL_SetVideoMode(0,0,32,SDL_FULLSCREEN);
我也有:
SDL_Surface* back_img = SDL_Load("back.jpg");
如您所见,我将视频模式设置为全屏,因此屏幕表面的大小会因PC而异。我想找到一种在屏幕上制作back_img FIT的方法,但我有两个主要问题。
screen->w
和screen->h
返回错误值! 任何帮助?
答案 0 :(得分:0)
您的screen->w
值返回0,因为您使用SDL_SetVideoMode(0,0,...
将它们设置为零
将它们设置为某些正确的值,例如SDL_SetVideoMode(800,600,32,SDL_FULLSCREEN);
,您可以稍后通过使用不同的参数再次调用该函数来更改它们。
注意;设置SDL全屏将自动调整大小并拉伸图像以适合屏幕
答案 1 :(得分:0)
您可以使用SDL_VideoInfo来获取当前分辨率。请参阅以下代码:
const SDL_VideoInfo *info = SDL_GetVideoInfo();
SDL_Surface *screen = SDL_SetVideoMode( info->current_w, info->current_h, 32, SDL_FULLSCREEN );
现在,您屏幕的分辨率将与每台PC的分辨率相匹配。