diff options
author | reed <reed@google.com> | 2016-04-12 06:47:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-12 06:47:05 -0700 |
commit | a9322c2d86aaef1085c267dfc43cf0747f170a86 (patch) | |
tree | 6af9e63ea49c092cb76bd0dfa482a03b82444911 /src/ports | |
parent | ac8681b0a1f0a5b55df059d75c4112bf411ba8b5 (diff) |
Revert "Revert of Pass effects directly to fontcache (patchset #8 id:140001 of https://codereview.chromium.org/1863013003/ )"
add SK_SUPPORT_NEW_ONCREATESCALERCONTEXT for chrome
this has now landed https://codereview.chromium.org/1878913002/
TBR=
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1880873002
Review URL: https://codereview.chromium.org/1880873002
Diffstat (limited to 'src/ports')
-rw-r--r-- | src/ports/SkFontHost_FreeType.cpp | 14 | ||||
-rw-r--r-- | src/ports/SkFontHost_FreeType_common.h | 9 | ||||
-rw-r--r-- | src/ports/SkFontHost_mac.cpp | 13 | ||||
-rw-r--r-- | src/ports/SkFontHost_win.cpp | 16 | ||||
-rw-r--r-- | src/ports/SkScalerContext_win_dw.cpp | 3 | ||||
-rw-r--r-- | src/ports/SkScalerContext_win_dw.h | 2 | ||||
-rw-r--r-- | src/ports/SkTypeface_win_dw.cpp | 5 | ||||
-rw-r--r-- | src/ports/SkTypeface_win_dw.h | 3 |
8 files changed, 39 insertions, 26 deletions
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp index 44eb50ce40..55eb87fe6d 100644 --- a/src/ports/SkFontHost_FreeType.cpp +++ b/src/ports/SkFontHost_FreeType.cpp @@ -181,7 +181,7 @@ static void unref_ft_library() { class SkScalerContext_FreeType : public SkScalerContext_FreeType_Base { public: - SkScalerContext_FreeType(SkTypeface*, const SkDescriptor* desc); + SkScalerContext_FreeType(SkTypeface*, const SkScalerContextEffects&, const SkDescriptor* desc); virtual ~SkScalerContext_FreeType(); bool success() const { @@ -663,10 +663,10 @@ static bool isAxisAligned(const SkScalerContext::Rec& rec) { bothZero(rec.fPost2x2[0][0], rec.fPost2x2[1][1])); } -SkScalerContext* SkTypeface_FreeType::onCreateScalerContext( - const SkDescriptor* desc) const { +SkScalerContext* SkTypeface_FreeType::onCreateScalerContext(const SkScalerContextEffects& effects, + const SkDescriptor* desc) const { SkScalerContext_FreeType* c = - new SkScalerContext_FreeType(const_cast<SkTypeface_FreeType*>(this), desc); + new SkScalerContext_FreeType(const_cast<SkTypeface_FreeType*>(this), effects, desc); if (!c->success()) { delete c; c = nullptr; @@ -790,8 +790,10 @@ static FT_Int chooseBitmapStrike(FT_Face face, FT_F26Dot6 scaleY) { return chosenStrikeIndex; } -SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, const SkDescriptor* desc) - : SkScalerContext_FreeType_Base(typeface, desc) +SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, + const SkScalerContextEffects& effects, + const SkDescriptor* desc) + : SkScalerContext_FreeType_Base(typeface, effects, desc) , fFace(nullptr) , fFTSize(nullptr) , fStrikeIndex(-1) diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h index 99b43dccca..8c13a80aa5 100644 --- a/src/ports/SkFontHost_FreeType_common.h +++ b/src/ports/SkFontHost_FreeType_common.h @@ -26,8 +26,9 @@ protected: // This value was chosen by eyeballing the result in Firefox and trying to match it. static const FT_Pos kBitmapEmboldenStrength = 1 << 6; - SkScalerContext_FreeType_Base(SkTypeface* typeface, const SkDescriptor *desc) - : INHERITED(typeface, desc) + SkScalerContext_FreeType_Base(SkTypeface* typeface, const SkScalerContextEffects& effects, + const SkDescriptor *desc) + : INHERITED(typeface, effects, desc) {} void generateGlyphImage(FT_Face face, const SkGlyph& glyph); @@ -75,8 +76,8 @@ protected: , fGlyphCount(-1) {} - virtual SkScalerContext* onCreateScalerContext( - const SkDescriptor*) const override; + virtual SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, + const SkDescriptor*) const override; void onFilterRec(SkScalerContextRec*) const override; SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( PerGlyphInfo, const uint32_t*, uint32_t) const override; diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp index ec35707dd1..8d4a3f8cfc 100644 --- a/src/ports/SkFontHost_mac.cpp +++ b/src/ports/SkFontHost_mac.cpp @@ -473,7 +473,8 @@ protected: int onGetTableTags(SkFontTableTag tags[]) const override; virtual size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void* data) const override; - SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override; + SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, + const SkDescriptor*) const override; void onFilterRec(SkScalerContextRec*) const override; void onGetFontDescriptor(SkFontDescriptor*, bool*) const override; virtual SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( @@ -629,7 +630,7 @@ struct GlyphRect { class SkScalerContext_Mac : public SkScalerContext { public: - SkScalerContext_Mac(SkTypeface_Mac*, const SkDescriptor*); + SkScalerContext_Mac(SkTypeface_Mac*, const SkScalerContextEffects&, const SkDescriptor*); protected: unsigned generateGlyphCount(void) override; @@ -738,8 +739,9 @@ static CTFontRef ctfont_create_exact_copy(CTFontRef baseFont, CGFloat textSize, } SkScalerContext_Mac::SkScalerContext_Mac(SkTypeface_Mac* typeface, + const SkScalerContextEffects& effects, const SkDescriptor* desc) - : INHERITED(typeface, desc) + : INHERITED(typeface, effects, desc) , fFBoundingBoxes() , fFBoundingBoxesGlyphOffset(0) , fGeneratedFBoundingBoxes(false) @@ -1937,8 +1939,9 @@ size_t SkTypeface_Mac::onGetTableData(SkFontTableTag tag, size_t offset, return length; } -SkScalerContext* SkTypeface_Mac::onCreateScalerContext(const SkDescriptor* desc) const { - return new SkScalerContext_Mac(const_cast<SkTypeface_Mac*>(this), desc); +SkScalerContext* SkTypeface_Mac::onCreateScalerContext(const SkScalerContextEffects& effects, + const SkDescriptor* desc) const { + return new SkScalerContext_Mac(const_cast<SkTypeface_Mac*>(this), effects, desc); } void SkTypeface_Mac::onFilterRec(SkScalerContextRec* rec) const { diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp index f772d8c57e..395307cf04 100644 --- a/src/ports/SkFontHost_win.cpp +++ b/src/ports/SkFontHost_win.cpp @@ -257,7 +257,8 @@ public: protected: SkStreamAsset* onOpenStream(int* ttcIndex) const override; - SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override; + SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, + const SkDescriptor*) const override; void onFilterRec(SkScalerContextRec*) const override; SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( PerGlyphInfo, const uint32_t*, uint32_t) const override; @@ -533,7 +534,7 @@ const void* HDCOffscreen::draw(const SkGlyph& glyph, bool isBW, class SkScalerContext_GDI : public SkScalerContext { public: - SkScalerContext_GDI(SkTypeface*, const SkDescriptor* desc); + SkScalerContext_GDI(SkTypeface*, const SkScalerContextEffects&, const SkDescriptor* desc); virtual ~SkScalerContext_GDI(); // Returns true if the constructor was able to complete all of its @@ -604,8 +605,9 @@ static BYTE compute_quality(const SkScalerContext::Rec& rec) { } SkScalerContext_GDI::SkScalerContext_GDI(SkTypeface* rawTypeface, - const SkDescriptor* desc) - : SkScalerContext(rawTypeface, desc) + const SkScalerContextEffects& effects, + const SkDescriptor* desc) + : SkScalerContext(rawTypeface, effects, desc) , fDDC(0) , fSavefont(0) , fFont(0) @@ -2285,8 +2287,10 @@ size_t LogFontTypeface::onGetTableData(SkFontTableTag tag, size_t offset, return bufferSize == GDI_ERROR ? 0 : bufferSize; } -SkScalerContext* LogFontTypeface::onCreateScalerContext(const SkDescriptor* desc) const { - SkScalerContext_GDI* ctx = new SkScalerContext_GDI(const_cast<LogFontTypeface*>(this), desc); +SkScalerContext* LogFontTypeface::onCreateScalerContext(const SkScalerContextEffects& effects, + const SkDescriptor* desc) const { + SkScalerContext_GDI* ctx = new SkScalerContext_GDI(const_cast<LogFontTypeface*>(this), + effects, desc); if (!ctx->isValid()) { delete ctx; ctx = nullptr; diff --git a/src/ports/SkScalerContext_win_dw.cpp b/src/ports/SkScalerContext_win_dw.cpp index f276762bbf..4609d04851 100644 --- a/src/ports/SkScalerContext_win_dw.cpp +++ b/src/ports/SkScalerContext_win_dw.cpp @@ -204,8 +204,9 @@ static bool is_axis_aligned(const SkScalerContext::Rec& rec) { } SkScalerContext_DW::SkScalerContext_DW(DWriteFontTypeface* typeface, + const SkScalerContextEffects& effects, const SkDescriptor* desc) - : SkScalerContext(typeface, desc) + : SkScalerContext(typeface, effects, desc) , fTypeface(SkRef(typeface)) , fGlyphCount(-1) { diff --git a/src/ports/SkScalerContext_win_dw.h b/src/ports/SkScalerContext_win_dw.h index abf2bc9aa0..9b24772036 100644 --- a/src/ports/SkScalerContext_win_dw.h +++ b/src/ports/SkScalerContext_win_dw.h @@ -20,7 +20,7 @@ class SkDescriptor; class SkScalerContext_DW : public SkScalerContext { public: - SkScalerContext_DW(DWriteFontTypeface*, const SkDescriptor* desc); + SkScalerContext_DW(DWriteFontTypeface*, const SkScalerContextEffects&, const SkDescriptor*); virtual ~SkScalerContext_DW(); protected: diff --git a/src/ports/SkTypeface_win_dw.cpp b/src/ports/SkTypeface_win_dw.cpp index 160c66ed0e..18c63a5089 100644 --- a/src/ports/SkTypeface_win_dw.cpp +++ b/src/ports/SkTypeface_win_dw.cpp @@ -244,8 +244,9 @@ SkStreamAsset* DWriteFontTypeface::onOpenStream(int* ttcIndex) const { return new SkDWriteFontFileStream(fontFileStream.get()); } -SkScalerContext* DWriteFontTypeface::onCreateScalerContext(const SkDescriptor* desc) const { - return new SkScalerContext_DW(const_cast<DWriteFontTypeface*>(this), desc); +SkScalerContext* DWriteFontTypeface::onCreateScalerContext(const SkScalerContextEffects& effects, + const SkDescriptor* desc) const { + return new SkScalerContext_DW(const_cast<DWriteFontTypeface*>(this), effects, desc); } void DWriteFontTypeface::onFilterRec(SkScalerContext::Rec* rec) const { diff --git a/src/ports/SkTypeface_win_dw.h b/src/ports/SkTypeface_win_dw.h index cdbeeaa785..b1237c0e98 100644 --- a/src/ports/SkTypeface_win_dw.h +++ b/src/ports/SkTypeface_win_dw.h @@ -96,7 +96,8 @@ protected: } SkStreamAsset* onOpenStream(int* ttcIndex) const override; - SkScalerContext* onCreateScalerContext(const SkDescriptor*) const override; + SkScalerContext* onCreateScalerContext(const SkScalerContextEffects&, + const SkDescriptor*) const override; void onFilterRec(SkScalerContextRec*) const override; SkAdvancedTypefaceMetrics* onGetAdvancedTypefaceMetrics( PerGlyphInfo, const uint32_t*, uint32_t) const override; |