aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Merge branch 'stable' into dev" into refs/staging/devSergio Ahumada2013-08-064-6/+8
|\
| * Merge branch 'stable' into devSergio Ahumada2013-08-054-6/+8
| |\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I06f79bcbde13c7b12905492a17dbcbb4a594e557
| | * Fix crash when changing non-cached source of image during animationMichael Brasser2013-08-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure deferred deletions are handled while syncing, otherwise texture might be deleted after sync but before deferred deletion is processed. Task-number: QTBUG-32513 Change-Id: Id276f536a5722a36baae815b7b550b574eeeb483 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Fixed distance field text getting clipped at small sizes.Yoann Lopes2013-08-011-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-32750 Change-Id: I6bdf63d3cbcaaeb54c7c1ae25dfc55fc7e964075 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Rectangle which only draw an opaque border should not be blended.Gunnar Sletta2013-08-011-1/+1
| | | | | | | | | | | | | | | Change-Id: I55996a1c38ad6da4566d2160155503a27ad4a20b Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Workaround for distance field glyph upload problem.Yoann Lopes2013-07-261-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It seems uploading an image (into a texture) which has padding at the end of each scanLine and alpha-only pixel format is broken with some OpenGL ES drivers. The workaround is to upload one line at a time. Task-number: QTBUG-30908 Change-Id: Ic680654951b6aec294c1a173708c1fb75e57ff8f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | | Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into ↵Simon Hausmann2013-07-261-1/+0
|\| | | | | | | | | | | | | | | | | merge Change-Id: I5824a3eb624b325de10acfd5109c4c1bdabcf780
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-231-1/+0
| |\| | | | | | | | | | Change-Id: I2279f181b1c30e81651f8907447ec5c826e11475
| | * Fix CLANG-warning about unused member variable m_defaultAntialiasingMode.Friedemann Kleint2013-07-121-1/+0
| | | | | | | | | | | | | | | Change-Id: I68a04532bacd326b4bb3eb8f9a7ee04c67fcd68e Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | | Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into ↵Simon Hausmann2013-07-226-17/+21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | wip/v4 Conflicts: src/quick/items/context2d/qquickcontext2d.cpp tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro Change-Id: I36a4fd28b3156839aecd70039a3ba566bf19a0bc
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-111-1/+1
| |\| | | | | | | | | | Change-Id: Idaaeba880a175166437e2a7266716c776c4483c6
| | * Fixed typo 'backens'Thorbjørn Lindeijer2013-07-081-1/+1
| | | | | | | | | | | | | | | Change-Id: I65e4492d1bc70e5344c0edc37a7c2f87fe355e62 Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-07-043-6/+19
| |\| | | | | | | | | | Change-Id: I15cb7460171b38d11d66367aeb0831ec6e3ca933
| | * Initialize m_dirty_texture memberGunnar Sletta2013-07-031-0/+1
| | | | | | | | | | | | | | | Change-Id: I4fa2774aef9bc3258572d28425d1427151297358 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
| | * Fix warning about change of sign: glyph_t is unsignedThiago Macieira2013-07-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | qsgdistancefieldglyphnode_p.cpp(222): warning #68: integer conversion resulted in a change of sign Use the value 0, which is reserved to mean "no texture" Change-Id: I0bb135639c432ab08f6561c1d45f64e2d8f96dd7 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Document public members of QSGSimpleMaterialShaderGunnar Sletta2013-07-021-3/+15
| | | | | | | | | | | | | | | Change-Id: I2e46989d4076ff639d7264985e030df0f1cb2a88 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-243-10/+1
| |\| | | | | | | | | | Change-Id: I444ed90a02eebe1f68cfa48be5d75544123ab10d
| | * Revert "Cut performance cost in QSGContext::prepareMaterial()".Gunnar Sletta2013-06-203-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0e9cd8b4098661bf611fa73a787c58c85e7d7338. This optimization breaks ShaderEffects with changing fragment and vertex shaders and needs some more thought. Task-number: QTBUG-31837 Change-Id: I1abe249c65dd785825c249a7c22baee928bd76c8 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | | Get rid of the first half of QQmlGuard usageLars Knoll2013-07-051-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | QQmlGuard was being used as a more performant replacement for QPointer. QPointer got now fixed in Qt 5.0, making this class obsolete. Change-Id: I77eef066c4823af4b074ef32d4d78dbd67c36cd0 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | | Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into ↵Simon Hausmann2013-06-2431-257/+1175
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wip/v4 Conflicts: src/imports/qtquick2/plugins.qmltypes src/qml/debugger/qv8debugservice.cpp src/qml/qml/qml.pri src/qml/qml/qqmlcompiler.cpp src/qml/qml/qqmlcomponent.cpp src/qml/qml/qqmlcontext.cpp src/qml/qml/qqmldata_p.h src/qml/qml/qqmlengine_p.h src/qml/qml/qqmljavascriptexpression.cpp src/qml/qml/qqmlxmlhttprequest.cpp src/qml/qml/v4/qv4bindings.cpp src/qml/qml/v4/qv4irbuilder.cpp src/qml/qml/v4/qv4jsonobject_p.h src/qml/qml/v8/qqmlbuiltinfunctions.cpp src/qml/qml/v8/qv8bindings.cpp src/qml/qml/v8/qv8contextwrapper.cpp src/qml/qml/v8/qv8listwrapper.cpp src/qml/qml/v8/qv8qobjectwrapper.cpp src/qml/qml/v8/qv8qobjectwrapper_p.h src/qml/qml/v8/qv8sequencewrapper_p_p.h src/qml/qml/v8/qv8typewrapper.cpp src/qml/qml/v8/qv8valuetypewrapper.cpp src/qml/types/qqmldelegatemodel.cpp src/quick/items/context2d/qquickcanvasitem.cpp src/quick/items/context2d/qquickcontext2d.cpp sync.profile tests/auto/qml/qjsengine/tst_qjsengine.cpp tests/benchmarks/qml/animation/animation.pro tools/qmlprofiler/qmlprofiler.pro Change-Id: I18a76b8a81d87523247fa03a44ca334b1a2360c9
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-205-16/+16
| |\| | | | | | | | | | Change-Id: I5cc2cacd26004ba18f0c6214759f5e073b5c6cfb
| | * Prefix internal classes properly and private export them.Gunnar Sletta2013-06-175-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | Without the private export on these classes, the private export on the QSGDefaultImageNode and QSGDefaultTextureNode is useless, as the symbols fail to resolve Change-Id: I25a265a7669e5f5015c482aa24fe154c2c9a1062 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-1210-10/+63
| |\| | | | | | | | | | Change-Id: I045587eac266e9b6296d9cd9e3c73031fe18bbd1
| | * Support unaligned QImage strides in QSGTextureAndrew Knight2013-06-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | If a QImage has a different stride than its width, copy the image to relayout the memory for compatibility with glTexImage2D(). Change-Id: I74338da97d785ffb9e00820caff36466dfa46838 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Fix -Wpedantic warningsAlbert Astals Cid2013-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Don't need these extra ; and give warnings with -Wpedantic Change-Id: I877fee2a6421b1aaa97ca3845a09d70f3b2b302b Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-06-108-9/+60
| | |\ | | | | | | | | | | | | Change-Id: Iafc0497812acb7850cd4e72c49d63ec9c9320b58
| | | * Set incubation controller when a Window{} is loaded via QQmlApplicationEngineAlan Alpert2013-06-076-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was the one convenience that was lost when transitioning templates from QQuickView + Item{} to QQmlApplicationEngine + Window{}. As the default window incubation controller was tied to the first window's frameSwapped, we could easily run into a situation where a secondary window required incubation while the first window was idle. This would then starve the incubation controller. Instead make it so that the renderloop emits "timeToIncubate" once it is done with a renderpass over all windows, so the incubator gets to run once and exactly once per vsync when animating. The incubator logic was also flawed in that it could post a lot of events to itself as a result of incubatingObjectCountChanged and thus starve system events while processing incubation requests. Now we start a timer and don't start it again until we have completed an incubation pass. Task-number: QTBUG-31203 Change-Id: Iea9e2c81efb46bb7875c70ccda0cdc4b3b3e58e7 Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | | * Precompile the most common materialsGunnar Sletta2013-05-312-0/+29
| | | | | | | | | | | | | | | | | | | | Change-Id: Idfa76f9fcdbac61a248b38e1f793a6628af12552 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-06-041-7/+8
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ib8b5509c48a686f6e916708d83914e13e4f67e9c
| | * | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-05-311-0/+3
| | |\| | | | | | | | | | | | | Change-Id: Ie4ce4c3e64f093eec26754e06199d350a46ae2a2
| | | * Added QQuickWindow::setDefaultAlphaBuffer()Shawn Rutledge2013-05-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All QQuickWindows will render using the same OpenGL context, so for a window to support transparency, the OpenGL context needs to be created with support for transparency from the very start. Therefore the application needs to call setDefaultAlphaBuffer() before creating windows. There are some relevant comments in QTBUG-20768 although the bug itself is not the same use case (it was already OK as long as the first window had a translucent color, because of setAlphaBufferSize in QQuickWindow::setColor()). Change-Id: I92e111c1a62c0d510821b646fd334e52254f8f57 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * | Do not use QApp::arguments() to select antialiasing mode.Gunnar Sletta2013-05-311-7/+5
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | This selection typically interfers with an application's command line arguments. Creator's qml2puppet needs to set this mode to avoid getting subpixel antialiased text from DesignerSupport. Change-Id: Iabf2bece211b897c58e2933d5502fdcf7c360c55 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-05-2818-143/+264
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quick/doc/src/appdevguide/porting.qdoc sync.profile Change-Id: Iec5516c596c3eca60a3e6ceb1d45f2a7a1595c12
| | * QmlProfiler: fix SceneGraph profilingChristiaan Janssen2013-05-271-1/+1
| | | | | | | | | | | | | | | Change-Id: I54c960f0b0da061816223a51795c83a9f9dd3f66 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| | * Cut performance cost in QSGContext::prepareMaterial()Gunnar Sletta2013-05-233-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hash-lookup in this function is costing us a lot, and since we're looking up the same materials again and again, and the material has a place holder for it, we can store it directly in the material at no extra cost. This was a 10% gain in this particular benchmark. Change-Id: I46b67791ce39f453fa86d1ee82f6f5c7785b46a1 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * add private export to image and rectangle nodesGunnar Sletta2013-05-232-2/+2
| | | | | | | | | | | | | | | Change-Id: I15aea1b1dc3d41c9efe0a38f53d6858bae273566 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Avoid redundant QColor::alphaF() calls.Gunnar Sletta2013-05-221-5/+5
| | | | | | | | | | | | | | | Change-Id: I3694b075e98eab9f3eacf7758881a9473999b46e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Avoid using QColor::xxxF functions.Gunnar Sletta2013-05-222-29/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In our usecase, the color is always used as a float so using QColor (which is ushort) internally adds a lot of pointless conversion. Enough so that it shows up in profiles as 1-2% each. Not a lot, but easy to fix. The compare function is also somewhat simplified. For colors we're primarily searching for equallity. If that fails, we just need to provide consistent values, so use the address instead of doing any fancy calculation. Change-Id: Icae7e78ed767e802c137bab7fcacff66e9a4bc66 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * improve docs of QSGGeometry::set[Vertex|Index]DataPatternGunnar Sletta2013-05-161-2/+4
| | | | | | | | | | | | | | | Change-Id: I6ca0d8549891302cc9d71bdfac11704752caaf60 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Doc: corrections, spelling, and ListView requirements commentsDavid Fries2013-05-153-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the ListView comment I thought the model had to be derived from QAbstractListModel, but that's not the case, QAbstractListModel will work just fine, it just doesn't support specific cases such as trees. Change-Id: I59305006540ddc049e276cf412571373cbfa6c67 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
| | * Fix sorting of QSGTextMaskMaterial (native glyph drawing).Gunnar Sletta2013-05-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | It seems we were hitting the bool operator rather than the pointer values so all text materials, regardless of size or style would return equal. Change-Id: I8773e5aa965035f6737920747c2cf073929ff799 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * QmlProfiler: SceneGraph profilingChristiaan Janssen2013-05-067-91/+208
| | | | | | | | | | | | | | | Change-Id: Ide71b330b13fc3816ed191bd9af84e0fce0d9587 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-296-26/+600
| |\| | | | | | | | | | Change-Id: I35f07a1725af104952f822274763dd7a96a9d560
| | * Disable native glyph rendering on embeddedGunnar Sletta2013-04-251-0/+4
| | | | | | | | | | | | | | | Change-Id: I71769affe8f0138dd65f3b94fb27176bd069ab8d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| | * Renderloop for WindowsGunnar Sletta2013-04-244-24/+593
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The normal GUI thread render loop has several problems on windows. It does not do vsync animations and on some hardware, where the vsync delta is higher than the time it takes to fire a 16ms timer, the eventloop will always contain at least one event and we never return to processing non-client area events, like resize. Also, threaded OpenGL seems rather unstable, so the threaded renderer is not a stable option. So we introduce a windows based renderloop. It is fully cross platform but written to make the most out of the limitations which exist. The overall goal is: - vsync animations when allowed by the system. We get this by using an animation driver and advancing in sync with rendering - Keep system load low and allow for NC processing. The maybeUpdate function will start a short timer which will let the renderloop idle for few ms, allowing the eventloop to pick up system events. (this is similar to what the threaded renderer also does, btw) Change-Id: Ic192fd0ed7d5ecdaa2c887c08cbeb42c5de6b8a8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Clear the pendingUpdate flag every frame.Gunnar Sletta2013-04-231-2/+3
| | | | | | | | | | | | | | | | | | Change-Id: Icd9bf8ec63e46341f5a43dbb85fe6a3a885f6afb Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-04-224-63/+11
| |\| | | | | | | | | | Change-Id: I8b0be891402530e38efca46f7cbb679eca5d4a9d
| | * Don't use bitfields, reading/wrting them is not atomicGunnar Sletta2013-04-171-3/+3
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-30663 Change-Id: I952bb4cd9c254f085304ceeddced14b66e0f12b6 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Remove dead code.Gunnar Sletta2013-04-171-28/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The renderWithoutShowing was a piece of functionality that we experimented on long ago and it never quite worked and has it currently only adds bloat. It would be sensible to be able to render a window without showing it on screen, such as for testing purposes, but then it should be done through proper public API and thouroughly supported cross platform. Change-Id: I6bea7335f769c038a8167bad77c2dba171359be9 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
| | * Fixed alpha blending for native text.Yoann Lopes2013-04-161-2/+3
| | | | | | | | | | | | | | | Change-Id: I3effd31849b21a9497fadfb22c959562bff7951b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>