| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I2190975762c6283daa004b754da607829d263b0a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting the stretch of a QFont did not work correctly on OS X or
iOS.
Two things are needed to make it work: First of all, we need to
properly set the transform when creating the CTFont.
In addition, we need to manually scale the advances, as
CTRunGetPositions() does not do this for us. On OS X 10.6, however,
there was a regression and CTRunGetPositions() would return scaled
positions, so we exclude the step to scale the advances on this
particular version.
This is an adaptation of bc25cfdd65452efa226cbd544c9ae9803eb6748a
in Qt 4.
[ChangeLog][QtGui][OS X/iOS] Fixed a bug when rendering fonts that
were set to be stretched.
Task-number: QTBUG-43801
Change-Id: I4902a9f5e29299761e3c2c5c6d6d80ee1dea1a25
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-43774
Change-Id: Ie55de75e31e1e569f4b4e336900a8f96f7c1b9c0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Left-shifting of negative values is undefined ([expr.shift]/2).
Use multiplication with 64 instead.
There are probably more instances in this class, but this patch
already gets rid of vast amounts of ubsan errors in
tests/auto/gui/text.
Found by UBSan.
Change-Id: I89b8bb61e4decba605fe4fb3efea68b1f1eacf1a
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
| |
Change-Id: I891bd5272db76e8562f6722b633cc0fdaac5f7a2
Task-number: QTBUG-43853
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
| |
Change-Id: I29d5576902a5d1ea25558e980081952d9157f7f0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
|
|
|
|
|
|
|
| |
This function is private.
Task-number: QTBUG-35907
Change-Id: I370c0bfd8fda11c68ee76ee42967f117a81b381c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Left-shifting of negative values is undefined ([expr.shift]/2).
Since hashValue is a uint already, rectify by casting it->key to
uint prior to shifting.
Found by UBSan.
Change-Id: I94a5311f5a4492f514f595b8fb79726df1e7d0de
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-43657
Change-Id: I574186253ee423cc380ec3c6f274f1caa2a6aa2a
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When compiling tst_qpathclipper with MinGW:
In file included from QtGui/private/qpathclipper_p.h:1:0,
from tst_qpathclipper.cpp:33:
src/gui/painting/qpathclipper_p.h:469:29: warning: 'static QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal)' redeclared without dllimport attribute after being referenced with dll linkage
inline QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal traversal)
^
qpathclipper_p.h:474:29: warning: 'static QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction)' redeclared without dllimport attribute after being referenced with dll linkage
inline QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction direction)
Change-Id: I38feb07d693768285c1d405b3fc92a58c3309547
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
A mismatch between requiresPretransformedGlyphPositions and
shouldDrawCachedGlyphs in QRasterPaintEngine will cause the text
position to be transformed twice when using drawGlyphRun on a QPainter
with a perspective transform. Since this case falls back to drawing
text as paths there is no reason to require any special treatment.
Change-Id: Ib1c14aee4cc6774dd8feadc5748f0b0ee59633b9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the constructor is inline, the generated code needs access to the
vtable, which gets emitted with the first virtual function (in QtGui),
but somehow icl.exe can't find it in debug. Looking at the .obj files it
generates and comparing to MSVC, it seems that:
- both generate and export the inline constructor from Qt5Guid.dll
- MSVC will call that constructor from qoffscreenintegration.obj
- icl.exe will inline the constructor and requires a symbol not
exported from Qt5Guid.dll
I can't explain why (probably a compiler bug).
Change-Id: I0ab9c078ae4fc794826025d68d364124c7247e80
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The orientation is unsigned short, read it as such. In
JPEG-files created by Ricoh/Pentax cameras, the data is saved in
Motorola format. Reading the wrong data size will produce invalid
values when converting the byte order.
Change-Id: I8f7c5dc5bfc10c02e090d3654aaefa047229a962
Task-number: QTBUG-43563
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
384388f2 introduced some checks, and used an assignment in an assert;
that sets off compiler warnings about expressions with side effects
into an assertion. Hence, that code needs to be reworked a bit.
Unfortunately, there's no single define we can use to know if
assertions are enabled or not in Qt, so simply use QT_NO_DEBUG
to enable/disable those checks. The actual "thread" data member
is kept around to avoid break ABI depending on debugging flags.
Change-Id: I8b07e7ff6f81359d6b0653a1d9cc2b720541d1b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-43115
Change-Id: Ib441326083294a6d59d75510142b1481f7b0bc35
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-43508
Change-Id: I6b525cab2a3958f4e3528ed8102d07984f152e60
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gesture events sent to a disappearing tooltip can crash. This can most
easily be seen by scrolling over a tooltip on OSX with a magic mouse
middle scroll gesture.
Task-number: QTBUG-42826
Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
The patch was incorrect and caused semi-transparent images
have inversed colors instead of fixing it.
This reverts commit 624740cdcdd4abfb15bbbc8a8aa056c57712499f.
Change-Id: I3f1fa17309fcb53995520843449aae972e0090b8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
|
|
|
|
|
|
|
|
| |
This method is not being called anywhere.
Change-Id: Ia32e8b48d324e4848db666de4d274a260d22b06d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
| |
What gets passed to this function is in milliseconds, not seconds (see
QSystemTrayIconPrivate::showMessage_sys_qpa implementation), and the only
currently existing implementation (in KDE frameworkintegration) expects
milliseconds as well.
Change-Id: I7a2c847530391aa73183704251c996664668a740
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the source widget to the texture list (may be null for custom
compositor implementations that add textures not belonging to actual
widgets). This allows us to do proper checks with the
dirtyRenderToTextureWidgets list.
As a result paint events are only sent to a QOpenGLWidget if (1) there
was an update() for it or (2) it was actually marked dirty. (2) was
previously behaving differently: the widget got a paint event when
anything in the window has changed. This is fine for naive animating
OpenGL code but less ideal for QGraphicsView.
Bool properties like stacksOnTop are now stored in a flags value to
prevent future explosion of texture list fields and parameters.
Task-number: QTBUG-43178
Change-Id: I48cbcf93df72ac682c9b5d64982a8b648fe21ef3
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
QGuiApplication::platformNativeInterface().
Fix MSVC warning (release build):
qopenglcontext.cpp(1116) : warning C4189: 'app' : local variable is initialized but not referenced
Change-Id: I00fa5237bbac4c0e3bb63ea9d3e5096e05dbe1be
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The calculateTabWidth() can trigger shaping of the item, which can
cause the layout data to be reallocated, so we need to update the
local pointers to it, like we do when we explicitly invoke the
shaper.
[ChangeLog][Text] Fixed problems with text layout when using custom
tab stops.
Task-number: QTBUG-43126
Change-Id: Ifaeeeb4bfb1a55e6638b12b444f53d2679d3d1e6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Ensures that we have a consistent view of what the last used texture
was, which is critical when deciding whether or not we need to re-bind
the texture or update texture properties.
Change-Id: Ib47eb00abde98d148fc6e569ce3e359b340328fb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling QOpenGL2GradientCache::getBuffer() will generate the texture the
first time, calling glBindTexture in the process. We did this without
first ensuring that the right texture unit was active, resulting in the
generated gradient texture binding onto the glyph cache mask unit.
We now provide a specialization of bindTexture for a QGradient, which
ensures that the right unit is active before calling getBuffer().
Unfortunately we have no way of knowing if the result of getBuffer()
was a texture that was already bound, or if we need to bind the result,
which means we have to do an unconditional bindTexture of the resulting
texture ID. This means double-bind for the initial texture generation,
but this was already an issue in the original code.
Task-number: QTBUG-43039
Task-number: QTBUG-41244
Change-Id: I20c9b795c8c14f8d58be2b60a284c5a060705ec0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
QFontEngine must be accessed amd deleted only in a thread in which
it was instantiated, so we remember that thread and check if it
hasn't been changed every time we access the engine.
Change-Id: I28bc0394ced9cbd437dc950d35ffcbd99cfa7152
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switching texture units means the value of lastTextureUsed could be
invalid, meaning we need to unconditionally re-bind and update parameters.
A future optimization would be to keep a per-texture-unit cache, so
that we wouldn't have to re-bind and set parameters when switching
units back and forth, but this complicates the current code somewhat,
so it's left for another patch.
Change-Id: Icb2a5d03457a907f3c25bbb437feeb7c5f155716
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QImage::transformed compensates for unwanted translation. This compensation
is performed in "pixel space". However, a possible code path to perform the
transformation uses QPainter which is devicePixelRatio-aware and expects the
transformation matrix to be in logical coordinates.
For example, image.transformed(QTransform().rotate(45)) will result in
cropped out image if devicePixelRatio == 2.
Change-Id: I830ff3ffa25531d842dc9c77f1d0e8d4bd502c9d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewrite of updateTextureFilter to include activating and binding as well,
so that we can maintain a single view of which texture was the last one
to be used from within the engine itself.
The behavior should be the same as before.
Change-Id: I41781d00458b0176c614266f4360db3c68b120a1
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The glyph cache internally uses the image texture unit when blitting,
but doesn't always activate the unit before binding its texture,
resulting in sometimes binding the glyph cache texture to the
wrong unit.
The image texture unit is also the same as the brush texture unit,
so any time we fill in pending glyphs we need to re-bind the brush
texture, otherwise drawing text with eg. gradients will fail after
the new glyphs have been filled.
The new hasPendingGlyphs() member function of the glyph cache
is an optimization so that we don't need to activate and rebind
unless there are glyphs that need to be filled.
Change-Id: Iac74130145d2d6d7bf95206b5e8a2fc760743cb5
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: I8149eb2deaa101daf85a957ff48c3a7140c43bbc
Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
While the attribute was originally intended for widgets (QOpenGLWidget,
QQuickWidget) only, we need a way to get multiple QOpenGLWindow instances
whose contexts share with each other.
Change-Id: Ib983c9c2815b0a3911bc504ffad8d8dddad192aa
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|\
| |
| |
| | |
refs/staging/5.4
|
| |\
| | |
| | |
| | | |
Change-Id: I0cd11cbe95693b78450ea81a0187760f4a6a8b5f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The GL_RGBA8_OES define is not in scope for dynamic OpenGL builds, so
pass in GL_RGBA8 instead (it is defined as the same value, 0x8058) when
in ES mode. The functionality check already ensures the extension is
available, so the ifdef guards can be removed.
This fixes default multisampled FBO creation under ANGLE when using
-opengl dynamic.
Task-number: QTBUG-40921
Change-Id: Iac4b7e230a463c27b61af75c3307421f9deac856
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|/ /
| |
| |
| |
| |
| | |
Change-Id: I99f7192008ae8ea3a16f5300e5e4ebdde50847af
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Fira Sans font by the Mozilla Foundation has bytecode that goes
into an infinite loop. Fortunately FreeType catches the case, but we
fail to render any glyphs and spends too long trying the bytecode on
every glyph.
This patch instead switches the font to auto-hinting when this error is
encountered.
Task-number: QTBUG-41034
Change-Id: Icd044b41396a06fb435bc189cdbd71d703107de6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only reproduced with Windows font Calibri. This font has both
outline (vector) and bitmap glyphs. QFontEngine_FT has an hack
to get metrics from EBLC table, but this might fail, resulting
in a 0 ascender and descender, meaning QFontMetrics::height()
will be 0, meaning totally broken text.
This patch checks for that failure, and fallbacks to the outline
metrics instead of the bitmap ones.
Task-number: QTBUG-42898
Change-Id: If33fc3404d0c7f84557f8c4a5ae71b30f78d60a7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The text was very washed out, almost white on small font sizes.
This ifdef was introduced to cater for GDI differences between Vista
and Pre-Vista, it's GDI specific, nothing to do with FreeType.
Text now looks good, and md5sum of the rendering is the same as on Linux.
Task-number: QTBUG-42564
Change-Id: I2e06b83b80df093331454fe1b780d26462db597d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Id13d5bc122c4f9cc8f44ff82df345a50f2944118
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I8b71c33adb37c166bf4fc6dc8c2e7418d60fbf81
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Must have been a copy paste mistake, the check is used in other places
to make sure we don't unlockFace() without a lockFace(), but here
we're certain lockFace() was called first.
Makes Coverity happy.
Change-Id: I679129727b29a40d780f4fa903f44f7cbc9ec8cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=b3500af717010137046ec4076d1e1c0641e33727
../gui/text/qfontengine_ft.cpp: In member function ‘QFontEngineFT::Glyph* QFontEngineFT::loadGlyph(QFontEngineFT::QGlyphSet*, uint, QFixed, QFontEngine::GlyphFormat, bool) const’:
../gui/text/qfontengine_ft.cpp:1126:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
for (int x = 0; x < slot->bitmap.width; x++) {
Change-Id: Idb58f9e5895aac8c02163870d7c7d4a49237086b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
dist/changes-5.4.0
7231e1fbe24102f2a93b34dfa70e3dca884440d2 went into 5.4 instead of the
5.4.0 branch, thus the conflict.
Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This function is apparently optimized in a way that gives a bad return
value (or leaves the variable where it is used uninitialized), leading to
extreme memory allocations and eventual heap exhaustion.
Task-number: QTBUG-42038
Change-Id: Ia4ee9fc6475a0bf40e25eed356b027a4dc68d119
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a virtual function QWindowPrivate::closestAcceptableGeometry()
which is called from the platform plugin.
Task-number: QTBUG-36220
Task-number: QTBUG-36318
Change-Id: I2b3d205e2c75f1d4dd2ba1d333b0d89bc0fcf13a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Clarify that shown here refers to where they are shown initially.
Change-Id: I962fd4b98d80fb1d43e086660fb74eea6b8f532a
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If you build with configure -DQT_NO_DEPRECATED this will avoid some
build errors.
Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a capability enumeration to QPlatformInputContext and
use that to turn off input methods for hidden text depending
on platform support. Disable on Windows.
Task-number: QTBUG-40691
Change-Id: I9909005de1f21316ec8f64e2729f1fffcd37c7c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
to support configure -no-feature-CURSOR
Change-Id: I8e7f9a7f80d3d44a1f8e25b909d552351b5f37e4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|