Set visual depth to 24 for 32 bits-per-pixel devices on Win32. This allows
2005-10-13 Tor Lillqvist <tml@novell.com> Set visual depth to 24 for 32 bits-per-pixel devices on Win32. This allows gdk_drawable_real_draw_pixbuf() to use the optimized composite_0888() function rather than the slower image dithering functions to draw pixbufs (#313993, John Ehresman) * gdk/win32/gdkimage-win32.c (_gdk_win32_new_image): Use _gdk_windowing_get_bits_for_depth() to initialize GdkImage::bits_per_pixel. (_gdk_windowing_get_bits_for_depth): Return 32 bits for depth 24. * gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use _gdk_windowing_get_bits_for_depth() to initialize BITMAPINFOHEADER::biBitCount. * gdk/win32/gdkvisual-win32.c (_gdk_visual_init): Set GdkVisual::depth to 24 even if GetDeviceCaps(BITSPIXEL) returns 32.
This commit is contained in:
		
				
					committed by
					
						
						Tor Lillqvist
					
				
			
			
				
	
			
			
			
						parent
						
							e3bf16ec14
						
					
				
				
					commit
					b25e6c5b05
				
			
							
								
								
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ChangeLog
									
									
									
									
									
								
							@ -1,3 +1,23 @@
 | 
				
			|||||||
 | 
					2005-10-13  Tor Lillqvist  <tml@novell.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Set visual depth to 24 for 32 bits-per-pixel devices on
 | 
				
			||||||
 | 
						Win32. This allows gdk_drawable_real_draw_pixbuf() to use the
 | 
				
			||||||
 | 
						optimized composite_0888() function rather than the slower image
 | 
				
			||||||
 | 
						dithering functions to draw pixbufs (#313993, John Ehresman)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkimage-win32.c (_gdk_win32_new_image): Use
 | 
				
			||||||
 | 
						_gdk_windowing_get_bits_for_depth() to initialize
 | 
				
			||||||
 | 
						GdkImage::bits_per_pixel.
 | 
				
			||||||
 | 
						(_gdk_windowing_get_bits_for_depth): Return 32 bits for depth 24.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use
 | 
				
			||||||
 | 
						_gdk_windowing_get_bits_for_depth() to initialize
 | 
				
			||||||
 | 
						BITMAPINFOHEADER::biBitCount.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkvisual-win32.c (_gdk_visual_init): Set
 | 
				
			||||||
 | 
						GdkVisual::depth to 24 even if GetDeviceCaps(BITSPIXEL) returns
 | 
				
			||||||
 | 
						32.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2005-10-12  Stefan Kost  <ensonic@users.sf.net>
 | 
					2005-10-12  Stefan Kost  <ensonic@users.sf.net>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* demos/gtk-demo/appwindow.c: (about_cb):
 | 
						* demos/gtk-demo/appwindow.c: (about_cb):
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,23 @@
 | 
				
			|||||||
 | 
					2005-10-13  Tor Lillqvist  <tml@novell.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Set visual depth to 24 for 32 bits-per-pixel devices on
 | 
				
			||||||
 | 
						Win32. This allows gdk_drawable_real_draw_pixbuf() to use the
 | 
				
			||||||
 | 
						optimized composite_0888() function rather than the slower image
 | 
				
			||||||
 | 
						dithering functions to draw pixbufs (#313993, John Ehresman)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkimage-win32.c (_gdk_win32_new_image): Use
 | 
				
			||||||
 | 
						_gdk_windowing_get_bits_for_depth() to initialize
 | 
				
			||||||
 | 
						GdkImage::bits_per_pixel.
 | 
				
			||||||
 | 
						(_gdk_windowing_get_bits_for_depth): Return 32 bits for depth 24.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use
 | 
				
			||||||
 | 
						_gdk_windowing_get_bits_for_depth() to initialize
 | 
				
			||||||
 | 
						BITMAPINFOHEADER::biBitCount.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						* gdk/win32/gdkvisual-win32.c (_gdk_visual_init): Set
 | 
				
			||||||
 | 
						GdkVisual::depth to 24 even if GetDeviceCaps(BITSPIXEL) returns
 | 
				
			||||||
 | 
						32.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2005-10-12  Stefan Kost  <ensonic@users.sf.net>
 | 
					2005-10-12  Stefan Kost  <ensonic@users.sf.net>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	* demos/gtk-demo/appwindow.c: (about_cb):
 | 
						* demos/gtk-demo/appwindow.c: (about_cb):
 | 
				
			||||||
 | 
				
			|||||||
@ -127,6 +127,7 @@ _gdk_win32_new_image (GdkVisual *visual,
 | 
				
			|||||||
  image->width = width;
 | 
					  image->width = width;
 | 
				
			||||||
  image->height = height;
 | 
					  image->height = height;
 | 
				
			||||||
  image->depth = depth;
 | 
					  image->depth = depth;
 | 
				
			||||||
 | 
					  image->bits_per_pixel = _gdk_windowing_get_bits_for_depth (gdk_display_get_default (), depth);
 | 
				
			||||||
  switch (depth)
 | 
					  switch (depth)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    case 1:
 | 
					    case 1:
 | 
				
			||||||
@ -142,7 +143,7 @@ _gdk_win32_new_image (GdkVisual *visual,
 | 
				
			|||||||
      image->bpp = 2;
 | 
					      image->bpp = 2;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 24:
 | 
					    case 24:
 | 
				
			||||||
      image->bpp = 3;
 | 
					      image->bpp = image->bits_per_pixel / 8;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 32:
 | 
					    case 32:
 | 
				
			||||||
      image->bpp = 4;
 | 
					      image->bpp = 4;
 | 
				
			||||||
@ -157,7 +158,6 @@ _gdk_win32_new_image (GdkVisual *visual,
 | 
				
			|||||||
    image->bpl = ((width - 1)/8 + 1)*4;
 | 
					    image->bpl = ((width - 1)/8 + 1)*4;
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    image->bpl = ((width*image->bpp - 1)/4 + 1)*4;
 | 
					    image->bpl = ((width*image->bpp - 1)/4 + 1)*4;
 | 
				
			||||||
  image->bits_per_pixel = image->depth;
 | 
					 | 
				
			||||||
  image->mem = bits;
 | 
					  image->mem = bits;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return image;
 | 
					  return image;
 | 
				
			||||||
@ -423,8 +423,6 @@ _gdk_windowing_get_bits_for_depth (GdkDisplay *display,
 | 
				
			|||||||
      return 16;
 | 
					      return 16;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case 24:
 | 
					    case 24:
 | 
				
			||||||
      return 24;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    case 32:
 | 
					    case 32:
 | 
				
			||||||
      return 32;
 | 
					      return 32;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -209,7 +209,7 @@ gdk_pixmap_new (GdkDrawable *drawable,
 | 
				
			|||||||
    case 1:
 | 
					    case 1:
 | 
				
			||||||
    case 24:
 | 
					    case 24:
 | 
				
			||||||
    case 32:
 | 
					    case 32:
 | 
				
			||||||
      bmi.bmiHeader.biBitCount = depth;
 | 
					      bmi.bmiHeader.biBitCount = _gdk_windowing_get_bits_for_depth (gdk_display_get_default (), depth);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    case 4:
 | 
					    case 4:
 | 
				
			||||||
 | 
				
			|||||||
@ -246,6 +246,7 @@ _gdk_visual_init (void)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  else if (bitspixel == 24 || bitspixel == 32)
 | 
					  else if (bitspixel == 24 || bitspixel == 32)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					      bitspixel = 24;
 | 
				
			||||||
      system_visual->type = GDK_VISUAL_TRUE_COLOR;
 | 
					      system_visual->type = GDK_VISUAL_TRUE_COLOR;
 | 
				
			||||||
      system_visual->red_mask   = 0x00FF0000;
 | 
					      system_visual->red_mask   = 0x00FF0000;
 | 
				
			||||||
      system_visual->green_mask = 0x0000FF00;
 | 
					      system_visual->green_mask = 0x0000FF00;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user