Qt 5.15.1 - not built yet
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtdeclarative?expand=0&rev=11
This commit is contained in:
parent
71a9998ad0
commit
c3ae9998c0
@ -1,59 +0,0 @@
|
||||
From 40ba29cae5cdb2ebd6330870a0f15e2e75d40de0 Mon Sep 17 00:00:00 2001
|
||||
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
||||
Date: Tue, 05 May 2020 11:36:24 +0200
|
||||
Subject: [PATCH] Fix subpixel positioned text with Text.NativeRendering
|
||||
|
||||
We would be generating subpixel positioned glyphs based on the
|
||||
relative positions of the glyphs, ignoring the fractional part
|
||||
contributed by the origin of the text. So if the text origin was
|
||||
inside a pixel, the subpixel antialiasing would be wrong and we
|
||||
would see kerning errors.
|
||||
|
||||
This was especially visible when using AlignHCenter on text
|
||||
with hinting disabled and resizing the item it was aligning to.
|
||||
|
||||
Pick-to: 5.15
|
||||
Task-number: QTBUG-49646
|
||||
Change-Id: I0e709ba2b5d2440e34c94c6f819befe0a65a113a
|
||||
---
|
||||
|
||||
diff --git a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
|
||||
index be6ef25..831586c 100644
|
||||
--- a/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
|
||||
+++ b/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
|
||||
@@ -789,11 +789,12 @@
|
||||
const QMargins &margins)
|
||||
{
|
||||
Q_ASSERT(m_font.isValid());
|
||||
+ QPointF position(p.x(), p.y() - m_font.ascent());
|
||||
QVector<QFixedPoint> fixedPointPositions;
|
||||
const int glyphPositionsSize = glyphPositions.size();
|
||||
fixedPointPositions.reserve(glyphPositionsSize);
|
||||
for (int i=0; i < glyphPositionsSize; ++i)
|
||||
- fixedPointPositions.append(QFixedPoint::fromPointF(glyphPositions.at(i)));
|
||||
+ fixedPointPositions.append(QFixedPoint::fromPointF(position + glyphPositions.at(i)));
|
||||
|
||||
QTextureGlyphCache *cache = glyphCache();
|
||||
|
||||
@@ -815,18 +816,16 @@
|
||||
Q_ASSERT(geometry->sizeOfVertex() == sizeof(QVector4D));
|
||||
ushort *ip = geometry->indexDataAsUShort();
|
||||
|
||||
- QPointF position(p.x(), p.y() - m_font.ascent());
|
||||
bool supportsSubPixelPositions = fontD->fontEngine->supportsSubPixelPositions();
|
||||
for (int i=0; i<glyphIndexes.size(); ++i) {
|
||||
+ QPointF glyphPosition = glyphPositions.at(i) + position;
|
||||
QFixed subPixelPosition;
|
||||
if (supportsSubPixelPositions)
|
||||
- subPixelPosition = fontD->fontEngine->subPixelPositionForX(QFixed::fromReal(glyphPositions.at(i).x()));
|
||||
+ subPixelPosition = fontD->fontEngine->subPixelPositionForX(QFixed::fromReal(glyphPosition.x()));
|
||||
|
||||
QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphIndexes.at(i), subPixelPosition);
|
||||
const QTextureGlyphCache::Coord &c = cache->coords.value(glyph);
|
||||
|
||||
- QPointF glyphPosition = glyphPositions.at(i) + position;
|
||||
-
|
||||
// On a retina screen the glyph positions are not pre-scaled (as opposed to
|
||||
// eg. the raster paint engine). To ensure that we get the same behavior as
|
||||
// the raster engine (and CoreText itself) when it comes to rounding of the
|
||||
|
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 10 07:57:04 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Update to 5.15.1:
|
||||
* New bugfix release
|
||||
* For more details please see:
|
||||
http://code.qt.io/cgit/qt/qtdeclarative.git/plain/dist/changes-5.15.1/?h=5.15.1
|
||||
- Drop patches, now upstream:
|
||||
* fix-subpixel-positioned-text.patch
|
||||
* qtdeclarative-switch-to-python3.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 26 09:50:22 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
|
||||
|
||||
|
@ -19,11 +19,11 @@
|
||||
%define qt5_snapshot 0
|
||||
%define libname libQtQuick5
|
||||
%define base_name libqt5
|
||||
%define real_version 5.15.0
|
||||
%define so_version 5.15.0
|
||||
%define tar_version qtdeclarative-everywhere-src-5.15.0
|
||||
%define real_version 5.15.1
|
||||
%define so_version 5.15.1
|
||||
%define tar_version qtdeclarative-everywhere-src-5.15.1
|
||||
Name: libqt5-qtdeclarative
|
||||
Version: 5.15.0
|
||||
Version: 5.15.1
|
||||
Release: 0
|
||||
Summary: Qt 5 Declarative Library
|
||||
License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
|
||||
@ -31,12 +31,8 @@ Group: Development/Libraries/X11
|
||||
URL: https://www.qt.io
|
||||
Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtdeclarative/+/299258/1
|
||||
Patch1: fix-subpixel-positioned-text.patch
|
||||
# PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case
|
||||
Patch100: sse2_nojit.patch
|
||||
# PATCH-FIX-OPENSUSE Switch to use python3 at build time
|
||||
Patch102: qtdeclarative-switch-to-python3.patch
|
||||
Patch103: qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: libQt5Core-private-headers-devel >= %{version}
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699
|
||||
size 21493268
|
3
qtdeclarative-everywhere-src-5.15.1.tar.xz
Normal file
3
qtdeclarative-everywhere-src-5.15.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7e30f0ccba61f9d71720b91d7f7523c23677f23cd96065cb71df1b0df329d768
|
||||
size 21558724
|
@ -1,96 +0,0 @@
|
||||
Subject: Make qtdeclarative build with python3
|
||||
From: Max Lin <mlin@suse.com>
|
||||
From: Antonio Larrosa <alarrosa@suse.com>
|
||||
Index: qtdeclarative-everywhere-src-5.12.0-alpha/qtdeclarative.pro
|
||||
===================================================================
|
||||
--- qtdeclarative-everywhere-src-5.12.0-alpha.orig/qtdeclarative.pro
|
||||
+++ qtdeclarative-everywhere-src-5.12.0-alpha/qtdeclarative.pro
|
||||
@@ -2,7 +2,7 @@ CONFIG += tests_need_tools examples_need
|
||||
load(qt_parts)
|
||||
|
||||
!python_available {
|
||||
- py_out = $$system('python -c "print(1)"')
|
||||
+ py_out = $$system('python3 -c "print(1)"')
|
||||
!equals(py_out, 1): error("Building QtQml requires Python.")
|
||||
tmp = python_available
|
||||
CONFIG += $$tmp
|
||||
Index: qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/masm.pri
|
||||
===================================================================
|
||||
--- qtdeclarative-everywhere-src-5.12.0-alpha.orig/src/3rdparty/masm/masm.pri
|
||||
+++ qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/masm.pri
|
||||
@@ -58,7 +58,7 @@ contains(DEFINES, WTF_USE_UDIS86=1) {
|
||||
udis86.output = udis86_itab.h
|
||||
udis86.input = ITAB
|
||||
udis86.CONFIG += no_link
|
||||
- udis86.commands = python $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN}
|
||||
+ udis86.commands = python3 $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN}
|
||||
QMAKE_EXTRA_COMPILERS += udis86
|
||||
|
||||
udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c
|
||||
@@ -113,7 +113,7 @@ retgen.output = $$GENERATEDDIR/RegExpJit
|
||||
retgen.script = $$PWD/yarr/create_regex_tables
|
||||
retgen.input = retgen.script
|
||||
retgen.CONFIG += no_link
|
||||
-retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT}
|
||||
+retgen.commands = python3 $$retgen.script > ${QMAKE_FILE_OUT}
|
||||
QMAKE_EXTRA_COMPILERS += retgen
|
||||
|
||||
# Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf
|
||||
Index: qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/disassembler/udis86/itab.py
|
||||
===================================================================
|
||||
--- qtdeclarative-everywhere-src-5.12.0-alpha.orig/src/3rdparty/masm/disassembler/udis86/itab.py
|
||||
+++ qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/disassembler/udis86/itab.py
|
||||
@@ -268,13 +268,13 @@ class UdItabGenerator( ud_opcode.UdOpcod
|
||||
opr = e[ 'operands' ]
|
||||
for i in range(len(opr)):
|
||||
if not (opr[i] in self.OperandDict.keys()):
|
||||
- print "error: invalid operand declaration: %s\n" % opr[i]
|
||||
+ print("error: invalid operand declaration: %s\n" % opr[i])
|
||||
opr_c[i] = "O_" + opr[i]
|
||||
opr = "%s %s %s" % (opr_c[0] + ",", opr_c[1] + ",", opr_c[2])
|
||||
|
||||
for p in e['prefixes']:
|
||||
if not ( p in self.PrefixDict.keys() ):
|
||||
- print "error: invalid prefix specification: %s \n" % pfx
|
||||
+ print("error: invalid prefix specification: %s \n" % pfx)
|
||||
pfx_c.append( self.PrefixDict[p] )
|
||||
if len(e['prefixes']) == 0:
|
||||
pfx_c.append( "P_none" )
|
||||
Index: qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/disassembler/udis86/ud_optable.py
|
||||
===================================================================
|
||||
--- qtdeclarative-everywhere-src-5.12.0-alpha.orig/src/3rdparty/masm/disassembler/udis86/ud_optable.py
|
||||
+++ qtdeclarative-everywhere-src-5.12.0-alpha/src/3rdparty/masm/disassembler/udis86/ud_optable.py
|
||||
@@ -50,7 +50,7 @@ class UdOptableXmlParser:
|
||||
elif def_node.localName == 'vendor':
|
||||
ven = ( def_node.firstChild.data );
|
||||
else:
|
||||
- print "warning: invalid node - %s" % def_node.localName
|
||||
+ print("warning: invalid node - %s" % def_node.localName)
|
||||
continue
|
||||
return ( pfx, opc, opr, ven )
|
||||
|
||||
@@ -65,7 +65,7 @@ class UdOptableXmlParser:
|
||||
if not insnNode.localName:
|
||||
continue
|
||||
if insnNode.localName != "instruction":
|
||||
- print "warning: invalid insn node - %s" % insnNode.localName
|
||||
+ print("warning: invalid insn node - %s" % insnNode.localName)
|
||||
continue
|
||||
|
||||
mnemonic = insnNode.getElementsByTagName( 'mnemonic' )[ 0 ].firstChild.data
|
||||
@@ -84,11 +84,11 @@ class UdOptableXmlParser:
|
||||
|
||||
|
||||
def printFn( pfx, mnm, opc, opr, ven ):
|
||||
- print 'def: ',
|
||||
+ print('def: ', end='')
|
||||
if len( pfx ):
|
||||
- print ' '.join( pfx ),
|
||||
- print "%s %s %s %s" % \
|
||||
- ( mnm, ' '.join( opc ), ' '.join( opr ), ven )
|
||||
+ print(' '.join( pfx ), end='')
|
||||
+ print("%s %s %s %s" % \
|
||||
+ ( mnm, ' '.join( opc ), ' '.join( opr ), ven ))
|
||||
|
||||
|
||||
def parse( xml, callback ):
|
Loading…
Reference in New Issue
Block a user