SDL绘制模糊图像而不缩放

时间:2015-01-29 15:51:09

标签: c++ image sdl sdl-2

我正在使用SDL(简单直接媒体层)在C ++中开展一个项目,但是当我将SDL_Texture绘制到屏幕时,虽然它没有缩放,但它很模糊。

如何加载图像:

SDL_Surface* loadedSurface = IMG_Load("image.png");
SDL_Texture* gImage = SDL_CreateTextureFromSurface( gRenderer, loadedSurface);

如何将图像绘制到屏幕上:

SDL_Rect renderQuad = { x, y, width, height };
SDL_RenderCopy(gRenderer, gImage , NULL, &renderQuad );

见图片,左边是程序,右边是原件:

enter image description here

是否存在忘记设置的参数? SDL这样做是否正常?

我在Windows 8.1 64位计算机上使用32位SDL 2.0。

1 个答案:

答案 0 :(得分:1)

在您致电SDL_CreateTextureFromSurface之前尝试致电:

SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0");

根据SDL Wiki,这应该影响SDL_CreateTextureFromSurface调用表面插值的方式。 " 0"应该导致最近邻居去除你看到的模糊效果。