SDL_render: Call InvalidateCachedState to initialise some of driverdata values (eg '*_dirty' to 1).

At the earliest place, immediatly after driverdata is set.
(Doing it in SDL_render.c, after creation, would be too late, because there're renderers that already use/change those values in the CreateRender() function).
This commit is contained in:
Sylvain 2023-12-01 15:58:13 +01:00 committed by Sylvain Becker
parent 058213366b
commit 7c71e72193
10 changed files with 14 additions and 13 deletions

View file

@ -1832,6 +1832,7 @@ static SDL_Renderer *GL_CreateRenderer(SDL_Window *window, SDL_PropertiesID crea
renderer->info = GL_RenderDriver.info;
renderer->info.flags = 0; /* will set some flags below. */
renderer->driverdata = data;
GL_InvalidateCachedState(renderer);
renderer->window = window;
data->context = SDL_GL_CreateContext(window);
@ -2008,8 +2009,6 @@ static SDL_Renderer *GL_CreateRenderer(SDL_Window *window, SDL_PropertiesID crea
/* This ended up causing video discrepancies between OpenGL and Direct3D */
/* data->glEnable(GL_LINE_SMOOTH); */
data->drawstate.blend = SDL_BLENDMODE_INVALID;
data->drawstate.shader = SHADER_INVALID;
data->drawstate.color = 0xFFFFFFFF;
data->drawstate.clear_color = 0xFFFFFFFF;