Jacek Caban : winemac: Directly use win32u for GDI functions in image.c.

Alexandre Julliard julliard at winehq.org
Fri May 20 15:26:49 CDT 2022


Module: wine
Branch: master
Commit: d71abff141f9cd361bcabf90d492e31fb91cf8d7
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d71abff141f9cd361bcabf90d492e31fb91cf8d7

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri May 20 14:14:06 2022 +0200

winemac: Directly use win32u for GDI functions in image.c.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winemac.drv/image.c  | 24 +++++++++++++-----------
 dlls/winemac.drv/macdrv.h |  2 +-
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/dlls/winemac.drv/image.c b/dlls/winemac.drv/image.c
index e5f3a4c0fa6..d501b27a3c3 100644
--- a/dlls/winemac.drv/image.c
+++ b/dlls/winemac.drv/image.c
@@ -69,7 +69,7 @@ CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP hbmCol
 
     /* draw the cursor frame to a temporary buffer then create a CGImage from that */
     memset(color_bits, 0x00, color_size);
-    SelectObject(hdc, hbmColor);
+    NtGdiSelectBitmap(hdc, hbmColor);
     if (!DrawIconEx(hdc, 0, 0, icon, width, height, istep, NULL, DI_NORMAL))
     {
         WARN("Could not draw frame %d (walk past end of frames).\n", istep);
@@ -128,7 +128,7 @@ CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP hbmCol
 
         /* draw the cursor mask to a temporary buffer */
         memset(mask_bits, 0xFF, mask_size);
-        SelectObject(hdc, hbmMask);
+        NtGdiSelectBitmap(hdc, hbmMask);
         if (!DrawIconEx(hdc, 0, 0, icon, width, height, istep, NULL, DI_MASK))
         {
             WARN("Failed to draw frame mask %d.\n", istep);
@@ -202,17 +202,17 @@ CGImageRef create_cgimage_from_icon(HANDLE icon, int width, int height)
         if (!GetIconInfo(icon, &info))
             return NULL;
 
-        GetObjectW(info.hbmMask, sizeof(bm), &bm);
+        NtGdiExtGetObjectW(info.hbmMask, sizeof(bm), &bm);
         if (!info.hbmColor) bm.bmHeight = max(1, bm.bmHeight / 2);
         width = bm.bmWidth;
         height = bm.bmHeight;
         TRACE("new width %d height %d\n", width, height);
 
-        DeleteObject(info.hbmColor);
-        DeleteObject(info.hbmMask);
+        NtGdiDeleteObjectApp(info.hbmColor);
+        NtGdiDeleteObjectApp(info.hbmMask);
     }
 
-    hdc = CreateCompatibleDC(0);
+    hdc = NtGdiCreateCompatibleDC(0);
 
     bitmapinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
     bitmapinfo->bmiHeader.biWidth = width;
@@ -226,7 +226,8 @@ CGImageRef create_cgimage_from_icon(HANDLE icon, int width, int height)
     bitmapinfo->bmiHeader.biBitCount = 32;
     color_size = width * height * 4;
     bitmapinfo->bmiHeader.biSizeImage = color_size;
-    hbmColor = CreateDIBSection(hdc, bitmapinfo, DIB_RGB_COLORS, (VOID **) &color_bits, NULL, 0);
+    hbmColor = NtGdiCreateDIBSection(hdc, NULL, 0, bitmapinfo, DIB_RGB_COLORS,
+                                     0, 0, 0, (void **)&color_bits);
     if (!hbmColor)
     {
         WARN("failed to create DIB section for cursor color data\n");
@@ -244,7 +245,8 @@ CGImageRef create_cgimage_from_icon(HANDLE icon, int width, int height)
     bitmapinfo->bmiColors[1].rgbReserved = 0;
     mask_size = ((width + 31) / 32 * 4) * height;
     bitmapinfo->bmiHeader.biSizeImage = mask_size;
-    hbmMask = CreateDIBSection(hdc, bitmapinfo, DIB_RGB_COLORS, (VOID **) &mask_bits, NULL, 0);
+    hbmMask = NtGdiCreateDIBSection(hdc, NULL, 0, bitmapinfo, DIB_RGB_COLORS,
+                                    0, 0, 0, (void **)&mask_bits);
     if (!hbmMask)
     {
         WARN("failed to create DIB section for cursor mask data\n");
@@ -255,9 +257,9 @@ CGImageRef create_cgimage_from_icon(HANDLE icon, int width, int height)
                                            mask_bits, mask_size, width, height, 0);
 
 cleanup:
-    if (hbmColor) DeleteObject(hbmColor);
-    if (hbmMask) DeleteObject(hbmMask);
-    DeleteDC(hdc);
+    if (hbmColor) NtGdiDeleteObjectApp(hbmColor);
+    if (hbmMask) NtGdiDeleteObjectApp(hbmMask);
+    NtGdiDeleteObjectApp(hdc);
     return ret;
 }
 
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 79ae074dac6..29fbe8a8cb9 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -30,7 +30,7 @@
 #include "macdrv_cocoa.h"
 #include "windef.h"
 #include "winbase.h"
-#include "wingdi.h"
+#include "ntgdi.h"
 #include "wine/debug.h"
 #include "wine/gdi_driver.h"
 




More information about the wine-cvs mailing list