SDL_Texture *screen = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,
SDL_TEXTUREACCESS_TARGET, 800, 800);
我想将这个
screen
纹理复制到另一个名为temp
的纹理。
我尝试了以下代码
SDL_Texture *temp = screen;
但是当我更改temp
时,screen
也被更改,因为它们指向相同的内存地址。
有没有办法在不改变源纹理的情况下复制纹理?
你可以这样试试:
SDL_Texture* temp = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,
SDL_TEXTUREACCESS_TARGET, 800, 800);
// set the target texture
SDL_SetRenderTarget(renderer, temp);
// copy the original texture
SDL_RenderCopy(renderer, screen, NULL, NULL);
// reset the target texture
SDL_SetRenderTarget(renderer, screen);
这个解决方案适合你吗?