gdi32: Avoid using EMFDRV_PDEVICE outside emfdev.c.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2021-08-23 13:52:30 +02:00 committed by Alexandre Julliard
parent 1323ff842e
commit 0e8a7a5050
6 changed files with 36 additions and 39 deletions

View File

@ -22,6 +22,11 @@
#include "enhmfdrv/enhmetafiledrv.h"
static inline EMFDRV_PDEVICE *get_emf_physdev( PHYSDEV dev )
{
return CONTAINING_RECORD( dev, EMFDRV_PDEVICE, dev );
}
static void emfdrv_update_bounds( DC *dc, RECTL *rect )
{
RECTL *bounds = &dc->attr->emf_bounds;

View File

@ -168,7 +168,7 @@ BOOL EMFDC_AlphaBlend( DC_ATTR *dc_attr, INT x_dst, INT y_dst, INT width_dst, IN
BOOL EMFDC_PatBlt( DC_ATTR *dc_attr, INT left, INT top, INT width, INT height, DWORD rop )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRBITBLT emr;
BOOL ret;

View File

@ -45,11 +45,6 @@ typedef struct emf
INT dev_caps[COLORMGMTCAPS + 1];
} EMFDRV_PDEVICE;
static inline EMFDRV_PDEVICE *get_emf_physdev( PHYSDEV dev )
{
return CONTAINING_RECORD( dev, EMFDRV_PDEVICE, dev );
}
extern BOOL emfdc_record( struct emf *emf, EMR *emr ) DECLSPEC_HIDDEN;
extern void emfdc_update_bounds( struct emf *emf, RECTL *rect ) DECLSPEC_HIDDEN;
extern DWORD emfdc_create_brush( struct emf *emf, HBRUSH hBrush ) DECLSPEC_HIDDEN;

View File

@ -122,7 +122,7 @@ static BOOL emfdrv_stroke_and_fill_path( struct emf *emf, INT type )
*/
BOOL EMFDC_MoveTo( DC_ATTR *dc_attr, INT x, INT y )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRMOVETOEX emr;
emr.emr.iType = EMR_MOVETOEX;
@ -154,7 +154,7 @@ BOOL EMFDC_LineTo( DC_ATTR *dc_attr, INT x, INT y )
BOOL EMFDC_ArcChordPie( DC_ATTR *dc_attr, INT left, INT top, INT right, INT bottom,
INT xstart, INT ystart, INT xend, INT yend, DWORD type )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRARC emr;
INT temp;
@ -205,7 +205,7 @@ BOOL EMFDC_AngleArc( DC_ATTR *dc_attr, INT x, INT y, DWORD radius, FLOAT start,
*/
BOOL EMFDC_Ellipse( DC_ATTR *dc_attr, INT left, INT top, INT right, INT bottom )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRELLIPSE emr;
if (left == right || top == bottom) return FALSE;
@ -230,7 +230,7 @@ BOOL EMFDC_Ellipse( DC_ATTR *dc_attr, INT left, INT top, INT right, INT bottom )
*/
BOOL EMFDC_Rectangle( DC_ATTR *dc_attr, INT left, INT top, INT right, INT bottom )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRRECTANGLE emr;
if(left == right || top == bottom) return FALSE;
@ -256,7 +256,7 @@ BOOL EMFDC_Rectangle( DC_ATTR *dc_attr, INT left, INT top, INT right, INT bottom
BOOL EMFDC_RoundRect( DC_ATTR *dc_attr, INT left, INT top, INT right,
INT bottom, INT ell_width, INT ell_height )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRROUNDRECT emr;
if (left == right || top == bottom) return FALSE;
@ -300,7 +300,7 @@ BOOL EMFDC_SetPixel( DC_ATTR *dc_attr, INT x, INT y, COLORREF color )
*/
static BOOL EMFDC_Polylinegon( DC_ATTR *dc_attr, const POINT *points, INT count, DWORD type )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRPOLYLINE *emr;
DWORD size;
BOOL ret, use_small_emr = can_use_short_points( points, count );
@ -374,7 +374,7 @@ BOOL EMFDC_PolyBezierTo( DC_ATTR *dc_attr, const POINT *pts, DWORD count )
*
* Helper for EMFDRV_PolyPoly{line|gon}
*/
static BOOL EMFDC_PolyPolylinegon( EMFDRV_PDEVICE *emf, const POINT *pt, const INT *counts,
static BOOL EMFDC_PolyPolylinegon( struct emf *emf, const POINT *pt, const INT *counts,
UINT polys, DWORD type)
{
EMRPOLYPOLYLINE *emr;
@ -446,7 +446,7 @@ BOOL EMFDC_PolyPolygon( DC_ATTR *dc_attr, const POINT *pt, const INT *counts, UI
*/
BOOL EMFDC_PolyDraw( DC_ATTR *dc_attr, const POINT *pts, const BYTE *types, DWORD count )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRPOLYDRAW *emr;
BOOL ret;
BYTE *types_dest;
@ -501,7 +501,7 @@ BOOL EMFDC_ExtFloodFill( DC_ATTR *dc_attr, INT x, INT y, COLORREF color, UINT fi
*/
BOOL EMFDC_FillRgn( DC_ATTR *dc_attr, HRGN hrgn, HBRUSH hbrush )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRFILLRGN *emr;
DWORD size, rgnsize, index;
BOOL ret;
@ -537,7 +537,7 @@ BOOL EMFDC_FillRgn( DC_ATTR *dc_attr, HRGN hrgn, HBRUSH hbrush )
*/
BOOL EMFDC_FrameRgn( DC_ATTR *dc_attr, HRGN hrgn, HBRUSH hbrush, INT width, INT height )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRFRAMERGN *emr;
DWORD size, rgnsize, index;
BOOL ret;
@ -623,7 +623,7 @@ BOOL EMFDC_InvertRgn( DC_ATTR *dc_attr, HRGN hrgn )
BOOL EMFDC_ExtTextOut( DC_ATTR *dc_attr, INT x, INT y, UINT flags, const RECT *lprect,
const WCHAR *str, UINT count, const INT *lpDx )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMREXTTEXTOUTW *pemr;
DWORD nSize;
BOOL ret;

View File

@ -35,7 +35,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(enhmetafile);
void EMFDC_DeleteDC( DC_ATTR *dc_attr )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
UINT index;
HeapFree( GetProcessHeap(), 0, emf->emh );
@ -164,7 +164,7 @@ HDC WINAPI CreateEnhMetaFileW(
)
{
HDC ret;
EMFDRV_PDEVICE *emf;
struct emf *emf;
DC_ATTR *dc_attr;
HANDLE hFile;
DWORD size = 0, length = 0;

View File

@ -55,19 +55,16 @@ static UINT EMFDRV_AddHandle( struct emf *emf, HGDIOBJ obj )
}
/******************************************************************
* EMFDRV_FindObject
* emfdc_find_object
*/
static UINT EMFDRV_FindObject( PHYSDEV dev, HGDIOBJ obj )
static UINT emfdc_find_object( struct emf *emf, HGDIOBJ obj )
{
EMFDRV_PDEVICE *physDev = get_emf_physdev( dev );
UINT index;
for(index = 0; index < physDev->handles_size; index++)
if(physDev->handles[index] == obj) break;
for (index = 0; index < emf->handles_size; index++)
if (emf->handles[index] == obj) return index + 1;
if(index == physDev->handles_size) return 0;
return index + 1;
return 0;
}
@ -77,11 +74,11 @@ static UINT EMFDRV_FindObject( PHYSDEV dev, HGDIOBJ obj )
void EMFDC_DeleteObject( HDC hdc, HGDIOBJ obj )
{
DC_ATTR *dc_attr = get_dc_attr( hdc );
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRDELETEOBJECT emr;
UINT index;
if(!(index = EMFDRV_FindObject( &emf->dev, obj ))) return;
if(!(index = emfdc_find_object( emf, obj ))) return;
emr.emr.iType = EMR_DELETEOBJECT;
emr.emr.nSize = sizeof(emr);
@ -189,7 +186,7 @@ DWORD emfdc_create_brush( struct emf *emf, HBRUSH hBrush )
*/
static BOOL EMFDC_SelectBrush( DC_ATTR *dc_attr, HBRUSH brush )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTOBJECT emr;
DWORD index;
int i;
@ -207,7 +204,7 @@ static BOOL EMFDC_SelectBrush( DC_ATTR *dc_attr, HBRUSH brush )
goto found;
}
}
if((index = EMFDRV_FindObject( &emf->dev, brush )) != 0)
if((index = emfdc_find_object( emf, brush )) != 0)
goto found;
if (!(index = emfdc_create_brush( emf, brush ))) return 0;
@ -264,7 +261,7 @@ static BOOL EMFDRV_CreateFontIndirect( struct emf *emf, HFONT hFont )
*/
static BOOL EMFDC_SelectFont( DC_ATTR *dc_attr, HFONT font )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTOBJECT emr;
DWORD index;
int i;
@ -284,7 +281,7 @@ static BOOL EMFDC_SelectFont( DC_ATTR *dc_attr, HFONT font )
}
}
if (!(index = EMFDRV_FindObject( &emf->dev, font )))
if (!(index = emfdc_find_object( emf, font )))
{
if (!(index = EMFDRV_CreateFontIndirect( emf, font ))) return FALSE;
GDI_hdc_using_object( font, emf->dev.hdc, EMFDC_DeleteObject );
@ -339,7 +336,7 @@ static DWORD EMFDRV_CreatePenIndirect( struct emf *emf, HPEN hPen )
*/
static BOOL EMFDC_SelectPen( DC_ATTR *dc_attr, HPEN pen )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTOBJECT emr;
DWORD index;
int i;
@ -358,7 +355,7 @@ static BOOL EMFDC_SelectPen( DC_ATTR *dc_attr, HPEN pen )
goto found;
}
}
if((index = EMFDRV_FindObject( &emf->dev, pen )) != 0)
if((index = emfdc_find_object( emf, pen )) != 0)
goto found;
if (!(index = EMFDRV_CreatePenIndirect( emf, pen ))) return FALSE;
@ -405,7 +402,7 @@ static DWORD EMFDRV_CreatePalette( struct emf *emf, HPALETTE hPal )
*/
BOOL EMFDC_SelectPalette( DC_ATTR *dc_attr, HPALETTE palette )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTPALETTE emr;
DWORD index;
@ -415,7 +412,7 @@ BOOL EMFDC_SelectPalette( DC_ATTR *dc_attr, HPALETTE palette )
goto found;
}
if ((index = EMFDRV_FindObject( &emf->dev, palette )) != 0)
if ((index = emfdc_find_object( emf, palette )) != 0)
goto found;
if (!(index = EMFDRV_CreatePalette( emf, palette ))) return 0;
@ -449,7 +446,7 @@ BOOL EMFDC_SelectObject( DC_ATTR *dc_attr, HGDIOBJ obj )
*/
BOOL EMFDC_SetDCBrushColor( DC_ATTR *dc_attr, COLORREF color )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTOBJECT emr;
DWORD index;
@ -470,7 +467,7 @@ BOOL EMFDC_SetDCBrushColor( DC_ATTR *dc_attr, COLORREF color )
*/
BOOL EMFDC_SetDCPenColor( DC_ATTR *dc_attr, COLORREF color )
{
EMFDRV_PDEVICE *emf = dc_attr->emf;
struct emf *emf = dc_attr->emf;
EMRSELECTOBJECT emr;
DWORD index;
LOGPEN logpen = { PS_SOLID, { 0, 0 }, color };