Class C needs to be the newly declared shaders class (necessary for the instance template).
More...
|
template<typename... Args> |
void | assignSamplerNames (Args...args) |
| The protected interface for setting sampler names - it is only called from instances.
|
|
template<int N> |
void | setTextureUnitsImpl () |
| End of recursion, just check if number of arguments is correct.
|
|
template<int N, typename... TexIds> |
void | setTextureUnitsImpl (GLuint tex_id, TexIds... args) |
| The recursive implementation.
|
|
template<typename... TexIds> |
void | setTextureUnits (TexIds... args) |
| Public implementation of setTextureUnits.
|
|
template<int N> |
void | setTextureHandlesImpl () |
| End of recursion, just checks at compile time if number of arguments is correct.
|
|
template<int N, typename... HandlesId> |
void | setTextureHandlesImpl (uint64_t handle, HandlesId... args) |
| Recursive implementation of setTextureHandles.
|
|
template<typename... HandlesId> |
void | setTextureHandles (HandlesId... ids) |
| The protected interface.
|
|
| ~TextureShader () |
| Destructor which frees al lsampler ids.
|
|
void | setUniforms (const Args &... args) const |
| Sets the uniforms for this shader.
|
|
void | assignTextureUnit (GLuint index, const char *uniform, T1... rest) |
| Variadic top level/public interface.
|
|
| Shader () |
| Constructor.
|
|
void | loadProgram (AttributeType type, Types ... args) |
| Load a list of shaders and links them all together.
|
|
void | drawFullScreenEffect (Args...args) |
|
| ShaderBase () |
| Constructor, which adds the shader to all instantiated shaders (for the reload-all-shaders debug option).
|
|
int | loadTFBProgram (const std::string &vertex_file_path, const char **varyings, unsigned varyingscount) |
| Loads a transform feedback buffer shader with a given number of varying parameters.
|
|
GLuint | createVAO () |
|
void | use () |
| Activates the shader calling glUseProgram.
|
|
GLuint | getUniformLocation (const char *name) |
|
|
template<unsigned N, typename... Args> |
void | assignTextureNamesImpl () |
| End of recursive variadic template AssigTextureNames.
|
|
template<unsigned N, typename... Args> |
void | assignTextureNamesImpl (GLuint tex_unit, const char *name, SamplerTypeNew sampler_type, Args...args) |
| Recursive implementation, peeling the texture unit and name off the list of arguments.
|
|
|
typedef std::function< void(GLuint, GLuint)> | BindFunction |
|
static void | killShaders () |
|
static T * | getInstance () |
| Used to get the instance.
|
|
static void | kill () |
| Used to kill the singleton, if needed.
|
|
enum | AttributeType { OBJECT
, PARTICLES_SIM
, PARTICLES_RENDERING
, SKINNED_MESH
} |
|
GLuint | createSamplers (SamplerTypeNew sampler_type) |
|
void | assignUniforms (U... rest) |
| This variadic template collects all names of uniforms in a std::vector.
|
|
void | printFileList (GLint shader_type, const char *filepath, Types ... args) |
| Variadic template to print a list of file names.
|
|
template<typename ... Types> |
void | loadAndAttachShader () |
| Ends recursion.
|
|
template<typename ... Types> |
void | loadAndAttachShader (GLint shader_type, const std::string &name, Types ... args) |
|
template<typename ... Types> |
void | loadAndAttachShader (GLint shader_type, const char *name, Types ... args) |
| Convenience interface using const char.
|
|
| Singleton () |
| Constructor.
|
|
virtual | ~Singleton () |
| Destructor.
|
|
static void | bindTextureNearest (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureBilinear (GLuint texture_unit, GLuint tex_id) |
|
static void | bindTextureBilinearClamped (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureNearestClamped (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureTrilinearAnisotropic (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureSemiTrilinear (GLuint tex_unit, GLuint tex_id) |
|
static void | bindCubemapTrilinear (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureShadow (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTrilinearClampedArrayTexture (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureVolume (GLuint tex_unit, GLuint tex_id) |
|
static void | bindTextureBuffer (GLuint tex_unit, GLuint tex_id) |
|
std::vector< BindFunction > | m_bind_functions |
|
GLuint | m_program |
| OpenGL's program id.
|
|
std::vector< std::shared_ptr< GLuint > > | m_shaders |
|
static BindFunction | m_all_bind_functions [] |
|
static GLuint | m_all_texture_types [] |
|
static std::vector< void(*)()> | m_all_kill_functions |
| Maintains a list of all shaders.
|
|
template<class C, int NUM_TEXTURES, typename... tp>
class TextureShader< C, NUM_TEXTURES, tp >
Class C needs to be the newly declared shaders class (necessary for the instance template).
NUM_TEXTURES is the number of texture units used in this shader. It is used to test at compile time that the right number of arguments are supplied to the variadic functions.
template<class C , int NUM_TEXTURES, typename... tp>
template<unsigned N, typename... Args>
void TextureShader< C, NUM_TEXTURES, tp >::assignTextureNamesImpl |
( |
| ) |
|
|
inlineprivate |
End of recursive variadic template AssigTextureNames.
It just checks if the number of arguments is correct.