freetype-commit
[Top][All Lists]
Advanced

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

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


From: Werner Lemberg
Subject: [freetype2-demos] master dbb7650: * graph/win32/grwin32.c (gr_win32_surface_init): Polish gray mode.
Date: Sat, 21 Jan 2023 13:41:42 -0500 (EST)

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

    * graph/win32/grwin32.c (gr_win32_surface_init): Polish gray mode.
---
 graph/win32/grwin32.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/graph/win32/grwin32.c b/graph/win32/grwin32.c
index 49ce2ab..0a9ab42 100644
--- a/graph/win32/grwin32.c
+++ b/graph/win32/grwin32.c
@@ -432,7 +432,6 @@ gr_win32_surface_init( grWin32Surface*  surface,
 {
   MSG  msg;
 
-  surface->root.bitmap.grays = bitmap->grays;
 
   /* Set default mode */
   if ( bitmap->mode == gr_pixel_mode_none )
@@ -447,7 +446,8 @@ gr_win32_surface_init( grWin32Surface*  surface,
     switch ( bpp )
     {
     case 8:
-      surface->root.bitmap.mode = gr_pixel_mode_gray;
+      surface->root.bitmap.mode  = gr_pixel_mode_gray;
+      surface->root.bitmap.grays = 256;
       break;
     case 16:
       surface->root.bitmap.mode = gr_pixel_mode_rgb565;
@@ -461,7 +461,10 @@ gr_win32_surface_init( grWin32Surface*  surface,
     }
   }
   else
+  {
     surface->root.bitmap.mode  = bitmap->mode;
+    surface->root.bitmap.grays = bitmap->grays;
+  }
 
   if ( !gr_win32_surface_resize( surface, bitmap->width, bitmap->rows ) )
     return 0;
@@ -484,17 +487,16 @@ gr_win32_surface_init( grWin32Surface*  surface,
 
   case gr_pixel_mode_gray:
     surface->bmiHeader.biBitCount = 8;
-    surface->bmiHeader.biClrUsed  = bitmap->grays;
+    surface->bmiHeader.biClrUsed  = surface->root.bitmap.grays;
     {
-      int   count = bitmap->grays;
-      int   x;
+      int       x, count = surface->root.bitmap.grays - 1;
       RGBQUAD*  color = surface->bmiColors;
 
-      for ( x = 0; x < count; x++, color++ )
+      for ( x = 0; x <= count; x++, color++ )
       {
         color->rgbRed   =
         color->rgbGreen =
-        color->rgbBlue  = (unsigned char)(x*255/(count-1));
+        color->rgbBlue  = (BYTE)( x * 255 / count );
         color->rgbReserved = 0;
       }
     }



reply via email to

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