c – SDL:在另一个纹理的顶部渲染纹理

我遇到以下问题:

我需要在另一个纹理上渲染纹理,然后渲染该主纹理.
例如,我有蓝色矩形纹理,我想在这个蓝色矩形的顶部绘制红色矩形.但是我希望它们仅限制此矩形上的渲染.如下图所示:

我读了一些关于它们之间的纹理blit或类似的东西,但我不确定这是否可行.

我的代码如下所示:

SDL_Rendercopy(ren,bluetexture,NULL,dBLUErect);
SDL_Rendercopy(ren,redtexture,dREDrect);
SDL_RenderPresent(ren);

任何人都知道如何在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,canvas->drect);
SDL_DestroyTexture(auxtexture);

干杯.

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...