|
| ~GraphicsFactory () noexcept override=default |
|
virtual SharedPtr< TBuffer > | createBuffer (BufferType type, ResourceHeap heap, size_t elementSize, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TBuffer > | createBuffer (const String &name, BufferType type, ResourceHeap heap, size_t elementSize, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TVertexBuffer > | createVertexBuffer (const vertex_buffer_layout_type &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TVertexBuffer > | createVertexBuffer (const String &name, const vertex_buffer_layout_type &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TIndexBuffer > | createIndexBuffer (const index_buffer_layout_type &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TIndexBuffer > | createIndexBuffer (const String &name, const index_buffer_layout_type &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TImage > | createTexture (Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 levels=1, UInt32 layers=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TImage > | createTexture (const String &name, Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 levels=1, UInt32 layers=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual Generator< SharedPtr< TImage > > | createTextures (Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 layers=1, UInt32 levels=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const =0 |
|
virtual SharedPtr< TSampler > | createSampler (FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const =0 |
|
virtual SharedPtr< TSampler > | createSampler (const String &name, FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const =0 |
|
virtual Generator< SharedPtr< TSampler > > | createSamplers (FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const =0 |
|
UniquePtr< TBLAS > | createBottomLevelAccelerationStructure (AccelerationStructureFlags flags) const |
|
virtual UniquePtr< TBLAS > | createBottomLevelAccelerationStructure (StringView name, AccelerationStructureFlags flags) const =0 |
|
UniquePtr< TTLAS > | createTopLevelAccelerationStructure (AccelerationStructureFlags flags) const |
|
virtual UniquePtr< TTLAS > | createTopLevelAccelerationStructure (StringView name, AccelerationStructureFlags flags) const =0 |
|
SharedPtr< IBuffer > | createBuffer (const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, size_t elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, size_t elementSize, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IVertexBuffer > | createVertexBuffer (const IVertexBufferLayout &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a vertex buffer, based on the layout
|
|
SharedPtr< IVertexBuffer > | createVertexBuffer (const String &name, const IVertexBufferLayout &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a vertex buffer, based on the layout
|
|
SharedPtr< IIndexBuffer > | createIndexBuffer (const IIndexBufferLayout &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates an index buffer, based on the layout .
|
|
SharedPtr< IIndexBuffer > | createIndexBuffer (const String &name, const IIndexBufferLayout &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates an index buffer, based on the layout .
|
|
| ~IGraphicsFactory () noexcept override=default |
|
SharedPtr< IBuffer > | createBuffer (BufferType type, ResourceHeap heap, size_t elementSize, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer of type type .
|
|
SharedPtr< IBuffer > | createBuffer (const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, BufferType type, ResourceHeap heap, size_t elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer of type type .
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IDescriptorSetLayout &descriptorSet, UInt32 binding, ResourceHeap heap, size_t elementSize, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a specific descriptor.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IBuffer > | createBuffer (const String &name, const IPipeline &pipeline, UInt32 space, UInt32 binding, ResourceHeap heap, size_t elementSize, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a buffer that can be bound to a descriptor of a specific descriptor set.
|
|
SharedPtr< IVertexBuffer > | createVertexBuffer (const IVertexBufferLayout &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a vertex buffer, based on the layout
|
|
SharedPtr< IVertexBuffer > | createVertexBuffer (const String &name, const IVertexBufferLayout &layout, ResourceHeap heap, UInt32 elements=1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a vertex buffer, based on the layout
|
|
SharedPtr< IIndexBuffer > | createIndexBuffer (const IIndexBufferLayout &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates an index buffer, based on the layout .
|
|
SharedPtr< IIndexBuffer > | createIndexBuffer (const String &name, const IIndexBufferLayout &layout, ResourceHeap heap, UInt32 elements, ResourceUsage usage=ResourceUsage::Default) const |
| Creates an index buffer, based on the layout .
|
|
SharedPtr< IImage > | createTexture (Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 levels=1, UInt32 layers=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a texture.
|
|
SharedPtr< IImage > | createTexture (const String &name, Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 levels=1, UInt32 layers=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a texture.
|
|
Generator< SharedPtr< IImage > > | createTextures (Format format, const Size3d &size, ImageDimensions dimension=ImageDimensions::DIM_2, UInt32 layers=1, UInt32 levels=1, MultiSamplingLevel samples=MultiSamplingLevel::x1, ResourceUsage usage=ResourceUsage::Default) const |
| Creates a series of textures.
|
|
SharedPtr< ISampler > | createSampler (FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const |
| Creates a texture sampler.
|
|
SharedPtr< ISampler > | createSampler (const String &name, FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const |
| Creates a texture sampler.
|
|
Generator< SharedPtr< ISampler > > | createSamplers (FilterMode magFilter=FilterMode::Nearest, FilterMode minFilter=FilterMode::Nearest, BorderMode borderU=BorderMode::Repeat, BorderMode borderV=BorderMode::Repeat, BorderMode borderW=BorderMode::Repeat, MipMapMode mipMapMode=MipMapMode::Nearest, Float mipMapBias=0.f, Float maxLod=std::numeric_limits< Float >::max(), Float minLod=0.f, Float anisotropy=0.f) const |
| Creates a series of texture samplers.
|
|
UniquePtr< IBottomLevelAccelerationStructure > | createBottomLevelAccelerationStructure (AccelerationStructureFlags flags=AccelerationStructureFlags::None) const |
| Creates a bottom-level acceleration structure.
|
|
UniquePtr< IBottomLevelAccelerationStructure > | createBottomLevelAccelerationStructure (StringView name, AccelerationStructureFlags flags=AccelerationStructureFlags::None) const |
| Creates a bottom-level acceleration structure.
|
|
UniquePtr< ITopLevelAccelerationStructure > | createTopLevelAccelerationStructure (AccelerationStructureFlags flags=AccelerationStructureFlags::None) const |
| Creates a top-level acceleration structure.
|
|
UniquePtr< ITopLevelAccelerationStructure > | createTopLevelAccelerationStructure (StringView name, AccelerationStructureFlags flags=AccelerationStructureFlags::None) const |
| Creates a top-level acceleration structure.
|
|
virtual | ~SharedObject () noexcept=default |
| Destroys the shared object.
|
|
template<typename TSelf > |
auto | shared_from_this (this TSelf &&self) noexcept |
| Returns a shared pointer to the current object instance.
|
|
template<typename TSelf > |
auto | weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > > |
| Returns a weak pointer to the current object instance.
|
|
template<typename TDescriptorLayout, typename TBuffer, typename TVertexBuffer, typename TIndexBuffer, typename TImage, typename TSampler, typename TBLAS, typename TTLAS>
requires meta::implements<TDescriptorLayout,
IDescriptorLayout> && std::derived_from<TVertexBuffer,
VertexBuffer<typename TVertexBuffer::vertex_buffer_layout_type>> && std::derived_from<TIndexBuffer,
IndexBuffer<typename TIndexBuffer::index_buffer_layout_type>> && std::derived_from<TImage,
IImage> && std::derived_from<TBuffer,
IBuffer> && std::derived_from<TSampler,
ISampler> && std::derived_from<TBLAS,
IBottomLevelAccelerationStructure> && std::derived_from<TTLAS,
ITopLevelAccelerationStructure>
class LiteFX::Rendering::GraphicsFactory< TDescriptorLayout, TBuffer, TVertexBuffer, TIndexBuffer, TImage, TSampler, TBLAS, TTLAS >
Describes a factory that creates objects for a GraphicsDevice.
- Template Parameters
-