在 SDL 中设置像素格式并从表面创建纹理
Set the pixel format AND create texture from surface in SDL
我目前正在尝试使用像素操作进行一些操作,我想设置 SDL_Surface 的像素格式。这里的问题是我正在使用 SDL_image.h 加载图像。所以我必须从这样的表面创建纹理:
surface = IMG_Load(filePath);
texture = SDL_CreateTextureFromSurface(renderer, surface);
所以我不能使用下面的功能,我想,或者我可以吗?:
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, 640, 480);
问题是,我想将 SDL_PixelFormat 设置为能够乱用像素。我怎样才能做到这一点并基于表面创建纹理?
SDL2API提供函数SDL_ConvertSurface
:
SDL_Surface* SDL_ConvertSurface(SDL_Surface* src,
const SDL_PixelFormat* fmt,
Uint32 flags)
你应该可以做到
surface = IMG_Load(filePath);
// Call SDL_ConvertSurface to set the pixel format of the surface you have created.
texture = SDL_CreateTextureFromSurface(renderer, surface);
我目前正在尝试使用像素操作进行一些操作,我想设置 SDL_Surface 的像素格式。这里的问题是我正在使用 SDL_image.h 加载图像。所以我必须从这样的表面创建纹理:
surface = IMG_Load(filePath);
texture = SDL_CreateTextureFromSurface(renderer, surface);
所以我不能使用下面的功能,我想,或者我可以吗?:
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, 640, 480);
问题是,我想将 SDL_PixelFormat 设置为能够乱用像素。我怎样才能做到这一点并基于表面创建纹理?
SDL2API提供函数SDL_ConvertSurface
:
SDL_Surface* SDL_ConvertSurface(SDL_Surface* src,
const SDL_PixelFormat* fmt,
Uint32 flags)
你应该可以做到
surface = IMG_Load(filePath);
// Call SDL_ConvertSurface to set the pixel format of the surface you have created.
texture = SDL_CreateTextureFromSurface(renderer, surface);