Ken Thomases : winemac: Improve logging from wglChoosePixelFormatARB() and wglGetPixelFormatAttribivARB().
Alexandre Julliard
julliard at winehq.org
Thu Apr 25 14:25:18 CDT 2013
Module: wine
Branch: master
Commit: dfa2ba390d44639dfcb3159b0a0c749e0603f689
URL: http://source.winehq.org/git/wine.git/?a=commit;h=dfa2ba390d44639dfcb3159b0a0c749e0603f689
Author: Ken Thomases <ken at codeweavers.com>
Date: Wed Apr 24 20:18:29 2013 -0500
winemac: Improve logging from wglChoosePixelFormatARB() and wglGetPixelFormatAttribivARB().
---
dlls/winemac.drv/opengl.c | 143 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 141 insertions(+), 2 deletions(-)
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c
index 095514b..e72281a 100644
--- a/dlls/winemac.drv/opengl.c
+++ b/dlls/winemac.drv/opengl.c
@@ -240,6 +240,116 @@ static int nb_formats, nb_displayable_formats;
static void *opengl_handle;
+static const char* debugstr_attrib(int attrib, int value)
+{
+ static const struct {
+ int attrib;
+ const char *name;
+ } attrib_names[] = {
+#define ATTRIB(a) { a, #a }
+ ATTRIB(WGL_ACCELERATION_ARB),
+ ATTRIB(WGL_ACCUM_ALPHA_BITS_ARB),
+ ATTRIB(WGL_ACCUM_BITS_ARB),
+ ATTRIB(WGL_ACCUM_BLUE_BITS_ARB),
+ ATTRIB(WGL_ACCUM_GREEN_BITS_ARB),
+ ATTRIB(WGL_ACCUM_RED_BITS_ARB),
+ ATTRIB(WGL_ALPHA_BITS_ARB),
+ ATTRIB(WGL_ALPHA_SHIFT_ARB),
+ ATTRIB(WGL_AUX_BUFFERS_ARB),
+ ATTRIB(WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV),
+ ATTRIB(WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV),
+ ATTRIB(WGL_BIND_TO_TEXTURE_RGB_ARB),
+ ATTRIB(WGL_BIND_TO_TEXTURE_RGBA_ARB),
+ ATTRIB(WGL_BLUE_BITS_ARB),
+ ATTRIB(WGL_BLUE_SHIFT_ARB),
+ ATTRIB(WGL_COLOR_BITS_ARB),
+ ATTRIB(WGL_DEPTH_BITS_ARB),
+ ATTRIB(WGL_DOUBLE_BUFFER_ARB),
+ ATTRIB(WGL_DRAW_TO_BITMAP_ARB),
+ ATTRIB(WGL_DRAW_TO_PBUFFER_ARB),
+ ATTRIB(WGL_DRAW_TO_WINDOW_ARB),
+ ATTRIB(WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB),
+ ATTRIB(WGL_GREEN_BITS_ARB),
+ ATTRIB(WGL_GREEN_SHIFT_ARB),
+ ATTRIB(WGL_NEED_PALETTE_ARB),
+ ATTRIB(WGL_NEED_SYSTEM_PALETTE_ARB),
+ ATTRIB(WGL_NUMBER_OVERLAYS_ARB),
+ ATTRIB(WGL_NUMBER_PIXEL_FORMATS_ARB),
+ ATTRIB(WGL_NUMBER_UNDERLAYS_ARB),
+ ATTRIB(WGL_PIXEL_TYPE_ARB),
+ ATTRIB(WGL_RED_BITS_ARB),
+ ATTRIB(WGL_RED_SHIFT_ARB),
+ ATTRIB(WGL_SAMPLE_BUFFERS_ARB),
+ ATTRIB(WGL_SAMPLES_ARB),
+ ATTRIB(WGL_SHARE_ACCUM_ARB),
+ ATTRIB(WGL_SHARE_DEPTH_ARB),
+ ATTRIB(WGL_SHARE_STENCIL_ARB),
+ ATTRIB(WGL_STENCIL_BITS_ARB),
+ ATTRIB(WGL_STEREO_ARB),
+ ATTRIB(WGL_SUPPORT_GDI_ARB),
+ ATTRIB(WGL_SUPPORT_OPENGL_ARB),
+ ATTRIB(WGL_SWAP_LAYER_BUFFERS_ARB),
+ ATTRIB(WGL_SWAP_METHOD_ARB),
+ ATTRIB(WGL_TRANSPARENT_ALPHA_VALUE_ARB),
+ ATTRIB(WGL_TRANSPARENT_ARB),
+ ATTRIB(WGL_TRANSPARENT_BLUE_VALUE_ARB),
+ ATTRIB(WGL_TRANSPARENT_GREEN_VALUE_ARB),
+ ATTRIB(WGL_TRANSPARENT_INDEX_VALUE_ARB),
+ ATTRIB(WGL_TRANSPARENT_RED_VALUE_ARB),
+#undef ATTRIB
+ };
+ int i;
+ const char *attrib_name = NULL;
+ const char *value_name = NULL;
+
+ for (i = 0; i < sizeof(attrib_names) / sizeof(attrib_names[0]); i++)
+ {
+ if (attrib_names[i].attrib == attrib)
+ {
+ attrib_name = attrib_names[i].name;
+ break;
+ }
+ }
+
+ if (!attrib_name)
+ attrib_name = wine_dbg_sprintf("Attrib 0x%04x", attrib);
+
+ switch (attrib)
+ {
+ case WGL_ACCELERATION_ARB:
+ switch (value)
+ {
+ case WGL_FULL_ACCELERATION_ARB: value_name = "WGL_FULL_ACCELERATION_ARB"; break;
+ case WGL_GENERIC_ACCELERATION_ARB: value_name = "WGL_GENERIC_ACCELERATION_ARB"; break;
+ case WGL_NO_ACCELERATION_ARB: value_name = "WGL_NO_ACCELERATION_ARB"; break;
+ }
+ break;
+ case WGL_PIXEL_TYPE_ARB:
+ switch (value)
+ {
+ case WGL_TYPE_COLORINDEX_ARB: value_name = "WGL_TYPE_COLORINDEX_ARB"; break;
+ case WGL_TYPE_RGBA_ARB: value_name = "WGL_TYPE_RGBA_ARB"; break;
+ case WGL_TYPE_RGBA_FLOAT_ARB: value_name = "WGL_TYPE_RGBA_FLOAT_ARB"; break;
+ case WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT: value_name = "WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT"; break;
+ }
+ break;
+ case WGL_SWAP_METHOD_ARB:
+ switch (value)
+ {
+ case WGL_SWAP_COPY_ARB: value_name = "WGL_SWAP_COPY_ARB"; break;
+ case WGL_SWAP_EXCHANGE_ARB: value_name = "WGL_SWAP_EXCHANGE_ARB"; break;
+ case WGL_SWAP_UNDEFINED_ARB: value_name = "WGL_SWAP_UNDEFINED_ARB"; break;
+ }
+ break;
+ }
+
+ if (!value_name)
+ value_name = wine_dbg_sprintf("%d / 0x%04x", value, value);
+
+ return wine_dbg_sprintf("%40s: %s", attrib_name, value_name);
+}
+
+
static BOOL get_renderer_property(CGLRendererInfoObj renderer_info, GLint renderer_index,
CGLRendererProperty property, GLint *value)
{
@@ -1530,6 +1640,8 @@ static BOOL macdrv_wglChoosePixelFormatARB(HDC hdc, const int *piAttribIList,
int attr = iptr[0];
int value = iptr[1];
+ TRACE("%s\n", debugstr_attrib(attr, value));
+
switch (attr)
{
case WGL_DRAW_TO_WINDOW_ARB:
@@ -1724,11 +1836,36 @@ static BOOL macdrv_wglChoosePixelFormatARB(HDC hdc, const int *piAttribIList,
break;
default:
- WARN("invalid attribute %x\n", iptr[0]);
+ WARN("invalid attribute %s\n", debugstr_attrib(attr, value));
return GL_FALSE;
}
}
+ TRACE("required: w/p/a %s/%s/%s col/r/g/b/a %d%s/%d/%d/%d/%d srgb %d ac %d/%d/%d/%d/%d dp/stn/ax/b/db/str %u/%u/%u/%s/%s/%s samp %u/%u\n",
+ valid.window ? (pf.window ? "1" : "0") : "?",
+ valid.pbuffer ? (pf.pbuffer ? "1" : "0") : "?",
+ valid.accelerated ? (pf.accelerated ? "1" : "0") : "?",
+ color_bits,
+ float_color == -1 ? "?" : float_color ? "f" : "",
+ red_bits,
+ green_bits,
+ blue_bits,
+ alpha_bits,
+ (int)srgb,
+ accum_bits,
+ accum_red_bits,
+ accum_green_bits,
+ accum_blue_bits,
+ accum_alpha_bits,
+ pf.depth_bits,
+ pf.stencil_bits,
+ pf.aux_buffers,
+ valid.backing_store ? (pf.backing_store ? "1" : "0") : "?",
+ valid.double_buffer ? (pf.double_buffer ? "1" : "0") : "?",
+ valid.stereo ? (pf.stereo ? "1" : "0") : "?",
+ pf.sample_buffers,
+ pf.samples);
+
for (i = 0; i < nb_formats && found < nMaxFormats; i++)
{
const struct color_mode *mode;
@@ -1781,6 +1918,7 @@ static BOOL macdrv_wglChoosePixelFormatARB(HDC hdc, const int *piAttribIList,
continue;
piFormats[found++] = i;
+ TRACE("match: pixel format %d %s\n", i, debugstr_pf(&pixel_formats[i]));
}
cant_match:
@@ -2021,6 +2159,7 @@ static BOOL macdrv_wglGetPixelFormatAttribivARB(HDC hdc, int iPixelFormat, int i
if (nAttributes == 1 && piAttributes[0] == WGL_NUMBER_PIXEL_FORMATS_ARB)
{
piValues[0] = nb_formats;
+ TRACE("%s\n", debugstr_attrib(piAttributes[0], piValues[0]));
return GL_TRUE;
}
@@ -2285,7 +2424,7 @@ static BOOL macdrv_wglGetPixelFormatAttribivARB(HDC hdc, int iPixelFormat, int i
return GL_FALSE;
}
- TRACE("piAttributes[%d] (%x) -> %x\n", i, piAttributes[i], piValues[i]);
+ TRACE("%s\n", debugstr_attrib(piAttributes[i], piValues[i]));
}
return GL_TRUE;
More information about the wine-cvs
mailing list