void DWriteFontTypeface::onFilterRec(SkScalerContext::Rec* rec) const { if (rec->fFlags & SkScalerContext::kLCD_Vertical_Flag) { rec->fMaskFormat = SkMask::kA8_Format; } unsigned flagsWeDontSupport = SkScalerContext::kVertical_Flag | SkScalerContext::kDevKernText_Flag | SkScalerContext::kForceAutohinting_Flag | SkScalerContext::kEmbolden_Flag | SkScalerContext::kLCD_Vertical_Flag; rec->fFlags &= ~flagsWeDontSupport; SkPaint::Hinting h = rec->getHinting(); // DirectWrite does not provide for hinting hints. h = SkPaint::kSlight_Hinting; rec->setHinting(h); #if defined(SK_FONT_HOST_USE_SYSTEM_SETTINGS) IDWriteFactory* factory = sk_get_dwrite_factory(); if (factory != nullptr) { SkTScopedComPtr<IDWriteRenderingParams> defaultRenderingParams; if (SUCCEEDED(factory->CreateRenderingParams(&defaultRenderingParams))) { float gamma = defaultRenderingParams->GetGamma(); rec->setDeviceGamma(gamma); rec->setPaintGamma(gamma); rec->setContrast(defaultRenderingParams->GetEnhancedContrast()); } } #endif }