Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Side by Side Diff: src/ports/SkFontHost_win.cpp

Issue 76763002: De-generalize create_typeface on Windows. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/ports/SkFontHost_win_dw.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkAdvancedTypefaceMetrics.h" 9 #include "SkAdvancedTypefaceMetrics.h"
10 #include "SkBase64.h" 10 #include "SkBase64.h"
(...skipping 2418 matching lines...) Expand 10 before | Expand all | Expand 10 after
2429 rec->fMaskFormat = SkMask::kA8_Format; 2429 rec->fMaskFormat = SkMask::kA8_Format;
2430 } 2430 }
2431 #endif 2431 #endif
2432 2432
2433 if (!fCanBeLCD && isLCD(*rec)) { 2433 if (!fCanBeLCD && isLCD(*rec)) {
2434 rec->fMaskFormat = SkMask::kA8_Format; 2434 rec->fMaskFormat = SkMask::kA8_Format;
2435 rec->fFlags &= ~SkScalerContext::kGenA8FromLCD_Flag; 2435 rec->fFlags &= ~SkScalerContext::kGenA8FromLCD_Flag;
2436 } 2436 }
2437 } 2437 }
2438 2438
2439 static SkTypeface* create_typeface(const SkTypeface* familyFace,
2440 const char familyName[],
2441 unsigned styleBits) {
2442 LOGFONT lf;
2443 if (NULL == familyFace && NULL == familyName) {
2444 lf = get_default_font();
2445 } else if (familyFace) {
2446 LogFontTypeface* face = (LogFontTypeface*)familyFace;
2447 lf = face->fLogFont;
2448 } else {
2449 logfont_for_name(familyName, &lf);
2450 }
2451 setStyle(&lf, (SkTypeface::Style)styleBits);
2452 return SkCreateTypefaceFromLOGFONT(lf);
2453 }
2454
2455 /////////////////////////////////////////////////////////////////////////////// 2439 ///////////////////////////////////////////////////////////////////////////////
2456 2440
2457 #include "SkFontMgr.h" 2441 #include "SkFontMgr.h"
2458 #include "SkDataTable.h" 2442 #include "SkDataTable.h"
2459 2443
2460 static bool valid_logfont_for_enum(const LOGFONT& lf) { 2444 static bool valid_logfont_for_enum(const LOGFONT& lf) {
2461 // TODO: Vector FON is unsupported and should not be listed. 2445 // TODO: Vector FON is unsupported and should not be listed.
2462 return 2446 return
2463 // Ignore implicit vertical variants. 2447 // Ignore implicit vertical variants.
2464 lf.lfFaceName[0] && lf.lfFaceName[0] != '@' 2448 lf.lfFaceName[0] && lf.lfFaceName[0] != '@'
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
2597 } 2581 }
2598 2582
2599 virtual SkTypeface* onCreateFromFile(const char path[], int ttcIndex) SK_OVE RRIDE { 2583 virtual SkTypeface* onCreateFromFile(const char path[], int ttcIndex) SK_OVE RRIDE {
2600 // could be in base impl 2584 // could be in base impl
2601 SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path)); 2585 SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path));
2602 return this->createFromStream(stream); 2586 return this->createFromStream(stream);
2603 } 2587 }
2604 2588
2605 virtual SkTypeface* onLegacyCreateTypeface(const char familyName[], 2589 virtual SkTypeface* onLegacyCreateTypeface(const char familyName[],
2606 unsigned styleBits) SK_OVERRIDE { 2590 unsigned styleBits) SK_OVERRIDE {
2607 return create_typeface(NULL, familyName, styleBits); 2591 LOGFONT lf;
2592 if (NULL == familyName) {
2593 lf = get_default_font();
2594 } else {
2595 logfont_for_name(familyName, &lf);
2596 }
2597 setStyle(&lf, (SkTypeface::Style)styleBits);
2598 return SkCreateTypefaceFromLOGFONT(lf);
2608 } 2599 }
2609 2600
2610 private: 2601 private:
2611 SkTDArray<ENUMLOGFONTEX> fLogFontArray; 2602 SkTDArray<ENUMLOGFONTEX> fLogFontArray;
2612 }; 2603 };
2613 2604
2614 /////////////////////////////////////////////////////////////////////////////// 2605 ///////////////////////////////////////////////////////////////////////////////
2615 2606
2616 SkFontMgr* SkFontMgr_New_GDI() { 2607 SkFontMgr* SkFontMgr_New_GDI() {
2617 return SkNEW(SkFontMgrGDI); 2608 return SkNEW(SkFontMgrGDI);
2618 } 2609 }
OLDNEW
« no previous file with comments | « no previous file | src/ports/SkFontHost_win_dw.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698