- Qt 6.8
- Qt 3D
- C++ Classes
- Qt3DRender (Deprecated)
- QGeometryRenderer
- Qt 6.8.3 Reference Documentation

# QGeometryRenderer Class

class Qt3DRender::QGeometryRenderer

Encapsulates geometry rendering. More...

Header: | `#include <QGeometryRenderer>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS 3drender)` `target_link_libraries(mytarget PRIVATE Qt6::3drender)`
qmake: | `QT += 3drender`
In QML: | GeometryRenderer
Inherits: | Qt3DCore::QBoundingVolume
Inherited By: | Qt3DExtras::QConeMesh, Qt3DExtras::QCuboidMesh, Qt3DExtras::QCylinderMesh, Qt3DExtras::QExtrudedTextMesh, Qt3DExtras::QPlaneMesh, Qt3DExtras::QSphereMesh, Qt3DExtras::QTorusMesh, and Qt3DRender::QMesh
Status: | Deprecated

- List of all members, including inherited members

## Public Types

enum | PrimitiveType { Points, Lines, LineLoop, LineStrip, Triangles, …, Patches }

## Properties

- firstInstance : int
- firstVertex : int
- geometry : Qt3DCore::QGeometry*
- indexBufferByteOffset : int
- indexOffset : int
- instanceCount : int

- primitiveRestartEnabled : bool
- primitiveType : PrimitiveType
- restartIndexValue : int
- `(since 6.0)` sortIndex : float
- vertexCount : int
- verticesPerPatch : int

## Public Functions

| QGeometryRenderer(Qt3DCore::QNode *parent = nullptr)
int | firstInstance() const
int | firstVertex() const
Qt3DCore::QGeometry * | geometry() const
int | indexBufferByteOffset() const
int | indexOffset() const
int | instanceCount() const
bool | primitiveRestartEnabled() const
Qt3DRender::QGeometryRenderer::PrimitiveType | primitiveType() const
int | restartIndexValue() const
float | sortIndex() const
int | vertexCount() const
int | verticesPerPatch() const

## Public Slots

void | setFirstInstance(int firstInstance)
void | setFirstVertex(int firstVertex)
void | setGeometry(Qt3DCore::QGeometry *geometry)
void | setIndexBufferByteOffset(int offset)
void | setIndexOffset(int indexOffset)
void | setInstanceCount(int instanceCount)
void | setPrimitiveRestartEnabled(bool enabled)
void | setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)
void | setRestartIndexValue(int index)
void | setSortIndex(float sortIndex)
void | setVertexCount(int vertexCount)
void | setVerticesPerPatch(int verticesPerPatch)

## Signals

void | firstInstanceChanged(int firstInstance)
void | firstVertexChanged(int firstVertex)
void | geometryChanged(Qt3DCore::QGeometry *geometry)
void | indexBufferByteOffsetChanged(int offset)
void | indexOffsetChanged(int indexOffset)
void | instanceCountChanged(int instanceCount)
void | primitiveRestartEnabledChanged(bool primitiveRestartEnabled)
void | primitiveTypeChanged(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)
void | restartIndexValueChanged(int restartIndexValue)
void | sortIndexChanged(float sortIndex)
void | vertexCountChanged(int vertexCount)
void | verticesPerPatchChanged(int verticesPerPatch)

## Detailed Description

A Qt3DRender::QGeometryRenderer holds all the information necessary to draw a Qt3DCore::QGeometry. A QGeometry holds the coordinates of the geometry data - QGeometryRenderer specifies how to interpret that data.

## Member Type Documentation

### enum QGeometryRenderer::PrimitiveType

The type of the primitive.

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QGeometryRenderer::Points` | `0x0000` | List of points
`Qt3DRender::QGeometryRenderer::Lines` | `0x0001` | List of lines
`Qt3DRender::QGeometryRenderer::LineLoop` | `0x0002` | Connected group of lines connected at ends forming a loop
`Qt3DRender::QGeometryRenderer::LineStrip` | `0x0003` | Connected group of lines
`Qt3DRender::QGeometryRenderer::Triangles` | `0x0004` | List of triangles
`Qt3DRender::QGeometryRenderer::TriangleStrip` | `0x0005` | List of connected triangles
`Qt3DRender::QGeometryRenderer::TriangleFan` | `0x0006` | List of connected triagles where all triangles share the first vertex
`Qt3DRender::QGeometryRenderer::LinesAdjacency` | `0x000A` | Allows geometry shader to access adjacent lines in a line list
`Qt3DRender::QGeometryRenderer::TrianglesAdjacency` | `0x000C` | Allows geometry shader to access adjacent triangles in a triangle list
`Qt3DRender::QGeometryRenderer::LineStripAdjacency` | `0x000B` | Allows geometry shader to access adjacent lines in a line strip
`Qt3DRender::QGeometryRenderer::TriangleStripAdjacency` | `0x000D` | Allows geometry shader to access adjacent triangles in a triangle strip
`Qt3DRender::QGeometryRenderer::Patches` | `0x000E` | Only primitive type accepted by tesselation shader where a patch consists of arbitrary number of vertices

## Property Documentation

### firstInstance : int

Holds the base instance.

Access functions:

int | firstInstance() const
void | setFirstInstance(int firstInstance)

Notifier signal:

void | firstInstanceChanged(int firstInstance)

### firstVertex : int

Holds the base vertex.

Access functions:

int | firstVertex() const
void | setFirstVertex(int firstVertex)

Notifier signal:

void | firstVertexChanged(int firstVertex)

### geometry : Qt3DCore::QGeometry*

Holds the geometry.

Access functions:

Qt3DCore::QGeometry * | geometry() const
void | setGeometry(Qt3DCore::QGeometry *geometry)

Notifier signal:

void | geometryChanged(Qt3DCore::QGeometry *geometry)

### indexBufferByteOffset : int

Holds the byte offset into the index buffer.

Access functions:

int | indexBufferByteOffset() const
void | setIndexBufferByteOffset(int offset)

Notifier signal:

void | indexBufferByteOffsetChanged(int offset)

### indexOffset : int

Holds the base vertex.

Access functions:

int | indexOffset() const
void | setIndexOffset(int indexOffset)

Notifier signal:

void | indexOffsetChanged(int indexOffset)

### instanceCount : int

Holds the instance count.

Access functions:

int | instanceCount() const
void | setInstanceCount(int instanceCount)

Notifier signal:

void | instanceCountChanged(int instanceCount)

### primitiveRestartEnabled : bool

Holds the primitive restart flag.

Access functions:

bool | primitiveRestartEnabled() const
void | setPrimitiveRestartEnabled(bool enabled)

Notifier signal:

void | primitiveRestartEnabledChanged(bool primitiveRestartEnabled)

### primitiveType : PrimitiveType

Holds the primitive type.

Access functions:

Qt3DRender::QGeometryRenderer::PrimitiveType | primitiveType() const
void | setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)

Notifier signal:

void | primitiveTypeChanged(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)

### restartIndexValue : int

Holds the restart index.

Access functions:

int | restartIndexValue() const
void | setRestartIndexValue(int index)

Notifier signal:

void | restartIndexValueChanged(int restartIndexValue)

### `[since 6.0]` sortIndex : float

Overrides the sorting index when depth sorting is enabled.

If depth sorting is enabled on the frame graph, the renderer will sort objects based on how far the center of the bounding volume is from the camera and render objects from the furthest to the closest.

This property can be used to override the depth index and precisely control the order in which objects are rendered. This is useful when all objects are at the same physical distance from the camera.

The actual values are not significant, only that they define an order to sort the objects. These are sorted such as the object with the smallest value is drawn first, then the second smallest, and so on.

Note: Setting this to -1.f will disable the explicit sorting for this entity and revert to using the distance from the center of the bounding volume.

This property was introduced in Qt 6.0.

Access functions:

float | sortIndex() const
void | setSortIndex(float sortIndex)

Notifier signal:

void | sortIndexChanged(float sortIndex)

See also Qt3DRender::QSortPolicy.

### vertexCount : int

Holds the primitive count.

Access functions:

int | vertexCount() const
void | setVertexCount(int vertexCount)

Notifier signal:

void | vertexCountChanged(int vertexCount)

### verticesPerPatch : int

Holds vertices per patch.

Access functions:

int | verticesPerPatch() const
void | setVerticesPerPatch(int verticesPerPatch)

Notifier signal:

void | verticesPerPatchChanged(int verticesPerPatch)

## Member Function Documentation

### `[explicit]` QGeometryRenderer::QGeometryRenderer(Qt3DCore::QNode *parent = nullptr)

Constructs a new QGeometryRenderer with parent.