[SDL] Copy RGBA pixels directly to target texture without blending

stewambo stefanaicher1 at gmx.de
Thu Mar 16 08:11:01 PDT 2017

I have a texture with static (or streaming) access and I need to render other stuff onto it, so I need to convert it to a target-texture. Therefor I just created an empty texture with SDL_TEXTUREACCESS_TARGET and set it as rendering target, but when i render my semi-transparent static/streaming texture onto it the black transparent background of the target-texture bleeds into the transparent part of my original texture 

Original image:
[Image: http://i.imgur.com/5ByTcgv.png ]

Left: original texture rendered directly; 
Right: target-texture with original texture rendered ontop (obviously not the same, but darker)
[Image: http://i.imgur.com/z7ukpYr.png ]

Code to create the image above:


SDL_Surface* surface = SDL_ConvertSurfaceFormat(IMG_Load("D:/Documents/Visual Studio 2015/Projects/SDLTest/resources/textures/gradientTexture.png"), SDL_PIXELFORMAT_RGBA8888, NULL);
SDL_Texture* staticTexture = SDL_CreateTextureFromSurface(renderer, surface);
SDL_Texture* targetTexture = SDL_CreateTexture( renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, 50, 50 ); 

SDL_SetRenderTarget(renderer, targetTexture); 
SDL_SetTextureBlendMode(targetTexture, SDL_BLENDMODE_BLEND);
SDL_RenderCopy(renderer, staticTexture, NULL, NULL);
SDL_SetRenderTarget(renderer, NULL);

SDL_Rect rect0{ 50,50,50,50 };
SDL_RenderCopy(renderer, staticTexture, NULL, &rect0);
SDL_Rect rect1{ 100,50,50,50 };
SDL_RenderCopy(renderer, targetTexture, NULL, &rect1);

The solution to my problem in this topic (https://forums.libsdl.org/viewtopic.php?t=12064) was to set the background color of the target texture to one solid color, but here this doesn't work because the static texture is not a solid color...

So how can i get my target-texture to look exactly like my original texture, or is there a way to copy the RGBA information directly into the new texture without the need to render it using a blend mode?

Thanks :)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20170316/7dc1a964/attachment.htm>

More information about the SDL mailing list