From 70251867a50f9f606a7ceaf2338375a67e413b83 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Wed, 24 Mar 2021 08:51:26 +0100 Subject: Fix compilation with experimental x11 paint engine feature Adding support for vertical subpixel positions in d79a9b1a4f694a227ce62ccab9b44685a9755916 changed some private APIs which were used from the xcb-native-painting feature. This fixes this (it does not implement vertical subpixels but simply sets the vertical subpixel position to 0). It also adds a missing "override" which triggered the warnings-are-errors when compiling for me. Fixes: QTBUG-92011 Pick-to: 6.1 Change-Id: If214a0d19a41e623ca9ef8e6215bc145f9846ae9 Reviewed-by: Eirik Aavitsland --- .../platforms/xcb/nativepainting/qpaintengine_x11.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/plugins/platforms/xcb') diff --git a/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp b/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp index ef22efa164..1e3c60ccd5 100644 --- a/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp +++ b/src/plugins/platforms/xcb/nativepainting/qpaintengine_x11.cpp @@ -70,7 +70,7 @@ public: XTrapezoid *traps; int allocated; int size; - void addTrap(const Trapezoid &trap); + void addTrap(const Trapezoid &trap) override; QRect tessellate(const QPointF *points, int nPoints, bool winding) { size = 0; setWinding(winding); @@ -2454,7 +2454,7 @@ static bool path_for_glyphs(QPainterPath *path, ft->lockFace(); int i = 0; while (i < glyphs.size()) { - QFontEngineFT::Glyph *glyph = ft->loadGlyph(glyphs[i], 0, QFontEngineFT::Format_Mono); + QFontEngineFT::Glyph *glyph = ft->loadGlyph(glyphs[i], QFixedPoint(), QFontEngineFT::Format_Mono); // #### fix case where we don't get a glyph if (!glyph || glyph->format != QFontEngineFT::Format_Mono) { result = false; @@ -2606,7 +2606,8 @@ bool QXRenderGlyphCache::addGlyphs(const QTextItemInt &ti, XGlyphInfo xglyphinfo; for (int i = 0; i < glyphs.size(); ++i) { - const QFixed spp = ft->subPixelPositionForX(positions[i].x); + const QFixed sppx = ft->subPixelPositionForX(positions[i].x); + const QFixedPoint spp(sppx, 0); QFontEngineFT::Glyph *glyph = set->getGlyph(glyphs[i], spp); Glyph xglyphid = qHash(QFontEngineFT::GlyphAndSubPixelPosition(glyphs[i], spp)); @@ -2698,7 +2699,8 @@ bool QXRenderGlyphCache::draw(Drawable src, Drawable dst, const QTransform &matr if (!isValidCoordinate(positions[i])) break; - const QFixed spp = ft->subPixelPositionForX(positions[i].x); + const QFixed sppx = ft->subPixelPositionForX(positions[i].x); + const QFixedPoint spp(sppx, 0); QFontEngineFT::Glyph *g = set->getGlyph(glyphs[i], spp); if (g @@ -2825,7 +2827,7 @@ QFontEngine::GlyphFormat QXRenderGlyphCache::glyphFormatForDepth(QFontEngine *fo Glyph QXRenderGlyphCache::glyphId(glyph_t glyph, QFixed subPixelPosition) { - return qHash(QFontEngineFT::GlyphAndSubPixelPosition(glyph, subPixelPosition)); + return qHash(QFontEngineFT::GlyphAndSubPixelPosition(glyph, QFixedPoint(subPixelPosition, 0))); } bool QXRenderGlyphCache::isValidCoordinate(const QFixedPoint &fp) -- cgit v1.2.3