QRenderStateSet Class

class Qt3DRender::QRenderStateSet

The QRenderStateSet FrameGraph node offers a way of specifying a set of QRenderState objects to be applied during the execution of a framegraph branch. More...

Header: #include <QRenderStateSet>
qmake: QT += 3drender
Since: Qt 5.5
Instantiated By: RenderStateSet
Inherits: Qt3DRender::QFrameGraphNode

This class was introduced in Qt 5.5.

Detailed Description

States set on a QRenderStateSet are set globally, contrary to the per-material states that can be set on a QRenderPass. By default, an empty QRenderStateSet will result in all render states being disabled when executed. Adding a QRenderState state explicitly enables that render state at runtime.

The RenderStateSet is enabled when added to the active frame graph:

 // using namespace Qt3DRender;

 Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();

 QRenderSettings *renderSettings = new QRenderSettings();

 QViewport *viewport = new QViewport();
 QCameraSelector *cameraSelector = new QCameraSelector(viewport);

 QClearBuffers *clearBuffers = new QClearBuffers(cameraSelector);
 clearBuffers->setBuffers(QClearBuffers::ColorDepthBuffer);

 QRenderStateSet *renderStateSet = new QRenderStateSet(cameraSelector);
 QCullFace *cullFace = new QCullFace(renderStateSet);
 cullFace->setMode(QCullFace::Front);
 renderStateSet->addRenderState(cullFace);

 renderSettings->setActiveFrameGraph(viewport);

 rootEntity->addComponent(renderSettings);

See also QRenderState and QRenderPass.