SDL绘制模糊图像而不缩放

Oli*_*414 5 c++ sdl image sdl-2

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

如何加载图像:

SDL_Surface* loadedSurface = IMG_Load("image.png");
SDL_Texture* gImage = SDL_CreateTextureFromSurface( gRenderer, loadedSurface);
Run Code Online (Sandbox Code Playgroud)

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

SDL_Rect renderQuad = { x, y, width, height };
SDL_RenderCopy(gRenderer, gImage , NULL, &renderQuad );
Run Code Online (Sandbox Code Playgroud)

看图像,左边是程序,右边是原始:

在此输入图像描述

有没有参数忘了设置?SDL这样做是否正常?

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

ste*_*ves 1

在调用 SDL_CreateTextureFromSurface 之前尝试调用:

SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0");
Run Code Online (Sandbox Code Playgroud)

根据SDL Wiki,这应该会影响 SDL_CreateTextureFromSurface 调用对表面进行插值的方式。“0”应该导致最近邻消除您所看到的模糊效果。