winex11: Pass a generic PHYSDEV to all graphics entry points.
diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c index 6348165..9209227 100644 --- a/dlls/winex11.drv/bitblt.c +++ b/dlls/winex11.drv/bitblt.c
@@ -1408,8 +1408,9 @@ /*********************************************************************** * X11DRV_PatBlt */ -BOOL CDECL X11DRV_PatBlt( X11DRV_PDEVICE *physDev, INT x, INT y, INT width, INT height, DWORD rop ) +BOOL CDECL X11DRV_PatBlt( PHYSDEV dev, INT x, INT y, INT width, INT height, DWORD rop ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); BOOL usePat = (((rop >> 4) & 0x0f0000) != (rop & 0x0f0000)); const BYTE *opcode = BITBLT_Opcodes[(rop >> 16) & 0xff]; struct bitblt_coords dst; @@ -1485,11 +1486,12 @@ /*********************************************************************** * X11DRV_StretchBlt */ -BOOL CDECL X11DRV_StretchBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst, INT widthDst, INT heightDst, +BOOL CDECL X11DRV_StretchBlt( PHYSDEV dst_dev, INT xDst, INT yDst, INT widthDst, INT heightDst, PHYSDEV src_dev, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, DWORD rop ) { - X11DRV_PDEVICE *physDevSrc = (X11DRV_PDEVICE *)src_dev; /* FIXME: check that it's really an x11 dev */ + X11DRV_PDEVICE *physDevDst = get_x11drv_dev( dst_dev ); + X11DRV_PDEVICE *physDevSrc = get_x11drv_dev( src_dev ); /* FIXME: check that it's really an x11 dev */ BOOL usePat, useDst, destUsed, fStretch, fNullBrush; struct bitblt_coords src, dst; INT width, height; @@ -1685,11 +1687,12 @@ /*********************************************************************** * X11DRV_AlphaBlend */ -BOOL CDECL X11DRV_AlphaBlend( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst, INT widthDst, INT heightDst, +BOOL CDECL X11DRV_AlphaBlend( PHYSDEV dst_dev, INT xDst, INT yDst, INT widthDst, INT heightDst, PHYSDEV src_dev, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, BLENDFUNCTION blendfn ) { - X11DRV_PDEVICE *physDevSrc = (X11DRV_PDEVICE *)src_dev; /* FIXME: check that it's really an x11 dev */ + X11DRV_PDEVICE *physDevDst = get_x11drv_dev( dst_dev ); + X11DRV_PDEVICE *physDevSrc = get_x11drv_dev( src_dev ); /* FIXME: check that it's really an x11 dev */ struct bitblt_coords src, dst; src.x = xSrc;
diff --git a/dlls/winex11.drv/bitmap.c b/dlls/winex11.drv/bitmap.c index 4683fd9..08c359c 100644 --- a/dlls/winex11.drv/bitmap.c +++ b/dlls/winex11.drv/bitmap.c
@@ -87,8 +87,9 @@ /*********************************************************************** * SelectBitmap (X11DRV.@) */ -HBITMAP CDECL X11DRV_SelectBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap ) +HBITMAP CDECL X11DRV_SelectBitmap( PHYSDEV dev, HBITMAP hbitmap ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); X_PHYSBITMAP *physBitmap; BITMAP bitmap; @@ -131,7 +132,7 @@ * * Returns TRUE on success else FALSE */ -BOOL CDECL X11DRV_CreateBitmap( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, LPVOID bmBits ) +BOOL CDECL X11DRV_CreateBitmap( PHYSDEV dev, HBITMAP hbitmap, LPVOID bmBits ) { X_PHYSBITMAP *physBitmap; BITMAP bitmap;
diff --git a/dlls/winex11.drv/brush.c b/dlls/winex11.drv/brush.c index 61f1a86..ca8c5b7 100644 --- a/dlls/winex11.drv/brush.c +++ b/dlls/winex11.drv/brush.c
@@ -250,8 +250,9 @@ /*********************************************************************** * SelectBrush (X11DRV.@) */ -HBRUSH CDECL X11DRV_SelectBrush( X11DRV_PDEVICE *physDev, HBRUSH hbrush ) +HBRUSH CDECL X11DRV_SelectBrush( PHYSDEV dev, HBRUSH hbrush ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); LOGBRUSH logbrush; HBITMAP hBitmap; BITMAPINFO * bmpInfo; @@ -320,8 +321,10 @@ /*********************************************************************** * SetDCBrushColor (X11DRV.@) */ -COLORREF CDECL X11DRV_SetDCBrushColor( X11DRV_PDEVICE *physDev, COLORREF crColor ) +COLORREF CDECL X11DRV_SetDCBrushColor( PHYSDEV dev, COLORREF crColor ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if (GetCurrentObject(physDev->hdc, OBJ_BRUSH) == GetStockObject( DC_BRUSH )) BRUSH_SelectSolidBrush( physDev, crColor );
diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c index 226c416..eb716fc 100644 --- a/dlls/winex11.drv/dib.c +++ b/dlls/winex11.drv/dib.c
@@ -3842,11 +3842,12 @@ * X11DRV_SetDIBitsToDevice * */ -INT CDECL X11DRV_SetDIBitsToDevice( X11DRV_PDEVICE *physDev, INT xDest, INT yDest, DWORD cx, +INT CDECL X11DRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDest, DWORD cx, DWORD cy, INT xSrc, INT ySrc, UINT startscan, UINT lines, LPCVOID bits, const BITMAPINFO *info, UINT coloruse ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); X11DRV_DIB_IMAGEBITS_DESCR descr; INT result; LONG width, height; @@ -3970,9 +3971,10 @@ /*********************************************************************** * SetDIBits (X11DRV.@) */ -INT CDECL X11DRV_SetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT startscan, +INT CDECL X11DRV_SetDIBits( PHYSDEV dev, HBITMAP hbitmap, UINT startscan, UINT lines, LPCVOID bits, const BITMAPINFO *info, UINT coloruse ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); X_PHYSBITMAP *physBitmap = X11DRV_get_phys_bitmap( hbitmap ); X11DRV_DIB_IMAGEBITS_DESCR descr; DIBSECTION ds; @@ -4086,9 +4088,10 @@ /*********************************************************************** * GetDIBits (X11DRV.@) */ -INT CDECL X11DRV_GetDIBits( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, UINT startscan, UINT lines, +INT CDECL X11DRV_GetDIBits( PHYSDEV dev, HBITMAP hbitmap, UINT startscan, UINT lines, LPVOID bits, BITMAPINFO *info, UINT coloruse ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); X_PHYSBITMAP *physBitmap = X11DRV_get_phys_bitmap( hbitmap ); DIBSECTION dib; X11DRV_DIB_IMAGEBITS_DESCR descr; @@ -4750,9 +4753,10 @@ /*********************************************************************** * X11DRV_CreateDIBSection (X11DRV.@) */ -HBITMAP CDECL X11DRV_CreateDIBSection( X11DRV_PDEVICE *physDev, HBITMAP hbitmap, +HBITMAP CDECL X11DRV_CreateDIBSection( PHYSDEV dev, HBITMAP hbitmap, const BITMAPINFO *bmi, UINT usage ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); X_PHYSBITMAP *physBitmap; DIBSECTION dib; WORD bpp, compr; @@ -4920,8 +4924,9 @@ /*********************************************************************** * SetDIBColorTable (X11DRV.@) */ -UINT CDECL X11DRV_SetDIBColorTable( X11DRV_PDEVICE *physDev, UINT start, UINT count, const RGBQUAD *colors ) +UINT CDECL X11DRV_SetDIBColorTable( PHYSDEV dev, UINT start, UINT count, const RGBQUAD *colors ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); DIBSECTION dib; UINT ret = 0; X_PHYSBITMAP *physBitmap = physDev->bitmap;
diff --git a/dlls/winex11.drv/graphics.c b/dlls/winex11.drv/graphics.c index ac5ea62..459be9b 100644 --- a/dlls/winex11.drv/graphics.c +++ b/dlls/winex11.drv/graphics.c
@@ -188,8 +188,9 @@ /*********************************************************************** * X11DRV_SetDeviceClipping */ -void CDECL X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN vis_rgn, HRGN clip_rgn ) +void CDECL X11DRV_SetDeviceClipping( PHYSDEV dev, HRGN vis_rgn, HRGN clip_rgn ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); RGNDATA *data; CombineRgn( physDev->region, vis_rgn, clip_rgn, clip_rgn ? RGN_AND : RGN_COPY ); @@ -469,9 +470,9 @@ /*********************************************************************** * X11DRV_LineTo */ -BOOL CDECL -X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y ) +BOOL CDECL X11DRV_LineTo( PHYSDEV dev, INT x, INT y ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); POINT pt[2]; if (X11DRV_SetupGCForPen( physDev )) { @@ -504,11 +505,10 @@ * 'lines' is the number of lines to draw: 0 for Arc, 1 for Chord, 2 for Pie. * */ -static BOOL -X11DRV_DrawArc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, - INT bottom, INT xstart, INT ystart, - INT xend, INT yend, INT lines ) +static BOOL X11DRV_DrawArc( PHYSDEV dev, INT left, INT top, INT right, INT bottom, + INT xstart, INT ystart, INT xend, INT yend, INT lines ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT xcenter, ycenter, istart_angle, idiff_angle; INT width, oldwidth; double start_angle, end_angle; @@ -661,44 +661,38 @@ /*********************************************************************** * X11DRV_Arc */ -BOOL CDECL -X11DRV_Arc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom, - INT xstart, INT ystart, INT xend, INT yend ) +BOOL CDECL X11DRV_Arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom, + INT xstart, INT ystart, INT xend, INT yend ) { - return X11DRV_DrawArc( physDev, left, top, right, bottom, - xstart, ystart, xend, yend, 0 ); + return X11DRV_DrawArc( dev, left, top, right, bottom, xstart, ystart, xend, yend, 0 ); } /*********************************************************************** * X11DRV_Pie */ -BOOL CDECL -X11DRV_Pie( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom, - INT xstart, INT ystart, INT xend, INT yend ) +BOOL CDECL X11DRV_Pie( PHYSDEV dev, INT left, INT top, INT right, INT bottom, + INT xstart, INT ystart, INT xend, INT yend ) { - return X11DRV_DrawArc( physDev, left, top, right, bottom, - xstart, ystart, xend, yend, 2 ); + return X11DRV_DrawArc( dev, left, top, right, bottom, xstart, ystart, xend, yend, 2 ); } /*********************************************************************** * X11DRV_Chord */ -BOOL CDECL -X11DRV_Chord( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom, - INT xstart, INT ystart, INT xend, INT yend ) +BOOL CDECL X11DRV_Chord( PHYSDEV dev, INT left, INT top, INT right, INT bottom, + INT xstart, INT ystart, INT xend, INT yend ) { - return X11DRV_DrawArc( physDev, left, top, right, bottom, - xstart, ystart, xend, yend, 1 ); + return X11DRV_DrawArc( dev, left, top, right, bottom, xstart, ystart, xend, yend, 1 ); } /*********************************************************************** * X11DRV_Ellipse */ -BOOL CDECL -X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom ) +BOOL CDECL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth; BOOL update = FALSE; RECT rc = get_device_rect( physDev->hdc, left, top, right, bottom ); @@ -754,9 +748,9 @@ /*********************************************************************** * X11DRV_Rectangle */ -BOOL CDECL -X11DRV_Rectangle(X11DRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom) +BOOL CDECL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth, oldjoinstyle; BOOL update = FALSE; RECT rc = get_device_rect( physDev->hdc, left, top, right, bottom ); @@ -821,10 +815,10 @@ /*********************************************************************** * X11DRV_RoundRect */ -BOOL CDECL -X11DRV_RoundRect( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, - INT bottom, INT ell_width, INT ell_height ) +BOOL CDECL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, + INT ell_width, INT ell_height ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); INT width, oldwidth, oldendcap; BOOL update = FALSE; POINT pts[2]; @@ -1023,9 +1017,9 @@ /*********************************************************************** * X11DRV_SetPixel */ -COLORREF CDECL -X11DRV_SetPixel( X11DRV_PDEVICE *physDev, INT x, INT y, COLORREF color ) +COLORREF CDECL X11DRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); unsigned long pixel; POINT pt; @@ -1055,10 +1049,10 @@ /*********************************************************************** * X11DRV_GetPixel */ -COLORREF CDECL -X11DRV_GetPixel( X11DRV_PDEVICE *physDev, INT x, INT y ) +COLORREF CDECL X11DRV_GetPixel( PHYSDEV dev, INT x, INT y ) { static Pixmap pixmap = 0; + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); XImage * image; int pixel; POINT pt; @@ -1107,9 +1101,10 @@ /*********************************************************************** * X11DRV_PaintRgn */ -BOOL CDECL -X11DRV_PaintRgn( X11DRV_PDEVICE *physDev, HRGN hrgn ) +BOOL CDECL X11DRV_PaintRgn( PHYSDEV dev, HRGN hrgn ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if (X11DRV_SetupGCForBrush( physDev )) { unsigned int i; @@ -1137,9 +1132,9 @@ /********************************************************************** * X11DRV_Polyline */ -BOOL CDECL -X11DRV_Polyline( X11DRV_PDEVICE *physDev, const POINT* pt, INT count ) +BOOL CDECL X11DRV_Polyline( PHYSDEV dev, const POINT* pt, INT count ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); int i; XPoint *points; @@ -1174,10 +1169,10 @@ /********************************************************************** * X11DRV_Polygon */ -BOOL CDECL -X11DRV_Polygon( X11DRV_PDEVICE *physDev, const POINT* pt, INT count ) +BOOL CDECL X11DRV_Polygon( PHYSDEV dev, const POINT* pt, INT count ) { - register int i; + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + int i; XPoint *points; BOOL update = FALSE; @@ -1226,16 +1221,16 @@ /********************************************************************** * X11DRV_PolyPolygon */ -BOOL CDECL -X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt, const INT* counts, UINT polygons) +BOOL CDECL X11DRV_PolyPolygon( PHYSDEV dev, const POINT* pt, const INT* counts, UINT polygons ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); HRGN hrgn; /* FIXME: The points should be converted to device coords before */ /* creating the region. */ hrgn = CreatePolyPolygonRgn( pt, counts, polygons, GetPolyFillMode( physDev->hdc ) ); - X11DRV_PaintRgn( physDev, hrgn ); + X11DRV_PaintRgn( dev, hrgn ); DeleteObject( hrgn ); /* Draw the outline of the polygons */ @@ -1284,9 +1279,10 @@ /********************************************************************** * X11DRV_PolyPolyline */ -BOOL CDECL -X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt, const DWORD* counts, DWORD polylines ) +BOOL CDECL X11DRV_PolyPolyline( PHYSDEV dev, const POINT* pt, const DWORD* counts, DWORD polylines ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if (X11DRV_SetupGCForPen ( physDev )) { unsigned int i, j, max = 0; @@ -1403,10 +1399,9 @@ /********************************************************************** * X11DRV_ExtFloodFill */ -BOOL CDECL -X11DRV_ExtFloodFill( X11DRV_PDEVICE *physDev, INT x, INT y, COLORREF color, - UINT fillType ) +BOOL CDECL X11DRV_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT fillType ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); XImage *image; RECT rect; POINT pt; @@ -1457,9 +1452,10 @@ /********************************************************************** * X11DRV_SetBkColor */ -COLORREF CDECL -X11DRV_SetBkColor( X11DRV_PDEVICE *physDev, COLORREF color ) +COLORREF CDECL X11DRV_SetBkColor( PHYSDEV dev, COLORREF color ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + physDev->backgroundPixel = X11DRV_PALETTE_ToPhysical( physDev, color ); return color; } @@ -1467,9 +1463,10 @@ /********************************************************************** * X11DRV_SetTextColor */ -COLORREF CDECL -X11DRV_SetTextColor( X11DRV_PDEVICE *physDev, COLORREF color ) +COLORREF CDECL X11DRV_SetTextColor( PHYSDEV dev, COLORREF color ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + physDev->textPixel = X11DRV_PALETTE_ToPhysical( physDev, color ); return color; } @@ -1519,7 +1516,7 @@ /*********************************************************************** * GetICMProfile (X11DRV.@) */ -BOOL CDECL X11DRV_GetICMProfile( X11DRV_PDEVICE *physDev, LPDWORD size, LPWSTR filename ) +BOOL CDECL X11DRV_GetICMProfile( PHYSDEV dev, LPDWORD size, LPWSTR filename ) { static const WCHAR srgb[] = {'s','R','G','B',' ','C','o','l','o','r',' ','S','p','a','c','e',' ', @@ -1593,8 +1590,9 @@ /*********************************************************************** * EnumICMProfiles (X11DRV.@) */ -INT CDECL X11DRV_EnumICMProfiles( X11DRV_PDEVICE *physDev, ICMENUMPROCW proc, LPARAM lparam ) +INT CDECL X11DRV_EnumICMProfiles( PHYSDEV dev, ICMENUMPROCW proc, LPARAM lparam ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); HKEY hkey; DWORD len_sysdir, len_path, len, index = 0; WCHAR sysdir[MAX_PATH], *profile;
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c index b9c1c1c..00d1edd 100644 --- a/dlls/winex11.drv/init.c +++ b/dlls/winex11.drv/init.c
@@ -167,8 +167,10 @@ /********************************************************************** * X11DRV_DeleteDC */ -BOOL CDECL X11DRV_DeleteDC( X11DRV_PDEVICE *physDev ) +BOOL CDECL X11DRV_DeleteDC( PHYSDEV dev ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if(physDev->xrender) X11DRV_XRender_DeleteDC( physDev ); DeleteObject( physDev->region ); @@ -183,8 +185,10 @@ /*********************************************************************** * GetDeviceCaps (X11DRV.@) */ -INT CDECL X11DRV_GetDeviceCaps( X11DRV_PDEVICE *physDev, INT cap ) +INT CDECL X11DRV_GetDeviceCaps( PHYSDEV dev, INT cap ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + switch(cap) { case DRIVERVERSION: @@ -284,9 +288,11 @@ /********************************************************************** * ExtEscape (X11DRV.@) */ -INT CDECL X11DRV_ExtEscape( X11DRV_PDEVICE *physDev, INT escape, INT in_count, LPCVOID in_data, +INT CDECL X11DRV_ExtEscape( PHYSDEV dev, INT escape, INT in_count, LPCVOID in_data, INT out_count, LPVOID out_data ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + switch(escape) { case QUERYESCSUPPORT:
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index feead5f..4e9d14a 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c
@@ -1199,8 +1199,9 @@ * * Equivalent to glXChooseVisual. */ -int CDECL X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev, - const PIXELFORMATDESCRIPTOR *ppfd) { +int CDECL X11DRV_ChoosePixelFormat(PHYSDEV dev, const PIXELFORMATDESCRIPTOR *ppfd) +{ + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); WineGLPixelFormat *list; int onscreen_size; int ret = 0; @@ -1448,10 +1449,10 @@ * * Get the pixel-format descriptor associated to the given id */ -int CDECL X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev, - int iPixelFormat, - UINT nBytes, - PIXELFORMATDESCRIPTOR *ppfd) { +int CDECL X11DRV_DescribePixelFormat(PHYSDEV dev, int iPixelFormat, + UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) +{ + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); /*XVisualInfo *vis;*/ int value; int rb,gb,bb,ab; @@ -1592,7 +1593,9 @@ * * Get the pixel-format id used by this DC */ -int CDECL X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev) { +int CDECL X11DRV_GetPixelFormat(PHYSDEV dev) +{ + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); WineGLPixelFormat *fmt; int tmp; TRACE("(%p)\n", physDev); @@ -1701,9 +1704,10 @@ * * Set the pixel-format id used by this DC */ -BOOL CDECL X11DRV_SetPixelFormat(X11DRV_PDEVICE *physDev, - int iPixelFormat, - const PIXELFORMATDESCRIPTOR *ppfd) { +BOOL CDECL X11DRV_SetPixelFormat(PHYSDEV dev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) +{ + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + TRACE("(%p,%d,%p)\n", physDev, iPixelFormat, ppfd); if (!has_opengl()) return FALSE; @@ -1738,8 +1742,9 @@ * * For OpenGL32 wglCreateContext. */ -HGLRC CDECL X11DRV_wglCreateContext(X11DRV_PDEVICE *physDev) +HGLRC CDECL X11DRV_wglCreateContext(PHYSDEV dev) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); Wine_GLContext *ret; WineGLPixelFormat *fmt; int hdcPF = physDev->current_pf; @@ -1877,7 +1882,9 @@ * * For OpenGL32 wglMakeCurrent. */ -BOOL CDECL X11DRV_wglMakeCurrent(X11DRV_PDEVICE *physDev, HGLRC hglrc) { +BOOL CDECL X11DRV_wglMakeCurrent(PHYSDEV dev, HGLRC hglrc) +{ + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); BOOL ret; HDC hdc = physDev->hdc; DWORD type = GetObjectType(hdc); @@ -1955,8 +1962,10 @@ * * For OpenGL32 wglMakeContextCurrentARB */ -BOOL CDECL X11DRV_wglMakeContextCurrentARB(X11DRV_PDEVICE* pDrawDev, X11DRV_PDEVICE* pReadDev, HGLRC hglrc) +BOOL CDECL X11DRV_wglMakeContextCurrentARB( PHYSDEV draw_dev, PHYSDEV read_dev, HGLRC hglrc ) { + X11DRV_PDEVICE *pDrawDev = get_x11drv_dev( draw_dev ); + X11DRV_PDEVICE *pReadDev = get_x11drv_dev( read_dev ); BOOL ret; TRACE("(%p,%p,%p)\n", pDrawDev, pReadDev, hglrc); @@ -2185,8 +2194,9 @@ * * For OpenGL32 wglUseFontBitmapsA. */ -BOOL CDECL X11DRV_wglUseFontBitmapsA(X11DRV_PDEVICE *physDev, DWORD first, DWORD count, DWORD listBase) +BOOL CDECL X11DRV_wglUseFontBitmapsA(PHYSDEV dev, DWORD first, DWORD count, DWORD listBase) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); Font fid = physDev->font; TRACE("(%p, %d, %d, %d) using font %ld\n", physDev->hdc, first, count, listBase, fid); @@ -2209,8 +2219,9 @@ * * For OpenGL32 wglUseFontBitmapsW. */ -BOOL CDECL X11DRV_wglUseFontBitmapsW(X11DRV_PDEVICE *physDev, DWORD first, DWORD count, DWORD listBase) +BOOL CDECL X11DRV_wglUseFontBitmapsW(PHYSDEV dev, DWORD first, DWORD count, DWORD listBase) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); Font fid = physDev->font; TRACE("(%p, %d, %d, %d) using font %ld\n", physDev->hdc, first, count, listBase, fid); @@ -2322,8 +2333,9 @@ * * WGL_ARB_create_context: wglCreateContextAttribsARB */ -HGLRC CDECL X11DRV_wglCreateContextAttribsARB(X11DRV_PDEVICE *physDev, HGLRC hShareContext, const int* attribList) +HGLRC CDECL X11DRV_wglCreateContextAttribsARB(PHYSDEV dev, HGLRC hShareContext, const int* attribList) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); Wine_GLContext *ret; WineGLPixelFormat *fmt; int hdcPF = physDev->current_pf; @@ -2672,9 +2684,11 @@ * Gdi32 implements the part of this function which creates a device context. * This part associates the physDev with the X drawable of the pbuffer. */ -HDC CDECL X11DRV_wglGetPbufferDCARB(X11DRV_PDEVICE *physDev, HPBUFFERARB hPbuffer) +HDC CDECL X11DRV_wglGetPbufferDCARB(PHYSDEV dev, HPBUFFERARB hPbuffer) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); Wine_GLPBuffer* object = hPbuffer; + if (NULL == object) { SetLastError(ERROR_INVALID_HANDLE); return NULL; @@ -3515,8 +3529,10 @@ * WGL_WINE_pixel_format_passthrough: wglSetPixelFormatWINE * This is a WINE-specific wglSetPixelFormat which can set the pixel format multiple times. */ -BOOL CDECL X11DRV_wglSetPixelFormatWINE(X11DRV_PDEVICE *physDev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) +BOOL CDECL X11DRV_wglSetPixelFormatWINE(PHYSDEV dev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + TRACE("(%p,%d,%p)\n", physDev, iPixelFormat, ppfd); if (!has_opengl()) return FALSE; @@ -3809,8 +3825,9 @@ * * Swap the buffers of this DC */ -BOOL CDECL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev) +BOOL CDECL X11DRV_SwapBuffers(PHYSDEV dev) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); GLXDrawable drawable; Wine_GLContext *ctx = NtCurrentTeb()->glContext; @@ -3927,8 +3944,8 @@ /*********************************************************************** * ChoosePixelFormat (X11DRV.@) */ -int CDECL X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev, - const PIXELFORMATDESCRIPTOR *ppfd) { +int CDECL X11DRV_ChoosePixelFormat(PHYSDEV dev, const PIXELFORMATDESCRIPTOR *ppfd) +{ opengl_error(); return 0; } @@ -3936,10 +3953,9 @@ /*********************************************************************** * DescribePixelFormat (X11DRV.@) */ -int CDECL X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev, - int iPixelFormat, - UINT nBytes, - PIXELFORMATDESCRIPTOR *ppfd) { +int CDECL X11DRV_DescribePixelFormat(PHYSDEV dev, int iPixelFormat, + UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) +{ opengl_error(); return 0; } @@ -3947,7 +3963,8 @@ /*********************************************************************** * GetPixelFormat (X11DRV.@) */ -int CDECL X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev) { +int CDECL X11DRV_GetPixelFormat(PHYSDEV dev) +{ opengl_error(); return 0; } @@ -3955,9 +3972,8 @@ /*********************************************************************** * SetPixelFormat (X11DRV.@) */ -BOOL CDECL X11DRV_SetPixelFormat(X11DRV_PDEVICE *physDev, - int iPixelFormat, - const PIXELFORMATDESCRIPTOR *ppfd) { +BOOL CDECL X11DRV_SetPixelFormat(PHYSDEV dev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) +{ opengl_error(); return FALSE; } @@ -3965,7 +3981,8 @@ /*********************************************************************** * SwapBuffers (X11DRV.@) */ -BOOL CDECL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev) { +BOOL CDECL X11DRV_SwapBuffers(PHYSDEV dev) +{ opengl_error(); return FALSE; } @@ -3985,7 +4002,8 @@ * * For OpenGL32 wglCreateContext. */ -HGLRC CDECL X11DRV_wglCreateContext(X11DRV_PDEVICE *physDev) { +HGLRC CDECL X11DRV_wglCreateContext(PHYSDEV dev) +{ opengl_error(); return NULL; } @@ -3995,7 +4013,7 @@ * * WGL_ARB_create_context: wglCreateContextAttribsARB */ -HGLRC CDECL X11DRV_wglCreateContextAttribsARB(X11DRV_PDEVICE *physDev, HGLRC hShareContext, const int* attribList) +HGLRC CDECL X11DRV_wglCreateContextAttribsARB(PHYSDEV dev, HGLRC hShareContext, const int* attribList) { opengl_error(); return NULL; @@ -4021,13 +4039,14 @@ return NULL; } -HDC CDECL X11DRV_wglGetPbufferDCARB(X11DRV_PDEVICE *hDevice, void *hPbuffer) +HDC CDECL X11DRV_wglGetPbufferDCARB(PHYSDEV dev, void *hPbuffer) { opengl_error(); return NULL; } -BOOL CDECL X11DRV_wglMakeContextCurrentARB(X11DRV_PDEVICE* hDrawDev, X11DRV_PDEVICE* hReadDev, HGLRC hglrc) { +BOOL CDECL X11DRV_wglMakeContextCurrentARB(PHYSDEV draw_dev, PHYSDEV read_dev, HGLRC hglrc) +{ opengl_error(); return FALSE; } @@ -4037,7 +4056,8 @@ * * For OpenGL32 wglMakeCurrent. */ -BOOL CDECL X11DRV_wglMakeCurrent(X11DRV_PDEVICE *physDev, HGLRC hglrc) { +BOOL CDECL X11DRV_wglMakeCurrent(PHYSDEV dev, HGLRC hglrc) +{ opengl_error(); return FALSE; } @@ -4057,7 +4077,7 @@ * * For OpenGL32 wglUseFontBitmapsA. */ -BOOL CDECL X11DRV_wglUseFontBitmapsA(X11DRV_PDEVICE *physDev, DWORD first, DWORD count, DWORD listBase) +BOOL CDECL X11DRV_wglUseFontBitmapsA(PHYSDEV dev, DWORD first, DWORD count, DWORD listBase) { opengl_error(); return FALSE; @@ -4068,7 +4088,7 @@ * * For OpenGL32 wglUseFontBitmapsW. */ -BOOL CDECL X11DRV_wglUseFontBitmapsW(X11DRV_PDEVICE *physDev, DWORD first, DWORD count, DWORD listBase) +BOOL CDECL X11DRV_wglUseFontBitmapsW(PHYSDEV dev, DWORD first, DWORD count, DWORD listBase) { opengl_error(); return FALSE; @@ -4080,7 +4100,7 @@ * WGL_WINE_pixel_format_passthrough: wglSetPixelFormatWINE * This is a WINE-specific wglSetPixelFormat which can set the pixel format multiple times. */ -BOOL CDECL X11DRV_wglSetPixelFormatWINE(X11DRV_PDEVICE *physDev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) +BOOL CDECL X11DRV_wglSetPixelFormatWINE(PHYSDEV dev, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd) { opengl_error(); return FALSE;
diff --git a/dlls/winex11.drv/palette.c b/dlls/winex11.drv/palette.c index a7a6b35..3b0097f 100644 --- a/dlls/winex11.drv/palette.c +++ b/dlls/winex11.drv/palette.c
@@ -1213,8 +1213,9 @@ /*********************************************************************** * RealizePalette (X11DRV.@) */ -UINT X11DRV_RealizePalette( X11DRV_PDEVICE *physDev, HPALETTE hpal, BOOL primary ) +UINT CDECL X11DRV_RealizePalette( PHYSDEV dev, HPALETTE hpal, BOOL primary ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); char flag; int index; UINT i, iRemapped = 0; @@ -1331,7 +1332,7 @@ /*********************************************************************** * UnrealizePalette (X11DRV.@) */ -BOOL X11DRV_UnrealizePalette( HPALETTE hpal ) +BOOL CDECL X11DRV_UnrealizePalette( HPALETTE hpal ) { int *mapping = palette_get_mapping( hpal ); @@ -1349,8 +1350,7 @@ /*********************************************************************** * GetSystemPaletteEntries (X11DRV.@) */ -UINT X11DRV_GetSystemPaletteEntries( X11DRV_PDEVICE *physDev, UINT start, UINT count, - LPPALETTEENTRY entries ) +UINT CDECL X11DRV_GetSystemPaletteEntries( PHYSDEV dev, UINT start, UINT count, LPPALETTEENTRY entries ) { UINT i; @@ -1375,8 +1375,9 @@ /*********************************************************************** * GetNearestColor (X11DRV.@) */ -COLORREF X11DRV_GetNearestColor( X11DRV_PDEVICE *physDev, COLORREF color ) +COLORREF CDECL X11DRV_GetNearestColor( PHYSDEV dev, COLORREF color ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); unsigned char spec_type = color >> 24; COLORREF nearest; @@ -1417,8 +1418,9 @@ /*********************************************************************** * RealizeDefaultPalette (X11DRV.@) */ -UINT X11DRV_RealizeDefaultPalette( X11DRV_PDEVICE *physDev ) +UINT CDECL X11DRV_RealizeDefaultPalette( PHYSDEV dev ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); UINT ret = 0; if (palette_size && GetObjectType(physDev->hdc) != OBJ_MEMDC)
diff --git a/dlls/winex11.drv/pen.c b/dlls/winex11.drv/pen.c index 49fe74c..188a406 100644 --- a/dlls/winex11.drv/pen.c +++ b/dlls/winex11.drv/pen.c
@@ -28,7 +28,7 @@ /*********************************************************************** * SelectPen (X11DRV.@) */ -HPEN CDECL X11DRV_SelectPen( X11DRV_PDEVICE *physDev, HPEN hpen ) +HPEN CDECL X11DRV_SelectPen( PHYSDEV dev, HPEN hpen ) { static const char PEN_dash[] = { 16,8 }; static const char PEN_dot[] = { 4,4 }; @@ -39,6 +39,7 @@ static const char EXTPEN_dot[] = { 1,1 }; static const char EXTPEN_dashdot[] = { 3,1,1,1 }; static const char EXTPEN_dashdotdot[] = { 3,1,1,1,1,1 }; + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); LOGPEN logpen; int i; @@ -126,8 +127,10 @@ /*********************************************************************** * SetDCPenColor (X11DRV.@) */ -COLORREF CDECL X11DRV_SetDCPenColor( X11DRV_PDEVICE *physDev, COLORREF crColor ) +COLORREF CDECL X11DRV_SetDCPenColor( PHYSDEV dev, COLORREF crColor ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if (GetCurrentObject(physDev->hdc, OBJ_PEN) == GetStockObject( DC_PEN )) physDev->pen.pixel = X11DRV_PALETTE_ToPhysical( physDev, crColor );
diff --git a/dlls/winex11.drv/text.c b/dlls/winex11.drv/text.c index 1431bc1..a468879 100644 --- a/dlls/winex11.drv/text.c +++ b/dlls/winex11.drv/text.c
@@ -37,11 +37,10 @@ /*********************************************************************** * X11DRV_ExtTextOut */ -BOOL CDECL -X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flags, - const RECT *lprect, LPCWSTR wstr, UINT count, - const INT *lpDx ) +BOOL CDECL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, + const RECT *lprect, LPCWSTR wstr, UINT count, const INT *lpDx ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); unsigned int i; fontObject* pfo; XFontStruct* font; @@ -92,7 +91,7 @@ /* make a copy of the current device region */ saved_region = CreateRectRgn( 0, 0, 0, 0 ); CombineRgn( saved_region, physDev->region, 0, RGN_COPY ); - X11DRV_SetDeviceClipping( physDev, saved_region, clip_region ); + X11DRV_SetDeviceClipping( dev, saved_region, clip_region ); DeleteObject( clip_region ); } @@ -181,7 +180,7 @@ if (flags & ETO_CLIPPED) { /* restore the device region */ - X11DRV_SetDeviceClipping( physDev, saved_region, 0 ); + X11DRV_SetDeviceClipping( dev, saved_region, 0 ); DeleteObject( saved_region ); } goto END; @@ -199,9 +198,10 @@ /*********************************************************************** * X11DRV_GetTextExtentExPoint */ -BOOL CDECL X11DRV_GetTextExtentExPoint( X11DRV_PDEVICE *physDev, LPCWSTR str, INT count, +BOOL CDECL X11DRV_GetTextExtentExPoint( PHYSDEV dev, LPCWSTR str, INT count, INT maxExt, LPINT lpnFit, LPINT alpDx, LPSIZE size ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); fontObject* pfo = XFONT_GetFontObject( physDev->font ); TRACE("%s %d\n", debugstr_wn(str,count), count);
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 21411f5..8c28fd3 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h
@@ -169,6 +169,11 @@ struct xrender_info *xrender; } X11DRV_PDEVICE; +static inline X11DRV_PDEVICE *get_x11drv_dev( PHYSDEV dev ) +{ + return (X11DRV_PDEVICE *)dev; +} + struct bitblt_coords { int x; /* original position and width */ @@ -187,66 +192,66 @@ /* Wine driver X11 functions */ -extern BOOL CDECL X11DRV_EnumDeviceFonts( X11DRV_PDEVICE *physDev, LPLOGFONTW plf, +extern BOOL CDECL X11DRV_EnumDeviceFonts( PHYSDEV dev, LPLOGFONTW plf, FONTENUMPROCW dfeproc, LPARAM lp ) DECLSPEC_HIDDEN; extern LONG CDECL X11DRV_GetBitmapBits( HBITMAP hbitmap, void *bits, LONG count ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_GetCharWidth( X11DRV_PDEVICE *physDev, UINT firstChar, +extern BOOL CDECL X11DRV_GetCharWidth( PHYSDEV dev, UINT firstChar, UINT lastChar, LPINT buffer ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_GetTextExtentExPoint( X11DRV_PDEVICE *physDev, LPCWSTR str, INT count, +extern BOOL CDECL X11DRV_GetTextExtentExPoint( PHYSDEV dev, LPCWSTR str, INT count, INT maxExt, LPINT lpnFit, LPINT alpDx, LPSIZE size ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_GetTextMetrics(X11DRV_PDEVICE *physDev, TEXTMETRICW *metrics) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_LineTo( X11DRV_PDEVICE *physDev, INT x, INT y) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Arc( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, +extern BOOL CDECL X11DRV_GetTextMetrics(PHYSDEV dev, TEXTMETRICW *metrics) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_LineTo( PHYSDEV dev, INT x, INT y) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_Arc( PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Pie( X11DRV_PDEVICE *physDev, INT left, INT top, INT right, +extern BOOL CDECL X11DRV_Pie( PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Chord( X11DRV_PDEVICE *physDev, INT left, INT top, +extern BOOL CDECL X11DRV_Chord( PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Ellipse( X11DRV_PDEVICE *physDev, INT left, INT top, +extern BOOL CDECL X11DRV_Ellipse( PHYSDEV dev, INT left, INT top, INT right, INT bottom ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Rectangle(X11DRV_PDEVICE *physDev, INT left, INT top, +extern BOOL CDECL X11DRV_Rectangle(PHYSDEV dev, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_RoundRect( X11DRV_PDEVICE *physDev, INT left, INT top, +extern BOOL CDECL X11DRV_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height ) DECLSPEC_HIDDEN; -extern COLORREF CDECL X11DRV_SetPixel( X11DRV_PDEVICE *physDev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN; -extern COLORREF CDECL X11DRV_GetPixel( X11DRV_PDEVICE *physDev, INT x, INT y) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_PaintRgn( X11DRV_PDEVICE *physDev, HRGN hrgn ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Polyline( X11DRV_PDEVICE *physDev,const POINT* pt,INT count) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_Polygon( X11DRV_PDEVICE *physDev, const POINT* pt, INT count ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_PolyPolygon( X11DRV_PDEVICE *physDev, const POINT* pt, +extern COLORREF CDECL X11DRV_SetPixel( PHYSDEV dev, INT x, INT y, COLORREF color ) DECLSPEC_HIDDEN; +extern COLORREF CDECL X11DRV_GetPixel( PHYSDEV dev, INT x, INT y) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_PaintRgn( PHYSDEV dev, HRGN hrgn ) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_Polyline( PHYSDEV dev,const POINT* pt,INT count) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_Polygon( PHYSDEV dev, const POINT* pt, INT count ) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_PolyPolygon( PHYSDEV dev, const POINT* pt, const INT* counts, UINT polygons) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_PolyPolyline( X11DRV_PDEVICE *physDev, const POINT* pt, +extern BOOL CDECL X11DRV_PolyPolyline( PHYSDEV dev, const POINT* pt, const DWORD* counts, DWORD polylines) DECLSPEC_HIDDEN; -extern COLORREF CDECL X11DRV_SetBkColor( X11DRV_PDEVICE *physDev, COLORREF color ) DECLSPEC_HIDDEN; -extern COLORREF CDECL X11DRV_SetTextColor( X11DRV_PDEVICE *physDev, COLORREF color ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_ExtFloodFill( X11DRV_PDEVICE *physDev, INT x, INT y, +extern COLORREF CDECL X11DRV_SetBkColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN; +extern COLORREF CDECL X11DRV_SetTextColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_ExtFloodFill( PHYSDEV dev, INT x, INT y, COLORREF color, UINT fillType ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, +extern BOOL CDECL X11DRV_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str, UINT count, const INT *lpDx ) DECLSPEC_HIDDEN; extern LONG CDECL X11DRV_SetBitmapBits( HBITMAP hbitmap, const void *bits, LONG count ) DECLSPEC_HIDDEN; -extern void CDECL X11DRV_SetDeviceClipping( X11DRV_PDEVICE *physDev, HRGN vis_rgn, HRGN clip_rgn ) DECLSPEC_HIDDEN; -extern INT CDECL X11DRV_SetDIBitsToDevice( X11DRV_PDEVICE *physDev, INT xDest, +extern void CDECL X11DRV_SetDeviceClipping( PHYSDEV dev, HRGN vis_rgn, HRGN clip_rgn ) DECLSPEC_HIDDEN; +extern INT CDECL X11DRV_SetDIBitsToDevice( PHYSDEV dev, INT xDest, INT yDest, DWORD cx, DWORD cy, INT xSrc, INT ySrc, UINT startscan, UINT lines, LPCVOID bits, const BITMAPINFO *info, UINT coloruse ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_GetDeviceGammaRamp( X11DRV_PDEVICE *physDev, LPVOID ramp ) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_SetDeviceGammaRamp( X11DRV_PDEVICE *physDev, LPVOID ramp ) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_GetDeviceGammaRamp( PHYSDEV dev, LPVOID ramp ) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_SetDeviceGammaRamp( PHYSDEV dev, LPVOID ramp ) DECLSPEC_HIDDEN; /* OpenGL / X11 driver functions */ -extern int CDECL X11DRV_ChoosePixelFormat(X11DRV_PDEVICE *physDev, +extern int CDECL X11DRV_ChoosePixelFormat(PHYSDEV dev, const PIXELFORMATDESCRIPTOR *pppfd) DECLSPEC_HIDDEN; -extern int CDECL X11DRV_DescribePixelFormat(X11DRV_PDEVICE *physDev, +extern int CDECL X11DRV_DescribePixelFormat(PHYSDEV dev, int iPixelFormat, UINT nBytes, PIXELFORMATDESCRIPTOR *ppfd) DECLSPEC_HIDDEN; -extern int CDECL X11DRV_GetPixelFormat(X11DRV_PDEVICE *physDev) DECLSPEC_HIDDEN; -extern BOOL CDECL X11DRV_SwapBuffers(X11DRV_PDEVICE *physDev) DECLSPEC_HIDDEN; +extern int CDECL X11DRV_GetPixelFormat(PHYSDEV dev) DECLSPEC_HIDDEN; +extern BOOL CDECL X11DRV_SwapBuffers(PHYSDEV dev) DECLSPEC_HIDDEN; extern void X11DRV_OpenGL_Cleanup(void) DECLSPEC_HIDDEN; /* X11 driver internal functions */
diff --git a/dlls/winex11.drv/xfont.c b/dlls/winex11.drv/xfont.c index 307ee09..342acb9 100644 --- a/dlls/winex11.drv/xfont.c +++ b/dlls/winex11.drv/xfont.c
@@ -3226,8 +3226,9 @@ /*********************************************************************** * SelectFont (X11DRV.@) */ -HFONT CDECL X11DRV_SelectFont( X11DRV_PDEVICE *physDev, HFONT hfont, HANDLE gdiFont ) +HFONT CDECL X11DRV_SelectFont( PHYSDEV dev, HFONT hfont, HANDLE gdiFont ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); LOGFONTW logfont; LOGFONT16 lf; @@ -3319,9 +3320,10 @@ * * X11DRV_EnumDeviceFonts */ -BOOL CDECL X11DRV_EnumDeviceFonts( X11DRV_PDEVICE *physDev, LPLOGFONTW plf, +BOOL CDECL X11DRV_EnumDeviceFonts( PHYSDEV dev, LPLOGFONTW plf, FONTENUMPROCW proc, LPARAM lp ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); ENUMLOGFONTEXW lf; NEWTEXTMETRICEXW tm; fontResource* pfr = fontList; @@ -3384,8 +3386,10 @@ /*********************************************************************** * X11DRV_GetTextMetrics */ -BOOL CDECL X11DRV_GetTextMetrics(X11DRV_PDEVICE *physDev, TEXTMETRICW *metrics) +BOOL CDECL X11DRV_GetTextMetrics(PHYSDEV dev, TEXTMETRICW *metrics) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); + if( CHECK_PFONT(physDev->font) ) { fontObject* pfo = __PFONT(physDev->font); @@ -3399,9 +3403,9 @@ /*********************************************************************** * X11DRV_GetCharWidth */ -BOOL CDECL X11DRV_GetCharWidth( X11DRV_PDEVICE *physDev, UINT firstChar, UINT lastChar, - LPINT buffer ) +BOOL CDECL X11DRV_GetCharWidth( PHYSDEV dev, UINT firstChar, UINT lastChar, LPINT buffer ) { + X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); fontObject* pfo = XFONT_GetFontObject( physDev->font ); if( pfo )
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c index 3a4c250..f21492f 100644 --- a/dlls/winex11.drv/xrender.c +++ b/dlls/winex11.drv/xrender.c
@@ -1872,7 +1872,7 @@ /* make a copy of the current device region */ saved_region = CreateRectRgn( 0, 0, 0, 0 ); CombineRgn( saved_region, physDev->region, 0, RGN_COPY ); - X11DRV_SetDeviceClipping( physDev, saved_region, clip_region ); + X11DRV_SetDeviceClipping( &physDev->dev, saved_region, clip_region ); DeleteObject( clip_region ); } @@ -2134,7 +2134,7 @@ if (flags & ETO_CLIPPED) { /* restore the device region */ - X11DRV_SetDeviceClipping( physDev, saved_region, 0 ); + X11DRV_SetDeviceClipping( &physDev->dev, saved_region, 0 ); DeleteObject( saved_region ); }
diff --git a/dlls/winex11.drv/xvidmode.c b/dlls/winex11.drv/xvidmode.c index abc8a30..fe62fb0 100644 --- a/dlls/winex11.drv/xvidmode.c +++ b/dlls/winex11.drv/xvidmode.c
@@ -426,7 +426,7 @@ * the stuff in graphics/x11drv/ has been moved to dlls/x11drv, so that * they can include xvidmode.h directly */ -BOOL CDECL X11DRV_GetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp) +BOOL CDECL X11DRV_GetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp) { #ifdef SONAME_LIBXXF86VM return X11DRV_XF86VM_GetGammaRamp(ramp); @@ -442,7 +442,7 @@ * the stuff in graphics/x11drv/ has been moved to dlls/x11drv, so that * they can include xvidmode.h directly */ -BOOL CDECL X11DRV_SetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp) +BOOL CDECL X11DRV_SetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp) { #ifdef SONAME_LIBXXF86VM return X11DRV_XF86VM_SetGammaRamp(ramp);