mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-25 03:12:56 +00:00
translate the glyph positions instead of the whole painter viewport from QPaintEngine::drawTextItem()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
43a05aba7d
commit
f30d28bfa4
2 changed files with 3 additions and 6 deletions
|
@ -653,13 +653,12 @@ void QPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem)
|
||||||
QPainterPath path;
|
QPainterPath path;
|
||||||
path.setFillRule(Qt::WindingFill);
|
path.setFillRule(Qt::WindingFill);
|
||||||
if (ti.glyphs.numGlyphs)
|
if (ti.glyphs.numGlyphs)
|
||||||
ti.fontEngine->addOutlineToPath(0, 0, ti.glyphs, &path, ti.flags);
|
ti.fontEngine->addOutlineToPath(p.x(), p.y(), ti.glyphs, &path, ti.flags);
|
||||||
if (!path.isEmpty()) {
|
if (!path.isEmpty()) {
|
||||||
painter()->save();
|
painter()->save();
|
||||||
painter()->setRenderHint(QPainter::Antialiasing,
|
painter()->setRenderHint(QPainter::Antialiasing,
|
||||||
bool((painter()->renderHints() & QPainter::TextAntialiasing)
|
bool((painter()->renderHints() & QPainter::TextAntialiasing)
|
||||||
&& !(painter()->font().styleStrategy() & QFont::NoAntialias)));
|
&& !(painter()->font().styleStrategy() & QFont::NoAntialias)));
|
||||||
painter()->translate(p.x(), p.y());
|
|
||||||
painter()->fillPath(path, state->pen().brush());
|
painter()->fillPath(path, state->pen().brush());
|
||||||
painter()->restore();
|
painter()->restore();
|
||||||
}
|
}
|
||||||
|
|
|
@ -220,8 +220,7 @@ void QFontEngine::addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs,
|
||||||
|
|
||||||
QVarLengthArray<QFixedPoint> positions;
|
QVarLengthArray<QFixedPoint> positions;
|
||||||
QVarLengthArray<glyph_t> positioned_glyphs;
|
QVarLengthArray<glyph_t> positioned_glyphs;
|
||||||
QTransform matrix = QTransform::fromTranslate(x, y);
|
getGlyphPositions(glyphs, QTransform::fromTranslate(x, y), flags, positioned_glyphs, positions);
|
||||||
getGlyphPositions(glyphs, matrix, flags, positioned_glyphs, positions);
|
|
||||||
addGlyphsToPath(positioned_glyphs.data(), positions.data(), positioned_glyphs.size(), path, flags);
|
addGlyphsToPath(positioned_glyphs.data(), positions.data(), positioned_glyphs.size(), path, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -437,8 +436,7 @@ void QFontEngineBox::addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyp
|
||||||
|
|
||||||
QVarLengthArray<QFixedPoint> positions;
|
QVarLengthArray<QFixedPoint> positions;
|
||||||
QVarLengthArray<glyph_t> positioned_glyphs;
|
QVarLengthArray<glyph_t> positioned_glyphs;
|
||||||
const QTransform matrix = QTransform::fromTranslate(x, y - _size);
|
getGlyphPositions(glyphs, QTransform::fromTranslate(x, y - _size), flags, positioned_glyphs, positions);
|
||||||
getGlyphPositions(glyphs, matrix, flags, positioned_glyphs, positions);
|
|
||||||
|
|
||||||
const QSize s(_size - 3, _size - 3);
|
const QSize s(_size - 3, _size - 3);
|
||||||
for (int k = 0; k < positions.size(); k++) {
|
for (int k = 0; k < positions.size(); k++) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue