shader.h 1016 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <glad/glad.h>
  3. struct Shader
  4. {
  5. GLuint id = 0;
  6. bool loadShaderProgramFromFile(const char* vertexShader, const char* fragmentShader);
  7. bool loadShaderProgramFromFile(const char* vertexShader,
  8. const char* geometryShader, const char* fragmentShader);
  9. bool loadShaderProgramFromFileAndAddCode(const char *vertexShader, const char *fragmentShader, const char *codeToAdd);
  10. void bind();
  11. void clear();
  12. GLint getUniform(const char* name);
  13. GLint getUniformSubroutine(GLenum shaderType, const char* name);
  14. GLuint getUniformBlock(const char* name);
  15. GLuint getUniformSubroutineIndex(GLenum shaderType, const char* name);
  16. GLuint getStorageBlockIndex(const char* name);
  17. };
  18. GLint getUniform(GLuint id, const char* name);
  19. GLint getUniformSubroutine(GLuint id, GLenum shaderType, const char* name);
  20. GLuint getUniformBlock(GLuint id, const char* name);
  21. GLuint getUniformSubroutineIndex(GLuint id, GLenum shaderType, const char* name);
  22. GLuint getStorageBlockIndex(GLuint id, const char* name);