+2004-06-17 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * 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 <teirllm@auburn.edu>
* buffer.c (syms_of_buffer): Clarify `fill-column' docstring.
{
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,
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;