|
CeresEngine 0.2.0
A game development framework
|
#include <CeresEngine/RenderAPI/OpenGL/GLShader.hpp>
Private Attributes | |
| const GPUShaderProgramDescriptor | descriptorGL |
| A structure that describes the shader program and it's properties. | |
| GLObjectHandle<&glad_glCreateProgram, &glad_glDeleteProgram, false > | programID {} |
| The OpenGL shader program object. | |
| GPUShaderProgramDescriptor | mDescriptor |
| The shader descriptor. | |
| GPUShaderReflectionDescriptor | mReflectionDescriptor |
| The shader reflection descriptor. | |
| GLPipelineLayoutPtr | mPipelineLayout = nullptr |
| The pipeline layout for this shader program. | |
Additional Inherited Members | |
Public Types inherited from CeresEngine::TDeviceObject< GPUShaderProgramDescriptor > | |
| using | Descriptor = GPUShaderProgramDescriptor |
| An type-alias to the descriptor struct type. | |
Static Public Member Functions inherited from CeresEngine::GLObject< ChildTypeName, ParentType > | |
| static RC< ChildTypeName > | cast (const RC< ParentType > &ptr) |
Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName. | |
| static RC< ChildTypeName > | safeCast (const RC< ParentType > &ptr) |
Safely casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName. | |
| static ChildTypeName & | cast (ParentType &object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static const ChildTypeName & | cast (const ParentType &object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static ChildTypeName * | cast (ParentType *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static const ChildTypeName * | cast (const ParentType *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static ChildTypeName * | safeCast (ParentType *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
| static const ChildTypeName * | safeCast (const ParentType *object) |
Casts a object of type ParentType to a object of type ChildTypeName. | |
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. | |
Protected Member Functions inherited from CeresEngine::GPUObject | |
| virtual void | destroy () noexcept |
| A internal method called by the system when the object reference count reaches zero. | |
Protected Member Functions inherited from CeresEngine::GLDeviceObject< GLShaderProgram, GPUShaderProgram > | |
| GLDeviceObject (GLDevicePtr device) | |
Creates a new GLDeviceObject from the given device. | |
Protected Attributes inherited from CeresEngine::GLDeviceObject< GLShaderProgram, GPUShaderProgram > | |
| GLDevice & | deviceGL |
The owning GLDevice instance. | |
| CeresEngine::GLShaderProgram::GLShaderProgram | ( | GLDevicePtr | device, |
| const GPUShaderProgramDescriptor & | descriptor | ||
| ) |
|
final |
| void CeresEngine::GLShaderProgram::activate | ( | GLCommandBuffer & | commandBuffer | ) | const |
Activates the shader for rendering in OpenGL.
|
inlineoverridevirtual |
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.
|
inline |
|
private |
A structure that describes the shader program and it's properties.
|
private |
The shader descriptor.
|
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 |
The OpenGL shader program object.