16 {0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF},
17 {0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7},
18 {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F},
19 {0x7F, 0xBF, 0xDF, 0xEF, 0xF7, 0xFB, 0xFD, 0xFE},
20 {0xF7, 0xF7, 0xF7, 0xF7, 0x00, 0xF7, 0xF7, 0xF7},
21 {0x7E, 0xBD, 0xDB, 0xE7, 0xE7, 0xDB, 0xBD, 0x7E}
66 pebo->
flattrs = pbrush->flAttrs;
116 pdc->pdcattr->crBackgroundClr, pdc->pdcattr->crForegroundClr,
254 rclDest.
left = rclDest.
top = 0;
257 psoRealize = &psurfRealize->
SurfObj;
274 ULONG i, iPalIndex, crColor;
285 ERR(
"Failed to allcate palette for brush\n");
290 for (
i = 0;
i < ppalDIB->NumColors;
i++)
296 iPalIndex %= ppalDC->NumColors;
333 if (pfnRealizeBrush ==
NULL)
335 ERR(
"No DrvRealizeBrush. Cannot realize brush\n");
361 hbmPattern = pbr->hbmPattern;
374 if (ppalPattern ==
NULL)
376 ERR(
"FixupDIBBrushPalette() failed.\n");
385 ppalPattern = psurfPattern->
ppal;
441 return psurfPattern ? &psurfPattern->
SurfObj :
NULL;
466 if (psurfMask ==
NULL)
468 ERR(
"Failed to lock hatch brush for PDEV %p, iHatch %lu\n",
469 ppdev, pebo->
pbrush->iHatch);
492 return pbo->pvRbrush;
518 return pbo->pvRbrush;
#define DBG_DEFAULT_CHANNEL(ch)
_Notnull_ PSURFACE psurfDefaultBitmap
PVOID NTAPI EBRUSHOBJ_pvGetEngBrush(EBRUSHOBJ *pebo)
ULONG APIENTRY BRUSHOBJ_ulGetBrushColor(IN BRUSHOBJ *pbo)
VOID NTAPI EBRUSHOBJ_vUpdateFromDC(EBRUSHOBJ *pebo, PBRUSH pbrush, PDC pdc)
PVOID APIENTRY BRUSHOBJ_pvGetRbrush(IN BRUSHOBJ *pbo)
BOOL NTAPI EBRUSHOBJ_bRealizeBrush(EBRUSHOBJ *pebo, BOOL bCallDriver)
SURFOBJ *NTAPI EBRUSHOBJ_psoPattern(EBRUSHOBJ *pebo)
VOID NTAPI EBRUSHOBJ_vInitFromDC(EBRUSHOBJ *pebo, PBRUSH pbrush, PDC pdc)
VOID NTAPI EBRUSHOBJ_vCleanup(EBRUSHOBJ *pebo)
NTSTATUS NTAPI InitBrushImpl(VOID)
static PPALETTE FixupDIBBrushPalette(_In_ PPALETTE ppalDIB, _In_ PPALETTE ppalDC)
VOID NTAPI EBRUSHOBJ_vInit(EBRUSHOBJ *pebo, PBRUSH pbrush, PSURFACE psurf, COLORREF crBackgroundClr, COLORREF crForegroundClr, PPALETTE ppalDC)
static const ULONG gaulHatchBrushes[HS_DDI_MAX][8]
VOID FASTCALL EBRUSHOBJ_vSetSolidRGBColor(EBRUSHOBJ *pebo, COLORREF crColor)
HSURF gahsurfHatch[HS_DDI_MAX]
PVOID APIENTRY BRUSHOBJ_pvAllocRbrush(IN BRUSHOBJ *pbo, IN ULONG cj)
BOOL APIENTRY EngRealizeBrush(BRUSHOBJ *pbo, SURFOBJ *psoDst, SURFOBJ *psoPattern, SURFOBJ *psoMask, XLATEOBJ *pxlo, ULONG iHatch)
SURFOBJ *NTAPI EBRUSHOBJ_psoMask(EBRUSHOBJ *pebo)
#define BR_IS_DIBPALCOLORS
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
struct _PDEVOBJ * PPDEVOBJ
void * EngAllocMem(int zero, unsigned long size, int tag=0)
PFN_DrvRealizeBrush RealizeBrush
struct _PALETTE * ppalSurf
struct _PALETTE * ppalDIB
DRIVER_FUNCTIONS DriverFunctions
struct _PALETTE *const ppal
#define WIDTH_BYTES_ALIGN32(cx, bpp)
#define CONTAINING_RECORD(address, type, field)
#define SURFACE_ShareUnlockSurface(pBMObj)
#define SURFACE_ShareLockSurface(hBMObj)
#define BitsPerFormat(Format)
VOID NTAPI GDIOBJ_vReferenceObjectByPointer(POBJ pobj)
PPALETTE NTAPI PALETTE_AllocPalette(_In_ ULONG iMode, _In_ ULONG cColors, _In_opt_ const PALETTEENTRY *pEntries, _In_ FLONG flRed, _In_ FLONG flGreen, _In_ FLONG flBlue)
FORCEINLINE VOID PALETTE_vSetRGBColorForIndex(PPALETTE ppal, ULONG ulIndex, COLORREF crColor)
#define PALETTE_ShareUnlockPalette(ppal)
FORCEINLINE ULONG PALETTE_ulGetRGBColorFromIndex(PPALETTE ppal, ULONG ulIndex)
_Inout_ SURFOBJ _In_opt_ SURFOBJ * psoPattern
ENGAPI BOOL APIENTRY EngDeleteSurface(_In_ _Post_ptr_invalid_ HSURF hsurf)
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
ENGAPI HBITMAP APIENTRY EngCreateBitmap(_In_ SIZEL sizl, _In_ LONG lWidth, _In_ ULONG iFormat, _In_ FLONG fl, _In_opt_ PVOID pvBits)
_In_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ * pxlo
_In_opt_ SURFOBJ _In_opt_ SURFOBJ * psoMask
FN_DrvRealizeBrush * PFN_DrvRealizeBrush
ENGAPI BOOL APIENTRY EngCopyBits(_In_ SURFOBJ *psoDest, _In_ SURFOBJ *psoSrc, _In_opt_ CLIPOBJ *pco, _In_opt_ XLATEOBJ *pxlo, _In_ __in_data_source(USER_MODE) RECTL *prclDest, _In_ __in_data_source(USER_MODE) POINTL *pptlSrc)
typedef HSURF(APIENTRY FN_DrvEnableSurface)(_In_ DHPDEV dhpdev)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
_Inout_ SURFOBJ _In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_opt_ XLATEOBJ _In_ ULONG iHatch
VOID NTAPI EXLATEOBJ_vInitialize(_Out_ PEXLATEOBJ pexlo, _In_opt_ PALETTE *ppalSrc, _In_opt_ PALETTE *ppalDst, _In_ COLORREF crSrcBackColor, _In_ COLORREF crDstBackColor, _In_ COLORREF crDstForeColor)
VOID NTAPI EXLATEOBJ_vCleanup(_Inout_ PEXLATEOBJ pexlo)