Class DrawablePool

Inheritance Relationships

Derived Types

Class Documentation

class DrawablePool

Subclassed by Azura::D3D12::D3D12DrawablePool, Azura::Vulkan::VkDrawablePool

Public Functions

DrawablePool(const DrawablePoolCreateInfo &createInfo, DescriptorCount descriptorCount, Memory::Allocator &allocator)
virtual ~DrawablePool()
DrawablePool(const DrawablePool &other)
DrawablePool(DrawablePool &&other)
DrawablePool &operator=(const DrawablePool &other)
DrawablePool &operator=(DrawablePool &&other)
virtual DrawableID CreateDrawable(const DrawableCreateInfo &createInfo) = 0
void BindVertexData(DrawableID drawableId, SlotID slot, const Containers::Vector<U8> &buffer)
virtual void BindVertexData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
virtual void BindVertexData(DrawableID drawableId, SlotID slot, U32 sourceBuffer, U32 offset, U32 size) = 0
void BindInstanceData(DrawableID drawableId, SlotID slot, const Containers::Vector<U8> &buffer)
virtual void BindInstanceData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
void BindUniformData(DrawableID drawableId, SlotID slot, const Containers::Vector<U8> &buffer)
virtual void BindUniformData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
void SetIndexData(DrawableID drawableId, const Containers::Vector<U8> &buffer)
virtual void SetIndexData(DrawableID drawableId, const U8 *buffer, U32 size) = 0
virtual void AddShader(U32 shaderId) = 0
virtual void BindTextureData(SlotID slot, const TextureDesc &desc, const U8 *buffer) = 0
virtual void BindSampler(SlotID slot, const SamplerDesc &desc) = 0
virtual void BeginUpdates() = 0
void UpdateUniformData(DrawableID drawableId, SlotID slot, const Containers::Vector<U8> &buffer)
virtual void UpdateUniformData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
virtual void UpdateVertexData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
virtual void UpdateInstanceData(DrawableID drawableId, SlotID slot, const U8 *buffer, U32 size) = 0
virtual void UpdateTextureData(SlotID slot, const U8 *buffer) = 0
U32 GetSingleTextureBufferInfo(const DescriptorSlot &slot)
virtual void Submit() = 0
virtual void SubmitUpdates() = 0
U32 GetSize() const
bool CanRenderInPass(U32 renderPassId) const

Protected Functions

Memory::Allocator &GetAllocator() const
DrawType GetDrawType() const

Protected Attributes

U32 m_numVertexSlots
U32 m_numInstanceSlots
DescriptorCount m_descriptorCount
Containers::Vector<VertexSlot> m_vertexDataSlots
Containers::Vector<U32> m_renderPasses
Containers::Vector<TextureBufferInfo> m_textureBufferInfos
Containers::Vector<SamplerInfo> m_samplerInfos
Containers::Vector<BufferUpdate> m_bufferUpdates
CullMode m_cullMode