使用TextureLock SDL2复制纹理中的表面

时间:2018-07-21 11:08:38

标签: c sdl-2

嗨,我想在纹理中复制表面:

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);
}

但这仅在srcdst具有相同的尺寸时有效,当src小于dst时,我会得到src的失真。我的代码有什么问题?

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

0 个答案:

没有答案