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
In QML: ForwardRenderer
Inherits: Qt3DRender::QTechniqueFilter
Status: Deprecated

Properties

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

buffersToClear : Qt3DRender::QClearBuffers::BufferType

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

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)

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.

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)