X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c9a789ed98cc1db72451cb2f812954ec173b6d9..917ae499da53826e9b154a786eae1b563317f47f:/src/os2/dcmemory.cpp diff --git a/src/os2/dcmemory.cpp b/src/os2/dcmemory.cpp index 8dc8321f77..95c5e30a56 100644 --- a/src/os2/dcmemory.cpp +++ b/src/os2/dcmemory.cpp @@ -81,7 +81,7 @@ bool wxMemoryDC::CreateCompatible( m_ok = TRUE; m_bOwnsDC = TRUE; // - // Set the wxWindows color table + // Set the wxWidgets color table // ::GpiCreateLogColorTable( m_hPS ,0L @@ -150,6 +150,23 @@ 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 +174,7 @@ void wxMemoryDC::SelectObject( if (!hBmp) { + m_hOldBitmap = (WXHBITMAP)::GpiSetBitmap(m_hPS, NULLHANDLE); return; }