mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 661471. Part 7: Let gfxDWriteFonts know whether we are honouring 'GDI classic' overrides. r=roc
This commit is contained in:
parent
314dafe913
commit
8223a229cd
@ -1107,6 +1107,12 @@ cairo_dwrite_set_cleartype_params(FLOAT gamma, FLOAT contrast, FLOAT level,
|
|||||||
DWriteFactory::SetRenderingParams(gamma, contrast, level, geometry, mode);
|
DWriteFactory::SetRenderingParams(gamma, contrast, level, geometry, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
cairo_dwrite_get_cleartype_rendering_mode()
|
||||||
|
{
|
||||||
|
return DWriteFactory::GetClearTypeRenderingMode();
|
||||||
|
}
|
||||||
|
|
||||||
cairo_int_status_t
|
cairo_int_status_t
|
||||||
_dwrite_draw_glyphs_to_gdi_surface_gdi(cairo_win32_surface_t *surface,
|
_dwrite_draw_glyphs_to_gdi_surface_gdi(cairo_win32_surface_t *surface,
|
||||||
DWRITE_MATRIX *transform,
|
DWRITE_MATRIX *transform,
|
||||||
|
@ -110,9 +110,14 @@ public:
|
|||||||
{
|
{
|
||||||
CreateRenderingParams();
|
CreateRenderingParams();
|
||||||
}
|
}
|
||||||
IDWriteRenderingParams *params =
|
IDWriteRenderingParams *params;
|
||||||
mode == cairo_d2d_surface_t::TEXT_RENDERING_NORMAL ? mCustomClearTypeRenderingParams :
|
if (mode == cairo_d2d_surface_t::TEXT_RENDERING_NO_CLEARTYPE) {
|
||||||
(mode == cairo_d2d_surface_t::TEXT_RENDERING_GDI_CLASSIC ? mForceGDIClassicRenderingParams : mDefaultRenderingParams);
|
params = mDefaultRenderingParams;
|
||||||
|
} else if (mode == cairo_d2d_surface_t::TEXT_RENDERING_GDI_CLASSIC && mRenderingMode < 0) {
|
||||||
|
params = mForceGDIClassicRenderingParams;
|
||||||
|
} else {
|
||||||
|
params = mCustomClearTypeRenderingParams;
|
||||||
|
}
|
||||||
if (params) {
|
if (params) {
|
||||||
params->AddRef();
|
params->AddRef();
|
||||||
}
|
}
|
||||||
@ -145,6 +150,10 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int GetClearTypeRenderingMode() {
|
||||||
|
return mRenderingMode;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void CreateRenderingParams();
|
static void CreateRenderingParams();
|
||||||
|
|
||||||
|
@ -137,6 +137,9 @@ cairo_dwrite_scaled_font_get_force_GDI_classic(cairo_scaled_font_t *dwrite_scale
|
|||||||
void
|
void
|
||||||
cairo_dwrite_set_cleartype_params(FLOAT gamma, FLOAT contrast, FLOAT level, int geometry, int mode);
|
cairo_dwrite_set_cleartype_params(FLOAT gamma, FLOAT contrast, FLOAT level, int geometry, int mode);
|
||||||
|
|
||||||
|
int
|
||||||
|
cairo_dwrite_get_cleartype_rendering_mode();
|
||||||
|
|
||||||
#endif /* CAIRO_HAS_DWRITE_FONT */
|
#endif /* CAIRO_HAS_DWRITE_FONT */
|
||||||
|
|
||||||
#if CAIRO_HAS_D2D_SURFACE
|
#if CAIRO_HAS_D2D_SURFACE
|
||||||
|
@ -694,7 +694,8 @@ bool
|
|||||||
gfxDWriteFont::GetForceGDIClassic()
|
gfxDWriteFont::GetForceGDIClassic()
|
||||||
{
|
{
|
||||||
return static_cast<gfxDWriteFontEntry*>(mFontEntry.get())->GetForceGDIClassic() &&
|
return static_cast<gfxDWriteFontEntry*>(mFontEntry.get())->GetForceGDIClassic() &&
|
||||||
GetAdjustedSize() <=
|
cairo_dwrite_get_cleartype_rendering_mode() < 0 &&
|
||||||
|
GetAdjustedSize() <=
|
||||||
gfxDWriteFontList::PlatformFontList()->GetForceGDIClassicMaxFontSize();
|
gfxDWriteFontList::PlatformFontList()->GetForceGDIClassicMaxFontSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user