freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2-demos] master a6024e8: * graph/win32/grwin32.c (gr_win32_surf


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master a6024e8: * graph/win32/grwin32.c (gr_win32_surface_init): Default to BITSPIXEL.
Date: Wed, 28 Oct 2020 18:12:18 -0400 (EDT)

branch: master
commit a6024e8a5dff013e23bc72be22f94650575e357f
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    * graph/win32/grwin32.c (gr_win32_surface_init): Default to BITSPIXEL.
---
 ChangeLog             |  4 ++++
 graph/win32/grwin32.c | 25 ++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 6012e7d..288c0fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2020-10-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * graph/win32/grwin32.c (gr_win32_surface_init): Default to BITSPIXEL.
+
 2020-10-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
        [graph] Let the driver set convenient depth.
diff --git a/graph/win32/grwin32.c b/graph/win32/grwin32.c
index 47f0bfa..5995265 100644
--- a/graph/win32/grwin32.c
+++ b/graph/win32/grwin32.c
@@ -435,7 +435,30 @@ gr_win32_surface_init( grWin32Surface*  surface,
 
   /* Set default mode */
   if ( bitmap->mode == gr_pixel_mode_none )
-    bitmap->mode = gr_pixel_mode_rgb32;
+  {
+    HDC  hDC;
+    int  bpp;
+
+    hDC = GetDC( NULL );
+    bpp = GetDeviceCaps( hDC, BITSPIXEL ) * GetDeviceCaps( hDC, PLANES );
+    ReleaseDC( NULL, hDC );
+
+    switch ( bpp )
+    {
+    case 8:
+      bitmap->mode = gr_pixel_mode_gray;
+      break;
+    case 16:
+      bitmap->mode = gr_pixel_mode_rgb565;
+      break;
+    case 24:
+      bitmap->mode = gr_pixel_mode_rgb24;
+      break;
+    case 32:
+    default:
+      bitmap->mode = gr_pixel_mode_rgb32;
+    }
+  }
 
   LOG(( "Win32: init_surface( %p, %p )\n", surface, bitmap ));
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]