如何将两个 SDL2 纹理混合到一个纹理


SDL_RenderClear(g_ren);
SDL_Texture *tex_bk = SDL_CreateTextureFromSurface(g_ren, bk);
SDL_Texture *tex_des = SDL_CreateTextureFromSurface(g_ren, widget);
SDL_RenderCopy(g_ren, tex_bk, NULL, NULL);
SDL_SetTextureBlendMode(tex_des,blendMode);
SDL_SetRenderDrawBlendMode(g_ren,blendMode);
SDL_RenderCopy(g_ren, tex_des, NULL, NULL);
SDL_RenderPresent(g_ren);
SDL_DestroyTexture(tex_des);
SDL_DestroyTexture(tex_bk);
我想使用 SDL_RenderCopy

复制tex_bk,第二次使用SDL_RenderCopy混合tex_des,但应用程序始终显示tex_des图像.tex_bk 图像总是消失。

你混淆了函数。

SDL_SetTextureBlendMode更改了对指定纹理应用 Alpha 混合的方式。

SDL_SetRenderDrawBlendMode改变了渲染基元(如点、线和矩形)的 alpha 混合方式。


您正在寻找的功能可能SDL_SetTextureAlphaMod

最新更新