2013-12-22 90 views
3

我有幾個紋理將我的屏幕上保持靜止。而不是單獨渲染每一個,當我渲染,我想使它們都作爲一個紋理。到目前爲止我的代碼看起來像:創建幾個紋理一個新的紋理SDL-2

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 

回答

5

你必須創建target_texture,目前它總是NULL。更換你的第一行:

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