aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-04-12 06:47:05 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-12 06:47:05 -0700
commita9322c2d86aaef1085c267dfc43cf0747f170a86 (patch)
tree6af9e63ea49c092cb76bd0dfa482a03b82444911 /src/ports
parentac8681b0a1f0a5b55df059d75c4112bf411ba8b5 (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.cpp14
-rw-r--r--src/ports/SkFontHost_FreeType_common.h9
-rw-r--r--src/ports/SkFontHost_mac.cpp13
-rw-r--r--src/ports/SkFontHost_win.cpp16
-rw-r--r--src/ports/SkScalerContext_win_dw.cpp3
-rw-r--r--src/ports/SkScalerContext_win_dw.h2
-rw-r--r--src/ports/SkTypeface_win_dw.cpp5
-rw-r--r--src/ports/SkTypeface_win_dw.h3
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;