Defines the mesh indirect draw command attributes. More...
#include <DeviceContext.h>
Public Member Functions | |
constexpr | DrawMeshIndirectAttribs () noexcept |
Initializes the structure members with default values. | |
constexpr | DrawMeshIndirectAttribs (IBuffer *_pAttribsBuffer, DRAW_FLAGS _Flags, Uint32 _CommandCount, Uint64 _DrawArgsOffset=DrawMeshIndirectAttribs{}.DrawArgsOffset, RESOURCE_STATE_TRANSITION_MODE _AttribsBufferStateTransitionMode=DrawMeshIndirectAttribs{}.AttribsBufferStateTransitionMode, IBuffer *_pCounterBuffer=DrawMeshIndirectAttribs{}.pCounterBuffer, Uint64 _CounterOffset=DrawMeshIndirectAttribs{}.CounterOffset, RESOURCE_STATE_TRANSITION_MODE _CounterBufferStateTransitionMode=DrawMeshIndirectAttribs{}.CounterBufferStateTransitionMode) noexcept |
Initializes the structure members with user-specified values. | |
Public Attributes | |
IBuffer * | pAttribsBuffer = nullptr |
Uint64 | DrawArgsOffset = 0 |
Offset from the beginning of the attribs buffer to the location of the draw command attributes. | |
DRAW_FLAGS | Flags = DRAW_FLAG_NONE |
Additional flags, see Diligent::DRAW_FLAGS. | |
Uint32 | CommandCount = 1 |
RESOURCE_STATE_TRANSITION_MODE | AttribsBufferStateTransitionMode = RESOURCE_STATE_TRANSITION_MODE_NONE |
State transition mode for indirect draw arguments buffer. | |
IBuffer * | pCounterBuffer = nullptr |
A pointer to the optional buffer, from which Uint32 value with the draw count will be read. | |
Uint64 | CounterOffset = 0 |
When pCounterBuffer is not null, an offset from the beginning of the buffer to the location of the command counter. | |
RESOURCE_STATE_TRANSITION_MODE | CounterBufferStateTransitionMode = RESOURCE_STATE_TRANSITION_MODE_NONE |
When pCounterBuffer is not null, state transition mode for the count buffer. | |
Defines the mesh indirect draw command attributes.
This structure is used by IDeviceContext::DrawMeshIndirect().
Uint32 Diligent::DrawMeshIndirectAttribs::CommandCount = 1 |
When pCounterBuffer
is null, the number of commands to run. When pCounterBuffer
is not null, the maximum number of commands that will be read from the count buffer.
IBuffer* Diligent::DrawMeshIndirectAttribs::pAttribsBuffer = nullptr |
A pointer to the buffer, from which indirect draw attributes will be read. The buffer must contain the following arguments at the specified offset:
Direct3D12:
Uint32 ThreadGroupCountX; Uint32 ThreadGroupCountY; Uint32 ThreadGroupCountZ;
Vulkan:
Uint32 TaskCount; Uint32 FirstTask;
Size of the buffer must be sizeof(Uint32[3]) * Attribs.MaxDrawCommands
.