| /* |
| * GDI brush objects - win16drv |
| * |
| * Copyright 1997 John Harvey |
| */ |
| |
| #include <stdlib.h> |
| #include "brush.h" |
| #include "win16drv.h" |
| #include "heap.h" |
| #include "debugtools.h" |
| |
| DEFAULT_DEBUG_CHANNEL(win16drv); |
| |
| HBRUSH WIN16DRV_BRUSH_SelectObject( DC * dc, HBRUSH hbrush, |
| BRUSHOBJ * brush ) |
| { |
| WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev; |
| HBRUSH16 prevHandle = dc->hBrush; |
| int nSize; |
| LOGBRUSH16 lBrush16; |
| dc->hBrush = hbrush; |
| lBrush16.lbStyle = brush->logbrush.lbStyle; |
| lBrush16.lbColor = brush->logbrush.lbColor; |
| lBrush16.lbHatch = brush->logbrush.lbHatch; |
| |
| |
| if ( physDev->BrushInfo ) |
| { |
| TRACE("UnRealizing BrushInfo\n"); |
| nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, -DRVOBJ_BRUSH, |
| physDev->BrushInfo, |
| physDev->BrushInfo, 0); |
| } |
| else |
| { |
| nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, DRVOBJ_BRUSH, |
| &lBrush16, 0, 0); |
| physDev->BrushInfo = SEGPTR_ALLOC( nSize ); |
| } |
| |
| |
| nSize = PRTDRV_RealizeObject(physDev->segptrPDEVICE, DRVOBJ_BRUSH, |
| &lBrush16, |
| physDev->BrushInfo, |
| win16drv_SegPtr_TextXForm); |
| |
| return prevHandle; |
| } |