Also I don't understand why winedbg prints dc->xformWorld2Vport.eM11 = 0.0, though dc->xformWorld2Vport.eM11 is always 1.0 in the log trace (added to X11DRV_PEN_SelectObject right before the GDI_ROUND call).
well, that's a bug in the debugger... in fact, the debugger passes a float (strictly as a float) to a printf function, which expects a double argument, hence the error this should be a simple fix... let me know if this works better
Index: debugger/info.c =================================================================== RCS file: /usr/share/cvs/cvsroot/wine/wine/debugger/info.c,v retrieving revision 1.17 diff -u -r1.17 info.c --- debugger/info.c 2000/12/29 05:38:00 1.17 +++ debugger/info.c 2001/04/19 21:19:40 @@ -68,8 +68,18 @@ { if (strstr(default_format, "%S") == NULL) { + /* float type has to be promoted as a double */ + /* value.type->un.basic.basic_type == BASIC_FLT */ + if (strstr(default_format, "%f") != NULL) + { + float f; + double d; + memcpy(&f, &res, sizeof(f)); + d = (double)f; + memcpy(&res, &d, sizeof(res)); + } DEBUG_nchar += DEBUG_Printf( DBG_CHN_MESG, default_format, res ); - } + } else { char* ptr;