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.
diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c
index 3d2cdcc..c1e1231 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) {