che*_*o_c 7 c++ textures rendering sdl blit
我遇到以下问题:
我需要在另一个纹理上渲染纹理,然后渲染该主纹理.例如,我有蓝色矩形纹理,我想在这个蓝色矩形的顶部绘制红色矩形.但是我希望它们仅限制此矩形的渲染.如下图所示:
我读了一些关于它们之间的纹理blit或类似的东西,但我不确定这是否可行.
我的代码看起来像这样:
SDL_RenderCopy(ren,bluetexture,NULL,dBLUErect);
SDL_RenderCopy(ren,redtexture,NULL,dREDrect);
SDL_RenderPresent(ren);
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何在SDL 2.0中执行此操作?这就是我使用的方式.
火星的答案没有用,因为它画了一个黑色的纹理,没有任何东西可以绘制.
但是这个工作!:
SDL_Texture* auxtexture = SDL_CreateTexture(ren, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, 500, 500);
//change the rendering target
SDL_SetTextureBlendMode(auxtexture, SDL_BLENDMODE_BLEND);
SDL_SetRenderTarget(ren, auxtexture);
//render what we want
triangle->render(ren); //render my class triangle e.g
//change the target back to the default and then render the aux
SDL_SetRenderTarget(ren, NULL); //NULL SETS TO DEFAULT
SDL_RenderCopy(ren, auxtexture, NULL, canvas->drect);
SDL_DestroyTexture(auxtexture);
Run Code Online (Sandbox Code Playgroud)
干杯.