LibCarna Version 3.4.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Friends | List of all members
LibCarna::base::ShaderManager Class Reference

Ensures that each shader is built just once and not each time someone requests it. More...

#include <ShaderManager.hpp>

+ Inheritance diagram for LibCarna::base::ShaderManager:
+ Collaboration diagram for LibCarna::base::ShaderManager:

Public Member Functions

virtual ~ShaderManager ()
 Deletes.
 
const ShaderProgramacquireShader (const std::string &shaderName)
 References shader named shaderName.
 
void releaseShader (const ShaderProgram &shader)
 Releases previously acquired shader.
 
void setSource (const std::string &srcName, const std::string &src)
 Sets shader sources named srcName to src.
 
void removeSource (const std::string &srcName)
 Removes any previously set shader sources named srcName.
 
- Public Member Functions inherited from LibCarna::base::Singleton< ShaderManager >
virtual ~Singleton ()
 Denotes that the instance was deleted.
 

Protected Member Functions

 ShaderManager ()
 Instantiates.
 
- Protected Member Functions inherited from LibCarna::base::Singleton< ShaderManager >
 Singleton ()
 Denotes that the instance was created. Default constructor is hidden.
 

Friends

class Singleton< ShaderManager >
 

Additional Inherited Members

- Public Types inherited from LibCarna::base::Singleton< ShaderManager >
typedef ShaderManager Instance
 Denotes the class, that is derived from this class template.
 
- Static Public Member Functions inherited from LibCarna::base::Singleton< ShaderManager >
static ShaderManagerinstance ()
 Returns the only instance from class InstanceType.
 
static bool exists ()
 Tells whether the instance from class InstanceType currently exists.
 
- Static Protected Member Functions inherited from LibCarna::base::Singleton< ShaderManager >
static void reset ()
 Deletes the only instance from class InstanceType.
 

Detailed Description

Ensures that each shader is built just once and not each time someone requests it.

Author
Leonid Kostrykin

Definition at line 46 of file ShaderManager.hpp.

Constructor & Destructor Documentation

◆ ~ShaderManager()

virtual LibCarna::base::ShaderManager::~ShaderManager ( )
virtual

Deletes.

Attention
Shaders that have been acquired previously, but were not released yet, are leaked. An error will be logged.

Member Function Documentation

◆ acquireShader()

const ShaderProgram & LibCarna::base::ShaderManager::acquireShader ( const std::string &  shaderName)

References shader named shaderName.

Compiles the shader first, if it wasn't built yet. For compilation, the method looks for shader sources named shaderName, suffixed with .vert and .frag respectively. If no such sources were specified, the method assumes that shader sources with appropriate names were built in into the library.

◆ releaseShader()

void LibCarna::base::ShaderManager::releaseShader ( const ShaderProgram shader)

Releases previously acquired shader.

Precondition
shader has been acquired previously.

◆ setSource()

void LibCarna::base::ShaderManager::setSource ( const std::string &  srcName,
const std::string &  src 
)

Sets shader sources named srcName to src.

Overrides any different shader sources with same name that might have been set previously.

Friends And Related Symbol Documentation

◆ Singleton< ShaderManager >

Definition at line 52 of file ShaderManager.hpp.


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