Fix compilation with experimental x11 paint engine feature
Adding support for vertical subpixel positions in
d79a9b1a4f
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 <eirik.aavitsland@qt.io>
This commit is contained in:
parent
5577cbaac5
commit
70251867a5
@ -363,7 +363,7 @@ private:
|
||||
Q_DECLARE_TYPEINFO(QFontEngineFT::QGlyphSet, Q_RELOCATABLE_TYPE);
|
||||
|
||||
|
||||
inline size_t qHash(const QFontEngineFT::GlyphAndSubPixelPosition &g, size_t seed)
|
||||
inline size_t qHash(const QFontEngineFT::GlyphAndSubPixelPosition &g, size_t seed = 0)
|
||||
{
|
||||
return qHashMulti(seed,
|
||||
g.glyph,
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user