Qt3DRender::QRenderStateSet Class | Qt 3D | Qt 6.12.0
Description: The QRenderStateSet FrameGraph node offers a way of specifying a set of QRenderState objects to be applied during the execution of a framegraph branch.
Keywords: class

- Qt 6.12
- Qt 3D
- C++ Classes
- Qt3DRender (Deprecated)
- QRenderStateSet
- Qt 6.12.0 Reference Documentation

# Qt3DRender::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.h>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS 3drender)` `target_link_libraries(mytarget PRIVATE Qt6::3drender)`
qmake: | `QT += 3drender`
In QML: | RenderStateSet
Inherits: | Qt3DRender::QFrameGraphNode
Status: | Deprecated

This class is deprecated. We strongly advise against using it in new code.

- List of all members, including inherited members

## Public Functions

void | addRenderState(Qt3DRender::QRenderState *state)
void | removeRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QRenderState *> | renderStates() const

## 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.

## Member Function Documentation

### void QRenderStateSet::addRenderState(Qt3DRender::QRenderState *state)

Adds a new QRenderState state to the QRenderStateSet instance.

Note: Not setting any QRenderState state on a QRenderStateSet instance implies all the render states will be disabled at render time.

### void QRenderStateSet::removeRenderState(Qt3DRender::QRenderState *state)

Removes the QRenderState state from the QRenderStateSet instance.

### QList<Qt3DRender::QRenderState *> QRenderStateSet::renderStates() const

Returns the list of QRenderState objects that compose the QRenderStateSet instance.