HDC hDC = ::DevOpenDC(vHabmain, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&vDop, NULLHANDLE);
HPS hPS = ::GpiCreatePS(vHabmain, hDC, &vSize, PU_PELS | GPIA_ASSOC);
LONG lScans;
- HDC hDCScreen = ::WinOpenWindowDC(HWND_DESKTOP);
+ HDC hDCScreen = ::DevOpenDC(vHabmain, OD_MEMORY, "*", 5L, (PDEVOPENDATA)&vDop, NULLHANDLE);
HPS hPSScreen;
HBITMAP hBmp;
HBITMAP hBmpOld;
// Have to do something similar to WIN32's StretchDIBits, use GpiBitBlt
// in combination with setting the bits into the selected bitmap
//
+ vInfo.cBitCount = 16;
if ((lScans = ::GpiSetBitmapBits( hPS
,0 // Start at the bottom
,(LONG)nHeight // One line per scan
sError = wxPMErrorToStr(vError);
}
+ //
+ // for debugging----
+ //
+LONG alFormats[24];
+::GpiQueryDeviceBitmapFormats(hPS, 24, alFormats);
+if ((lScans = ::GpiQueryBitmapBits( hPS
+ ,0L
+ ,(LONG)nHeight
+ ,(PBYTE)pucBits
+ ,&vInfo
+ )) == GPI_ALTERROR)
+{
+ ERRORID vError;
+ wxString sError;
+
+ vError = ::WinGetLastError(vHabmain);
+ sError = wxPMErrorToStr(vError);
+}
+
hPSScreen = ::GpiCreatePS( vHabmain
,hDCScreen
,&vSize
//
if (rImage.HasMask())
{
- vHeader.cbFix = sizeof(BITMAPINFOHEADER2);
+ vHeader.cbFix = 16;
vHeader.cx = nWidth;
vHeader.cy = nHeight;
vHeader.cPlanes = 1;
- vHeader.cBitCount = 1;
+ vHeader.cBitCount = 24;
hBmp = ::GpiCreateBitmap( hPS
,&vHeader
,0L
else
nHeight = nSizeLimit / nBytePerLine;
vHeader.cy = (DWORD)(nHeight);
- vHeader.cbImage = nBytePerLine * nHeight;
nOrigin = 0;
unsigned char cRed = rImage.GetMaskRed();
//
nHeight = nHRemain;
vHeader.cy = (DWORD)(nHeight);
- vHeader.cbImage = nBytePerLine * nHeight;
}
ptbits = pucBits;
for (int j = 0; j < nHeight; j++)
pMask->SetMaskBitmap((WXHBITMAP)hBmp);
SetMask(pMask);
- hBmpOld = ::GpiSetBitmap(hPS, hBmp);
+ hBmpOld = ::GpiSetBitmap(hPS, hBmpOld);
}
//
HPS hMemPS = ::GpiCreatePS( vHabmain
,hMemDC
,&vSizlPage
- ,PU_PELS | GPIA_ASSOC | GPIT_MICRO
+ ,PU_PELS | GPIA_ASSOC
);
::GpiSetColor(hMemPS, OS2RGB(0, 0, 0));
::GpiSetBackColor(hMemPS, OS2RGB(255, 255, 255) );
{
unsigned char* pucData = NULL;
unsigned char* pucBits;
- int nBytesPerLine = vWidth * 3;
+ int nBytesPerLine = m_vSelectedBitmap.GetWidth() * 3;
LONG lScans = 0L;
POINTL vPoint;
LONG lColor;
pucBits = pucData;
for (int i = 0; i < m_vSelectedBitmap.GetHeight(); i++)
{
- for (int j = vX; j < m_vSelectedBitmap.GetWidth(); j++)
+ for (int j = 0; j < m_vSelectedBitmap.GetWidth(); j++)
{
if (i >= vY && j >= vX && i < vHeight && j < vWidth)
{
- vPoint.x = j; vPoint.y = i;
if (i == vY || j == vX ||
i == m_vSelectedBitmap.GetWidth() -1 ||
- j == m_vSelectedBitmap.GetHeight()
+ j == m_vSelectedBitmap.GetHeight() - 1
)
lColor = m_pen.GetColour().GetPixel();
else