From e681623cb2bfe0b681b9b98b1faa4ed03911117b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 20 Jun 2019 19:51:00 -0700 Subject: [PATCH] direct3d: Fix dirty textures failing to update Even if the texture itself has not changed since last time, the data may have so we must call UpdateDirtyTexture() to handle that possibility. --- src/render/direct3d/SDL_render_d3d.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index 3d2cdcc3eace7..c1e1231ee4ea6 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -1127,6 +1127,13 @@ SetDrawState(D3D_RenderData *data, const SDL_RenderCommand *cmd) } data->drawstate.texture = texture; + } else if (texture) { + D3D_TextureData *texturedata = (D3D_TextureData *) texture->driverdata; + UpdateDirtyTexture(data->device, &texturedata->texture); + if (texturedata->yuv) { + UpdateDirtyTexture(data->device, &texturedata->utexture); + UpdateDirtyTexture(data->device, &texturedata->vtexture); + } } if (blend != data->drawstate.blend) {