![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
Namespaces | |
namespace | anonymous_namespace{CommandBuffer.cpp} |
namespace | anonymous_namespace{CommandBuffer.inl} |
namespace | Names |
Typedefs | |
template<CommandType T> | |
using | MapToDataType = typename MapToDataType_t< T >::type |
Enumerations | |
enum class | ErrorType : U8 { NONE = 0 , MISSING_BEGIN_RENDER_PASS , INVALID_BEGIN_RENDER_PASS , MISSING_END_RENDER_PASS , MISSING_BEGIN_GPU_QUERY , MISSING_END_GPU_QUERY , MISSING_PUSH_DEBUG_SCOPE , MISSING_POP_DEBUG_SCOPE , MISSING_POP_CAMERA , MISSING_POP_VIEWPORT , MISSING_VALID_PIPELINE , MISSING_BLIT_DESCRIPTOR_SET , INVALID_DISPATCH_COUNT , INVALID_DESCRIPTOR_SET , INVALID_RENDER_PASS_FOR_PIPELINE , COUNT } |
enum class | CommandType : U8 { BEGIN_RENDER_PASS , END_RENDER_PASS , BEGIN_GPU_QUERY , END_GPU_QUERY , SET_VIEWPORT , PUSH_VIEWPORT , POP_VIEWPORT , SET_SCISSOR , BLIT_RT , COPY_TEXTURE , READ_TEXTURE , CLEAR_TEXTURE , COMPUTE_MIPMAPS , SET_CAMERA , PUSH_CAMERA , POP_CAMERA , SET_CLIP_PLANES , BIND_PIPELINE , BIND_SHADER_RESOURCES , SEND_PUSH_CONSTANTS , DRAW_COMMANDS , DISPATCH_COMPUTE , MEMORY_BARRIER , READ_BUFFER_DATA , CLEAR_BUFFER_DATA , BEGIN_DEBUG_SCOPE , END_DEBUG_SCOPE , ADD_DEBUG_MESSAGE , COUNT } |
Functions | |
void | ResetCommandBufferQueue (CommandBufferQueue &queue) |
void | AddCommandBufferToQueue (CommandBufferQueue &queue, const Handle< GFX::CommandBuffer > &commandBuffer) |
void | AddCommandBufferToQueue (CommandBufferQueue &queue, Handle< GFX::CommandBuffer > &&commandBuffer) |
void | ToString (const CommandBase &cmd, const CommandType type, I32 &crtIndent, string &out) |
bool | BatchDrawCommands (GenericDrawCommand &previousGDC, GenericDrawCommand ¤tGDC) noexcept |
bool | Merge (DrawCommand *prevCommand, DrawCommand *crtCommand) |
bool | Merge (GFX::MemoryBarrierCommand *lhs, GFX::MemoryBarrierCommand *rhs) |
bool | Merge (SendPushConstantsCommand *lhs, SendPushConstantsCommand *rhs) |
void | InitPools (const size_t poolSizeFactor) |
void | DestroyPools () noexcept |
CommandBuffer * | Get (Handle< CommandBuffer > handle) |
Handle< CommandBuffer > | AllocateCommandBuffer (const char *name, const size_t reservedCmdCount) |
void | DeallocateCommandBuffer (Handle< CommandBuffer > &buffer) |
static string | ToString (const BindPipelineCommand &cmd, U16 indent) |
static string | ToString (const SendPushConstantsCommand &cmd, U16 indent) |
static string | ToString (const DrawCommand &cmd, const U16 indent) |
static string | ToString (const SetViewportCommand &cmd, U16 indent) |
static string | ToString (const PushViewportCommand &cmd, U16 indent) |
static string | ToString (const BeginRenderPassCommand &cmd, U16 indent) |
static string | ToString (const SetScissorCommand &cmd, U16 indent) |
static string | ToString (const SetClipPlanesCommand &cmd, const U16 indent) |
static string | ToString (const SetCameraCommand &cmd, U16 indent) |
static string | ToString (const BindShaderResourcesCommand &cmd, const U16 indent) |
static string | ToString (const BeginDebugScopeCommand &cmd, const U16 indent) |
static string | ToString (const AddDebugMessageCommand &cmd, const U16 indent) |
static string | ToString (const DispatchComputeCommand &cmd, U16 indent) |
static string | ToString (const MemoryBarrierCommand &cmd, U16 indent) |
static string | ToString (const BeginGPUQueryCommand &cmd, const U16 indent) |
static string | ToString (const EndGPUQueryCommand &cmd, const U16 indent) |
static string | ToString (const BlitRenderTargetCommand &cmd, const U16 indent) |
static string | ToString (const CopyTextureCommand &cmd, const U16 indent) |
static string | ToString (const ReadTextureCommand &cmd, const U16 indent) |
static string | ToString (const ClearTextureCommand &cmd, const U16 indent) |
static string | ToString (const ComputeMipMapsCommand &cmd, const U16 indent) |
static string | ToString (const PushCameraCommand &cmd, const U16 indent) |
static string | ToString (const ReadBufferDataCommand &cmd, const U16 indent) |
static string | ToString (const ClearBufferDataCommand &cmd, const U16 indent) |
string | ToString (const CommandBase &cmd, const CommandType type, U16 indent) |
template<typename T = CommandBase> requires std::is_base_of_v<CommandBase, T> | |
bool | TryMergeCommands (CommandType type, T *prevCommand, T *crtCommand) |
template<typename T > requires std::is_base_of_v<CommandBase, T> | |
FORCE_INLINE T * | EnqueueCommand (CommandBuffer &buffer) |
template<typename T > requires std::is_base_of_v<CommandBase, T> | |
FORCE_INLINE T * | EnqueueCommand (CommandBuffer &buffer, T &cmd) |
template<typename T > requires std::is_base_of_v<CommandBase, T> | |
FORCE_INLINE T * | EnqueueCommand (CommandBuffer &buffer, T &&cmd) |
Variables | |
static CommandBufferPool * | g_sCommandBufferPool = nullptr |
using Divide::GFX::MapToDataType = typedef typename MapToDataType_t<T>::type |
Definition at line 48 of file Commands.h.
|
strong |
Definition at line 40 of file CommandTypes.h.
|
strong |
Definition at line 42 of file CommandBuffer.h.
void Divide::GFX::AddCommandBufferToQueue | ( | CommandBufferQueue & | queue, |
const Handle< GFX::CommandBuffer > & | commandBuffer | ||
) |
Definition at line 79 of file CommandBuffer.cpp.
void Divide::GFX::AddCommandBufferToQueue | ( | CommandBufferQueue & | queue, |
Handle< GFX::CommandBuffer > && | commandBuffer | ||
) |
Definition at line 89 of file CommandBuffer.cpp.
Handle< CommandBuffer > Divide::GFX::AllocateCommandBuffer | ( | const char * | name, |
const size_t | reservedCmdCount | ||
) |
Definition at line 133 of file CommandBufferPool.cpp.
|
noexcept |
Definition at line 657 of file CommandBuffer.cpp.
void Divide::GFX::DeallocateCommandBuffer | ( | Handle< CommandBuffer > & | buffer | ) |
Definition at line 140 of file CommandBufferPool.cpp.
|
noexcept |
Definition at line 17 of file CommandBufferPool.cpp.
FORCE_INLINE T * Divide::GFX::EnqueueCommand | ( | CommandBuffer & | buffer | ) |
Definition at line 162 of file CommandBuffer.h.
FORCE_INLINE T * Divide::GFX::EnqueueCommand | ( | CommandBuffer & | buffer, |
T && | cmd | ||
) |
Definition at line 168 of file CommandBuffer.h.
FORCE_INLINE T * Divide::GFX::EnqueueCommand | ( | CommandBuffer & | buffer, |
T & | cmd | ||
) |
Definition at line 165 of file CommandBuffer.h.
CommandBuffer * Divide::GFX::Get | ( | Handle< CommandBuffer > | handle | ) |
Definition at line 126 of file CommandBufferPool.cpp.
void Divide::GFX::InitPools | ( | const size_t | poolSizeFactor | ) |
Definition at line 10 of file CommandBufferPool.cpp.
bool Divide::GFX::Merge | ( | DrawCommand * | prevCommand, |
DrawCommand * | crtCommand | ||
) |
Definition at line 684 of file CommandBuffer.cpp.
bool Divide::GFX::Merge | ( | GFX::MemoryBarrierCommand * | lhs, |
GFX::MemoryBarrierCommand * | rhs | ||
) |
Definition at line 722 of file CommandBuffer.cpp.
bool Divide::GFX::Merge | ( | SendPushConstantsCommand * | lhs, |
SendPushConstantsCommand * | rhs | ||
) |
Definition at line 776 of file CommandBuffer.cpp.
void Divide::GFX::ResetCommandBufferQueue | ( | CommandBufferQueue & | queue | ) |
Definition at line 66 of file CommandBuffer.cpp.
|
static |
Definition at line 392 of file Commands.cpp.
|
static |
Definition at line 387 of file Commands.cpp.
|
static |
Definition at line 434 of file Commands.cpp.
|
static |
Definition at line 212 of file Commands.cpp.
|
static |
Definition at line 19 of file Commands.cpp.
|
static |
Definition at line 289 of file Commands.cpp.
|
static |
Definition at line 446 of file Commands.cpp.
|
static |
Definition at line 493 of file Commands.cpp.
|
static |
Definition at line 473 of file Commands.cpp.
static void Divide::GFX::ToString | ( | const CommandBase & | cmd, |
const CommandType | type, | ||
I32 & | crtIndent, | ||
string & | out | ||
) |
Definition at line 609 of file CommandBuffer.cpp.
string Divide::GFX::ToString | ( | const CommandBase & | cmd, |
const CommandType | type, | ||
U16 | indent | ||
) |
Definition at line 498 of file Commands.cpp.
|
static |
Definition at line 478 of file Commands.cpp.
|
static |
Definition at line 463 of file Commands.cpp.
|
static |
Definition at line 403 of file Commands.cpp.
|
static |
Definition at line 187 of file Commands.cpp.
|
static |
Definition at line 441 of file Commands.cpp.
|
static |
Definition at line 408 of file Commands.cpp.
|
static |
Definition at line 483 of file Commands.cpp.
|
static |
Definition at line 207 of file Commands.cpp.
|
static |
Definition at line 488 of file Commands.cpp.
|
static |
Definition at line 468 of file Commands.cpp.
|
static |
Definition at line 136 of file Commands.cpp.
|
static |
Definition at line 283 of file Commands.cpp.
|
static |
Definition at line 262 of file Commands.cpp.
|
static |
Definition at line 257 of file Commands.cpp.
|
static |
Definition at line 202 of file Commands.cpp.
bool Divide::GFX::TryMergeCommands | ( | CommandType | type, |
T * | prevCommand, | ||
T * | crtCommand | ||
) |
Definition at line 101 of file CommandBuffer.inl.
|
static |
Definition at line 8 of file CommandBufferPool.cpp.