64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
|
#ifndef SHADER_UTIL_H
|
||
|
#define SHADER_UTIL_H
|
||
|
|
||
|
|
||
|
|
||
|
struct uniform_info
|
||
|
{
|
||
|
const char *name;
|
||
|
GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */
|
||
|
GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
|
||
|
GLfloat value[4];
|
||
|
GLint location; /**< filled in by InitUniforms() */
|
||
|
};
|
||
|
|
||
|
#define END_OF_UNIFORMS { NULL, 0, GL_NONE, { 0, 0, 0, 0 }, -1 }
|
||
|
|
||
|
|
||
|
struct attrib_info
|
||
|
{
|
||
|
const char *name;
|
||
|
GLuint size; /**< number of value[] elements: 1, 2, 3 or 4 */
|
||
|
GLenum type; /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
|
||
|
GLint location;
|
||
|
};
|
||
|
|
||
|
|
||
|
extern GLboolean
|
||
|
ShadersSupported(void);
|
||
|
|
||
|
extern GLuint
|
||
|
CompileShaderText(GLenum shaderType, const char *text);
|
||
|
|
||
|
extern GLuint
|
||
|
CompileShaderFile(GLenum shaderType, const char *filename);
|
||
|
|
||
|
extern GLuint
|
||
|
LinkShaders(GLuint vertShader, GLuint fragShader);
|
||
|
|
||
|
extern GLboolean
|
||
|
ValidateShaderProgram(GLuint program);
|
||
|
|
||
|
extern GLdouble
|
||
|
GetShaderCompileTime(void);
|
||
|
|
||
|
extern GLdouble
|
||
|
GetShaderLinkTime(void);
|
||
|
|
||
|
extern void
|
||
|
SetUniformValues(GLuint program, struct uniform_info uniforms[]);
|
||
|
|
||
|
extern GLuint
|
||
|
GetUniforms(GLuint program, struct uniform_info uniforms[]);
|
||
|
|
||
|
extern void
|
||
|
PrintUniforms(const struct uniform_info uniforms[]);
|
||
|
|
||
|
extern GLuint
|
||
|
GetAttribs(GLuint program, struct attrib_info attribs[]);
|
||
|
|
||
|
extern void
|
||
|
PrintAttribs(const struct attrib_info attribs[]);
|
||
|
|
||
|
#endif /* SHADER_UTIL_H */
|