Alexandre Julliard : gdi32: Add a null driver entry point for GetDeviceCaps .

Alexandre Julliard julliard at winehq.org
Thu Mar 17 12:26:59 CDT 2011


Module: wine
Branch: master
Commit: 31e6f4bc0d8aa9daa761e86c64edeadb86808107
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=31e6f4bc0d8aa9daa761e86c64edeadb86808107

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Mar 16 22:04:51 2011 +0100

gdi32: Add a null driver entry point for GetDeviceCaps.

---

 dlls/gdi32/dc.c     |   22 ++--------------------
 dlls/gdi32/driver.c |   24 +++++++++++++++++++++++-
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 8633d0b..48b2f78 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -898,26 +898,8 @@ INT WINAPI GetDeviceCaps( HDC hdc, INT cap )
 
     if ((dc = get_dc_ptr( hdc )))
     {
-        if (dc->funcs->pGetDeviceCaps) ret = dc->funcs->pGetDeviceCaps( dc->physDev, cap );
-        else switch(cap)  /* return meaningful values for some entries */
-        {
-        case HORZRES:     ret = 640; break;
-        case VERTRES:     ret = 480; break;
-        case BITSPIXEL:   ret = 1; break;
-        case PLANES:      ret = 1; break;
-        case NUMCOLORS:   ret = 2; break;
-        case ASPECTX:     ret = 36; break;
-        case ASPECTY:     ret = 36; break;
-        case ASPECTXY:    ret = 51; break;
-        case LOGPIXELSX:  ret = 72; break;
-        case LOGPIXELSY:  ret = 72; break;
-        case SIZEPALETTE: ret = 2; break;
-        case TEXTCAPS:
-            ret = (TC_OP_CHARACTER | TC_OP_STROKE | TC_CP_STROKE |
-                   TC_CR_ANY | TC_SF_X_YINDEP | TC_SA_DOUBLE | TC_SA_INTEGER |
-                   TC_SA_CONTIN | TC_UA_ABLE | TC_SO_ABLE | TC_RA_ABLE | TC_VA_ABLE);
-            break;
-        }
+        PHYSDEV physdev = GET_DC_PHYSDEV( dc, pGetDeviceCaps );
+        ret = physdev->funcs->pGetDeviceCaps( physdev, cap );
         release_dc_ptr( dc );
     }
     return ret;
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c
index 4b7a165..8139e15 100644
--- a/dlls/gdi32/driver.c
+++ b/dlls/gdi32/driver.c
@@ -440,6 +440,28 @@ static BOOL CDECL nulldrv_GetCharWidth( PHYSDEV dev, UINT first, UINT last, INT
     return FALSE;
 }
 
+static INT CDECL nulldrv_GetDeviceCaps( PHYSDEV dev, INT cap )
+{
+    switch (cap)  /* return meaningful values for some entries */
+    {
+    case HORZRES:     return 640;
+    case VERTRES:     return 480;
+    case BITSPIXEL:   return 1;
+    case PLANES:      return 1;
+    case NUMCOLORS:   return 2;
+    case ASPECTX:     return 36;
+    case ASPECTY:     return 36;
+    case ASPECTXY:    return 51;
+    case LOGPIXELSX:  return 72;
+    case LOGPIXELSY:  return 72;
+    case SIZEPALETTE: return 2;
+    case TEXTCAPS:    return (TC_OP_CHARACTER | TC_OP_STROKE | TC_CP_STROKE |
+                              TC_CR_ANY | TC_SF_X_YINDEP | TC_SA_DOUBLE | TC_SA_INTEGER |
+                              TC_SA_CONTIN | TC_UA_ABLE | TC_SO_ABLE | TC_RA_ABLE | TC_VA_ABLE);
+    default:          return 0;
+    }
+}
+
 static BOOL CDECL nulldrv_GetDeviceGammaRamp( PHYSDEV dev, void *ramp )
 {
     return FALSE;
@@ -794,7 +816,7 @@ const DC_FUNCTIONS null_driver =
     nulldrv_GetBitmapBits,              /* pGetBitmapBits */
     nulldrv_GetCharWidth,               /* pGetCharWidth */
     nulldrv_GetDIBits,                  /* pGetDIBits */
-    NULL,                               /* pGetDeviceCaps */
+    nulldrv_GetDeviceCaps,              /* pGetDeviceCaps */
     nulldrv_GetDeviceGammaRamp,         /* pGetDeviceGammaRamp */
     nulldrv_GetICMProfile,              /* pGetICMProfile */
     nulldrv_GetNearestColor,            /* pGetNearestColor */




More information about the wine-cvs mailing list