]> git.sesse.net Git - vlc/commitdiff
Fixed video display with directx and multiple monitors.
authorLaurent Aimar <fenrir@videolan.org>
Tue, 27 Apr 2010 22:46:19 +0000 (00:46 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Tue, 27 Apr 2010 22:49:06 +0000 (00:49 +0200)
modules/video_output/msw/common.c
modules/video_output/msw/directx.c

index ebc814acdbfdae75a897e76ec250657b5e42b1d6..fc11a167a3426ae50b6f62075c74c64ecc6a0faa 100644 (file)
@@ -368,7 +368,7 @@ void UpdateRects(vout_display_t *vd,
     if (!IntersectRect(&rect_dest_clipped, &rect_dest,
                        &sys->rect_display)) {
         SetRectEmpty(&rect_src_clipped);
-        return;
+        goto exit;
     }
 
 #ifndef NDEBUG
@@ -389,7 +389,7 @@ void UpdateRects(vout_display_t *vd,
     if ((rect_dest_clipped.right - rect_dest_clipped.left) == 0 ||
         (rect_dest_clipped.bottom - rect_dest_clipped.top) == 0) {
         SetRectEmpty(&rect_src_clipped);
-        return;
+        goto exit;
     }
 
     /* src image dimensions */
@@ -444,6 +444,7 @@ void UpdateRects(vout_display_t *vd,
 
     CommonChangeThumbnailClip(vd, true);
 
+exit:
     /* Signal the change in size/position */
     sys->changes |= DX_POSITION_CHANGE;
 
index 827c81bd08eccbae7200ffb15422a60ca56a192a..e676b05c26e2bf4aa251e76a2c9cb4d3edf12c05 100644 (file)
 
 #include "common.h"
 
+#ifdef UNICODE
+#   error "Unicode mode not supported"
+#endif
+
 /*****************************************************************************
  * Module descriptor
  *****************************************************************************/
@@ -190,7 +194,7 @@ static int Open(vlc_object_t *object)
     HMODULE huser32 = GetModuleHandle(_T("USER32"));
     if (huser32) {
         sys->MonitorFromWindow = (void*)GetProcAddress(huser32, _T("MonitorFromWindow"));
-        sys->GetMonitorInfo = (void*)GetProcAddress(huser32, _T("GetMonitorInfoW"));
+        sys->GetMonitorInfo = (void*)GetProcAddress(huser32, _T("GetMonitorInfoA"));
     } else {
         sys->MonitorFromWindow = NULL;
         sys->GetMonitorInfo = NULL;
@@ -588,7 +592,7 @@ static int DirectXOpenDDraw(vout_display_t *vd)
     if (sys->MonitorFromWindow) {
         HRESULT (WINAPI *OurDirectDrawEnumerateEx)(LPDDENUMCALLBACKEXA, LPVOID, DWORD);
         OurDirectDrawEnumerateEx =
-          (void *)GetProcAddress(sys->hddraw_dll, _T("DirectDrawEnumerateExW"));
+          (void *)GetProcAddress(sys->hddraw_dll, _T("DirectDrawEnumerateExA"));
 
         if (OurDirectDrawEnumerateEx) {
             char *device = var_GetString(vd, "directx-device");
@@ -1486,7 +1490,7 @@ static int FindDevicesCallback(vlc_object_t *object, char const *name,
     /* Enumerate displays */
     HRESULT (WINAPI *OurDirectDrawEnumerateEx)(LPDDENUMCALLBACKEXA,
                                                LPVOID, DWORD) =
-        (void *)GetProcAddress(hddraw_dll, _T("DirectDrawEnumerateExW"));
+        (void *)GetProcAddress(hddraw_dll, _T("DirectDrawEnumerateExA"));
     if (OurDirectDrawEnumerateEx)
         OurDirectDrawEnumerateEx(DirectXEnumCallback2, item,
                                  DDENUM_ATTACHEDSECONDARYDEVICES);