Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Classes | |
struct | BindingSlot |
struct | ShaderStage |
Public Member Functions | |
CShaderProgramGLSL (CDevice *device, const CStr &name, const VfsPath &programPath, PS::span< const std::tuple< VfsPath, GLenum > > shaderStages, const CShaderDefines &defines, const std::map< CStrIntern, int > &vertexAttribs, int streamflags) | |
~CShaderProgramGLSL () override | |
bool | Link (const VfsPath &path) |
void | Bind (CShaderProgram *previousShaderProgram) override |
Binds the shader into the GL context. More... | |
void | Unbind () override |
Unbinds the shader from the GL context. More... | |
IDevice * | GetDevice () override |
int32_t | GetBindingSlot (const CStrIntern name) const override |
TextureUnit | GetTextureUnit (const int32_t bindingSlot) override |
void | SetUniform (const int32_t bindingSlot, const float value) override |
void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY) override |
void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY, const float valueZ) override |
void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY, const float valueZ, const float valueW) override |
void | SetUniform (const int32_t bindingSlot, PS::span< const float > values) override |
void | VertexAttribPointer (const VertexAttributeStream stream, const Format format, const uint32_t offset, const uint32_t stride, const VertexAttributeRate rate, const void *data) override |
std::vector< VfsPath > | GetFileDependencies () const override |
Public Member Functions inherited from Renderer::Backend::GL::CShaderProgram | |
~CShaderProgram () override | |
virtual void | Bind (CShaderProgram *previousShaderProgram)=0 |
Binds the shader into the GL context. More... | |
virtual void | Unbind ()=0 |
Unbinds the shader from the GL context. More... | |
virtual TextureUnit | GetTextureUnit (const int32_t bindingSlot)=0 |
virtual void | SetUniform (const int32_t bindingSlot, const float value)=0 |
virtual void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY)=0 |
virtual void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY, const float valueZ)=0 |
virtual void | SetUniform (const int32_t bindingSlot, const float valueX, const float valueY, const float valueZ, const float valueW)=0 |
virtual void | SetUniform (const int32_t bindingSlot, PS::span< const float > values)=0 |
virtual void | VertexAttribPointer (const VertexAttributeStream stream, const Format format, const uint32_t offset, const uint32_t stride, const VertexAttributeRate rate, const void *data) |
bool | IsStreamActive (const VertexAttributeStream stream) const |
void | AssertPointersBound () |
Checks that all the required vertex attributes have been set. More... | |
virtual int32_t | GetBindingSlot (const CStrIntern name) const =0 |
virtual std::vector< VfsPath > | GetFileDependencies () const =0 |
Public Member Functions inherited from Renderer::Backend::IDeviceObject< IShaderProgram > | |
virtual | ~IDeviceObject () |
virtual IDevice * | GetDevice ()=0 |
T * | As () |
Private Attributes | |
CDevice * | m_Device = nullptr |
CStr | m_Name |
std::vector< VfsPath > | m_FileDependencies |
std::map< CStrIntern, int > | m_VertexAttribs |
std::vector< int > | m_ActiveVertexAttributes |
GLuint | m_Program |
PS::StaticVector< ShaderStage, 5 > | m_ShaderStages |
std::vector< BindingSlot > | m_BindingSlots |
std::unordered_map< CStrIntern, int32_t > | m_BindingSlotsMapping |
Additional Inherited Members | |
Public Types inherited from Renderer::Backend::GL::CShaderProgram | |
typedef CStrIntern | attrib_id_t |
Static Public Member Functions inherited from Renderer::Backend::GL::CShaderProgram | |
static std::unique_ptr< CShaderProgram > | Create (CDevice *device, const CStr &name, const CShaderDefines &baseDefines) |
Protected Member Functions inherited from Renderer::Backend::GL::CShaderProgram | |
CShaderProgram (int streamflags) | |
void | VertexPointer (const Renderer::Backend::Format format, GLsizei stride, const void *pointer) |
void | NormalPointer (const Renderer::Backend::Format format, GLsizei stride, const void *pointer) |
void | ColorPointer (const Renderer::Backend::Format format, GLsizei stride, const void *pointer) |
void | TexCoordPointer (GLenum texture, const Renderer::Backend::Format format, GLsizei stride, const void *pointer) |
void | BindClientStates () |
void | UnbindClientStates () |
Protected Attributes inherited from Renderer::Backend::GL::CShaderProgram | |
int | m_StreamFlags |
int | m_ValidStreams |
|
inline |
|
inlineoverride |
|
inlineoverridevirtual |
Binds the shader into the GL context.
Call this before calling Uniform() or trying to render with it.
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::IShaderProgram.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements Renderer::Backend::IShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inline |
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Unbinds the shader from the GL context.
Call this after rendering with it.
Implements Renderer::Backend::GL::CShaderProgram.
|
inlineoverridevirtual |
Reimplemented from Renderer::Backend::GL::CShaderProgram.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |