Class: ewol::Shader


Synopsis:

+  const char *           getType              (void);
+ GLuint getGL_ID (void);
+ GLenum getShaderType (void);
+ void updateContext (void);
+ void removeContext (void);
+ void removeContextToLate (void);
+ void reload (void);
+ static ewol::Shader * keep (const std::string & _filename);
+ static void release (ewol::Shader * & _object);
# Shader (const std::string & _filename);
# ~Shader (void);

Object Hierarchy:

ewol::EObject
    +--> ewol::Resource
        +--> ewol::Shader

Description:

/** * @brief Shader is a specific resources for opengl, used only in @ref Program. This are components of the renderer pipe-line */

Detail:

getType ()

const char * getType(void);

Generic function that get the resouces name of his type.


getGL_ID ()

GLuint getGL_ID(void);

get the opengl reference id of this shader.


getShaderType ()

GLenum getShaderType(void);

get the opengl type of this shader.


updateContext ()

void updateContext(void);

This load/reload the data in the opengl context, needed when removed previously.


removeContext ()

void removeContext(void);

remove the data from the opengl context.


removeContextToLate ()

void removeContextToLate(void);

Special android spec! It inform us that all context is removed and after notify us...


reload ()

void reload(void);

Relode the shader from the file. used when a request of resouces reload is done.
Notes: this is really usefull when we tested the new themes or shader developpements.


ewol::keep ()

static ewol::Shader * keep(const std::string & _filename);

keep the resource pointer.
Notes: Never free this pointer by your own...


ewol::release ()

static void release(ewol::Shader * & _object);

release the keeped resources


ewol::Shader ()

Shader(const std::string & _filename);

Contructor of an opengl Shader


ewol::~Shader ()

~Shader(void);

Destructor, remove the current Shader