0

我正在使用 SDL_gfx 尝试调整图像大小,但我无法真正完成。

情况是我有一个:

SDL_Surface* screen = SDL_SetVideoMode(0,0,32,SDL_FULLSCREEN);

我还有一个:

SDL_Surface* back_img = SDL_Load("back.jpg");

如您所见,我将视频模式设置为全屏,因此屏幕表面的大小会因电脑而异。我想找到一种在屏幕上制作 back_img FIT 的方法,但我有两个主要问题。

  1. screen->wscreen->h返回一个假值!
  2. 我无法将图像调整为我想要的特定大小。

有什么帮助吗?

4

2 回答 2

0

您的screen->w值返回 0,因为您使用SDL_SetVideoMode(0,0,... Set them to some proper values 将它们设置为零,例如SDL_SetVideoMode(800,600,32,SDL_FULLSCREEN);您可以稍后通过使用不同参数再次调用函数来更改它们。


笔记; 设置 SDL 全屏将自动调整和拉伸图像以适应屏幕

于 2013-03-14T21:57:02.943 回答
0

您可以使用 SDL_VideoInfo 获取当前分辨率。请看下面的代码:

const SDL_VideoInfo *info = SDL_GetVideoInfo();
SDL_Surface *screen = SDL_SetVideoMode( info->current_w, info->current_h, 32, SDL_FULLSCREEN );

现在您的屏幕分辨率将匹配每台 PC 的分辨率。

于 2015-04-17T17:09:21.603 回答