Yup, I put that same info in the README file for the source. :-)
(changing the #define for
core graphics)
Brian Foley wrote:
> If you remember, we had a problem with wxWidgets 2.8 on MacOS X.
>
> It boils down to being a bug in wxMemoryDC:DrawPoint when
> using CoreGraphics. For now, the solution is easy: use QuickDraw
> instead. In your wxMac-2.8.0 dir, edit include/wx/mac/carbon/chkconf.h,
> change the line with '#define wxMAC_USE_CORE_GRAPHICS 1' to be
> '#define wxMAC_USE_CORE_GRAPHICS 0', and then rebuild wxMac, and rebuild
> LisaEm against the new wxWidgets.
>
> The reson the bug occurs is due to a combination of antialiasing and
> Core Graphics' coordinate system.
>
> In Quickdraw, the coordinates x,y refer to the *centre* of the pixel
> at x,y, where as in Core Graphics they refer to the corner of the
> corner of the pixel at x,y (or if you prefer, the invisible grid lines
> between the pixels).
>
> wxMac's CG implementation for wxDC::DoDrawPoint is simple (and broken):
> DoDrawLine( x , y , x + 1 , y + 1 ) ;
>
> So it actually ends up drawing *between* several pixels, given a partial
> grey value to each. This ends up causing drawing artifacts on the Mac.
>
> Have a look at http://alastairs-place.net/cocoa/faq.txt section 3.2.2.
>
> wxMac should in fact to use NSRectFill(), (or NSRectFillList() for a list
> of random pixles), for DrawPoint.
>
> I'm not sure if this still applies to wxWiddgets 2.8.2. I'll try to
> verify it in the next couple of days.
>
Received on 2007-03-14 16:59:47
This archive was generated by hypermail 2.4.0 : 2020-01-13 12:15:14 EST