- Qt 6.4
- Qt 3D
- C++ Classes
- Qt3DExtras
- QForwardRenderer
- Qt 6.4.2 Reference Documentation

# QForwardRenderer Class

class Qt3DExtras::QForwardRenderer

The QForwardRenderer provides a default FrameGraph implementation of a forward renderer. More...

Header: | #include <QForwardRenderer>
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3dextras) target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmake: | QT += 3dextras
Since: | Qt 5.7
Instantiated By: | ForwardRenderer
Inherits: | Qt3DRender::QTechniqueFilter

- List of all members, including inherited members
- Deprecated members

## Properties

- buffersToClear : Qt3DRender::QClearBuffers::BufferType
- camera : Qt3DCore::QEntity*
- clearColor : QColor
- externalRenderTargetSize : QSize
- frustumCulling : bool

- gamma : float
- showDebugOverlay : bool
- surface : QObject*
- viewportRect : QRectF

## Public Functions

Qt3DRender::QClearBuffers::BufferType | buffersToClear() const
Qt3DCore::QEntity * | camera() const
QColor | clearColor() const
QSize | externalRenderTargetSize() const
float | gamma() const
bool | isFrustumCullingEnabled() const
bool | showDebugOverlay() const
QObject * | surface() const
QRectF | viewportRect() const

## Public Slots

void | setBuffersToClear(Qt3DRender::QClearBuffers::BufferType)
void | setCamera(Qt3DCore::QEntity *camera)
void | setClearColor(const QColor &clearColor)
void | setExternalRenderTargetSize(const QSize &size)
void | setFrustumCullingEnabled(bool enabled)
void | setGamma(float gamma)
void | setShowDebugOverlay(bool showDebugOverlay)
void | setSurface(QObject *surface)
void | setViewportRect(const QRectF &viewportRect)

## Signals

void | buffersToClearChanged(Qt3DRender::QClearBuffers::BufferType)
void | cameraChanged(Qt3DCore::QEntity *camera)
void | clearColorChanged(const QColor &clearColor)
void | externalRenderTargetSizeChanged(const QSize &size)
void | frustumCullingEnabledChanged(bool enabled)
void | gammaChanged(float gamma)
void | showDebugOverlayChanged(bool showDebugOverlay)
void | surfaceChanged(QObject *surface)
void | viewportRectChanged(const QRectF &viewportRect)

## Detailed Description

Forward rendering is what OpenGL traditionally uses. It renders directly to the backbuffer one object at a time shading each one as it goes.

QForwardRenderer is a single leaf FrameGraph tree which contains a Qt3DRender::QViewport, a Qt3DRender::QCameraSelector, and a Qt3DRender::QClearBuffers. The QForwardRenderer has a default requirement filter key whose name is "renderingStyle" and value "forward". If you need to filter out your techniques, you should do so based on that filter key.

By default the viewport occupies the whole screen and the clear color is white. Frustum culling is also enabled.

## Property Documentation

### `[since 5.14]` buffersToClear : Qt3DRender::QClearBuffers::BufferType

Holds the current buffers to be cleared. Default value is ColorDepthBuffer

This property was introduced in Qt 5.14.

Access functions:

Qt3DRender::QClearBuffers::BufferType | buffersToClear() const
void | setBuffersToClear(Qt3DRender::QClearBuffers::BufferType)

Notifier signal:

void | buffersToClearChanged(Qt3DRender::QClearBuffers::BufferType)

### camera : Qt3DCore::QEntity*

Holds the current camera entity used to render the scene.

Note: A camera is a QEntity that has a QCameraLens as one of its components.

Access functions:

Qt3DCore::QEntity * | camera() const
void | setCamera(Qt3DCore::QEntity *camera)

Notifier signal:

void | cameraChanged(Qt3DCore::QEntity *camera)

### clearColor : QColor

Holds the current clear color of the scene. The frame buffer is initialized to the clear color before rendering.

Access functions:

QColor | clearColor() const
void | setClearColor(const QColor &clearColor)

Notifier signal:

void | clearColorChanged(const QColor &clearColor)

### externalRenderTargetSize : QSize

Contains the size of the external render target. External render targets are relevant when rendering does not target a window surface (as set in surface).

Access functions:

QSize | externalRenderTargetSize() const
void | setExternalRenderTargetSize(const QSize &size)

Notifier signal:

void | externalRenderTargetSizeChanged(const QSize &size)

### frustumCulling : bool

Indicates if the renderer applies frustum culling to the scene.

Access functions:

bool | isFrustumCullingEnabled() const
void | setFrustumCullingEnabled(bool enabled)

Notifier signal:

void | frustumCullingEnabledChanged(bool enabled)

### gamma : float

Holds the gamma value the renderer applies to the scene.

Access functions:

float | gamma() const
void | setGamma(float gamma)

Notifier signal:

void | gammaChanged(float gamma)

### `[since 5.15]` showDebugOverlay : bool

If true, a debug overlay will be rendered over the scene. It will show detailed information about the runtime rendering state, let the user turn logging on and off, etc.

This property was introduced in Qt 5.15.

Access functions:

bool | showDebugOverlay() const
void | setShowDebugOverlay(bool showDebugOverlay)

Notifier signal:

void | showDebugOverlayChanged(bool showDebugOverlay)

### surface : QObject*

Holds the current render surface.

Access functions:

QObject * | surface() const
void | setSurface(QObject *surface)

Notifier signal:

void | surfaceChanged(QObject *surface)

### viewportRect : QRectF

Holds the current normalized viewport rectangle.

Access functions:

QRectF | viewportRect() const
void | setViewportRect(const QRectF &viewportRect)

Notifier signal:

void | viewportRectChanged(const QRectF &viewportRect)