diff options
-rw-r--r-- | src/gui/text/qdistancefield.cpp | 11 | ||||
-rw-r--r-- | src/gui/text/qdistancefield_p.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/gui/text/qdistancefield.cpp b/src/gui/text/qdistancefield.cpp index 471a39a6e1..4d189786a1 100644 --- a/src/gui/text/qdistancefield.cpp +++ b/src/gui/text/qdistancefield.cpp @@ -833,6 +833,17 @@ QDistanceField::QDistanceField(QFontEngine *fontEngine, glyph_t glyph, bool doub setGlyph(fontEngine, glyph, doubleResolution); } +QDistanceField::QDistanceField(const QPainterPath &path, glyph_t glyph, bool doubleResolution) +{ + QPainterPath dfPath = path; + dfPath.translate(-dfPath.boundingRect().topLeft()); + dfPath.setFillRule(Qt::WindingFill); + + d = QDistanceFieldData::create(dfPath, doubleResolution); + d->glyph = glyph; +} + + QDistanceField::QDistanceField(QDistanceFieldData *data) : d(data) { diff --git a/src/gui/text/qdistancefield_p.h b/src/gui/text/qdistancefield_p.h index 95bb3b11c7..c376e93abe 100644 --- a/src/gui/text/qdistancefield_p.h +++ b/src/gui/text/qdistancefield_p.h @@ -97,6 +97,7 @@ public: QDistanceField(int width, int height); QDistanceField(const QRawFont &font, glyph_t glyph, bool doubleResolution = false); QDistanceField(QFontEngine *fontEngine, glyph_t glyph, bool doubleResolution = false); + QDistanceField(const QPainterPath &path, glyph_t glyph, bool doubleResolution = false); QDistanceField(const QDistanceField &other); bool isNull() const; |