- Rename bitblt.c to more generic bitmap.c.
- Normalize BITMAPINFO structure in CreateDIBSection before sending it
to win32k.
Modified: trunk/reactos/lib/gdi32/gdi32.def
Modified: trunk/reactos/lib/gdi32/include/precomp.h
Modified: trunk/reactos/lib/gdi32/makefile
Deleted: trunk/reactos/lib/gdi32/objects/bitblt.c
Added: trunk/reactos/lib/gdi32/objects/bitmap.c
Modified: trunk/reactos/lib/gdi32/objects/utils.c
_____
Modified: trunk/reactos/lib/gdi32/gdi32.def
--- trunk/reactos/lib/gdi32/gdi32.def 2005-03-20 12:15:51 UTC (rev
14216)
+++ trunk/reactos/lib/gdi32/gdi32.def 2005-03-20 12:30:06 UTC (rev
14217)
@@ -58,7 +58,7 @@
CreateDCW@16
CreateDIBPatternBrush@8
CreateDIBPatternBrushPt@8
-CreateDIBSection@24=NtGdiCreateDIBSection@24
+CreateDIBSection@24
CreateDIBitmap@24=NtGdiCreateDIBitmap@24
CreateDiscardableBitmap@12=NtGdiCreateDiscardableBitmap@12
CreateEllipticRgn@16=NtGdiCreateEllipticRgn@16
_____
Modified: trunk/reactos/lib/gdi32/include/precomp.h
--- trunk/reactos/lib/gdi32/include/precomp.h 2005-03-20 12:15:51 UTC
(rev 14216)
+++ trunk/reactos/lib/gdi32/include/precomp.h 2005-03-20 12:30:06 UTC
(rev 14217)
@@ -59,7 +59,7 @@
/* == BITMAP UTILITY FUNCTIONS
============================================== */
-BOOL STDCALL CalculateColorTableSize(LPBITMAPINFOHEADER
BitmapInfoHeader, UINT *ColorSpec, UINT *ColorTableSize);
-LPBITMAPINFO STDCALL ConvertBitmapInfo(LPBITMAPINFO BitmapInfo, UINT
ColorSpec, UINT *BitmapInfoSize, BOOL FollowedByData);
+BOOL STDCALL CalculateColorTableSize(CONST BITMAPINFOHEADER
*BitmapInfoHeader, UINT *ColorSpec, UINT *ColorTableSize);
+LPBITMAPINFO STDCALL ConvertBitmapInfo(CONST BITMAPINFO *BitmapInfo,
UINT ColorSpec, UINT *BitmapInfoSize, BOOL FollowedByData);
/* EOF */
_____
Modified: trunk/reactos/lib/gdi32/makefile
--- trunk/reactos/lib/gdi32/makefile 2005-03-20 12:15:51 UTC (rev
14216)
+++ trunk/reactos/lib/gdi32/makefile 2005-03-20 12:30:06 UTC (rev
14217)
@@ -39,7 +39,7 @@
misc/win32k.o
OBJECTS_OBJECTS = \
- objects/bitblt.o \
+ objects/bitmap.o \
objects/utils.o \
objects/brush.o \
objects/dc.o \
_____
Deleted: trunk/reactos/lib/gdi32/objects/bitblt.c
--- trunk/reactos/lib/gdi32/objects/bitblt.c 2005-03-20 12:15:51 UTC
(rev 14216)
+++ trunk/reactos/lib/gdi32/objects/bitblt.c 2005-03-20 12:30:06 UTC
(rev 14217)
@@ -1,42 +0,0 @@
-/* $Id$
- *
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: lib/gdi32/object/bitblt.c
- * PURPOSE:
- * PROGRAMMER:
- */
-
-#include "precomp.h"
-
-#include <debug.h>
-
-
-/*
- * @implemented
- */
-BOOL
-STDCALL
-StretchBlt(
- HDC hdcDest, // handle to destination DC
- int nXOriginDest, // x-coord of destination upper-left
corner
- int nYOriginDest, // y-coord of destination upper-left
corner
- int nWidthDest, // width of destination rectangle
- int nHeightDest, // height of destination rectangle
- HDC hdcSrc, // handle to source DC
- int nXOriginSrc, // x-coord of source upper-left corner
- int nYOriginSrc, // y-coord of source upper-left corner
- int nWidthSrc, // width of source rectangle
- int nHeightSrc, // height of source rectangle
- DWORD dwRop // raster operation code
- )
-{
- if ((nWidthDest != nWidthSrc) || (nHeightDest != nHeightSrc))
- {
- return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest,
nWidthDest, nHeightDest,
- hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc,
nHeightSrc, dwRop);
- }
-
- return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
nHeightDest, hdcSrc,
- nXOriginSrc, nYOriginSrc, dwRop);
-}
_____
Added: trunk/reactos/lib/gdi32/objects/bitmap.c
--- trunk/reactos/lib/gdi32/objects/bitmap.c 2005-03-20 12:15:51 UTC
(rev 14216)
+++ trunk/reactos/lib/gdi32/objects/bitmap.c 2005-03-20 12:30:06 UTC
(rev 14217)
@@ -0,0 +1,59 @@
+#include "precomp.h"
+
+/*
+ * @implemented
+ */
+HBITMAP STDCALL
+CreateDIBSection(
+ HDC hDC,
+ CONST BITMAPINFO *BitmapInfo,
+ UINT Usage,
+ VOID **Bits,
+ HANDLE hSection,
+ DWORD dwOffset)
+{
+ PBITMAPINFO pConvertedInfo;
+ UINT ConvertedInfoSize;
+ HBITMAP hBitmap = NULL;
+
+ pConvertedInfo = ConvertBitmapInfo(BitmapInfo, Usage,
+ &ConvertedInfoSize, FALSE);
+ if (pConvertedInfo)
+ {
+ hBitmap = NtGdiCreateDIBSection(hDC, pConvertedInfo, Usage, Bits,
+ hSection, dwOffset);
+ if (BitmapInfo != pConvertedInfo)
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+ }
+
+ return hBitmap;
+}
+
+/*
+ * @implemented
+ */
+BOOL STDCALL
+StretchBlt(
+ HDC hdcDest, /* handle to destination DC */
+ int nXOriginDest, /* x-coord of destination upper-left corner */
+ int nYOriginDest, /* y-coord of destination upper-left corner */
+ int nWidthDest, /* width of destination rectangle */
+ int nHeightDest, /* height of destination rectangle */
+ HDC hdcSrc, /* handle to source DC */
+ int nXOriginSrc, /* x-coord of source upper-left corner */
+ int nYOriginSrc, /* y-coord of source upper-left corner */
+ int nWidthSrc, /* width of source rectangle */
+ int nHeightSrc, /* height of source rectangle */
+ DWORD dwRop) /* raster operation code */
+
+{
+ if ((nWidthDest != nWidthSrc) || (nHeightDest != nHeightSrc))
+ {
+ return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest,
nWidthDest,
+ nHeightDest, hdcSrc, nXOriginSrc,
nYOriginSrc,
+ nWidthSrc, nHeightSrc, dwRop);
+ }
+
+ return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
+ nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc,
dwRop);
+}
_____
Modified: trunk/reactos/lib/gdi32/objects/utils.c
--- trunk/reactos/lib/gdi32/objects/utils.c 2005-03-20 12:15:51 UTC
(rev 14216)
+++ trunk/reactos/lib/gdi32/objects/utils.c 2005-03-20 12:30:06 UTC
(rev 14217)
@@ -24,7 +24,7 @@
BOOL STDCALL
CalculateColorTableSize(
- LPBITMAPINFOHEADER BitmapInfoHeader,
+ CONST BITMAPINFOHEADER *BitmapInfoHeader,
UINT *ColorSpec,
UINT *ColorTableSize)
{
@@ -170,12 +170,12 @@
LPBITMAPINFO STDCALL
ConvertBitmapInfo(
- LPBITMAPINFO BitmapInfo,
+ CONST BITMAPINFO *BitmapInfo,
UINT ColorSpec,
UINT *BitmapInfoSize,
BOOL FollowedByData)
{
- LPBITMAPINFO NewBitmapInfo = BitmapInfo;
+ LPBITMAPINFO NewBitmapInfo = (LPBITMAPINFO)BitmapInfo;
LPBITMAPCOREINFO CoreBitmapInfo = (LPBITMAPCOREINFO)BitmapInfo;
DWORD Size = 0;
ULONG DataSize = 0;