CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPURenderingLimits Struct Referencefinal

Contains all rendering limitations such as maximum buffer size, maximum image resolution etc. More...

#include <CeresEngine/RenderAPI/GPUDevice.hpp>

Static Public Member Functions

template<typename Processor >
static constexpr void reflect (Processor &&RTTI)
 Executes the given processor for every field of the struct.
 

Public Attributes

float lineWidthRange [2] = {1.0f, 1.0f}
 Specifies the range for rasterizer line widths.
 
float lineWidthGranularity
 Specifies the granularity for rasterizer line widths.
 
UInt32 maxImageArrayLayers = 0
 Specifies the maximum number of image array layers (for 1D-, 2D-, and cube images).
 
UInt32 maxColorAttachments = 0
 Specifies the maximum number of color attachments for each render target.
 
UInt32 maxPatchVertices = 0
 Specifies the maximum number of patch control points.
 
UInt32 max1DImageSize = 0
 Specifies the maximum size of each 1D image.
 
UInt32 max2DImageSize = 0
 Specifies the maximum size of each 2D image (for width and height).
 
UInt32 max3DImageSize = 0
 Specifies the maximum size of each 3D image (for width, height, and depth).
 
UInt32 maxCubeImageSize = 0
 Specifies the maximum size of each cube image (for width and height).
 
UInt32 maxAnisotropy = 0
 Specifies the maximum anisotropy image filter.
 
TVector3< UInt32maxComputeShaderWorkGroups = {0, 0, 0}
 Specifies the maximum number of work groups in a compute shader.
 
TVector3< UInt32maxComputeShaderWorkGroupSize = {0, 0, 0}
 Specifies the maximum work group size in a compute shader.
 
UInt32 maxViewports = 0
 Specifies the maximum number of viewports and scissor rectangles.
 
TExtent2< UInt32maxViewportSize = {0u, 0u}
 Specifies the maximum width and height of each viewport and scissor rectangle.
 
UInt64 maxBufferSize = 0
 Specifies the maximum size (in bytes) that is supported for hardware buffers (vertex, index, storage buffers).
 
UInt64 maxConstantBufferSize = 0
 Specifies the maximum size (in bytes) that is supported for hardware constant buffers.
 

Detailed Description

Contains all rendering limitations such as maximum buffer size, maximum image resolution etc.

Member Function Documentation

◆ reflect()

template<typename Processor >
static constexpr void CeresEngine::GPURenderingLimits::reflect ( Processor &&  RTTI)
inlinestaticconstexpr

Executes the given processor for every field of the struct.

Parameters
RTTIThe processor to be ran for every field.

Member Data Documentation

◆ lineWidthGranularity

float CeresEngine::GPURenderingLimits::lineWidthGranularity

Specifies the granularity for rasterizer line widths.

Only supported with: OpenGL, Vulkan.

◆ lineWidthRange

float CeresEngine::GPURenderingLimits::lineWidthRange[2] = {1.0f, 1.0f}

Specifies the range for rasterizer line widths.

By default [1, 1]. Only supported with: OpenGL, Vulkan.

◆ max1DImageSize

UInt32 CeresEngine::GPURenderingLimits::max1DImageSize = 0

Specifies the maximum size of each 1D image.

◆ max2DImageSize

UInt32 CeresEngine::GPURenderingLimits::max2DImageSize = 0

Specifies the maximum size of each 2D image (for width and height).

◆ max3DImageSize

UInt32 CeresEngine::GPURenderingLimits::max3DImageSize = 0

Specifies the maximum size of each 3D image (for width, height, and depth).

◆ maxAnisotropy

UInt32 CeresEngine::GPURenderingLimits::maxAnisotropy = 0

Specifies the maximum anisotropy image filter.

◆ maxBufferSize

UInt64 CeresEngine::GPURenderingLimits::maxBufferSize = 0

Specifies the maximum size (in bytes) that is supported for hardware buffers (vertex, index, storage buffers).

Remarks
Constant buffers are a special case for which 'maxConstantBufferSize' can be used.

◆ maxColorAttachments

UInt32 CeresEngine::GPURenderingLimits::maxColorAttachments = 0

Specifies the maximum number of color attachments for each render target.

Remarks
This value must not be greater than 8.

◆ maxComputeShaderWorkGroups

TVector3<UInt32> CeresEngine::GPURenderingLimits::maxComputeShaderWorkGroups = {0, 0, 0}

Specifies the maximum number of work groups in a compute shader.

◆ maxComputeShaderWorkGroupSize

TVector3<UInt32> CeresEngine::GPURenderingLimits::maxComputeShaderWorkGroupSize = {0, 0, 0}

Specifies the maximum work group size in a compute shader.

◆ maxConstantBufferSize

UInt64 CeresEngine::GPURenderingLimits::maxConstantBufferSize = 0

Specifies the maximum size (in bytes) that is supported for hardware constant buffers.

Remarks
This is typically a lot smaller than the maximum size for other types of buffers.

◆ maxCubeImageSize

UInt32 CeresEngine::GPURenderingLimits::maxCubeImageSize = 0

Specifies the maximum size of each cube image (for width and height).

◆ maxImageArrayLayers

UInt32 CeresEngine::GPURenderingLimits::maxImageArrayLayers = 0

Specifies the maximum number of image array layers (for 1D-, 2D-, and cube images).

◆ maxPatchVertices

UInt32 CeresEngine::GPURenderingLimits::maxPatchVertices = 0

Specifies the maximum number of patch control points.

◆ maxViewports

UInt32 CeresEngine::GPURenderingLimits::maxViewports = 0

Specifies the maximum number of viewports and scissor rectangles.

Most render systems have a maximum of 16.

◆ maxViewportSize

TExtent2<UInt32> CeresEngine::GPURenderingLimits::maxViewportSize = {0u, 0u}

Specifies the maximum width and height of each viewport and scissor rectangle.


The documentation for this struct was generated from the following file: