http://bugs.winehq.org/show_bug.cgi?id=30126
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Matrix Games - Distant |Matrix Games - Distant |Worlds fails on startup |Worlds fails on startup | |(GdipDrawEllipse fails to | |draw ellipse without HDC)
--- Comment #5 from Anastasius Focht focht@gmx.net 2012-03-10 13:10:44 CST --- Hello Vincent,
--- quote --- Sure you didn't see any FIXME's from gdiplus, perhaps relating to GdipDrawEllipse? --- quote ---
Yes, there were a bunch of GdipDrawEllipse() FIXME's complaining about "graphics object has no HDC", called from I0dnVLPuf6uVarpxEFTlj2r().
My bad, I only payed attention to gdiplus return code "Ok" in trace log but missed that GdipDrawEllipse() actually got short-circuited without drawing ellipse itself :|
Source: http://source.winehq.org/git/wine.git/blob/0d7bc4b325de1788dc2643ac84d5579be...
--- snip --- 2589 GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, 2590 REAL y, REAL width, REAL height) 2591 { 2592 INT save_state; 2593 GpPointF ptf[2]; 2594 POINT pti[2]; 2595 2596 TRACE("(%p, %p, %.2f, %.2f, %.2f, %.2f)\n", graphics, pen, x, y, width, height); 2597 2598 if(!graphics || !pen) 2599 return InvalidParameter; 2600 2601 if(graphics->busy) 2602 return ObjectBusy; 2603 2604 if (!graphics->hdc) 2605 { 2606 FIXME("graphics object has no HDC\n"); 2607 return Ok; 2608 } ... 2624 return Ok; 2625 } --- snip ---
Maybe a temporary HDC helps here?
Regards