74 lines
1.5 KiB
C
74 lines
1.5 KiB
C
/*
|
|
* PostScript brush handling
|
|
*
|
|
* Copyright 1998 Huw D M Davies
|
|
*
|
|
*/
|
|
|
|
#include "windows.h"
|
|
#include "psdrv.h"
|
|
#include "brush.h"
|
|
#include "debug.h"
|
|
|
|
|
|
/***********************************************************************
|
|
* PSDRV_BRUSH_SelectObject
|
|
*/
|
|
HBRUSH32 PSDRV_BRUSH_SelectObject( DC * dc, HBRUSH32 hbrush, BRUSHOBJ * brush )
|
|
{
|
|
HBRUSH32 prevbrush = dc->w.hBrush;
|
|
PSDRV_PDEVICE *physDev = (PSDRV_PDEVICE *)dc->physDev;
|
|
|
|
TRACE(psdrv, "hbrush = %08x\n", hbrush);
|
|
dc->w.hBrush = hbrush;
|
|
|
|
switch(brush->logbrush.lbStyle) {
|
|
|
|
case BS_SOLID:
|
|
physDev->brush.style = BS_SOLID;
|
|
PSDRV_CreateColor(physDev, &physDev->brush.color,
|
|
brush->logbrush.lbColor);
|
|
break;
|
|
|
|
case BS_NULL:
|
|
physDev->brush.style = BS_NULL;
|
|
break;
|
|
|
|
case BS_HATCHED:
|
|
case BS_PATTERN:
|
|
FIXME(psdrv, "Unsupported brush style %d\n", brush->logbrush.lbStyle);
|
|
break;
|
|
|
|
default:
|
|
FIXME(psdrv, "Unrecognized brush style %d\n", brush->logbrush.lbStyle);
|
|
break;
|
|
}
|
|
|
|
physDev->brush.set = FALSE;
|
|
return prevbrush;
|
|
}
|
|
|
|
|
|
/**********************************************************************
|
|
*
|
|
* PSDRV_SetBrush
|
|
*
|
|
*/
|
|
BOOL32 PSDRV_SetBrush(DC *dc)
|
|
{
|
|
PSDRV_PDEVICE *physDev = (PSDRV_PDEVICE *)dc->physDev;
|
|
|
|
switch (physDev->brush.style) {
|
|
case BS_SOLID:
|
|
PSDRV_WriteSetColor(dc, &physDev->brush.color);
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
break;
|
|
|
|
}
|
|
physDev->brush.set = TRUE;
|
|
return TRUE;
|
|
}
|