|
CeresEngine 0.2.0
A game development framework
|
#include <CeresEngine/RenderAPI/Vulkan/VKShader.hpp>
Public Types | |
| using | Allocator = VKObjectAllocator |
An allocator type used to allocate new VKShaderProgram instances from a memory pool. | |
Public Types inherited from CeresEngine::TDeviceObject< GPUShaderProgramDescriptor > | |
| using | Descriptor = GPUShaderProgramDescriptor |
| An type-alias to the descriptor struct type. | |
Static Public Member Functions | |
| static Allocator & | getAllocator () noexcept |
Returns the allocator for VKShaderProgram. | |
| static void * | operator new (size_t size) noexcept |
Allocates memory for a new instance of VKShaderProgram. | |
| static void | operator delete (void *p, std::size_t size) noexcept |
Deletes memory for an instance of VKShaderProgram. | |
Static Public Member Functions inherited from CeresEngine::VKObject< VKShaderProgram, GPUShaderProgram > | |
| static RC< VKShaderProgram > | cast (const RC< GPUShaderProgram > &ptr) |
Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName. | |
| static VKShaderProgram & | cast (GPUShaderProgram &object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static const VKShaderProgram & | cast (const GPUShaderProgram &object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static VKShaderProgram * | cast (GPUShaderProgram *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static const VKShaderProgram * | cast (const GPUShaderProgram *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
Static Public Member Functions inherited from CeresEngine::VKObjectBase | |
| static void * | operator new (size_t size) noexcept |
| static void | operator delete (void *p, std::size_t sz) noexcept |
Private Attributes | |
| const GPUShaderProgramDescriptor | descriptorVK |
| A structure that describes the shader program and it's properties. | |
| GPUShaderProgramDescriptor | mDescriptor |
| The shader program descriptor. | |
| GPUShaderReflectionDescriptor | mReflectionDescriptor |
| The shader reflection descriptor. | |
| Vector< VkPipelineShaderStageCreateInfo, VKAllocator > | mStageInfos {gVKAllocator()} |
A vector of VkPipelineShaderStageCreateInfo objects. | |
| VKPipelineLayoutPtr | mPipelineLayout = nullptr |
| The pipeline layout for this shader program. | |
Additional Inherited Members | |
Public Attributes inherited from CeresEngine::GPUShaderProgram | |
| const GPUShaderReflectionDescriptor & | reflection |
| The shader reflection descriptor. | |
Public Attributes inherited from CeresEngine::TDeviceObject< GPUShaderProgramDescriptor > | |
| const Descriptor & | descriptor |
| A structure that describes the object and it's properties. | |
Public Attributes inherited from CeresEngine::GPUDeviceObject | |
| GPUDevice & | device |
| The owning device this object was created from. | |
An allocator type used to allocate new VKShaderProgram instances from a memory pool.
|
explicit |
|
final |
|
finalvirtualnoexcept |
Reimplemented from CeresEngine::GPUObject.
Returns the allocator for VKShaderProgram.
|
inlinefinalvirtual |
The pipeline layout deduced for this shader program.
Will be used if the user doesn't provide another when creating a new pipeline.
Can be null if the shader doesn't have any reflection metadata to create a pipeline layout for the program.
Implements CeresEngine::GPUShaderProgram.
|
inlinenoexcept |
The pipeline layout for this shader program.
Will be used in-case the user doesn't provide another when creating a new pipeline.
|
inline |
VkPipelineShaderStageCreateInfo objects.
|
staticnoexcept |
Deletes memory for an instance of VKShaderProgram.
Allocates memory for a new instance of VKShaderProgram.
|
private |
A structure that describes the shader program and it's properties.
|
private |
The shader program descriptor.
Since Vulkan does not have the concept of a ShaderProgram, we only store a copy of the descriptor and use it when building the pipeline object.
|
private |
The pipeline layout for this shader program.
Will be used in-case the user doesn't provide another when creating a new pipeline.
|
private |
The shader reflection descriptor.
|
private |
A vector of VkPipelineShaderStageCreateInfo objects.