嗨,我想在纹理中复制表面:
void copy_surface_in_texture(SDL_Texture *dst, SDL_Surface *src, int x, int y)
{
int *pixels;
int pitch;
SDL_TextureLock(dst, &(SDL_Rect){x, y, src->w, src->h}, (void **)&pixels, &pitch);
SDL_SurfaceLock(src);
memcpy(pixels, src->pixels, pitch * src->h);
SDL_SurfaceUnlock(src);
SDL_TextureUnlock(dst);
}
但这仅在src
与dst
具有相同的尺寸时有效,当src
小于dst
时,我会得到src
的失真。我的代码有什么问题?
PD:我知道我可以使用SDL_CreateTextureFromSurface
,但是我需要通过像素操作来执行复制