首页 > 解决方案 > 使用 TextureLock SDL2 在纹理中复制曲面

问题描述

嗨,我想在纹理中复制一个表面,这样做:

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,当srcdst我获得的失真多时src。我的代码有什么问题?

PD:我知道我可以使用SDL_CreateTextureFromSurface,但我需要通过像素操作来执行复制

标签: csdl-2

解决方案


推荐阅读