From b2d57fd07d1703e1428038c1aba44a78f8a76ea1 Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Wed, 20 May 2015 02:30:31 +0200
Subject: [PATCH] (D3D) Remove dependencies on video_data

---
 gfx/d3d/d3d.cpp | 55 ++++++++++++++++++++++++++++---------------------
 1 file changed, 32 insertions(+), 23 deletions(-)

diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp
index 0f24c0b3a7..922b8708bc 100644
--- a/gfx/d3d/d3d.cpp
+++ b/gfx/d3d/d3d.cpp
@@ -170,13 +170,12 @@ void d3d_make_d3dpp(void *data,
       unsigned width          = 0;
       unsigned height         = 0;
 
-	  gfx_ctx_get_video_size(d3d, &width, &height);
+      gfx_ctx_get_video_size(d3d, &width, &height);
 
-      global->video_data.width       = width;
-      global->video_data.height      = height;
+      video_driver_set_size_width(width);
+      video_driver_set_size_height(height);
 #endif
-      d3dpp->BackBufferWidth  = global->video_data.width;
-      d3dpp->BackBufferHeight = global->video_data.height;
+      video_driver_get_size(&d3dpp->BackBufferWidth, &d3dpp->BackBufferHeight);
    }
 
 #ifdef _XBOX
@@ -273,6 +272,7 @@ static bool d3d_init_base(void *data, const video_info_t *info)
 
 static bool d3d_initialize(d3d_video_t *d3d, const video_info_t *info)
 {
+   unsigned width, height;
    bool ret             = true;
    settings_t *settings = config_get_ptr();
    driver_t   *driver   = driver_get_ptr();
@@ -329,10 +329,10 @@ static bool d3d_initialize(d3d_video_t *d3d, const video_info_t *info)
    if (!ret)
       return ret;
 
+   video_driver_get_size(&width, &height);
+
    d3d_calculate_rect(d3d,
-	   global->video_data.width,
-	   global->video_data.height,
-         info->force_aspect, global->system.aspect_ratio);
+	   width, height, info->force_aspect, global->system.aspect_ratio);
 
    if (!d3d_init_chain(d3d, info))
    {
@@ -474,21 +474,30 @@ static void d3d_set_nonblock_state(void *data, bool state)
 
 static bool d3d_alive(void *data)
 {
+   unsigned temp_width = 0, temp_height = 0;
+   int ret = false;
    d3d_video_t *d3d   = (d3d_video_t*)data;
    bool        quit   = false;
    bool        resize = false;
-   global_t *global   = global_get_ptr();
 
-   if (!gfx_ctx_check_window(d3d, &quit, &resize,
-            &global->video_data.width, &global->video_data.height))
-			return false;
+   if (gfx_ctx_check_window(d3d, &quit, &resize,
+            &temp_width, &temp_height))
+   {
+      if (quit)
+         d3d->quitting = quit;
+      else if (resize)
+         d3d->should_resize = true;
 
-   if (quit)
-      d3d->quitting = quit;
-   else if (resize)
-      d3d->should_resize = true;
+      ret = !quit;
+   }
 
-   return !quit;
+   if (temp_width != 0 && temp_height != 0)
+   {
+      video_driver_set_size_width(temp_width);
+      video_driver_set_size_height(temp_height);
+   }
+
+   return ret;
 }
 
 static bool d3d_focus(void *data)
@@ -627,20 +636,20 @@ static bool d3d_construct(d3d_video_t *d3d,
 #else
    gfx_ctx_get_video_size(d3d, &full_x, &full_y);
 #endif
-   global->video_data.width   = info->fullscreen ? full_x : info->width;
-   global->video_data.height  = info->fullscreen ? full_y : info->height;
+   video_driver_set_size_width(info->fullscreen  ? full_x : info->width);
+   video_driver_set_size_height(info->fullscreen ? full_y : info->height);
 
 #ifndef _XBOX
 #ifdef HAVE_WINDOW
    char buffer[128];
-   unsigned win_width  = global->video_data.width;
-   unsigned win_height = global->video_data.height;
+   unsigned win_width, win_height;
    RECT rect = {0};
 
+   video_driver_get_size(&win_width, &win_height);
+
    if (!info->fullscreen)
    {
-      rect.right  = global->video_data.width;
-      rect.bottom = global->video_data.height;
+      video_driver_get_size(&rect.right, &rect.bottom);
       AdjustWindowRect(&rect, WS_OVERLAPPEDWINDOW, FALSE);
       win_width   = rect.right - rect.left;
       win_height  = rect.bottom - rect.top;