gdi32: Disable anti-aliasing when necessary in the various drivers.
This commit is contained in:
parent
ccc034c27e
commit
9cdb0e1ca6
|
@ -484,7 +484,7 @@ const struct gdi_dc_funcs dib_driver =
|
|||
dibdrv_SelectBitmap, /* pSelectBitmap */
|
||||
dibdrv_SelectBrush, /* pSelectBrush */
|
||||
NULL, /* pSelectClipPath */
|
||||
NULL, /* pSelectFont */
|
||||
dibdrv_SelectFont, /* pSelectFont */
|
||||
NULL, /* pSelectPalette */
|
||||
dibdrv_SelectPen, /* pSelectPen */
|
||||
NULL, /* pSetArcDirection */
|
||||
|
|
|
@ -141,6 +141,7 @@ extern BOOL dibdrv_Rectangle( PHYSDEV dev, INT left, INT top, INT right, INT
|
|||
extern BOOL dibdrv_RoundRect( PHYSDEV dev, INT left, INT top, INT right, INT bottom,
|
||||
INT ellipse_width, INT ellipse_height ) DECLSPEC_HIDDEN;
|
||||
extern HBRUSH dibdrv_SelectBrush( PHYSDEV dev, HBRUSH hbrush, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN;
|
||||
extern HFONT dibdrv_SelectFont( PHYSDEV dev, HFONT font, UINT *aa_flags ) DECLSPEC_HIDDEN;
|
||||
extern HPEN dibdrv_SelectPen( PHYSDEV dev, HPEN hpen, const struct brush_pattern *pattern ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF dibdrv_SetDCBrushColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
extern COLORREF dibdrv_SetDCPenColor( PHYSDEV dev, COLORREF color ) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -711,6 +711,19 @@ done:
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* dibdrv_SelectFont
|
||||
*/
|
||||
HFONT dibdrv_SelectFont( PHYSDEV dev, HFONT font, UINT *aa_flags )
|
||||
{
|
||||
dibdrv_physdev *pdev = get_dibdrv_pdev(dev);
|
||||
|
||||
if (pdev->dib.bit_count <= 8) *aa_flags = GGO_BITMAP; /* no anti-aliasing on <= 8bpp */
|
||||
|
||||
dev = GET_NEXT_PHYSDEV( dev, pSelectFont );
|
||||
return dev->funcs->pSelectFont( dev, font, aa_flags );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* dibdrv_Arc
|
||||
*/
|
||||
|
|
|
@ -314,6 +314,7 @@ HFONT EMFDRV_SelectFont( PHYSDEV dev, HFONT hFont, UINT *aa_flags )
|
|||
if(!EMFDRV_WriteRecord( dev, &emr.emr ))
|
||||
return 0;
|
||||
done:
|
||||
*aa_flags = GGO_BITMAP; /* no point in anti-aliasing on metafiles */
|
||||
dev = GET_NEXT_PHYSDEV( dev, pSelectFont );
|
||||
dev->funcs->pSelectFont( dev, hFont, aa_flags );
|
||||
return hFont;
|
||||
|
|
|
@ -397,14 +397,6 @@ UINT get_font_aa_flags( HDC hdc, const LOGFONTW *lf )
|
|||
static int subpixel_enabled = -1;
|
||||
enum smoothing smoothing;
|
||||
|
||||
if (GetObjectType( hdc ) == OBJ_MEMDC)
|
||||
{
|
||||
BITMAP bm;
|
||||
GetObjectW( GetCurrentObject( hdc, OBJ_BITMAP ), sizeof(bm), &bm );
|
||||
if (bm.bmBitsPixel <= 8) return GGO_BITMAP;
|
||||
}
|
||||
else if (GetDeviceCaps( hdc, BITSPIXEL ) <= 8) return GGO_BITMAP;
|
||||
|
||||
if (hinter == -1 || subpixel_enabled == -1)
|
||||
{
|
||||
RASTERIZER_STATUS status;
|
||||
|
|
|
@ -290,6 +290,7 @@ HFONT MFDRV_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags )
|
|||
LOGFONTW font;
|
||||
INT16 index;
|
||||
|
||||
*aa_flags = GGO_BITMAP; /* no point in anti-aliasing on metafiles */
|
||||
index = MFDRV_FindObject(dev, hfont);
|
||||
if( index < 0 )
|
||||
{
|
||||
|
|
|
@ -47,6 +47,8 @@ HFONT PSDRV_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags )
|
|||
|
||||
if (!GetObjectW( hfont, sizeof(lf), &lf )) return 0;
|
||||
|
||||
*aa_flags = GGO_BITMAP; /* no anti-aliasing on printer devices */
|
||||
|
||||
TRACE("FaceName = %s Height = %d Italic = %d Weight = %d\n",
|
||||
debugstr_w(lf.lfFaceName), lf.lfHeight, lf.lfItalic,
|
||||
lf.lfWeight);
|
||||
|
|
|
@ -295,6 +295,16 @@ static INT X11DRV_GetDeviceCaps( PHYSDEV dev, INT cap )
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SelectFont
|
||||
*/
|
||||
static HFONT X11DRV_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags )
|
||||
{
|
||||
if (default_visual.depth <= 8) *aa_flags = GGO_BITMAP; /* no anti-aliasing on <= 8bpp */
|
||||
dev = GET_NEXT_PHYSDEV( dev, pSelectFont );
|
||||
return dev->funcs->pSelectFont( dev, hfont, aa_flags );
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* ExtEscape (X11DRV.@)
|
||||
*/
|
||||
|
@ -532,7 +542,7 @@ static const struct gdi_dc_funcs x11drv_funcs =
|
|||
NULL, /* pSelectBitmap */
|
||||
X11DRV_SelectBrush, /* pSelectBrush */
|
||||
NULL, /* pSelectClipPath */
|
||||
NULL, /* pSelectFont */
|
||||
X11DRV_SelectFont, /* pSelectFont */
|
||||
NULL, /* pSelectPalette */
|
||||
X11DRV_SelectPen, /* pSelectPen */
|
||||
NULL, /* pSetArcDirection */
|
||||
|
|
Loading…
Reference in New Issue