Skip to content
Snippets Groups Projects
Commit b25e6c5b authored by Tor Lillqvist's avatar Tor Lillqvist Committed by Tor Lillqvist
Browse files

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.
parent e3bf16ec
No related branches found
No related tags found
No related merge requests found
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):
......
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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment