如何在不指向相同纹理的情况下将纹理复制到另一个纹理

问题描述 投票:0回答:1
SDL_Texture *screen = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,
                               SDL_TEXTUREACCESS_TARGET, 800, 800);

我想将这个

screen
纹理复制到另一个名为
temp
的纹理。

我尝试了以下代码

SDL_Texture *temp = screen;
但是当我更改
temp
时,
screen
也被更改,因为它们指向相同的内存地址。

有没有办法在不改变源纹理的情况下复制纹理?

sdl sdl-2
1个回答
0
投票

你可以这样试试:

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

这个解决方案适合你吗?

© www.soinside.com 2019 - 2024. All rights reserved.