summaryrefslogtreecommitdiffstats
path: root/src/render/renderstates/renderstateset.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-231-21/+21
| | | | | | | | | | | This reverts commit 03e5f60e585701608c1181365faee484d7a1f14c. Revert of commercial license headers is required for Qt 5.15.3 opensource release. Task-number: QTBUG-91108 Change-Id: I359e89ed77b1b2750607617d138ebb6c316f0296 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Update commercial license headersTarja Sundqvist2021-02-021-21/+21
| | | | | | | | | | | | | | | | Updated header.COMM to the files in tqtc-qt3d. Examples, documentation files or tests are not updated. The commercial license header may contain some additional lines so that its line count equals with the earlier license header. Reason for this is that some autotests use hard coded line numbers and a change in the line count causes failures in tests. Task-number: QTQAINFRA-4155 Change-Id: I139c8ad72c042b0900239decc36cfed4bc1c4951 Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
* Only set the state flag after having merged with the other statesPaul Lemire2020-12-011-1/+1
| | | | | | Change-Id: Ic7a0a2cccb2b131eec7fca3cf7324109b4d22b6b Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 6df7098d89cf4a2eec35fe1362d354c91eb7a4ef)
* Initial creation of RHI plug-in and refactoringJean-Michaƫl Celerier2020-03-161-1/+1
| | | | | Change-Id: Ifbb51003e15f798798040597b5f7224641e8147c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-051-0/+150
| | | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Move Renderer specific classes into new folderPaul Lemire2018-03-191-393/+0
| | | | | | | | This is another step toward isolating the renderer from the render aspect Change-Id: I4031675b961d6645b65bbe05cf62d150993038b0 Task-number: QTBUG-61151 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Split GraphicsContext in twoPaul Lemire2018-03-161-3/+3
| | | | | | | | | - GraphicsContext is now a stateless wrapper around GL calls - SubmissionContext is a GraphicsContext + caches and states used to render a frame Change-Id: I147b56dfd4c403911faadc0e9821fff9a892f71c Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add QLineWidth::smoothed propertyWieland Hagen2017-07-061-1/+1
| | | | | | | to enable/disable GL_LINE_SMOOTH Change-Id: I8ca3666c150457b8c207096675c3030192b23842 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.9' into devSean Harmer2017-06-191-2/+2
|\ | | | | | | | | | | | | | | | | Conflicts: src/render/frontend/qcameralens_p.h src/render/texture/qtexture.cpp src/render/texture/qtexture_p.h Change-Id: I20b25cf123f44c96f69ca5f8e042a38692e5cb49
| * Remove redundant code in AlphaCoverage/SeamlessCubemap render statesMauro Persano2017-06-081-2/+2
| | | | | | | | | | | | | | | | | | | | The render states AlphaCoverage and SeamlessCubemap will only be added to the render set when their nodes are enabled, so there's no need for an additional boolean field in their backend nodes. Task-number: QTBUG-60419 Change-Id: I3184c665b1d1bd10c067428b2acac6cfb68bd638 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Add LineWidth render stateMauro Persano2017-06-081-0/+11
|/ | | | | | Task-number: QTBUG-58526 Change-Id: I131d77973e5f8176eb6868c795398446b22b77c1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStateSet remove cache delta variablesPaul Lemire2016-08-091-17/+7
| | | | | | | These aren't needed and were part of an older logic. Change-Id: I3550b8c5b781ea6606b233d93a5debeb6739cc20 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderStateSet/Node: store a StateVariantPaul Lemire2016-07-171-86/+66
| | | | | | | | | Instead of dealing with pointer. This will make it easier to parallelize submission and simplifies things Change-Id: I4f4f97b070885e3cf635f145bd3d9092b82ca55d Task-number: QTBUG-54423 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderStates: use a single enum for the typesPaul Lemire2016-07-051-24/+24
| | | | | Change-Id: I1f9f7c1906dd940c963c004034c9edd64f304c60 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStateSet: remove cloning vestigePaul Lemire2016-06-301-102/+0
| | | | | Change-Id: I83ed63e8dc5771f26583e0faf56a665474bcc4df Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* render: eradicate remaining Q_FOREACH loopsMarc Mutz2016-05-141-2/+2
| | | | | Change-Id: I1c4b23e51d882b4ed389f841165fcf79155b3e0e Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* render: eradicate Q_FOREACH loops [remaining low-risk]Marc Mutz2016-05-051-2/+2
| | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(), where needed. This is the batch with low-risk changes. They operate on local containers or the loop body clearly does not cause the container to change. Saves ~3.8KiB in text size on optimized GCC 6.0 Linux AMD64 builds. Change-Id: I9c9669dd89f44d371d7a9cd4fc83a7930a06ce17 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Don't hide function in base class changeSean Harmer2016-05-041-1/+1
| | | | | Change-Id: I4e3ee7a0825962f582626627636e6abce8f7c246 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-011-2/+2
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* AntiAliasing added as RenderstateRobert Brock2016-04-201-0/+9
| | | | | | | | Adding antialiasing that can be enabled in renderstates Change-Id: I0728e69dba5896ca86e56b940682990fafd0a297 Task-number: QTBUG-52191 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Properly handle alpha to coverage state in non-cloning codepathSean Harmer2016-04-111-3/+6
| | | | | | | | | | | | Also improve the alpha to coverage handlign in the helpers by using a single function rather than two. This removes GL errors about bad glFace enum values (caused by bad handlign of alpha to coverage in switch statement, which led to a FrontFace state being created with bad data). Change-Id: I832d92fcb07134525f421d3a3b4d12e9f5f6428c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStateNode handles creationSean Harmer2016-04-111-11/+144
| | | | | | | Also remove last vestiges of blend state separate. Change-Id: I75d3a97ae8383b5ad1bcdb903ed745cbcda31eec Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QDepthMask transformed into QNoDepthMaskPaul Lemire2016-03-211-4/+3
| | | | | | | | | By default the absence of a QNoDepthMask node in a RenderStateSet implies depth mask is enabled. Its presence, disables it. Change-Id: Iaa22b6cee12ee76e64d66a00e97f8aadfa82398b Task-number: QTBUG-51433 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QRenderState cleanupPaul Lemire2016-03-201-20/+21
| | | | | | Change-Id: Ie4ae9a2d17c05594dd2bddde85abf73f7ffbd686 Task-number: QTBUG-51430 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QStencilOpSeparate renamed to QStencilOperationArgumentsRobert Brock2016-03-181-3/+3
| | | | | | | | As per API review Change-Id: If0f4f5719508a41d786810c36051446b2c7a08db Task-number: QTBUG-51436 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QStencilOpSeparate property renamingRobert Brock2016-03-111-2/+2
| | | | | | | | | | stencilFail -> stencilTestFailureOperation depthFail -> depthTestFailureOperation stencilDepthPass -> allTestsPassOperation Change-Id: I30fc64fec81c873cacfdb3edeef834674140d9ce Task-number: QTBUG-51438 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QStencilOp rename to QStencilOperationFranck Arrecot2016-03-111-2/+2
| | | | | | | | | Comment: code still hold a QStencilOpSeparate, might want to rename it to QStencilOperationSeparate ? Task-number: QTBUG-51422 Change-Id: I5caf4e26720647ddb9a8b596b9dd33561fb90a08 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QStencilTestSeparate renamed to QStencilTestArgumentsRobert Brock2016-03-081-1/+1
| | | | | | Task-number: QTBUG-51423 Change-Id: I8612803b238ae6a3d9242983140745ef82babcd0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QClipPlane rename and added propertiesRobert Brock2016-03-081-1/+3
| | | | | | | | | | | | | | - storing values in backend - new functions being added renamed plane to planeIndex added QVector3D normal property added float distance property As per API review Task-number: QTBUG-51435 Change-Id: Ie52804716510981af1467e96003304324fadd4d8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QPolygonOffset renamed units to depthStepsRobert Brock2016-03-081-1/+1
| | | | | | | | | Carried changes into the QML examples (planets and shadow map) for both PolygonOffset name changes As per API review Change-Id: Idd2676d53794eb6025696a79ddb59a26ac98b085 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QBlendState cleanupPaul Lemire2016-03-051-8/+8
| | | | | | | | | * renamed to QBlendEquationArguments * property names expanded Change-Id: Id25f0181415b4f093f2054238dbf3be26e36ff32 Task-number: QTBUG-51509 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QBlendEquation renamed mode to functionRobert Brock2016-03-051-1/+1
| | | | | | | | | | | BlendMode became BlendFunction mode became blendFunction removed Func prefix in enums As per API review Change-Id: I95271abc3ba4b8d04b3caf46845e1a5e47d47322 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QPointSize renamingRobert Brock2016-03-051-1/+2
| | | | | | | | | | | enum renamed from Specification to SizeMode removed isProgrammable specification became sizeMode staticValue became Fixed Task-number: QTBUG-51428 Change-Id: I5932bf4c0622243e032593ba72da70159eeb3304 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QColorMask properties renamedRobert Brock2016-03-051-4/+4
| | | | | | | | | | | | red -> redMasked green -> greenMasked blue -> blueMasked alpha -> alphaMasked Change-Id: I5df99a6cf79b77ee344c9b9e45c940b084b65ad7 Task-number: QTBUG-51437 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QStencilTestSeparate renamed propertiesRobert Brock2016-02-291-6/+6
| | | | | | | | | | | func renamed to stencilFunction ref renamed to referenceValue mask renamed to comparisonMask As per API review Task-number: QTBUG-51423 Change-Id: Ic792e191767ffd88c96d6398536fbe83fc800d5b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QStencilMask renamingRobert Brock2016-02-291-1/+1
| | | | | | | | | FrontMask renamed to FrontOutputMask BackMask renamed to BackOutputMask As per API review Change-Id: I26290c0be2e0df51f70a8d4f5e6a4fe0d84e85c8 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAlphaTest renamed clamp to referenceValueRobert Brock2016-02-271-1/+1
| | | | | | | As per API review Change-Id: Ic7b35b711ce21fe964601f93a85eefd31211a760 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QAlphaTest rename func to alphaFunctionRobert Brock2016-02-271-1/+1
| | | | | | | | Also renamed the enum from AlphaFunc to AlphaFunction As per API review Change-Id: I5f44284d12bd15534e77a1e7ee7a870b1c98b83a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QPolygonOffset renamed factor to scaleFactorRobert Brock2016-02-271-1/+1
| | | | | | | As per API review Change-Id: Idd13c87b27a49f19d9f37f223a137ca85d957a2f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QDepthTest rename func to depthFunctionRobert Brock2016-02-261-1/+1
| | | | | | | As per API review Change-Id: Iea3cbdb16618b248e221817000b71822a588bf6a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove two more duplicated enabled properties.Volker Krause2016-02-181-3/+3
| | | | | | | | Besides being unnecessary, these also trigger runtime warnings in QMetaObject. Change-Id: Iae9769b797e22430c36f8ae0e8401d1ff84ebccf Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add QRenderState for GL_TEXTURE_CUBE_MAP_SEAMLESSWieland Hagen2016-02-051-0/+9
| | | | | Change-Id: I339d19966c2dd850d01f5a0737fea566ca23a96d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Pooled RenderStateImplsWieland Hagen2016-02-051-25/+17
| | | | | | | | | | | | Most RenderStateImpls are cached globally, and created only if no state with given values existed yet. Some states are still allocated on the heap on a per-frontend-node-basis. This applies only to RenderStates that may result in a large number of different values (e.g. when float parameters are involved) Change-Id: I3eabdeae6ec46ed86689338cf00315590c26b3fe Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added QBackendNodes for QRenderStates.Wieland Hagen2016-02-051-30/+40
| | | | | | | | | | | | | RenderStateNode is the backend node for QRenderStates. The actual state-dependent behavior is implemented in subclasses of RenderStateImpl. Backend nodes for QRenderPass and QStateSet now hold IDs of the RenderState-nodes that they contain, instead of pointers. This means that every frame the RenderView has to get the actual backend nodes while building the RenderStateSets. This needs to be fixed. Change-Id: I908ce9763fdb9f4e851df8dbcecf5dc6ce5a4f49 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-12/+15
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* QBlendState: Target particular Draw Buffers (glBlendFunci())Wieland Hagen2016-01-151-2/+9
| | | | | | | | | | | | | | | | | There are 3 ways blending can be configured, depending on GL version: pre-3.0: Globally 3.0-3.3: Individual GL_BLEND for each Draw Buffer, one glBlendFunc 4.0- : Individual GL_BLEND and glBlendFunci for each DrawBuffer QBlendStates now allow to specify whether the blend state should be enabled or not, and what Draw Buffer it is specifying. Defaults are global and enabled. Removed backend BlendStateSeparate, BlendState is going to handle both calls. Task-number: QTBUG-50005 Change-Id: I0059a53db0d629ef9818d933c3f14e5662c1d3df Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Added QPointSize RenderStateWieland Hagen2015-12-271-0/+9
| | | | | | | | | Point Sizes may be specified 2 ways: either statically via glPointSize() (OpenGL 2.0+) or by enabling GL_PROGRAM_POINT_SIZE. Task-number: QTBUG-49997 Change-Id: I98887484cf31df01b98801e1f324487ee7bf7492 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-21/+21
| | | | | | | | This is for consistency between the C++ namespaces and QML imports and with the other aspects. Change-Id: I73392f138b4e519b12888f52530123e3d0ba445e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move render state classes into own dir and tidy upSean Harmer2015-10-131-0/+336
Change-Id: I0829c42283d6a25e9b3ec623f45739ea266718cf Reviewed-by: Paul Lemire <paul.lemire@kdab.com>