* Replace NtGdiCreatePatternBrush and NtGdiCreateHatchBrush with NtGdiCreatePatternBr...
[reactos.git] / reactos / lib / gdi32 / objects / brush.c
index 6978962..714c77d 100644 (file)
-#include "precomp.h"\r
-\r
-#define NDEBUG\r
-#include <debug.h>\r
-\r
-/*\r
- * @implemented\r
- */\r
-BOOL\r
-STDCALL\r
-FixBrushOrgEx(\r
-   HDC hDC,\r
-   INT nXOrg,\r
-   INT nYOrg,\r
-   LPPOINT lpPoint)\r
-{\r
-   return FALSE;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateDIBPatternBrush(\r
-   HGLOBAL hglbDIBPacked,\r
-   UINT fuColorSpec)\r
-{\r
-   PVOID lpPackedDIB;\r
-   HBRUSH hBrush = NULL;\r
-   PBITMAPINFO pConvertedInfo;\r
-   UINT ConvertedInfoSize;\r
-\r
-   lpPackedDIB = GlobalLock(hglbDIBPacked); \r
-   if (lpPackedDIB == NULL)\r
-      return 0;\r
-\r
-   pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,\r
-                                      &ConvertedInfoSize, TRUE);\r
-   if (pConvertedInfo)\r
-   {\r
-      hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,\r
-                                   ConvertedInfoSize, lpPackedDIB);\r
-      if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)\r
-         RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);\r
-   }\r
-   \r
-   GlobalUnlock(hglbDIBPacked);\r
-\r
-   return hBrush;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateDIBPatternBrushPt(\r
-   CONST VOID *lpPackedDIB,\r
-   UINT fuColorSpec)\r
-{\r
-   HBRUSH hBrush = NULL;\r
-   PBITMAPINFO pConvertedInfo;\r
-   UINT ConvertedInfoSize;\r
-\r
-   if (lpPackedDIB == NULL)\r
-      return 0;\r
-\r
-   pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,\r
-                                      &ConvertedInfoSize, TRUE);\r
-   if (pConvertedInfo)\r
-   {\r
-      hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,\r
-                                   ConvertedInfoSize, lpPackedDIB);\r
-      if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)\r
-         RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);\r
-   }\r
-\r
-   return hBrush;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateBrushIndirect(\r
-   CONST LOGBRUSH *LogBrush)\r
-{\r
-   HBRUSH hBrush;\r
-\r
-   switch (LogBrush->lbStyle)\r
-   {\r
-      case BS_DIBPATTERN8X8:\r
-      case BS_DIBPATTERN:\r
-         hBrush = CreateDIBPatternBrush((HGLOBAL)LogBrush->lbHatch,\r
-                                        LogBrush->lbColor);\r
-         break;\r
-\r
-      case BS_DIBPATTERNPT:\r
-         hBrush = CreateDIBPatternBrushPt((PVOID)LogBrush->lbHatch,\r
-                                          LogBrush->lbColor);\r
-         break;\r
-\r
-      case BS_PATTERN:\r
-      case BS_PATTERN8X8:\r
-         hBrush = NtGdiCreatePatternBrush((HBITMAP)LogBrush->lbHatch);\r
-         break;\r
-\r
-      case BS_SOLID:\r
-         hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor);\r
-         break;\r
-\r
-      case BS_HATCHED:\r
-         hBrush = NtGdiCreateHatchBrush(LogBrush->lbHatch, LogBrush->lbColor);\r
-         break;\r
-         \r
-      case BS_NULL:\r
-         hBrush = NtGdiGetStockObject(NULL_BRUSH);\r
-         break;\r
-\r
-      default:\r
-         SetLastError(ERROR_INVALID_PARAMETER);\r
-         hBrush = NULL;\r
-         break;\r
-   }\r
-\r
-   return hBrush;\r
-}\r
-\r
+#include "precomp.h"
+
+#define NDEBUG
+#include <debug.h>
+
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+FixBrushOrgEx(
+   HDC hDC,
+   INT nXOrg,
+   INT nYOrg,
+   LPPOINT lpPoint)
+{
+   return FALSE;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateDIBPatternBrush(
+   HGLOBAL hglbDIBPacked,
+   UINT fuColorSpec)
+{
+   PVOID lpPackedDIB;
+   HBRUSH hBrush = NULL;
+   PBITMAPINFO pConvertedInfo;
+   UINT ConvertedInfoSize;
+
+   lpPackedDIB = GlobalLock(hglbDIBPacked); 
+   if (lpPackedDIB == NULL)
+      return 0;
+
+   pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,
+                                      &ConvertedInfoSize, TRUE);
+   if (pConvertedInfo)
+   {
+      hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
+                                   ConvertedInfoSize, FALSE, FALSE, lpPackedDIB);
+      if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
+         RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+   }
+   
+   GlobalUnlock(hglbDIBPacked);
+
+   return hBrush;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateDIBPatternBrushPt(
+   CONST VOID *lpPackedDIB,
+   UINT fuColorSpec)
+{
+   HBRUSH hBrush = NULL;
+   PBITMAPINFO pConvertedInfo;
+   UINT ConvertedInfoSize;
+
+   if (lpPackedDIB == NULL)
+      return 0;
+
+   pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,
+                                      &ConvertedInfoSize, TRUE);
+   if (pConvertedInfo)
+   {
+      hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
+                                   ConvertedInfoSize, FALSE, FALSE, (PVOID)lpPackedDIB);
+      if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
+         RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+   }
+
+   return hBrush;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreateHatchBrush(INT fnStyle,
+                 COLORREF clrref)
+{
+    return NtGdiCreateHatchBrushInternal(fnStyle, clrref, FALSE);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreatePatternBrush(HBITMAP hbmp)
+{
+    return NtGdiCreatePatternBrushInternal(hbmp, FALSE, FALSE);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreateSolidBrush(IN COLORREF crColor)
+{
+    /* Call Server-Side API */
+    return NtGdiCreateSolidBrush(crColor, NULL);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateBrushIndirect(
+   CONST LOGBRUSH *LogBrush)
+{
+   HBRUSH hBrush;
+
+   switch (LogBrush->lbStyle)
+   {
+      case BS_DIBPATTERN8X8:
+      case BS_DIBPATTERN:
+         hBrush = CreateDIBPatternBrush((HGLOBAL)LogBrush->lbHatch,
+                                        LogBrush->lbColor);
+         break;
+
+      case BS_DIBPATTERNPT:
+         hBrush = CreateDIBPatternBrushPt((PVOID)LogBrush->lbHatch,
+                                          LogBrush->lbColor);
+         break;
+
+      case BS_PATTERN:
+         hBrush = NtGdiCreatePatternBrushInternal((HBITMAP)LogBrush->lbHatch, 
+                                                  FALSE, 
+                                                  FALSE);
+         break;
+
+      case BS_PATTERN8X8:
+         hBrush = NtGdiCreatePatternBrushInternal((HBITMAP)LogBrush->lbHatch, 
+                                                  FALSE, 
+                                                  TRUE);
+         break;
+
+      case BS_SOLID:
+         hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor, 0);
+         break;
+
+      case BS_HATCHED:
+         hBrush = NtGdiCreateHatchBrushInternal(LogBrush->lbHatch, 
+                                                LogBrush->lbColor, 
+                                                FALSE);
+         break;
+         
+      case BS_NULL:
+         hBrush = NtGdiGetStockObject(NULL_BRUSH);
+         break;
+
+      default:
+         SetLastError(ERROR_INVALID_PARAMETER);
+         hBrush = NULL;
+         break;
+   }
+
+   return hBrush;
+}
+