我正在使用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 );
见图片,左边是程序,右边是原件:
是否存在忘记设置的参数? SDL这样做是否正常?
我在Windows 8.1 64位计算机上使用32位SDL 2.0。
答案 0 :(得分:1)
在您致电SDL_CreateTextureFromSurface之前尝试致电:
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0");
根据SDL Wiki,这应该影响SDL_CreateTextureFromSurface调用表面插值的方式。 " 0"应该导致最近邻居去除你看到的模糊效果。