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

前端之家收集整理的这篇文章主要介绍了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);

干杯.

原文链接:https://www.f2er.com/c/118566.html

猜你在找的C&C++相关文章