wineps.drv: Use the HDC from the gdi_physdev structure.
This commit is contained in:
parent
10dcba499f
commit
b49aaf1fed
|
@ -37,7 +37,7 @@ HBRUSH CDECL PSDRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush )
|
|||
TRACE("hbrush = %p\n", hbrush);
|
||||
|
||||
if (hbrush == GetStockObject( DC_BRUSH ))
|
||||
logbrush.lbColor = GetDCBrushColor( physDev->hdc );
|
||||
logbrush.lbColor = GetDCBrushColor( dev->hdc );
|
||||
|
||||
switch(logbrush.lbStyle) {
|
||||
|
||||
|
@ -73,7 +73,7 @@ COLORREF CDECL PSDRV_SetDCBrushColor( PHYSDEV dev, COLORREF color )
|
|||
{
|
||||
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
|
||||
|
||||
if (GetCurrentObject( physDev->hdc, OBJ_BRUSH ) == GetStockObject( DC_BRUSH ))
|
||||
if (GetCurrentObject( dev->hdc, OBJ_BRUSH ) == GetStockObject( DC_BRUSH ))
|
||||
{
|
||||
PSDRV_CreateColor( dev, &physDev->brush.color, color );
|
||||
physDev->brush.set = FALSE;
|
||||
|
@ -93,7 +93,7 @@ static BOOL PSDRV_SetBrush( PHYSDEV dev )
|
|||
LOGBRUSH logbrush;
|
||||
BOOL ret = TRUE;
|
||||
|
||||
if (!GetObjectA( GetCurrentObject(physDev->hdc,OBJ_BRUSH), sizeof(logbrush), &logbrush ))
|
||||
if (!GetObjectA( GetCurrentObject(dev->hdc,OBJ_BRUSH), sizeof(logbrush), &logbrush ))
|
||||
{
|
||||
ERR("Can't get BRUSHOBJ\n");
|
||||
return FALSE;
|
||||
|
@ -159,7 +159,7 @@ BOOL PSDRV_Brush(PHYSDEV dev, BOOL EO)
|
|||
if(physDev->pathdepth)
|
||||
return FALSE;
|
||||
|
||||
if (!GetObjectA( GetCurrentObject(physDev->hdc,OBJ_BRUSH), sizeof(logbrush), &logbrush ))
|
||||
if (!GetObjectA( GetCurrentObject(dev->hdc,OBJ_BRUSH), sizeof(logbrush), &logbrush ))
|
||||
{
|
||||
ERR("Can't get BRUSHOBJ\n");
|
||||
return FALSE;
|
||||
|
|
|
@ -218,7 +218,7 @@ BOOL PSDRV_SelectBuiltinFont(PHYSDEV dev, HFONT hfont,
|
|||
POINT pts[2];
|
||||
pts[0].x = pts[0].y = pts[1].x = 0;
|
||||
pts[1].y = height;
|
||||
LPtoDP(physDev->hdc, pts, 2);
|
||||
LPtoDP(dev->hdc, pts, 2);
|
||||
height = pts[1].y - pts[0].y;
|
||||
}
|
||||
ScaleFont(physDev->font.fontinfo.Builtin.afm, height,
|
||||
|
@ -437,7 +437,7 @@ BOOL CDECL PSDRV_EnumDeviceFonts( PHYSDEV dev, LPLOGFONTW plf, FONTENUMPROCW pro
|
|||
UINT fm;
|
||||
|
||||
TRACE("Got '%s'\n", afmle->afm->FontName);
|
||||
fm = PSDRV_GetFontMetric( physDev->hdc, afmle->afm, &tm, &lf );
|
||||
fm = PSDRV_GetFontMetric( dev->hdc, afmle->afm, &tm, &lf );
|
||||
if( (b = (*proc)( &lf.elfLogFont, (TEXTMETRICW *)&tm, fm, lp )) )
|
||||
bRet = b;
|
||||
else break;
|
||||
|
@ -451,7 +451,7 @@ BOOL CDECL PSDRV_EnumDeviceFonts( PHYSDEV dev, LPLOGFONTW plf, FONTENUMPROCW pro
|
|||
|
||||
afmle = family->afmlist;
|
||||
TRACE("Got '%s'\n", afmle->afm->FontName);
|
||||
fm = PSDRV_GetFontMetric( physDev->hdc, afmle->afm, &tm, &lf );
|
||||
fm = PSDRV_GetFontMetric( dev->hdc, afmle->afm, &tm, &lf );
|
||||
if( (b = (*proc)( &lf.elfLogFont, (TEXTMETRICW *)&tm, fm, lp )) )
|
||||
bRet = b;
|
||||
else break;
|
||||
|
|
|
@ -44,14 +44,14 @@ void PSDRV_SetClip( PHYSDEV dev )
|
|||
HRGN hrgn = CreateRectRgn(0,0,0,0);
|
||||
BOOL empty;
|
||||
|
||||
TRACE("hdc=%p\n", physDev->hdc);
|
||||
TRACE("hdc=%p\n", dev->hdc);
|
||||
|
||||
if(physDev->pathdepth) {
|
||||
TRACE("inside a path, so not clipping\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
empty = !GetClipRgn(physDev->hdc, hrgn);
|
||||
empty = !GetClipRgn(dev->hdc, hrgn);
|
||||
|
||||
if(!empty) {
|
||||
size = GetRegionData(hrgn, 0, NULL);
|
||||
|
@ -121,7 +121,7 @@ void PSDRV_ResetClip( PHYSDEV dev )
|
|||
HRGN hrgn = CreateRectRgn(0,0,0,0);
|
||||
BOOL empty;
|
||||
|
||||
empty = !GetClipRgn(physDev->hdc, hrgn);
|
||||
empty = !GetClipRgn(dev->hdc, hrgn);
|
||||
if(!empty && !physDev->pathdepth)
|
||||
PSDRV_WriteGRestore(dev);
|
||||
DeleteObject(hrgn);
|
||||
|
|
|
@ -252,7 +252,7 @@ BOOL PSDRV_WriteSetDownloadFont(PHYSDEV dev)
|
|||
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
|
||||
char *ps_name;
|
||||
LPOUTLINETEXTMETRICA potm;
|
||||
DWORD len = GetOutlineTextMetricsA(physDev->hdc, 0, NULL);
|
||||
DWORD len = GetOutlineTextMetricsA(dev->hdc, 0, NULL);
|
||||
DOWNLOAD *pdl;
|
||||
LOGFONTW lf;
|
||||
UINT ppem;
|
||||
|
@ -261,20 +261,20 @@ BOOL PSDRV_WriteSetDownloadFont(PHYSDEV dev)
|
|||
assert(physDev->font.fontloc == Download);
|
||||
|
||||
potm = HeapAlloc(GetProcessHeap(), 0, len);
|
||||
GetOutlineTextMetricsA(physDev->hdc, len, potm);
|
||||
GetOutlineTextMetricsA(dev->hdc, len, potm);
|
||||
|
||||
get_download_name(dev, potm, &ps_name);
|
||||
physDev->font.fontinfo.Download = is_font_downloaded(physDev, ps_name);
|
||||
|
||||
if (!GetObjectW( GetCurrentObject(physDev->hdc, OBJ_FONT), sizeof(lf), &lf ))
|
||||
if (!GetObjectW( GetCurrentObject(dev->hdc, OBJ_FONT), sizeof(lf), &lf ))
|
||||
return FALSE;
|
||||
|
||||
ppem = calc_ppem_for_height(physDev->hdc, lf.lfHeight);
|
||||
ppem = calc_ppem_for_height(dev->hdc, lf.lfHeight);
|
||||
|
||||
/* Retrieve the world -> device transform */
|
||||
GetTransform(physDev->hdc, 0x204, &xform);
|
||||
GetTransform(dev->hdc, 0x204, &xform);
|
||||
|
||||
if(GetGraphicsMode(physDev->hdc) == GM_COMPATIBLE)
|
||||
if(GetGraphicsMode(dev->hdc) == GM_COMPATIBLE)
|
||||
{
|
||||
xform.eM11 = xform.eM22 = fabs(xform.eM22);
|
||||
xform.eM21 = xform.eM12 = 0;
|
||||
|
@ -294,7 +294,7 @@ BOOL PSDRV_WriteSetDownloadFont(PHYSDEV dev)
|
|||
RECT bbox;
|
||||
UINT emsize;
|
||||
|
||||
if (!get_bbox(physDev->hdc, &bbox, &emsize)) {
|
||||
if (!get_bbox(dev->hdc, &bbox, &emsize)) {
|
||||
HeapFree(GetProcessHeap(), 0, potm);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ BOOL PSDRV_WriteSetDownloadFont(PHYSDEV dev)
|
|||
|
||||
if(pdl->type == Type42) {
|
||||
char g_name[MAX_G_NAME + 1];
|
||||
get_glyph_name(physDev->hdc, 0, g_name);
|
||||
get_glyph_name(dev->hdc, 0, g_name);
|
||||
T42_download_glyph(dev, pdl, 0, g_name);
|
||||
}
|
||||
}
|
||||
|
@ -357,7 +357,7 @@ BOOL PSDRV_WriteDownloadGlyphShow(PHYSDEV dev, WORD *glyphs,
|
|||
switch(physDev->font.fontinfo.Download->type) {
|
||||
case Type42:
|
||||
for(i = 0; i < count; i++) {
|
||||
get_glyph_name(physDev->hdc, glyphs[i], g_name);
|
||||
get_glyph_name(dev->hdc, glyphs[i], g_name);
|
||||
T42_download_glyph(dev, physDev->font.fontinfo.Download, glyphs[i], g_name);
|
||||
PSDRV_WriteGlyphShow(dev, g_name);
|
||||
}
|
||||
|
@ -365,7 +365,7 @@ BOOL PSDRV_WriteDownloadGlyphShow(PHYSDEV dev, WORD *glyphs,
|
|||
|
||||
case Type1:
|
||||
for(i = 0; i < count; i++) {
|
||||
get_glyph_name(physDev->hdc, glyphs[i], g_name);
|
||||
get_glyph_name(dev->hdc, glyphs[i], g_name);
|
||||
T1_download_glyph(dev, physDev->font.fontinfo.Download, glyphs[i], g_name);
|
||||
PSDRV_WriteGlyphShow(dev, g_name);
|
||||
}
|
||||
|
|
|
@ -155,7 +155,7 @@ INT CDECL PSDRV_ExtEscape( PHYSDEV dev, INT nEscape, INT cbInput, LPCVOID in_dat
|
|||
r->bottom = 0;
|
||||
TRACE("NEXTBAND rect to 0,0 - 0,0\n" );
|
||||
physDev->job.banding = FALSE;
|
||||
return EndPage( physDev->hdc );
|
||||
return EndPage( dev->hdc );
|
||||
}
|
||||
|
||||
case SETCOPYCOUNT:
|
||||
|
|
|
@ -107,12 +107,12 @@ BOOL CDECL PSDRV_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT botto
|
|||
rect.top = top;
|
||||
rect.right = right;
|
||||
rect.bottom = bottom;
|
||||
LPtoDP( physDev->hdc, (POINT *)&rect, 2 );
|
||||
LPtoDP( dev->hdc, (POINT *)&rect, 2 );
|
||||
|
||||
/* Windows does something truly hacky here. If we're in passthrough mode
|
||||
and our rop is R2_NOP, then we output the string below. This is used in
|
||||
Office 2k when inserting eps files */
|
||||
if(physDev->job.in_passthrough && !physDev->job.had_passthrough_rect && GetROP2(physDev->hdc) == R2_NOP) {
|
||||
if(physDev->job.in_passthrough && !physDev->job.had_passthrough_rect && GetROP2(dev->hdc) == R2_NOP) {
|
||||
char buf[256];
|
||||
sprintf(buf, "N %d %d %d %d B\n", rect.right - rect.left, rect.bottom - rect.top, rect.left, rect.top);
|
||||
write_spool(dev, buf, strlen(buf));
|
||||
|
|
|
@ -342,7 +342,6 @@ BOOL CDECL PSDRV_CreateDC( HDC hdc, PSDRV_PDEVICE **pdev, LPCWSTR driver, LPCWST
|
|||
physDev = HeapAlloc( PSDRV_Heap, HEAP_ZERO_MEMORY, sizeof(*physDev) );
|
||||
if (!physDev) return FALSE;
|
||||
*pdev = physDev;
|
||||
physDev->hdc = hdc;
|
||||
|
||||
physDev->pi = pi;
|
||||
|
||||
|
@ -408,7 +407,7 @@ HDC CDECL PSDRV_ResetDC( PHYSDEV dev, const DEVMODEW *lpInitData )
|
|||
HeapFree(PSDRV_Heap, 0, devmodeA);
|
||||
PSDRV_UpdateDevCaps(physDev);
|
||||
}
|
||||
return physDev->hdc;
|
||||
return dev->hdc;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -520,7 +519,7 @@ INT CDECL PSDRV_GetDeviceCaps( PHYSDEV dev, INT cap )
|
|||
case SHADEBLENDCAPS:
|
||||
return SB_NONE;
|
||||
default:
|
||||
FIXME("(%p): unsupported capability %d, will return 0\n", physDev->hdc, cap );
|
||||
FIXME("(%p): unsupported capability %d, will return 0\n", dev->hdc, cap );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ HPEN CDECL PSDRV_SelectPen( PHYSDEV dev, HPEN hpen )
|
|||
if(physDev->pen.width < 0) physDev->pen.width = -physDev->pen.width;
|
||||
}
|
||||
if (hpen == GetStockObject( DC_PEN ))
|
||||
logpen.lopnColor = GetDCPenColor( physDev->hdc );
|
||||
logpen.lopnColor = GetDCPenColor( dev->hdc );
|
||||
|
||||
switch (logpen.lopnStyle & PS_JOIN_MASK)
|
||||
{
|
||||
|
@ -134,7 +134,7 @@ COLORREF CDECL PSDRV_SetDCPenColor( PHYSDEV dev, COLORREF color )
|
|||
{
|
||||
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
|
||||
|
||||
if (GetCurrentObject( physDev->hdc, OBJ_PEN ) == GetStockObject( DC_PEN ))
|
||||
if (GetCurrentObject( dev->hdc, OBJ_PEN ) == GetStockObject( DC_PEN ))
|
||||
PSDRV_CreateColor( dev, &physDev->pen.color, color );
|
||||
return color;
|
||||
}
|
||||
|
|
|
@ -839,8 +839,8 @@ BOOL PSDRV_WritePatternDict(PHYSDEV dev, BITMAP *bm, BYTE *bits)
|
|||
PSDRV_WriteSpool(dev, "def\n", 4);
|
||||
|
||||
PSDRV_WriteIndexColorSpaceBegin(dev, 1);
|
||||
map[0] = GetTextColor( physDev->hdc );
|
||||
map[1] = GetBkColor( physDev->hdc );
|
||||
map[0] = GetTextColor( dev->hdc );
|
||||
map[1] = GetBkColor( dev->hdc );
|
||||
PSDRV_WriteRGB(dev, map, 2);
|
||||
PSDRV_WriteIndexColorSpaceEnd(dev);
|
||||
|
||||
|
|
|
@ -355,7 +355,6 @@ typedef struct {
|
|||
typedef struct
|
||||
{
|
||||
struct gdi_physdev dev;
|
||||
HDC hdc;
|
||||
PSFONT font; /* Current PS font */
|
||||
DOWNLOAD *downloaded_fonts;
|
||||
PSPEN pen;
|
||||
|
|
Loading…
Reference in New Issue