Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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 */
  64.