From 520199c10a961864f44404a716d12a9fbd81d0ee Mon Sep 17 00:00:00 2001
From: ScoochAside <26647325+miguedevel@users.noreply.github.com>
Date: Sat, 13 Jul 2024 02:34:57 -0400
Subject: [PATCH] Use more logical variables. Added more resource cleanup,
 which fixes an unintended resizing bug that happened after taking a GPU
 screenshot.

---
 gfx/drivers/d3d11.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gfx/drivers/d3d11.c b/gfx/drivers/d3d11.c
index 92a0eb1767..81b4eb1999 100644
--- a/gfx/drivers/d3d11.c
+++ b/gfx/drivers/d3d11.c
@@ -3696,9 +3696,9 @@ static bool d3d11_gfx_read_viewport(void* data, uint8_t* buffer, bool is_idle)
 
          for (x = 0; x < d3d11->vp.width; x++)
          {
-            bufferRow[3 * x + 2] = BackBufferData[4 * (x + (int)d3d11->frame.viewport.TopLeftX) + 0];
-            bufferRow[3 * x + 1] = BackBufferData[4 * (x + (int)d3d11->frame.viewport.TopLeftX) + 1];
-            bufferRow[3 * x + 0] = BackBufferData[4 * (x + (int)d3d11->frame.viewport.TopLeftX) + 2];
+            bufferRow[3 * x + 2] = BackBufferData[4 * (x + (int)d3d11->vp.x) + 0];
+            bufferRow[3 * x + 1] = BackBufferData[4 * (x + (int)d3d11->vp.x) + 1];
+            bufferRow[3 * x + 0] = BackBufferData[4 * (x + (int)d3d11->vp.x) + 2];
          }
       }
       ret = true;
@@ -3713,7 +3713,9 @@ static bool d3d11_gfx_read_viewport(void* data, uint8_t* buffer, bool is_idle)
 
    /* Release the backbuffer staging. */
    BackBufferStaging->lpVtbl->Release(BackBufferStaging);
+   BackBufferResource->lpVtbl->Release(BackBufferResource);
    BackBufferStagingTexture->lpVtbl->Release(BackBufferStagingTexture);
+   BackBuffer->lpVtbl->Release(BackBuffer);
    
    return ret;
 }