QForwardRenderer Class

(Qt3DExtras::QForwardRenderer)

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

Header: #include <QForwardRenderer>
qmake: QT += 3dextras
Since: Qt 5.7
Instantiated By: ForwardRenderer
Inherits: Qt3DRender::QTechniqueFilter

Properties

Public Functions

QForwardRenderer(Qt3DCore::QNode *parent = nullptr)
~QForwardRenderer()
Qt3DCore::QEntity *camera() const
QColor clearColor() const
QSize externalRenderTargetSize() const
float gamma() const
bool isFrustumCullingEnabled() const
QObject *surface() const
QRectF viewportRect() const

Public Slots

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

Signals

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

Additional Inherited Members

Detailed Description

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

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

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

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)

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)

Member Function Documentation

QForwardRenderer::QForwardRenderer(Qt3DCore::QNode *parent = nullptr)

Default constructs an instance of QForwardRenderer.

QForwardRenderer::~QForwardRenderer()

Destroys the instance of QForwardRenderer.

© 2017 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.