aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
Commit message (Collapse)AuthorAgeFilesLines
* Reuse the memory we use for vertex uploads.Gunnar Sletta2015-01-062-11/+65
| | | | | | | | | | | | | | | | | | | | | Every batch would have its own buffer with its own memory and the original idea was that it would stabilize so that the same batch would be used over and over, so the memory allocatd for each batch's buffer would be reused. In practice batches get discarded and recycled in somewhat arbitrary order so we always end up reallocating. Instead, use a single buffer for all uploads. This saves us several reallocations per frame, and also prevents pooling of several potentially large allocated blocks inside the renderer. The exception is when using visualization or for drivers which have broken index buffer support (nouveau only currently), where we keep the existing behavior as the buffer data is needed during rendering and visualization. Change-Id: Id29095e00128ec1ee6d4ac3caa8f2c17cc7bbd27 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Remove bogus assert.Gunnar Sletta2015-01-051-2/+0
| | | | | | | | | | It is perfectly valid to reparent nodes to a parent that is part of an existing hierarchy. Change-Id: Icf2dbe6030d399047e7ebe735e3096d1a8cd8c0e Task-number: QTBUG-43278 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Traverse children correctly when reparenting.Gunnar Sletta2015-01-051-1/+1
| | | | | | | | | | | Since the children are being removed from the parent, using nextSibling on the child won't work. We need to extract the first child from the parent until there are no more children left. Change-Id: Ifca5f2760e2b1c7ba56c198623c5dc9d82c7560f Task-number: QTBUG-42530 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Allow batching of GL_LINES and GL_POINTS geometryUlf Hermann2014-12-161-1/+2
| | | | | | | | | | | | | | | This is analogous to GL_TRIANGLES and GL_TRIANGLE_STRIP. There is no reason why we shouldn't batch it. In the case of GL_LINES this means a slight behavior change, though: If you provided geometry with an uneven number of vertices, it would draw lines the way opengl specifies it and drop the last vertex. Now, with batching, it will draw a line from the last vertex of an "uneven" node to the first vertex of the next node. This, however, is exactly like it already works for GL_TRIANGLES if you specify a number of vertices not divisible by 3. We assume the user should specify a number of vertices that matches the drawing mode. Change-Id: I372b9c15a19f065d3aeb3727688cca408ce9608e Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Default to threaded when using opengl32Laszlo Agocs2014-12-121-1/+6
| | | | | | | | | | | | | | | | | | This appplies only when using opengl32.dll. When using ANGLE or when using another non-opengl32 DLL, the "windows" single-threaded loop is chosen, just like before. One badly written autotest is fixed. We must never assume that performing some QQuickWindow related work will leave a context current on the main thread. The assumption worked by accident with the single-threaded render loop. [ChangeLog][QtQuick] Changed to use the threaded render loop by default on Windows when running with desktop OpenGL (opengl32.dll). Change-Id: I21798622c19ca510a97a96c19c1e70e29f086e3a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-0911-248/+222
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4arraydata.cpp src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4globalobject.cpp src/qml/jsruntime/qv4internalclass.cpp src/quick/items/qquicktext_p.h src/quick/items/qquicktextedit_p.h src/quick/items/qquicktextinput_p.h Change-Id: If07e483e03197cb997ef47a9c647a479cdb09f4c
| * Don't default to HighQualitySubPixelAntialiasing on WinRTAndrew Knight2014-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Add since 5.4 markersAlbert Astals Cid2014-11-281-0/+4
| | | | | | | | | | | | Change-Id: Ic0e594cb53016e6f68fbfb6e6064707344afefef Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-214-65/+28
| |\ | | | | | | | | | Change-Id: I2e7fc085663e00dd0390593a91c30d23d1369c4e
| | * Revert "Fix pixel bleed in BorderImage"Eskil Abrahamsen Blomfeldt2014-11-103-62/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Merge "Merge remote-tracking branch 'origin/5.4' into 5.4.0" into ↵Jani Heikkinen2014-11-105-173/+168
| | |\ | | | | | | | | | | | | refs/staging/5.4.0
| | * | Fix not having a context when cleaning up on WindowsLaszlo Agocs2014-11-101-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | | Add padding to distance field glyph cacheEskil Abrahamsen Blomfeldt2014-11-112-9/+22
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Debug: Make it possible to save distance field cache on WindowsEskil Abrahamsen Blomfeldt2014-11-071-75/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Initialize member variable QSGAnimationDriver::m_lag.Friedemann Kleint2014-11-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Add a debug function to save contents of distance field cacheEskil Abrahamsen Blomfeldt2014-11-054-173/+175
| |/ | | | | | | | | | | | | | | | | 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>
* | Avoid inadvertent copies of the windows listRoger Maclean2014-12-081-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a couple of ways in which this code creates temporary copies of the window list, m_windows. This is often benign but there are also places (e.g. startOrStopAnimationTimer) which get non-const references to items which results in m_windows being detached from the temporary resulting in a real copy of the list items. Again the copy is often fairly benign, however, as the code also relies heavily on pointers to items in the list, it can also result in crashes. I think it might be advisable to store a list of pointers to Window structures rather than store the structure themselves as it appears really easy to introduce copies of the list accidentally. The removal of the use of foreach for example is not made here for aesthetics but because it introduces a hidden temporary copy of the list. Change-Id: I504951a897c4fb0cf106f5a4792b5cfcd532ba8f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Remove the executioncontext in a few more places where it's not neededLars Knoll2014-11-211-0/+1
| | | | | | | | | | Change-Id: I4c92c7bc9d94d8265e306f45d863fdc080a5e2a6 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Expose a getter for the QSGEnginePrivateJocelyn Turcotte2014-11-191-1/+1
| | | | | | | | | | | | | | This allows getting its underlying QSGContext and QSGRenderContext. Change-Id: If0773d09b6faa360e706949757db1a6ddbe244e1 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Allow setting the source rect on QSGSimpleTextureNodeJocelyn Turcotte2014-11-192-10/+53
| | | | | | | | | | | | | | | | This allows the QtQuick 2D Renderer to get this information without having to extract it from the QSGGeometry. Change-Id: Iec99c4bc910fea9c7d0e6712a418787254a70cb2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-11-041-6/+12
|\| | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4errorobject_p.h Change-Id: I7fc1211295738a9fae32b783a9f001f1613785e4
| * Fix disappearing nodes when adding in two levels of batch rootEskil Abrahamsen Blomfeldt2014-11-041-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Use an allocator for QSGBatchRenderer::Node and Element instances.Gunnar Sletta2014-11-022-22/+140
| | | | | | | | | | | | | | | | Cuts down quite a bit on the time spent on the render thread during the sync phase. Change-Id: Ide8c4348141c84ed8abd9a869607a022652c2828 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Fix typo in Q_ASSERT_X warning.Gunnar Sletta2014-11-011-1/+1
| | | | | | | | | | Change-Id: I1415de93af35177fd643c21bcae2492a79187e50 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-2910-39/+85
|\| | | | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickaccessibleattached_p.h src/quick/items/qquickwindow.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: I8bf07487a75f9d1b0d6efa5914dd06875fc9654d
| * Fix build with QT_NO_DEBUG_OUTPUT definedSamuel Gaist2014-10-241-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Fix pixelgrid snapping of native text on retina displays.Gunnar Sletta2014-10-235-14/+26
| | | | | | | | | | | | | | | | | | | | | | 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>
| * Fix disfunctional QQuickRenderControl with multiple screensLaszlo Agocs2014-10-224-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Fix failing makeCurrent in basic renderloop when closing windowsLaszlo Agocs2014-10-211-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Tweak new animation driver.Gunnar Sletta2014-10-201-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-141-3/+4
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4objectiterator.cpp src/qml/jsruntime/qv4objectiterator_p.h src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: Ia54a9acd96530aa6683c228597af0ca25eadec4f
| | * Move syncTimer measurment to the correct place.5.3Josh Arenson2014-09-121-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Remove the "groupNode"Gunnar Sletta2014-10-172-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We originally had the groupnode to simplify adding and removing clip / effect / opacity nodes to the item tree at a time when the renderer was a bit more trivial and only did a single pass over the tree during rendering. The runtime cost at the time was negligible. The QSGBatchRenderer has a bit more logic, so the extra node now costs a bit more. In addition to extra memory, we need to allocate shadow nodes for it and put those into the renderer's internal shadownode hash. This removal increases the performance of adding / removal of simple items by ~10% in addition to reducing the number of nodes in the scene graph by up to 1/3. Change-Id: I8cd64984f868d75820e25d33dfdbebd4d20651fe Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | | Introduced QQuickCustomRenderStage.Gunnar Sletta2014-10-163-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of this concept is to make it possible to plug in an external rendering stage, like replacing the GL rendering with a composition step performed by a hardware compositor in QtCompositor. Change-Id: I994b93af443f68a77ca73cf310b5910c49e014c3 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Use QWindow::requestUpdate in threaded renderloop.Gunnar Sletta2014-10-163-46/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | The default implementation is the same as what we do with the exhaust delay, but it is now possible for platforms to line it up with vsync so the GUI thread doesn't spend so much time being blocked. Change-Id: Ie126f00a1be978608bf2a1db33d80d7f0458590d Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-0918-186/+242
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/items/context2d/qquickcanvasitem.cpp src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp src/quick/scenegraph/coreapi/qsgrenderer.cpp src/quick/scenegraph/qsgadaptationlayer.cpp src/quick/scenegraph/qsgrenderloop.cpp src/quick/scenegraph/qsgthreadedrenderloop.cpp src/quick/scenegraph/qsgwindowsrenderloop.cpp src/quick/scenegraph/util/qsgatlastexture.cpp src/quick/scenegraph/util/qsgtexture.cpp src/quick/util/qquickprofiler_p.h Change-Id: Ie274c3baf72a8a0711c87d67238d68e2b2887429
| * | Partially revert d9c531781e6c95f80681b3c82700833e1de88794Gunnar Sletta2014-10-014-43/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Fix cleanup of non-threaded render loops.Gunnar Sletta2014-09-242-50/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Don't do qgetenv on library loadThiago Macieira2014-09-221-35/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Finally: A default animation driver which doesn't use walltime.Gunnar Sletta2014-09-184-22/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Sync QQuickWindow::update() up with polishAndSync().Gunnar Sletta2014-09-172-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Let QSGPlainTexture support shutting down without a GL context.Gunnar Sletta2014-09-121-1/+1
| | | | | | | | | | | | | | | | | | Change-Id: Iae934e4d9e91f4ea21dd5bf27c4fafc5d481fb0a Task-number: QTBUG-41278 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * | Select specific features to be recorded when profiling QMLUlf Hermann2014-09-118-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Fix debug output from renderer.Gunnar Sletta2014-09-111-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Snap native glyphs to pixel grid in vertex shader.Gunnar Sletta2014-09-115-28/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Simon Hausmann2014-09-111-1/+10
| |\ \
| | * | Merge remote-tracking branch 'origin/5.3' into 5.4Simon Hausmann2014-09-081-1/+10
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/jsruntime/qv4arraydata.cpp src/quick/scenegraph/util/qsgatlastexture.cpp Change-Id: Ic4c96066d5c37dcf0d5446baed590ea005d445ce
| | | * Support padding in images stored in atlas textureEskil Abrahamsen Blomfeldt2014-08-301-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | Add QSG_OPENGL_DEBUG environment variableenkore2014-10-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If QSG_OPENGL_DEBUG is set the OpenGL context is always created as a debug context. Not setting QSG_OPENGL_DEBUG uses the default value obtained from QSurfaceFormat::defaultFormat(). Change-Id: I8cc2c8f995cfdb2ed762eb155d77ca11b2db7b72 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | | | Add methods for finding out if scene graph context has been initializedUlf Hermann2014-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot rely on the OpenGL context for that as there may be non-OpenGL scene graphs. In order for those to announce their readiness QSGRenderContext::isValid() has to be virtual. Change-Id: Ica35d8590e3f06edb54d57d93898d52e753f0407 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>