从几个纹理创建新纹理 SDL-2。

5

我有几个纹理需要在屏幕上保持不动。与其每次渲染时单独渲染它们,我想将它们全部作为一个纹理渲染。到目前为止,我的代码看起来像这样:

SDL_Texture* target_texture = NULL;
SDL_SetRenderTarget(renderer, target_texture);
SDL_RenderCopy(renderer, texture1, NULL, &dst1);
SDL_RenderCopy(renderer, texture2, NULL, &dst2);
SDL_RenderCopy(renderer, texture3, NULL, &dst3);
.
.
.
SDL_SetRenderTarget(renderer, NULL);
SDL_RendererPresent(renderer);
// Here the screen displays as I want
SDL_Delay(2000);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, target_texture, NULL, NULL);
SDL_RendererPresent(renderer);
// Here the screen is black as though target_texture is still NULL
1个回答

6

您需要创建目标纹理,当前它始终为NULL。将第一行替换为:

target_texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, target_width, target_height);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接