FontPlatformData::FontPlatformData(const FontPlatformData& src, float textSize) : m_typeface(src.m_typeface) #if !OS(WIN) , m_family(src.m_family) #endif , m_textSize(textSize) , m_syntheticBold(src.m_syntheticBold) , m_syntheticItalic(src.m_syntheticItalic) , m_orientation(src.m_orientation) #if OS(MACOSX) , m_isColorBitmapFont(src.m_isColorBitmapFont) , m_isCompositeFontReference(src.m_isCompositeFontReference) #endif , m_widthVariant(RegularWidth) #if !OS(MACOSX) , m_style(src.m_style) #endif , m_harfBuzzFace(nullptr) , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(src.m_paintTextFlags) , m_useSubpixelPositioning(src.m_useSubpixelPositioning) , m_minSizeForAntiAlias(src.m_minSizeForAntiAlias) , m_minSizeForSubpixel(src.m_minSizeForSubpixel) #endif { #if OS(MACOSX) platformDataInit(src); #else querySystemForRenderStyle(FontDescription::subpixelPositioning()); #endif }
FontPlatformData::FontPlatformData(const FontPlatformData& source) : m_typeface(source.m_typeface) #if !OS(WIN) , m_family(source.m_family) #endif , m_textSize(source.m_textSize) , m_syntheticBold(source.m_syntheticBold) , m_syntheticItalic(source.m_syntheticItalic) , m_orientation(source.m_orientation) #if OS(MACOSX) , m_isColorBitmapFont(source.m_isColorBitmapFont) , m_isCompositeFontReference(source.m_isCompositeFontReference) #endif , m_widthVariant(source.m_widthVariant) #if !OS(MACOSX) , m_style(source.m_style) #endif , m_harfBuzzFace(nullptr) , m_isHashTableDeletedValue(false) #if OS(WIN) , m_paintTextFlags(source.m_paintTextFlags) , m_useSubpixelPositioning(source.m_useSubpixelPositioning) , m_minSizeForAntiAlias(source.m_minSizeForAntiAlias) , m_minSizeForSubpixel(source.m_minSizeForSubpixel) #endif { #if OS(MACOSX) platformDataInit(source); #endif }
FontPlatformData::FontPlatformData(HFONT font, float size, bool bold, bool oblique, bool useGDI) : m_font(RefCountedGDIHandle<HFONT>::create(font)) , m_size(size) #if PLATFORM(CG) , m_cgFont(0) #elif PLATFORM(CAIRO) , m_fontFace(0) , m_scaledFont(0) #endif , m_syntheticBold(bold) , m_syntheticOblique(oblique) , m_useGDI(useGDI) { HDC hdc = GetDC(0); SaveDC(hdc); SelectObject(hdc, font); UINT bufferSize = GetOutlineTextMetrics(hdc, 0, NULL); ASSERT_WITH_MESSAGE(bufferSize, "Bitmap fonts not supported with CoreGraphics."); if (bufferSize) { OUTLINETEXTMETRICW* metrics = (OUTLINETEXTMETRICW*)malloc(bufferSize); GetOutlineTextMetricsW(hdc, bufferSize, metrics); WCHAR* faceName = (WCHAR*)((uintptr_t)metrics + (uintptr_t)metrics->otmpFaceName); platformDataInit(font, size, hdc, faceName); free(metrics); } RestoreDC(hdc, -1); ReleaseDC(0, hdc); }
FontPlatformData::FontPlatformData(GDIObject<HFONT> font, float size, bool bold, bool oblique, bool useGDI) : m_font(SharedGDIObject<HFONT>::create(WTFMove(font))) , m_size(size) , m_orientation(Horizontal) , m_widthVariant(RegularWidth) , m_isColorBitmapFont(false) , m_syntheticBold(bold) , m_syntheticOblique(oblique) , m_useGDI(useGDI) { HWndDC hdc(0); SaveDC(hdc); ::SelectObject(hdc, m_font->get()); UINT bufferSize = GetOutlineTextMetrics(hdc, 0, NULL); ASSERT_WITH_MESSAGE(bufferSize, "Bitmap fonts not supported with CoreGraphics."); if (bufferSize) { OUTLINETEXTMETRICW* metrics = (OUTLINETEXTMETRICW*)malloc(bufferSize); GetOutlineTextMetricsW(hdc, bufferSize, metrics); WCHAR* faceName = (WCHAR*)((uintptr_t)metrics + (uintptr_t)metrics->otmpFaceName); platformDataInit(m_font->get(), size, hdc, faceName); free(metrics); } RestoreDC(hdc, -1); }
FontPlatformData::FontPlatformData(const FontPlatformData& source) : m_syntheticBold(source.m_syntheticBold) , m_syntheticOblique(source.m_syntheticOblique) , m_orientation(source.m_orientation) , m_size(source.m_size) , m_widthVariant(source.m_widthVariant) , m_isColorBitmapFont(source.m_isColorBitmapFont) , m_isCompositeFontReference(source.m_isCompositeFontReference) { platformDataInit(source); }
FontPlatformData::FontPlatformData(const FontPlatformData& source) : m_syntheticBold(source.m_syntheticBold) , m_syntheticOblique(source.m_syntheticOblique) , m_orientation(source.m_orientation) , m_size(source.m_size) #if !PLATFORM(JS) , m_widthVariant(source.m_widthVariant) , m_isColorBitmapFont(source.m_isColorBitmapFont) , m_isCompositeFontReference(source.m_isCompositeFontReference) #endif #if OS(DARWIN) , m_isPrinterFont(source.m_isPrinterFont) #endif { #if PLATFORM(JS) #endif platformDataInit(source); }