[ros-diffs] [navaraf] 14204: Forgot to add this file in revision 14203.

navaraf at svn.reactos.com navaraf at svn.reactos.com
Sat Mar 19 23:50:13 CET 2005


Forgot to add this file in revision 14203.
Added: trunk/reactos/lib/gdi32/objects/brush.c
  _____  

Added: trunk/reactos/lib/gdi32/objects/brush.c
--- trunk/reactos/lib/gdi32/objects/brush.c	2005-03-19 22:15:02 UTC
(rev 14203)
+++ trunk/reactos/lib/gdi32/objects/brush.c	2005-03-19 22:50:11 UTC
(rev 14204)
@@ -0,0 +1,127 @@

+#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, 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, lpPackedDIB);
+      if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
+         RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+   }
+
+   return hBrush;
+}
+
+/*
+ * @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:
+      case BS_PATTERN8X8:
+         hBrush = NtGdiCreatePatternBrush((HBITMAP)LogBrush->lbHatch);
+         break;
+
+      case BS_SOLID:
+         hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor);
+         break;
+
+      case BS_HATCHED:
+         hBrush = NtGdiCreateHatchBrush(LogBrush->lbHatch,
LogBrush->lbColor);
+         break;
+         
+      case BS_NULL:
+         hBrush = NtGdiGetStockObject(NULL_BRUSH);
+         break;
+
+      default:
+         SetLastError(ERROR_INVALID_PARAMETER);
+         hBrush = NULL;
+         break;
+   }
+
+   return hBrush;
+}
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.reactos.org/pipermail/ros-diffs/attachments/20050319/24053184/attachment.html


More information about the Ros-diffs mailing list