From f303762dc1885b861fe9e9a9a6a5ec618c23ef31 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Thu, 17 Jun 2004 13:04:25 +0000 Subject: [PATCH] * macfns.c (Fx_display_color_cells): Do not limit return value to 256. * macterm.c (mac_initialize_display_info): Initialize n_planes correctly on Mac OSX. --- src/ChangeLog | 7 +++++++ src/macfns.c | 4 ++-- src/macterm.c | 6 ++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 746bd991049..15cd195b4ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2004-06-17 Jan Dj,Ad(Brv + + * macfns.c (Fx_display_color_cells): Do not limit return value to 256. + + * macterm.c (mac_initialize_display_info): Initialize n_planes correctly + on Mac OSX. + 2004-06-16 Luc Teirlinck * buffer.c (syms_of_buffer): Clarify `fill-column' docstring. diff --git a/src/macfns.c b/src/macfns.c index 5c1b7770640..ec014e772e3 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -2939,8 +2939,8 @@ If omitted or nil, that stands for the selected frame's display. */) { struct mac_display_info *dpyinfo = check_x_display_info (display); - /* MAC_TODO: check whether this is right */ - return make_number (dpyinfo->n_planes >= 8 ? 256 : 1 << dpyinfo->n_planes - 1); + /* We force 24+ bit depths to 24-bit to prevent an overflow. */ + return make_number (1 << min (dpyinfo->n_planes, 24)); } DEFUN ("x-server-max-request-size", Fx_server_max_request_size, diff --git a/src/macterm.c b/src/macterm.c index 54a2fce792d..55ae1b35d83 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -8840,10 +8840,16 @@ mac_initialize_display_info () dpyinfo->resx = 75.0; dpyinfo->resy = 75.0; dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType); +#ifdef MAC_OSX + /* HasDepth returns true if it is possible to have a 32 bit display, + but this may not be what is actually used. Mac OSX can do better. */ + dpyinfo->n_planes = CGDisplayBitsPerPixel (CGMainDisplayID ()); +#else for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1) if (HasDepth (main_device_handle, dpyinfo->n_planes, gdDevType, dpyinfo->color_p)) break; +#endif dpyinfo->height = (**main_device_handle).gdRect.bottom; dpyinfo->width = (**main_device_handle).gdRect.right; dpyinfo->grabbed = 0; -- 2.39.5