【问题标题】:stretching image in sdl2在 sdl2 中拉伸图像
【发布时间】:2021-03-18 18:40:54
【问题描述】:

在 sdl2 中拉伸图像会使程序变慢吗?

例如,如果我的地图图块的原始分辨率是 32x32,我在 sdl 中将其拉伸为 64x64,它会影响程序的速度吗?

这是我加载图像的方式:

SDL_Surface *surface = NULL;
SDL_Texture *texture = NULL;

surface = IMG_Load("sample.png");//this is the 32x32 image
texture = SDL_CreateTextureFromSurface(renderer, surface);

SDL_Rect dstRect = {0, 0, 64, 64};//and I will use this rect for that sample.png in SDL_RenderCopy();

【问题讨论】:

  • 渲染四倍以上的像素会更慢。如果问题是您是否会注意到任何放缓 - 如果不完全了解您在做什么,这是不可能回答的。如果你要渲染 10 亿个这样的图块——好吧,也许吧?如果不是 - 不太可能。
  • 为什么不简单介绍一下呢?

标签: c++ sdl-2


【解决方案1】:

是的,如果每次重绘时都会调整大小。如果您需要调整大小的图块,您应该使用调整大小的图块创建缓存(在开始时调整大小,并在重绘时使用缓存的图块)。 SDL_BlitScaled 用于表面,或SDL_CreateTexture(surface, format, target, width, height) 用于纹理可以做到这一点。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 2011-01-07
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多