// workaround for 2.9 cocoa where the equality operator for region is currently (2011-03-09) not implemented bool ocpn_mac_region_compare(const wxRegion& r1, const wxRegion& r2) { wxCoord x1,x2,y1,y2,w1,w2,h1,h2; r1.GetBox(x1,y1,w1,h1); r2.GetBox(x2,y2,w2,h2); if(x1 == x2 && y1 == y2 && w1 == w2 && h1 && h2) return true; return false; }
//for some f****d up reason getright and get bottom return one less than needed. Fixed in newer wxWidgets :( wxBitmap ConvertRegionToBitmap(const wxRegion& r) { wxRect box = r.GetBox(); wxBitmap bmp(box.GetRight()+1, box.GetBottom()+1); wxMemoryDC dc; dc.SelectObject(bmp); dc.SetBackground(*wxBLACK_BRUSH); dc.Clear(); dc.SetDeviceClippingRegion(*static_cast<const wxRegion *>(&r)); dc.SetBackground(*wxWHITE_BRUSH); dc.Clear(); dc.SelectObject(wxNullBitmap); return bmp; }