Carna  Version 3.3.2
Public Member Functions | Protected Member Functions | Friends | List of all members
Carna::base::ShaderManager Class Reference

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

#include <ShaderManager.h>

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

Public Member Functions

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

Protected Member Functions

 ShaderManager ()
 Instantiates.
 
- Protected Member Functions inherited from Carna::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 Carna::base::Singleton< ShaderManager >
typedef ShaderManager Instance
 Denotes the class, that is derived from this class template.
 
- Static Public Member Functions inherited from Carna::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 Carna::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
Date
22.2.15 - 18.3.15

Definition at line 43 of file ShaderManager.h.

Constructor & Destructor Documentation

◆ ~ShaderManager()

virtual Carna::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& Carna::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 Carna::base::ShaderManager::releaseShader ( const ShaderProgram shader)

Releases previously acquired shader.

Precondition
shader has been acquired previously.

◆ setSource()

void Carna::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.


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