Index: src/ports/SkFontHost_win_dw.cpp |
diff --git a/src/ports/SkFontHost_win_dw.cpp b/src/ports/SkFontHost_win_dw.cpp |
index b9f69bdb3ca26857be1acb5dec13a829d648d05e..ce5e49b358c3a87f8d53f7d494a401aa6fa5c446 100644 |
--- a/src/ports/SkFontHost_win_dw.cpp |
+++ b/src/ports/SkFontHost_win_dw.cpp |
@@ -128,54 +128,54 @@ public: |
memcpy(fLocaleName.get(), localeName, localeNameLength * sizeof(WCHAR)); |
} |
- SkTypefaceCache* getTypefaceCache() { return &fTFCache; } |
- |
SkTypeface* createTypefaceFromDWriteFont(IDWriteFontFace* fontFace, |
IDWriteFont* font, |
IDWriteFontFamily* fontFamily, |
StreamFontFileLoader* = NULL, |
- IDWriteFontCollectionLoader* = NULL); |
+ IDWriteFontCollectionLoader* = NULL) const; |
protected: |
- virtual int onCountFamilies() SK_OVERRIDE; |
- virtual void onGetFamilyName(int index, SkString* familyName) SK_OVERRIDE; |
- virtual SkFontStyleSet* onCreateStyleSet(int index) SK_OVERRIDE; |
- virtual SkFontStyleSet* onMatchFamily(const char familyName[]) SK_OVERRIDE; |
+ virtual int onCountFamilies() const SK_OVERRIDE; |
+ virtual void onGetFamilyName(int index, SkString* familyName) const SK_OVERRIDE; |
+ virtual SkFontStyleSet* onCreateStyleSet(int index) const SK_OVERRIDE; |
+ virtual SkFontStyleSet* onMatchFamily(const char familyName[]) const SK_OVERRIDE; |
virtual SkTypeface* onMatchFamilyStyle(const char familyName[], |
- const SkFontStyle& fontstyle) SK_OVERRIDE; |
+ const SkFontStyle& fontstyle) const SK_OVERRIDE; |
virtual SkTypeface* onMatchFaceStyle(const SkTypeface* familyMember, |
- const SkFontStyle& fontstyle) SK_OVERRIDE; |
- virtual SkTypeface* onCreateFromStream(SkStream* stream, int ttcIndex) SK_OVERRIDE; |
- virtual SkTypeface* onCreateFromData(SkData* data, int ttcIndex) SK_OVERRIDE; |
- virtual SkTypeface* onCreateFromFile(const char path[], int ttcIndex) SK_OVERRIDE; |
+ const SkFontStyle& fontstyle) const SK_OVERRIDE; |
+ virtual SkTypeface* onCreateFromStream(SkStream* stream, int ttcIndex) const SK_OVERRIDE; |
+ virtual SkTypeface* onCreateFromData(SkData* data, int ttcIndex) const SK_OVERRIDE; |
+ virtual SkTypeface* onCreateFromFile(const char path[], int ttcIndex) const SK_OVERRIDE; |
virtual SkTypeface* onLegacyCreateTypeface(const char familyName[], |
- unsigned styleBits) SK_OVERRIDE; |
+ unsigned styleBits) const SK_OVERRIDE; |
private: |
- HRESULT getByFamilyName(const WCHAR familyName[], IDWriteFontFamily** fontFamily); |
- HRESULT getDefaultFontFamily(IDWriteFontFamily** fontFamily); |
+ HRESULT getByFamilyName(const WCHAR familyName[], IDWriteFontFamily** fontFamily) const; |
+ HRESULT getDefaultFontFamily(IDWriteFontFamily** fontFamily) const; |
- SkMutex fTFCacheMutex; |
- void Add(SkTypeface* face, SkTypeface::Style requestedStyle, bool strong) { |
+ void Add(SkTypeface* face, SkTypeface::Style requestedStyle, bool strong) const { |
SkAutoMutexAcquire ama(fTFCacheMutex); |
fTFCache.add(face, requestedStyle, strong); |
} |
- SkTypeface* FindByProcAndRef(SkTypefaceCache::FindProc proc, void* ctx) { |
+ SkTypeface* FindByProcAndRef(SkTypefaceCache::FindProc proc, void* ctx) const { |
SkAutoMutexAcquire ama(fTFCacheMutex); |
SkTypeface* typeface = fTFCache.findByProcAndRef(proc, ctx); |
return typeface; |
} |
- friend class SkFontStyleSet_DirectWrite; |
SkTScopedComPtr<IDWriteFontCollection> fFontCollection; |
SkSMallocWCHAR fLocaleName; |
- SkTypefaceCache fTFCache; |
+ mutable SkMutex fTFCacheMutex; |
+ mutable SkTypefaceCache fTFCache; |
+ |
+ friend class SkFontStyleSet_DirectWrite; |
}; |
class SkFontStyleSet_DirectWrite : public SkFontStyleSet { |
public: |
- SkFontStyleSet_DirectWrite(SkFontMgr_DirectWrite* fontMgr, IDWriteFontFamily* fontFamily) |
+ SkFontStyleSet_DirectWrite(const SkFontMgr_DirectWrite* fontMgr, |
+ IDWriteFontFamily* fontFamily) |
: fFontMgr(SkRef(fontMgr)) |
, fFontFamily(SkRefComPtr(fontFamily)) |
{ } |
@@ -186,7 +186,7 @@ public: |
virtual SkTypeface* matchStyle(const SkFontStyle& pattern) SK_OVERRIDE; |
private: |
- SkAutoTUnref<SkFontMgr_DirectWrite> fFontMgr; |
+ SkAutoTUnref<const SkFontMgr_DirectWrite> fFontMgr; |
SkTScopedComPtr<IDWriteFontFamily> fFontFamily; |
}; |
@@ -1661,11 +1661,11 @@ static void get_locale_string(IDWriteLocalizedStrings* names, const WCHAR* prefe |
} |
SkTypeface* SkFontMgr_DirectWrite::createTypefaceFromDWriteFont( |
- IDWriteFontFace* fontFace, |
- IDWriteFont* font, |
- IDWriteFontFamily* fontFamily, |
- StreamFontFileLoader* fontFileLoader, |
- IDWriteFontCollectionLoader* fontCollectionLoader) { |
+ IDWriteFontFace* fontFace, |
+ IDWriteFont* font, |
+ IDWriteFontFamily* fontFamily, |
+ StreamFontFileLoader* fontFileLoader, |
+ IDWriteFontCollectionLoader* fontCollectionLoader) const { |
SkTypeface* face = FindByProcAndRef(FindByDWriteFont, font); |
if (NULL == face) { |
face = DWriteFontTypeface::Create(fontFace, font, fontFamily, |
@@ -1677,11 +1677,11 @@ SkTypeface* SkFontMgr_DirectWrite::createTypefaceFromDWriteFont( |
return face; |
} |
-int SkFontMgr_DirectWrite::onCountFamilies() { |
+int SkFontMgr_DirectWrite::onCountFamilies() const { |
return fFontCollection->GetFontFamilyCount(); |
} |
-void SkFontMgr_DirectWrite::onGetFamilyName(int index, SkString* familyName) { |
+void SkFontMgr_DirectWrite::onGetFamilyName(int index, SkString* familyName) const { |
SkTScopedComPtr<IDWriteFontFamily> fontFamily; |
HRVM(fFontCollection->GetFontFamily(index, &fontFamily), "Could not get requested family."); |
@@ -1691,14 +1691,14 @@ void SkFontMgr_DirectWrite::onGetFamilyName(int index, SkString* familyName) { |
get_locale_string(familyNames.get(), fLocaleName.get(), familyName); |
} |
-SkFontStyleSet* SkFontMgr_DirectWrite::onCreateStyleSet(int index) { |
+SkFontStyleSet* SkFontMgr_DirectWrite::onCreateStyleSet(int index) const { |
SkTScopedComPtr<IDWriteFontFamily> fontFamily; |
HRNM(fFontCollection->GetFontFamily(index, &fontFamily), "Could not get requested family."); |
return SkNEW_ARGS(SkFontStyleSet_DirectWrite, (this, fontFamily.get())); |
} |
-SkFontStyleSet* SkFontMgr_DirectWrite::onMatchFamily(const char familyName[]) { |
+SkFontStyleSet* SkFontMgr_DirectWrite::onMatchFamily(const char familyName[]) const { |
SkSMallocWCHAR dwFamilyName; |
HRN(cstring_to_wchar(familyName, &dwFamilyName)); |
@@ -1714,13 +1714,13 @@ SkFontStyleSet* SkFontMgr_DirectWrite::onMatchFamily(const char familyName[]) { |
} |
SkTypeface* SkFontMgr_DirectWrite::onMatchFamilyStyle(const char familyName[], |
- const SkFontStyle& fontstyle) { |
+ const SkFontStyle& fontstyle) const { |
SkAutoTUnref<SkFontStyleSet> sset(this->matchFamily(familyName)); |
return sset->matchStyle(fontstyle); |
} |
SkTypeface* SkFontMgr_DirectWrite::onMatchFaceStyle(const SkTypeface* familyMember, |
- const SkFontStyle& fontstyle) { |
+ const SkFontStyle& fontstyle) const { |
SkString familyName; |
SkFontStyleSet_DirectWrite sset( |
this, ((DWriteFontTypeface*)familyMember)->fDWriteFontFamily.get() |
@@ -1728,22 +1728,22 @@ SkTypeface* SkFontMgr_DirectWrite::onMatchFaceStyle(const SkTypeface* familyMemb |
return sset.matchStyle(fontstyle); |
} |
-SkTypeface* SkFontMgr_DirectWrite::onCreateFromStream(SkStream* stream, int ttcIndex) { |
+SkTypeface* SkFontMgr_DirectWrite::onCreateFromStream(SkStream* stream, int ttcIndex) const { |
return create_from_stream(stream, ttcIndex); |
} |
-SkTypeface* SkFontMgr_DirectWrite::onCreateFromData(SkData* data, int ttcIndex) { |
+SkTypeface* SkFontMgr_DirectWrite::onCreateFromData(SkData* data, int ttcIndex) const { |
SkAutoTUnref<SkStream> stream(SkNEW_ARGS(SkMemoryStream, (data))); |
return this->createFromStream(stream, ttcIndex); |
} |
-SkTypeface* SkFontMgr_DirectWrite::onCreateFromFile(const char path[], int ttcIndex) { |
+SkTypeface* SkFontMgr_DirectWrite::onCreateFromFile(const char path[], int ttcIndex) const { |
SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path)); |
return this->createFromStream(stream, ttcIndex); |
} |
HRESULT SkFontMgr_DirectWrite::getByFamilyName(const WCHAR wideFamilyName[], |
- IDWriteFontFamily** fontFamily) { |
+ IDWriteFontFamily** fontFamily) const { |
UINT32 index; |
BOOL exists; |
HR(fFontCollection->FindFamilyName(wideFamilyName, &index, &exists)); |
@@ -1755,7 +1755,7 @@ HRESULT SkFontMgr_DirectWrite::getByFamilyName(const WCHAR wideFamilyName[], |
return S_FALSE; |
} |
-HRESULT SkFontMgr_DirectWrite::getDefaultFontFamily(IDWriteFontFamily** fontFamily) { |
+HRESULT SkFontMgr_DirectWrite::getDefaultFontFamily(IDWriteFontFamily** fontFamily) const { |
NONCLIENTMETRICSW metrics; |
metrics.cbSize = sizeof(metrics); |
if (0 == SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, |
@@ -1771,7 +1771,7 @@ HRESULT SkFontMgr_DirectWrite::getDefaultFontFamily(IDWriteFontFamily** fontFami |
} |
SkTypeface* SkFontMgr_DirectWrite::onLegacyCreateTypeface(const char familyName[], |
- unsigned styleBits) { |
+ unsigned styleBits) const { |
SkTScopedComPtr<IDWriteFontFamily> fontFamily; |
if (familyName) { |
SkSMallocWCHAR wideFamilyName; |