How to init direct3d11 (not direct3d) renderer to support blend mode max in SDL2 2.0.8?


#1

Hi! Sorry for my English.

I use SDL 2.0.8 and Windows 8.1 with DirectX 11.2 and GeForce GTX 750 Ti. In my project I must use blend mode maximum which is supported by direct3d11 renderer only. If it matters I create my window with

SDL_CreateWindow("Title", 600, 600, 600, 600, SDL_WINDOW_RESIZABLE );

Before creating renderer I set

SDL_SetHintWithPriority( SDL_HINT_RENDER_DRIVER, "direct3d11", SDL_HINT_OVERRIDE );

Hint with “direct3d” doesn’t help. Then I create renderer with

SDL_CreateRenderer( m_window, -1, SDL_RENDERER_ACCELERATED );

Changing renderer index doesn’t help. I load textures from pngs without transparency, pixel format is SDL_PIXELFORMAT_RGB24. My custom blend mode is

SDL_BLENDFACTOR_ONE,					//srcColorFactor
SDL_BLENDFACTOR_ONE,					//dstColorFactor
SDL_BLENDOPERATION_MAXIMUM,			//colorOperation
SDL_BLENDFACTOR_ONE,					//srcAlphaFactor
SDL_BLENDFACTOR_ONE,					//dstAlphaFactor
SDL_BLENDOPERATION_MAXIMUM		        //alphaOperation

I apply this blend mode to texture only, to renderer only or both… it doesn’t help. When I call SDL_GetRendererInfo() to check my renderer name, it says “direct3d”. SDL_GetError() says that “That operation is not supported”. How can I change my renderer to direct3d11? What should I do to make SDL_BLENDOPERATION_MAXIMUM work?