| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QTBUG-46260
Change-Id: Ib84a41da10d38391c3248a209a851f5b603d46b0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to 657766f19b31d83f361fd3c9ad717b207e1dff8c which
removed it from the destructor itself. This goes one step further and
removes the calls from the windowDestroyed() calls which also sends the
deferred deletes.
Task-number: QTBUG-40920
Change-Id: I491b79bb600914575ba5565d2862d041726217e8
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
| |
It appears to be possible for node->element()->batch to be NULL
Task-number: QTBUG-43129
Change-Id: If6e4e265a02ee305bf3aa9cad387b7a73648367a
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
| |
Add destructor for QSGThreadedRenderLoop to destory QSGContext object.
Change-Id: I479947eb35a5d7888d45655a9b8e2ece5e30bc33
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Native text rendering results in very different output on OS X
with QQuickWidget/QOpenGLWidget. When targeting an FBO, enabling
sRGB is futile if the FBO was not created with the correct format.
In this case we need to disable the usage of sRGB.
Task-number: QTBUG-42861
Change-Id: I887482e70be2cbfba40d6758546128d03b36def1
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-43847
Task-number: QTBUG-40789
Change-Id: Iceacaa49bafffb31752a9fb26c896df570153fec
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
| |
Print the frame time, not the total, and in milliseconds.
Change-Id: Ia7fe3bea8efafcce475c49517d7adab1b3841729
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
indexData() is null for most QSGGeometryNodes subclasses in QtQuick,
make sure that we draw using vertex array data in that case.
The patch also increases the contrast of the line pattern, since it
is almost invisible with brighter hue values, to make it easier to
see which batches aren't merged.
Change-Id: Ife7b26692ee318feb0810ee0e787289eb151ea8a
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The subpixel shader is probably not a good default here because most
devices are mobile (can change screen orientation) and have high pixel
densities. Furthermore, it breaks text rendering on the Surface RT, where
the graphics hardware is too weak to support the number of uniforms the
subpixel shader uses.
Task-number: QTBUG-41769
Change-Id: I10210af91976ab55e611025c0452a1ee1f3114a9
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|
|
|
|
|
| |
Change-Id: Ic0e594cb53016e6f68fbfb6e6064707344afefef
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\
| |
| |
| | |
Change-Id: I2e7fc085663e00dd0390593a91c30d23d1369c4e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit a9238292145e05d36be7c35bdd50829c6400a3de.
It also reverts follow-up commits:
87755d0437413cfb875c50e3dfa53030601567c9
c2c710e5a8d66fa696276aa69c2e3b00436eefe5
cc8a76ce8ea76afe912902067e95ca2abf9e482f
The new implementation is much too slow because it will cause each
section of the border image to be uploaded to the atlas, and it will
not be shared between different border images nor between different
sizes of the border. The performance regression is so significant
that it's not worth it for the original bug fix.
We leave the tests around, so some of those might regress due to
this.
Change-Id: I3f56f4564255ebb77e6487881a6a11b19ad0234e
Task-number: QTBUG-42288
Task-number: QTBUG-35838
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |\
| | |
| | |
| | | |
refs/staging/5.4.0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The same old issue surfaces in the windows render loop too.
The basic render loop is already fixed, apply a similar patch
to the windows one too.
Task-number: QTBUG-42213
Change-Id: I07068315f5164014e329b8ce061947c97ae9da61
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Linear filtering can cause pixels outside the glyph's bounding rect
to be sampled. On drivers where uninitialized texture data is actually
uninitialized, this could cause artifacts in rendering for glyphs at
the right edge of the initiliazed area since they would sometimes sample
random pixels. To avoid this, we add padding between the glyphs in the
cache.
[ChangeLog][Qt Quick] Fixed uncommon artifacts in rendering of distance
field glyphs.
Task-number: QTBUG-42148
Change-Id: I6982b4a150d9459185d50a4362e1ead588d3860f
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes compilation possible of the saveTexture() function which is
used to store the distance field glyph cache on disk when debugging.
It also changes the warnings output from here to have no prefix, since
this is anyway always available as the context in Qt 5.
Change-Id: If3b64f0921a59c485b5321a5465369708e764afc
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes purify warning:
[W] UMR: Uninitialized memory read in QSGAnimationDriver::advance(void) {1 occurrence}
QSGAnimationDriver::advance(void) [qtdeclarative\src\quick\scenegraph\qsgcontext.cpp:221]
Task-number: QTBUG-42213
Change-Id: Ide35830c60c5935644747da5cfbad1cdbd357232
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|/
|
|
|
|
|
|
|
| |
Just copy the one from QSGSharedDistanceFieldCache with some
compile fixes to the superclass so we store the default cache
as well.
Change-Id: I1fcc390601eea58f8b7729c9cead418e4c94714c
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When having e.g. a clip node inside another clip node and adding
children to the innermost, we would get into the situation where
we did a partial rebuild for the outermost root, but its available
render order count would not be updated to reflect the change
deeper down in the tree. Since the z range would be based on the
outermost batch root's knowledge of the maximum render order in
the tree, what would happen is that the z of the rendered nodes
would increase steadily until they went outside of the viewing
volume and disappeared.
When decreasing the available order count of a batch root, we need
to also decrease the available order count of its parents. If any
of them drop below zero, we need to rebuild the render lists.
[ChangeLog][QtQuick] Fixed nodes sometimes disappearing when
adding many new nodes to the tree.
Change-Id: I39c34acf0e1e0e87601f0fcd983f8da38cee029f
Task-number: QTBUG-42096
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The use of the qDebug() macro to construct a QDebug object fails when
QT_NO_DEBUG_OUTPUT is defined when building Qt.
This patch aims to fix this.
[ChangeLog][General][Build] Can now build with QT_NO_DEBUG_OUTPUT
defined
Change-Id: If807ee3439db2a98b4d146f75860a98f40c247ec
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Change 63e6c9ada82dc8f16e705cef5f89292784b7ace4 introduced snapping to
the pixel grid in the vertex shader for native text, but this code was
broken on retina displays because it assumed integer only positions.
Fix it by including the retina scale factor into the rounding.
Task-number: QTBUG-38702
Change-Id: I84492b02d64f263c9fe030790e04cf79b0dc4e2f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having a retina and non-retina screen connected resulted in getting
no output from QQuickRenderControl and QQuickWidget on the
non-retina screen.
This is caused by the fact that Quick is blindly calling
QWindow::devicePixelRatio(). This approach is wrong when using
QQuickRenderControl since the QQuickWindow does not have an actual
native window and so devicePixelRatio() merely returns some default value
which will definitely be wrong for one of the screens.
The patch fixes the problem by introducing
QQuickWindow::effectiveDevicePixelRatio(), which, via
QQuickRenderControl::renderWindowFor, supports the redirected case too.
Task-number: QTBUG-42114
Change-Id: I057e01f0a00758dde438fc9b10af3a435b06bb0b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The makeCurrent() call can fail if there is no underlying platform
window present anymore (due to close()).
Just continuing with the cleanup is wrong: There may be another context
current (from the application or from some other component of Qt) and
there are GL calls issued which would mess up the state in that context.
Therefore we ensure there's a context/surface by using a temporary
QOffscreenSurface.
Task-number: QTBUG-41942
Change-Id: I79f35a1f5bbe7a8a14943e8603764575ed119f93
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're removing the bad/reallyBad concept for the benefit of an
accumulated lag. When the lag passes over a certain threshold, we
switch to time based. The logic for switching back remains unchanged.
We also fixed the switching so that elapsed() does not jump from the
predicted time to the animation system's wall time, but rather
continues from the predicted time with a walltime offset (this is how
it was always intended to be).
Task-number: QTBUG-42020
Change-Id: I7ee9181aca46cbc18a74fae5e8d513365906c017
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4objectiterator.cpp
src/qml/jsruntime/qv4objectiterator_p.h
src/quick/scenegraph/qsgthreadedrenderloop.cpp
Change-Id: Ia54a9acd96530aa6683c228597af0ca25eadec4f
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
syncTimer was including the time spent waiting for VSYNC on unchanged
frames. This was causing the reported value to be much higher than expected.
Task-number: QTBUG-40556
Change-Id: Ife759b4e27faf2124ab330be8d1f42d15c4d2d33
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This logic changed then timing for when the layer's m_dirtyTexture
was set and unset, which had some side effects. Revert to the old
and known-to-work behavior of using a connection.
Change-Id: I4048e7ae70491afe36b2d766e6c506d9febc44ed
Task-number: QTBUG-41451
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They would unconditionally call cleanupNodesOnShutdown on hide(), but
QQuickWindow::sceneGraphInvalidated would only be emitted if this was
the last window being hidden, leading to an inconsistent state in the
application.
Since the non-threaded render loops do not support releasing resources
(there is one OpenGL context and one QSGRenderContext shared between
all windows) we delay cleanup until the window is destroyed.
This change also make the render loops track the windows until they
are destroyed, similar to what the threaded one does. The purpose of
this is to, in the case of dangling windows, only trigger invalidation
of the scene graph when the last QQuickWindow is destroyed through
QSGRenderLoop::cleanup().
Task-number: QTBUG-41210
Change-Id: I7e12a4f726ebb3e7935c822b6046abb3590c583a
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bad for two reasons: first, it increases the load time of the
application and second, it makes it impossible to to setenv/putenv from
main(). The latter is useful if you need to work on an embedded device
that doesn't allow setting environment variables.
Change-Id: Id543f77336d7ac2e4ea820b51f55ce5a40a33b4e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I've wanted this for a long time, but the animation system didn't
support it when mixed with timers/pauses. However, because of
dfc8f8b5d4a02f33c7f9063c2a28450902a9d863 and
0db3ea4048fe572a256deb343ea5e64a55d98de9 to qtbase, it is now
possible.
Change-Id: Ic70c181ce49eae90276bd4f22a2d299061f96087
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When calling QQuickWindow::update() on the GUI thread, we would
immediately flag the render thread that a repaint was needed and then
schedule a polishAndSync. If the render thread completed the current
frame before the GUI thread got to polishAndSync, it would repaint
right away without syncing with GUI first.
Instead of sending the repaint right away, register the need for a
full repaint in the window and set it as part of the next sync phase.
Change-Id: Ia731fb46724cc79f5391422213b069de9362d002
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Iae934e4d9e91f4ea21dd5bf27c4fafc5d481fb0a
Task-number: QTBUG-41278
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some features, like the memory profiler, create huge amounts of data.
Often enough, we're not actually interested in all the data available
from the profiler and collecting it all can lead to excessive memory
consumption. This change enables us to optionally turn various aspects
of QML profiling off.
Task-number: QTBUG-41118
Change-Id: I7bb223414e24eb903124ffa6e0896af6ce974e49
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
It was wrong when we ran without depth buffer or when we used the
separate ibo code path.
Change-Id: Ie6e4bfc99ee2a4a593e45be7d9af9af17896bcba
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The implementation relied on the full matrix, but did not
set the RequiresFullMatrix flag. Setting the flag would
have serious negative performance impact as it prevents
batching, so we solve it in the vertex shader instead.
Task-number: QTBUG-38702
Change-Id: I0c245ea9e18b0b29dd9e3073a2648a7f4e061685
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4arraydata.cpp
src/quick/scenegraph/util/qsgatlastexture.cpp
Change-Id: Ic4c96066d5c37dcf0d5446baed590ea005d445ce
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the stride does not match the width of the image, we upload
it line-by-line instead of as one big rect.
Change-Id: I5e08afcf5c35dc810fed25e45255d55d932b2a4c
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Keeping all patches of the border image in the same texture
with different sample points can cause parts of the border
to bleed over to the center patch. To rectify this, we
create a separate texture for each of the nine patches we
need, and separate image nodes.
To avoid applying antialiasing on the interior edges of the
border image, we introduce new antialiasing flags which can
be used to specify precisely which edges of the image should
be antialiased.
[ChangeLog][BorderImage] Fixed possible pixel bleed between
border patches and center patch in BorderImage.
Change-Id: Icc292b3969217320eecca99e79675316c42eab08
Task-number: QTBUG-35838
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We do not actually use the OpenGL context in this method other than to
query the profile type if one is available. In the case that there is
no context the profile type does not matter and the default value of
QSurfaceFormat::NoProfile is correct.
Change-Id: Ice4440fe0e578d4cdcba347f5325768667722af8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I97ee290c31ca4fa0ffc2f822f14bc7d5e34dd222
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is a system-level failure, with which we can do very little,
so we abort.
Change-Id: I945da8bd28df35a6c8987160a2f0177d27d6c95d
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This problem existed on 10.6, but is not reproducible on newer
MacBookPros, so disable it for 10.8 and up.
Change-Id: I0ae216c8e2307df5f77a783ec2d2031bf12ccbf2
Task-number: QTBUG-20193
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows the scenegraph backend to customize how QSGPainterNodes are
rendered.
Change-Id: I640dcf121d0be6bda615cf30591d502329fc89d0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\ \ |
|
| |\|
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/qml/qqmlobjectcreator_p.h
Change-Id: I60858ddb46866a8fa1a8576bb05b412afeeb4e41
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I415e632aa4e584c8fca745581f25a676db0eae42
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|/ /
| |
| |
| |
| |
| |
| | |
And how to use use two textures in the same material.
Change-Id: Idcc618ed359422c2a104eeed105b7c4f5086ee4e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I605dc35fcc2284a890851c41946cf95537e92d2e
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3 & LICENSE.GPLv2
- Removed LICENSE.GPL
Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
|