http://bugs.winehq.org/show_bug.cgi?id=22469
--- Comment #24 from Emerson Prado emerson.prado.eng@gmail.com 2011-02-07 07:33:16 CST --- BTW, I did some search in gdiplus, trying to get some light on the issue, though I'm an absolute beginner when it comes to programming. I'll list below my findings, just to bring them into discussion and not to lose them (I know this must be too basic for real developers, just trying to level out...).
1.(Obvious) GDI+ consists of three parts: vectors, imaging and typography. From what we saw here, we have a problem with embedded (raster?) images and font drawing, but not with the window drawing itself (probably vectorial). It seems vector drawing is OK, being the other two parts at fault. http://msdn.microsoft.com/en-us/library/ms536384%28v=vs.85%29.aspx 2.There can be a failure while transforming coordinates. Either world to page or page to device. http://msdn.microsoft.com/en-us/library/ms536399%28v=vs.85%29.aspx 3.There could be an error in one or more transformation matrices that do coordinate transformations for imaging and typography (if they exist at all, I really dunno). http://msdn.microsoft.com/en-us/library/ms536397%28v=vs.85%29.aspx 4.(More relevant) Class BitmapData has a data member called Stride which affects the horizontal order in which lines are drawn - bottom up or top down. Could this be wrongly interpreted by the builtin GDI+? http://msdn.microsoft.com/en-us/library/ms534421%28v=vs.85%29.aspx 5.Class StringFormat determines how strings are drawn on screen. Similarly to 4, one data member could affect vertical orientation, but I couldn't find which one, if any. http://msdn.microsoft.com/en-us/library/ms534510%28v=vs.85%29.aspx 6.Class ImageCodecInfo stores, um, codec information. Maybe it could be getting something wrong about 4 and 5. http://msdn.microsoft.com/en-us/library/ms534466%28v=vs.85%29.aspx 7.The Wine wiki entry about GDI+ mentions a difference on rendering bitmaps I can't fully understand: "Native gdiplus does all drawing to Bitmap images in software. This means that an application can pass its own buffer, and rendering to the image will go to that buffer. Builtin gdiplus has this capability, but it is not used in most cases because most drawing operations have no software implementation." http://wiki.winehq.org/GdiPlus
Given Bug 16138, everything above must be read as "this can happen in some or all version calls (according to manifest) of GDI+".