C++ SDL使用SDL_Rect渲染透明矩形

C++ SDL使用SDL_Rect渲染透明矩形,c++,rendering,alpha,sdl-2,C++,Rendering,Alpha,Sdl 2,我在SDL2纪录片中找不到任何关于渲染透明矩形的内容。我想将SDL_Rect渲染为透明纹理/曲面/用作“战争之雾”的任何对象。也许你知道任何从SDL_èRect生成表面或纹理的方法,或者只是将其渲染为透明。我不想在游戏文件中添加新的纹理,因为玩家只需删除文件,他就不会有战争的迷雾。好的,我自己设法做到了,如果其他人也有同样的问题,那就是答案: SDL_Surface* Fog = NULL; SDL_Texture* gFog = NULL; Fog = SDL_CreateRGBSurfac

我在SDL2纪录片中找不到任何关于渲染透明矩形的内容。我想将SDL_Rect渲染为透明纹理/曲面/用作“战争之雾”的任何对象。也许你知道任何从SDL_èRect生成表面或纹理的方法,或者只是将其渲染为透明。我不想在游戏文件中添加新的纹理,因为玩家只需删除文件,他就不会有战争的迷雾。

好的,我自己设法做到了,如果其他人也有同样的问题,那就是答案:

SDL_Surface* Fog = NULL;
SDL_Texture* gFog = NULL;

Fog = SDL_CreateRGBSurface(0, SCREEN_WIDTH, SCREEN_HEIGHT, 32, 0, 0, 0, 0);
if (Fog == NULL)std::cout << SDL_GetError();

gFog = SDL_CreateTextureFromSurface(gRenderer, Fog);
if (gFog == NULL)std::cout<<SDL_GetError();

SDL_SetTextureBlendMode(gFog, SDL_BLENDMODE_BLEND);
SDL_SetTextureAlphaMod(gFog, 150);
SDL_Surface*Fog=NULL;
SDL_纹理*gFog=NULL;
Fog=SDL_CreateRGB曲面(0,屏幕宽度,屏幕高度,32,0,0,0);
if(Fog==NULL)std::cout