summaryrefslogtreecommitdiffstats
path: root/src/render/renderstates/renderstates_p.h
Commit message (Collapse)AuthorAgeFilesLines
* Use SPDX license identifiersLucie Gérard2022-06-221-39/+3
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I8105424281eed871037fa6c463871ca8829876b5 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-051-22/+22
| | | | | | | | 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>
* Update QRenderState to use direct syncPaul Lemire2019-09-251-19/+19
| | | | | Change-Id: Id38fd035701c86d126851fbde245ebba93e26f34 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add QRasterMode render stateJuan Jose Casafranca2019-02-121-0/+6
| | | | | | | QRasterMode allows a user to change the raster mode from fill to lines or points Change-Id: If96848e38ac4b5a615040b3bae2dec38a03cb031 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Add support for glDepthRangeJim Albamont2019-02-111-0/+6
| | | | | | | | Added a new QRenderState to provide access to glDepthRange. Task-number: QTBUG-73059 Change-Id: I434b73e6e499307bfa58b2a1001e4c48328e9d5b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStates: rework to split node and rendering partPaul Lemire2018-03-191-24/+1
| | | | | | | | | | The apply method was removed from GenericState and its subclasses. This allows to keep the GenericStates in the aspect part and let the renderer perform the right calls based on the state class it is provided with. Change-Id: I9c3ac04b4eb489e7443e67615e35e850c0aba07f Task-number: QTBUG-61151 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Replace Q_DECL_FINAL with finalKevin Funk2017-09-251-5/+5
| | | | | Change-Id: Ia80d1cb9cc96d76f8b367caa725c59a70ae0a4d5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-251-32/+32
| | | | | Change-Id: I92c955068e233c50043ad7d06a32300dd386c24d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.9' into devSean Harmer2017-08-191-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/render/backend/renderer.cpp src/render/backend/renderview.cpp src/render/graphicshelpers/graphicscontext_p.h src/render/graphicshelpers/graphicshelperes2_p.h src/render/graphicshelpers/graphicshelpergl2_p.h src/render/graphicshelpers/graphicshelpergl3_2_p.h src/render/graphicshelpers/graphicshelpergl3_3_p.h src/render/graphicshelpers/graphicshelpergl4_p.h src/render/graphicshelpers/graphicshelperinterface_p.h src/render/jobs/pickboundingvolumejob.cpp tests/auto/animation/clipanimator/tst_clipanimator.cpp tests/auto/auto.pro tests/manual/manual.pro Also disabled the QQmlMetaType codepaths following commit 49a11e882059ee1729f776722e085dd21d378c36 in qtdeclarative. The QQmlMetaType codepaths will be re-enabled once a qt5.git integration has succeeded. Change-Id: Ia654d75425e6d406c472d19864383612208cad2b
| * Implement property updates for QStencilTest and QStencilOperationWieland Hagen2017-08-031-0/+2
| | | | | | | | | | | | | | | | Make sure to catch all changed signals from the arguments classes and re-send the arguments to the backend. Change-Id: I0a5e2f42fce4c5ff81489d8a66ad277aa607db0c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Fix QAlphaMask and QStencilMask render states property updatingWieland Hagen2017-08-031-0/+1
| | | | | | | | | | Change-Id: Ie11ce88441a6d287d50d1cb78365a65b2742a502 Reviewed-by: Sean Harmer <sean.harmer@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-4/+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-4/+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/+7
|/ | | | | | Task-number: QTBUG-58526 Change-Id: I131d77973e5f8176eb6868c795398446b22b77c1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStateSet/Node: store a StateVariantPaul Lemire2016-07-171-23/+12
| | | | | | | | | 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-1/+1
| | | | | Change-Id: I1f9f7c1906dd940c963c004034c9edd64f304c60 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* RenderStates: getOrCreateRenderStateImpl -> use variadic templatesPaul Lemire2016-07-051-35/+3
| | | | | Change-Id: Ia7ccfb6186e1ff1f95e09e643770024cfc2ef79e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Replace all GenericState(n) by variadic template classPaul Lemire2016-06-301-18/+18
| | | | | Change-Id: Iaceb83076be4d16aba5956cb55a84750a33642b2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Replace Q_DECL_NOEXCEPT by Q_DECL_NOTHROWPaul Lemire2016-05-231-3/+3
| | | | | | Change-Id: Ia991da557483704055e0ccf17b4a6b273568a1ba Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* AntiAliasing added as RenderstateRobert Brock2016-04-201-0/+7
| | | | | | | | 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-1/+2
| | | | | | | | | | | | 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>
* QDepthMask transformed into QNoDepthMaskPaul Lemire2016-03-211-1/+1
| | | | | | | | | 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>
* QClipPlane rename and added propertiesRobert Brock2016-03-081-1/+1
| | | | | | | | | | | | | | - 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>
* QBlendState cleanupPaul Lemire2016-03-051-1/+1
| | | | | | | | | * renamed to QBlendEquationArguments * property names expanded Change-Id: Id25f0181415b4f093f2054238dbf3be26e36ff32 Task-number: QTBUG-51509 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add QRenderState for GL_TEXTURE_CUBE_MAP_SEAMLESSWieland Hagen2016-02-051-0/+7
| | | | | Change-Id: I339d19966c2dd850d01f5a0737fea566ca23a96d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Pooled RenderStateImplsWieland Hagen2016-02-051-22/+57
| | | | | | | | | | | | 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-142/+35
| | | | | | | | | | | | | 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-15/+3
| | | | | | | | | | | | | | | | | 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/+13
| | | | | | | | | 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-1/+1
| | | | | | | | 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>
* Add "We mean it" warnings to private headersSean Harmer2015-10-131-0/+11
| | | | | Change-Id: Ic4a69123255c33990765ea3601e01914c2d8cb70 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move render state classes into own dir and tidy upSean Harmer2015-10-131-0/+282
Change-Id: I0829c42283d6a25e9b3ec623f45739ea266718cf Reviewed-by: Paul Lemire <paul.lemire@kdab.com>