1 | #pragma once
|
2 |
|
3 | #include "config.h"
|
4 |
|
5 | #ifdef USE_GLES
|
6 | #include <GLES2/gl2.h>
|
7 | #include <GLES2/gl2ext.h>
|
8 | #else
|
9 | #include <GL/glew.h>
|
10 | #endif
|
11 |
|
12 | typedef struct SHADER
|
13 | {
|
14 | GLuint program;
|
15 | GLuint vertexShader;
|
16 | GLuint fragmentShader;
|
17 | } Shader;
|
18 |
|
19 | Shader *shaderLoad(const char *vertexCode, const char *fragmentCode);
|
20 | void shaderLink(Shader *shader);
|
21 | void shaderBind(Shader *shader);
|
22 | void shaderUnbind();
|
23 | void shaderBindAttrib(Shader *shader, const char*, unsigned int);
|
24 | void shaderFinalize(Shader *shader);
|
25 | void shaderDelete(Shader *shader);
|
26 |
|
27 | void shaderUniform1i(Shader *shader, const char*, int);
|
28 | void shaderUniform1f(Shader *shader, const char*, float);
|
29 | void shaderUniform1fv(Shader *shader, const char*, int, float*);
|
30 | void shaderUniform2f(Shader *shader, const char*, float, float);
|
31 | void shaderUniform2fv(Shader *shader, const char*, int, float*);
|
32 | void shaderUniform3iv(Shader *shader, const char*, int, int*);
|
33 | void shaderUniform3fv(Shader *shader, const char*, int, float*);
|
34 | void shaderUniform3f(Shader *shader, const char*, const float, const float, const float);
|
35 | void shaderUniformMatrix3fv(Shader *shader, const char*, int, GLfloat*);
|
36 | void shaderUniform4iv(Shader *shader, const char*, int, int*);
|
37 | void shaderUniform4fv(Shader *shader, const char*, int, float*);
|
38 | void shaderUniform4f(Shader *shader, const char*, float, float, float, float);
|
39 | void shaderUniformMatrix4fv(Shader *shader, const char*, int, GLfloat*);
|
40 | |