aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Use SPDX license identifiersLucie GĂ©rard2022-06-111-38/+2
| | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Make Sprite a configurable featureLars Knoll2016-10-101-0/+2
| | | | | | Change-Id: Iab5c5261cb3cdce3d02fa6cd19ae6f594b6fc649 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* software: Add support for QSGRenderNodeLaszlo Agocs2016-07-191-0/+2
| | | | | | | | | | | | | | | | | Have to change getResource() a bit since it turns out it is not suitable currently for backends that do not have a per-window rendercontext and do not implement the interface on the rendercontext. Pass in the window to make sure it can always figure out which window we want the resources for. (we do not want rendererInterface() to return window-specific instances created on the fly, with ownership issues, so stick with the simple model where backends implement the interface on one of their existing classes) To support clipping, QSGRenderNode::RenderState is extended accordingly. Also updated the docs since some claims in the rendernode docs are not true since Qt 5.3. Change-Id: I34779c83926f5231b888fcab7131e873ae97964f Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add QSGSpriteNode to the Scenegraph Adaptation LayerAndy Nichols2016-07-141-0/+2
| | | | | | | | | | | | Most core Qt Quick items use one of the nodes provided by the Scenegraph Adaptation Layer, however the two items that provide support for Sprites created their own custom nodes. There was significant redundancy in this, and it made it only possible to use the OpenGL adaptation. The AnimatedSprite and SpriteSequence items have been cleaned up, and now use the new QSGSpriteNode. Change-Id: Idc20b9c5da9dc1c94f6368021785382cdf7cec5a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Software Adaptation: Improve clip node handlingAndy Nichols2016-06-281-1/+3
| | | | | | | | | | | | | | | | This commit solves two issues that were coming up with nested clip nodes. The first was that determining the intersection of two or more nested clip nodes was calculated incorrectly. This was fixed by making sure the calculated clip region was in the correct coordinate space. The second issue was because there was no distinction between an empty unclipped region, and a completely clipped region. So a property was added to specify when a RenderableNode had a clipRegion so that the empty QRegion could be interpreted correctly. This makes sure that we don't end up drawing nodes that were culled. Change-Id: Id7af092f7fc6a4602b44b585b7dee14084136962 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add cross-backend simple rect, texture, and ninepatch nodesLaszlo Agocs2016-06-221-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QSGSimpleRectNode is deprecated -> use QSGRectangleNode via QQuickWindow::createRectangleNode() instead. QSGSimpleTextureNode is deprecated -> use QSGImageNode via QQuickWindow::createImageNode() instead. The OpenGL version of the simple rectangle node is switched over to the vertex color material instead of flat, to allow for better batching. Use the same concept for nine patch nodes. The "style" node from Quick Controls 1 is now QSGNinePatchNode in order to provide a proper cross-backend solution which is already necessary due to the software backend, but now generalize it to apply to the accelerated backends with proper materials as well. QC can now simply call createNinePatchNode() without further ado. Also fixes a bug with the D3D12 texture material not enabling blending when needed. When it comes to the internal class names, QSGRectangleNode and QSGImageNode get the Internal prefix in the adaptation layer in order to differentiate from the public API. This involves quite a lot of renaming, but results in a nice and clean public API. Change-Id: Iddf9f9412377843ea6d652bcf25e68d1d74659ea Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* 2DRenderer: Add private header warningAndy Nichols2016-04-131-0/+11
| | | | | Change-Id: If88b53426302b0070ddabc111ecdc530506be1a4 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* 2DRenderer: Allow clipping when items are rotatedAndy Nichols2016-04-061-3/+3
| | | | | | | | | | Previously clipping was only possible if items were rotated in increments of 90 degrees. Now it is possible to clip items that are rotated at any angle, but there is a performance and accuracy penalty because QRegion is terrible. Change-Id: Ibcb57b6d8718458eff718de117d113975cfe26db Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Turn the SoftwareContext plugin into the Scenegraph Software AdaptationAndy Nichols2016-03-101-0/+126
The 2D renderer will now become a built-in adaptation of scenegraph that should always be available to fallback to when there are no other renders available. So rather than be an external plugin, now it is a built in adaptation. Change-Id: Ifa02fd50f3085ad1e6f1a73c3ce1e1825b677cc7 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>