]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/dcmemory.cpp
don't call SelectObject() twice in SetBrush() nor SetFont() neither
[wxWidgets.git] / src / os2 / dcmemory.cpp
index 8dc8321f7730d6bca0384b68a6cb143e1ccde68e..5e2ed33694f245e22181a3e82abf5f047ec5ca69 100644 (file)
@@ -150,6 +150,22 @@ void wxMemoryDC::SelectObject(
 
     if (!hBmp)
     {
+        //
+        // Bmps drawn to are upside down, so flip it before committing
+        //
+        POINTL                      vPoint[4] = { 0, m_vSelectedBitmap.GetHeight(),
+                                                  m_vSelectedBitmap.GetWidth(), 0,
+                                                  0, 0, m_vSelectedBitmap.GetWidth(), m_vSelectedBitmap.GetHeight()
+                                                };
+
+
+        ::GpiBitBlt( m_hPS
+                    ,m_hPS
+                    ,4
+                    ,vPoint
+                    ,ROP_SRCCOPY
+                    ,BBO_IGNORE
+                   );
         m_vSelectedBitmap.SetSelectedInto(NULL);
     }
     m_vSelectedBitmap = rBitmap;
@@ -157,6 +173,7 @@ void wxMemoryDC::SelectObject(
 
     if (!hBmp)
     {
+
         m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, NULLHANDLE);
         return;
     }