Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 1
#ifndef SHADER_UTIL_H
2
#define SHADER_UTIL_H
3
 
4
 
5
 
6
struct uniform_info
7
{
8
   const char *name;
9
   GLuint size;  /**< number of value[] elements: 1, 2, 3 or 4 */
10
   GLenum type;  /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
11
   GLfloat value[4];
12
   GLint location;  /**< filled in by InitUniforms() */
13
};
14
 
15
#define END_OF_UNIFORMS   { NULL, 0, GL_NONE, { 0, 0, 0, 0 }, -1 }
16
 
17
 
18
struct attrib_info
19
{
20
   const char *name;
21
   GLuint size;  /**< number of value[] elements: 1, 2, 3 or 4 */
22
   GLenum type;  /**< GL_FLOAT, GL_FLOAT_VEC4, GL_INT, etc */
23
   GLint location;
24
};
25
 
26
 
27
extern GLboolean
28
ShadersSupported(void);
29
 
30
extern GLuint
31
CompileShaderText(GLenum shaderType, const char *text);
32
 
33
extern GLuint
34
CompileShaderFile(GLenum shaderType, const char *filename);
35
 
36
extern GLuint
37
LinkShaders(GLuint vertShader, GLuint fragShader);
38
 
39
extern GLboolean
40
ValidateShaderProgram(GLuint program);
41
 
42
extern GLdouble
43
GetShaderCompileTime(void);
44
 
45
extern GLdouble
46
GetShaderLinkTime(void);
47
 
48
extern void
49
SetUniformValues(GLuint program, struct uniform_info uniforms[]);
50
 
51
extern GLuint
52
GetUniforms(GLuint program, struct uniform_info uniforms[]);
53
 
54
extern void
55
PrintUniforms(const struct uniform_info uniforms[]);
56
 
57
extern GLuint
58
GetAttribs(GLuint program, struct attrib_info attribs[]);
59
 
60
extern void
61
PrintAttribs(const struct attrib_info attribs[]);
62
 
63
#endif /* SHADER_UTIL_H */