2016-08-13 10 views
1

Я ничего не мог найти об рендеринг прозрачных прямоугольников в документальных документах SDL2. Я хочу сделать SDL_Rect прозрачной текстурой/поверхностью/все, что используется как «туман войны». Возможно, вы знаете какой-либо способ сделать поверхность или текстуру из SDL_Rect или просто сделать ее прозрачной. Я не хочу новой текстуры в игровых файлах, потому что игрок может просто удалить файл, и у него не будет этого тумана войны.SDL рендеринга прозрачного прямоугольника с использованием SDL_Rect

ответ

2

Хорошо мне удалось сделать это сам, и если кто-то будет иметь тот же вопрос вот ответ:

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);