]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/dc.cpp
oops, restored the postpone-redraw-if-dirty test which was somehow left out
[wxWidgets.git] / src / mgl / dc.cpp
index ecaa40dc6a74326f5869776559dc3f57b57ef357..e33904e99a15b42549dd65c8c706008eba52edcc 100644 (file)
@@ -1387,7 +1387,8 @@ wxSize wxDC::GetPPI() const
 bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
                   wxCoord width, wxCoord height,
                   wxDC *source, wxCoord xsrc, wxCoord ysrc,
-                  int rop, bool useMask)
+                  int rop, bool useMask,
+                  wxCoord xsrcMask, wxCoord ysrcMask)
 {
     wxCHECK_MSG( Ok(), FALSE, wxT("invalid dc") );
     wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
@@ -1396,6 +1397,17 @@ bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
     xsrc = source->LogicalToDeviceX(xsrc);
     ysrc = source->LogicalToDeviceY(ysrc);
 
+    /* TODO: use the mask origin when drawing transparently */
+    if (xsrcMask == -1 && ysrcMask == -1)
+    {
+        xsrcMask = xsrc; ysrcMask = ysrc;
+    }
+    else
+    {
+        xsrcMask = source->LogicalToDeviceX(xsrcMask);
+        ysrcMask = source->LogicalToDeviceY(ysrcMask);
+    }
+
     CalcBoundingBox(xdest, ydest);
     CalcBoundingBox(xdest + width, ydest + height);