svn path=/trunk/; revision=32247
+ PBITMAPOBJ bmp = BITMAPOBJ_LockBitmap( hBitmap );
+ if (bmp == NULL)
- PBITMAPOBJ bmp = BITMAPOBJ_LockBitmap( hBitmap );
- if (bmp == NULL)
- {
- NtGdiDeleteObject(hBitmap);
- return NULL;
- }
+ NtGdiDeleteObject(hBitmap);
+ return NULL;
+ }
- bmp->flFlags = BITMAPOBJ_IS_APIBITMAP;
+ bmp->flFlags = BITMAPOBJ_IS_APIBITMAP;
IntSetBitmapBits(bmp, bmp->SurfObj.cjBits, pBits);
IntSetBitmapBits(bmp, bmp->SurfObj.cjBits, pBits);
-
-
- BITMAPOBJ_UnlockBitmap( bmp );
+ BITMAPOBJ_UnlockBitmap( bmp );
+
DPRINT("IntGdiCreateBitmap : %dx%d, %d BPP colors, topdown %d, returning %08x\n",
Size.cx, Size.cy, BitsPixel, (Height < 0 ? 1 : 0), hBitmap);
DPRINT("IntGdiCreateBitmap : %dx%d, %d BPP colors, topdown %d, returning %08x\n",
Size.cx, Size.cy, BitsPixel, (Height < 0 ? 1 : 0), hBitmap);
LONG compr;
LONG dibsize;
BOOL fColor;
LONG compr;
LONG dibsize;
BOOL fColor;
if (DIB_GetBitmapInfo( header, &width, &height, &planes, &bpp, &compr, &dibsize ) == -1) return 0;
if (DIB_GetBitmapInfo( header, &width, &height, &planes, &bpp, &compr, &dibsize ) == -1) return 0;
// Check if we should create a monochrome or color bitmap. We create a monochrome bitmap only if it has exactly 2
// colors, which are black followed by white, nothing else. In all other cases, we create a color bitmap.
// Check if we should create a monochrome or color bitmap. We create a monochrome bitmap only if it has exactly 2
// colors, which are black followed by white, nothing else. In all other cases, we create a color bitmap.
- size.cx = width;
- size.cy = abs(height);
-
- handle = IntCreateBitmap(size, DIB_GetDIBWidthBytes(width, 1), BMF_1BPP,
- (height < 0 ? BMF_TOPDOWN : 0) | BMF_NOZEROINIT,
- NULL);
+ handle = IntGdiCreateBitmap(width,
+ height,
+ 1,
+ 1,
+ NULL);