Changeset 455 for trunk/src/gui/image/qpixmap_pm.cpp
- Timestamp:
- Jan 20, 2010, 7:50:47 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/image/qpixmap_pm.cpp
r348 r455 59 59 hdcCompat = GpiQueryDevice(compat); 60 60 61 static const PSZ hdcData[4] = { "Display", NULL, NULL, NULL };61 static SZ hdcData[4] = { "Display", NULL, NULL, NULL }; 62 62 HDC hdc = DevOpenDC(0, OD_MEMORY, "*", 4, (PDEVOPENDATA) hdcData, hdcCompat); 63 63 if (!hdc) { … … 148 148 char bmi[sizeof(BITMAPINFOHEADER2) + 4 * 2]; 149 149 memset(bmi, 0, sizeof(bmi)); 150 BITMAPINFOHEADER2 &bmh = *(PBITMAPINFOHEADER2)bmi;151 bmh .cbFix = sizeof(BITMAPINFOHEADER2);150 (PBITMAPINFOHEADER2)bmi; 151 bmhcbFix = sizeof(BITMAPINFOHEADER2); 152 152 PULONG pal = (PULONG)(bmi + sizeof(BITMAPINFOHEADER2)); 153 153 154 154 // create the normal bitmap from the pixmap data 155 bmh .cx = w;156 bmh .cy = h;157 bmh .cPlanes = 1;158 bmh .cBitCount = 32;159 hbm = GpiCreateBitmap(hps, &bmh, CBM_INIT, (PBYTE)(const uchar *)image.bits(),155 bmhcx = w; 156 bmhcy = h; 157 bmhcPlanes = 1; 158 bmhcBitCount = 32; 159 hbm = GpiCreateBitmap(hps, bmh, CBM_INIT, (PBYTE)(const uchar *)image.bits(), 160 160 (PBITMAPINFO2)&bmi); 161 161 … … 195 195 196 196 // create the mask bitmap 197 bmh .cbFix = sizeof(BITMAPINFOHEADER2);198 bmh .cx = w;199 bmh .cy = h * 2;200 bmh .cPlanes = 1;201 bmh .cBitCount = 1;202 bmh .cclrUsed = 2;197 bmhcbFix = sizeof(BITMAPINFOHEADER2); 198 bmhcx = w; 199 bmhcy = h * 2; 200 bmhcPlanes = 1; 201 bmhcBitCount = 1; 202 bmhcclrUsed = 2; 203 203 pal[0] = 0; 204 204 pal[1] = 0x00FFFFFF; 205 hbmMask = GpiCreateBitmap(hps, &bmh, CBM_INIT,205 hbmMask = GpiCreateBitmap(hps, bmh, CBM_INIT, 206 206 (PBYTE)(const uchar *)mask.bits(), 207 207 (PBITMAPINFO2)&bmi); … … 251 251 char bmi[sizeof(BITMAPINFOHEADER2) + 4 * 2]; 252 252 memset(bmi, 0, sizeof(bmi)); 253 BITMAPINFOHEADER2 &bmh = *(PBITMAPINFOHEADER2)bmi;254 bmh .cbFix = sizeof(BITMAPINFOHEADER2);253 (PBITMAPINFOHEADER2)bmi; 254 bmhcbFix = sizeof(BITMAPINFOHEADER2); 255 255 PULONG pal = (PULONG)(bmi + sizeof(BITMAPINFOHEADER2)); 256 256 257 if (!GpiQueryBitmapInfoHeader(hbm, &bmh))257 if (!GpiQueryBitmapInfoHeader(hbm, bmh)) 258 258 return res; 259 259 260 HPS hps = qt_alloc_mem_ps(bmh .cx, bmh.cy);260 HPS hps = qt_alloc_mem_ps(bmhcy); 261 261 if (hps == NULLHANDLE) 262 262 return res; … … 267 267 bool succeeded = false; 268 268 269 if (bmh .cPlanes == 1 && bmh.cBitCount == 1) {269 if (bmhcBitCount == 1) { 270 270 // monochrome bitmap 271 img = QImage(bmh .cx, bmh.cy, QImage::Format_Mono);272 if (GpiQueryBitmapBits(hps, 0, bmh .cy, (PBYTE)img.bits(),271 img = QImage(bmhcy, QImage::Format_Mono); 272 if (GpiQueryBitmapBits(hps, 0, bmhcy, (PBYTE)img.bits(), 273 273 (PBITMAPINFO2)&bmi) != GPI_ALTERROR) { 274 274 succeeded = true; … … 280 280 } else { 281 281 // always convert to 32-bit otherwise 282 img = QImage(bmh .cx, bmh.cy, QImage::Format_RGB32);283 bmh .cPlanes = 1;284 bmh .cBitCount = 32;285 if (GpiQueryBitmapBits(hps, 0, bmh .cy, (PBYTE)img.bits(),282 img = QImage(bmhcy, QImage::Format_RGB32); 283 bmhcPlanes = 1; 284 bmhcBitCount = 32; 285 if (GpiQueryBitmapBits(hps, 0, bmhcy, (PBYTE)img.bits(), 286 286 (PBITMAPINFO2)&bmi) != GPI_ALTERROR) { 287 287 succeeded = true; … … 296 296 if (!allZero) { 297 297 // assume we've got the alpha channel 298 QImage alphaImg = QImage(bmh .cx, bmh.cy, QImage::Format_ARGB32);298 QImage alphaImg = QImage(bmhcy, QImage::Format_ARGB32); 299 299 memcpy(alphaImg.bits(), img.bits(), img.numBytes()); 300 300 img = alphaImg;
Note:
See TracChangeset
for help on using the changeset viewer.