sculpto
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
scl::shader_program Class Referenceabstract

#include <shader.h>

Inheritance diagram for scl::shader_program:
scl::gl_shader_program

Public Member Functions

virtual bool SetBool (const std::string &Name, bool Value) const =0
 
virtual bool SetFloat (const std::string &Name, float Value) const =0
 
virtual bool SetFloat2 (const std::string &Name, const vec2 &Value) const =0
 
virtual bool SetFloat3 (const std::string &Name, const vec3 &Value) const =0
 
virtual bool SetFloat4 (const std::string &Name, const vec4 &Value) const =0
 
virtual bool SetInt (const std::string &Name, int Value) const =0
 
virtual bool SetInt2 (const std::string &Name, const ivec2 &Value) const =0
 
virtual bool SetInt3 (const std::string &Name, const ivec3 &Value) const =0
 
virtual bool SetInt4 (const std::string &Name, const ivec4 &Value) const =0
 
virtual bool SetUInt (const std::string &Name, u32 Value) const =0
 
virtual bool SetUInt2 (const std::string &Name, const uvec2 &Value) const =0
 
virtual bool SetUInt3 (const std::string &Name, const uvec3 &Value) const =0
 
virtual bool SetUInt4 (const std::string &Name, const uvec4 &Value) const =0
 
virtual bool SetMatr3 (const std::string &Name, const matr3 &Value) const =0
 
virtual bool SetMatr4 (const std::string &Name, const matr4 &Value) const =0
 
virtual bool SetBool (int Location, bool Value) const =0
 
virtual bool SetFloat (int Location, float Value) const =0
 
virtual bool SetFloat2 (int Location, const vec2 &Value) const =0
 
virtual bool SetFloat3 (int Location, const vec3 &Value) const =0
 
virtual bool SetFloat4 (int Location, const vec4 &Value) const =0
 
virtual bool SetInt (int Location, int Value) const =0
 
virtual bool SetInt2 (int Location, const ivec2 &Value) const =0
 
virtual bool SetInt3 (int Location, const ivec3 &Value) const =0
 
virtual bool SetInt4 (int Location, const ivec4 &Value) const =0
 
virtual bool SetUInt (int Location, u32 Value) const =0
 
virtual bool SetUInt2 (int Location, const uvec2 &Value) const =0
 
virtual bool SetUInt3 (int Location, const uvec3 &Value) const =0
 
virtual bool SetUInt4 (int Location, const uvec4 &Value) const =0
 
virtual bool SetMatr3 (int Location, const matr3 &Value) const =0
 
virtual bool SetMatr4 (int Location, const matr4 &Value) const =0
 
 shader_program (const std::string &DebugName)
 
virtual ~shader_program ()=default
 
virtual void Bind () const =0
 
virtual void Unbind () const =0
 
virtual void Update (const std::vector< shader_props > &Shaders)=0
 
virtual void Free ()=0
 

Static Public Member Functions

static shared< shader_programCreate (const std::vector< shader_props > &Shaders, const std::string &DebugName)
 

Public Attributes

std::string SingleSourceFileName {}
 
std::string VertexShadersourceFileName {}
 
std::string GeometryShadersourceFileName {}
 
std::string PixelShadersourceFileName {}
 
std::string DebugName {}
 

Detailed Description

Shader progream interface.

Definition at line 43 of file shader.h.

Constructor & Destructor Documentation

◆ shader_program()

scl::shader_program::shader_program ( const std::string &  DebugName)

Shader program default constructor.

Definition at line 13 of file shader.cpp.

13 :
std::string DebugName
Definition: shader.h:50

◆ ~shader_program()

virtual scl::shader_program::~shader_program ( )
virtualdefault

Shader program default deatructor.

Member Function Documentation

◆ Bind()

virtual void scl::shader_program::Bind ( ) const
pure virtual
  • Bind buffer to current render stage function.
Parameters
None.
Returns
None.

Implemented in scl::gl_shader_program.

◆ Create()

scl::shared< scl::shader_program > scl::shader_program::Create ( const std::vector< shader_props > &  Shaders,
const std::string &  DebugName 
)
static
  • Shader program creation function.
Parameters
Shaders- shaders array.
DubugName- shader program debug name.
Returns
Pointer to created shader_props program.

Definition at line 16 of file shader.cpp.

17{
18 switch (render_context::GetApi())
19 {
20 case scl::render_context_api::OpenGL: return CreateShared<gl_shader_program>(Shaders, DebugName);
21 case scl::render_context_api::DirectX: SCL_CORE_ASSERT(0, "This API is currently unsupported."); return nullptr;
22 }
23
24 SCL_CORE_ASSERT(0, "Unknown render API was selected.");
25 return nullptr;
26}
#define SCL_CORE_ASSERT(expr,...)
Definition: assert.h:69
static render_context_api GetApi()

◆ Free()

virtual void scl::shader_program::Free ( )
pure virtual
  • Unload shader program from GPU memory function.
Parameters
None.
Returns
None.

Implemented in scl::gl_shader_program.

◆ SetBool() [1/2]

virtual bool scl::shader_program::SetBool ( const std::string &  Name,
bool  Value 
) const
pure virtual

Saader program getter/setter functions.

Parameters
Name- unifrom variable name.
Value- unifrom variable name.
Returns
success flag.

Implemented in scl::gl_shader_program.

◆ SetBool() [2/2]

virtual bool scl::shader_program::SetBool ( int  Location,
bool  Value 
) const
pure virtual
Parameters
Location- platform specific shader variable location identifier.
Value- unifrom variable value.
Returns
success flag.

Implemented in scl::gl_shader_program.

◆ SetFloat() [1/2]

virtual bool scl::shader_program::SetFloat ( const std::string &  Name,
float  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat() [2/2]

virtual bool scl::shader_program::SetFloat ( int  Location,
float  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat2() [1/2]

virtual bool scl::shader_program::SetFloat2 ( const std::string &  Name,
const vec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat2() [2/2]

virtual bool scl::shader_program::SetFloat2 ( int  Location,
const vec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat3() [1/2]

virtual bool scl::shader_program::SetFloat3 ( const std::string &  Name,
const vec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat3() [2/2]

virtual bool scl::shader_program::SetFloat3 ( int  Location,
const vec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat4() [1/2]

virtual bool scl::shader_program::SetFloat4 ( const std::string &  Name,
const vec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetFloat4() [2/2]

virtual bool scl::shader_program::SetFloat4 ( int  Location,
const vec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt() [1/2]

virtual bool scl::shader_program::SetInt ( const std::string &  Name,
int  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt() [2/2]

virtual bool scl::shader_program::SetInt ( int  Location,
int  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt2() [1/2]

virtual bool scl::shader_program::SetInt2 ( const std::string &  Name,
const ivec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt2() [2/2]

virtual bool scl::shader_program::SetInt2 ( int  Location,
const ivec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt3() [1/2]

virtual bool scl::shader_program::SetInt3 ( const std::string &  Name,
const ivec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt3() [2/2]

virtual bool scl::shader_program::SetInt3 ( int  Location,
const ivec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt4() [1/2]

virtual bool scl::shader_program::SetInt4 ( const std::string &  Name,
const ivec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetInt4() [2/2]

virtual bool scl::shader_program::SetInt4 ( int  Location,
const ivec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetMatr3() [1/2]

virtual bool scl::shader_program::SetMatr3 ( const std::string &  Name,
const matr3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetMatr3() [2/2]

virtual bool scl::shader_program::SetMatr3 ( int  Location,
const matr3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetMatr4() [1/2]

virtual bool scl::shader_program::SetMatr4 ( const std::string &  Name,
const matr4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetMatr4() [2/2]

virtual bool scl::shader_program::SetMatr4 ( int  Location,
const matr4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt() [1/2]

virtual bool scl::shader_program::SetUInt ( const std::string &  Name,
u32  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt() [2/2]

virtual bool scl::shader_program::SetUInt ( int  Location,
u32  Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt2() [1/2]

virtual bool scl::shader_program::SetUInt2 ( const std::string &  Name,
const uvec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt2() [2/2]

virtual bool scl::shader_program::SetUInt2 ( int  Location,
const uvec2 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt3() [1/2]

virtual bool scl::shader_program::SetUInt3 ( const std::string &  Name,
const uvec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt3() [2/2]

virtual bool scl::shader_program::SetUInt3 ( int  Location,
const uvec3 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt4() [1/2]

virtual bool scl::shader_program::SetUInt4 ( const std::string &  Name,
const uvec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ SetUInt4() [2/2]

virtual bool scl::shader_program::SetUInt4 ( int  Location,
const uvec4 Value 
) const
pure virtual

Implemented in scl::gl_shader_program.

◆ Unbind()

virtual void scl::shader_program::Unbind ( ) const
pure virtual
  • Unbind buffer from current render stage function.
Parameters
None.
Returns
None.

Implemented in scl::gl_shader_program.

◆ Update()

virtual void scl::shader_program::Update ( const std::vector< shader_props > &  Shaders)
pure virtual
  • Recompile shader program function.
Parameters
Shaders- shaders array.
Returns
None.

Implemented in scl::gl_shader_program.

Member Data Documentation

◆ DebugName

std::string scl::shader_program::DebugName {}

Definition at line 50 of file shader.h.

◆ GeometryShadersourceFileName

std::string scl::shader_program::GeometryShadersourceFileName {}

Definition at line 48 of file shader.h.

◆ PixelShadersourceFileName

std::string scl::shader_program::PixelShadersourceFileName {}

Definition at line 49 of file shader.h.

◆ SingleSourceFileName

std::string scl::shader_program::SingleSourceFileName {}

Shader program data.

Definition at line 46 of file shader.h.

◆ VertexShadersourceFileName

std::string scl::shader_program::VertexShadersourceFileName {}

Definition at line 47 of file shader.h.


The documentation for this class was generated from the following files: