GLUS
glus_program.h
Go to the documentation of this file.
1 /*
2  * GLUS - Modern OpenGL, OpenGL ES and OpenVG Utilities. Copyright (C) since 2010 Norbert Nopper
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef GLUS_SHADERPROGRAM_H_
19 #define GLUS_SHADERPROGRAM_H_
20 
24 typedef struct _GLUSprogram
25 {
30 
35 
40 
45 
50 
55 
60 
61 } GLUSprogram;
62 
75 GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramCreateFromSource(GLUSprogram* shaderProgram, const GLUSchar** vertexSource, const GLUSchar** controlSource, const GLUSchar** evaluationSource, const GLUSchar** geometrySource, const GLUSchar** fragmentSource);
76 
86 
95 
108 GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramBuildFromSource(GLUSprogram* shaderProgram, const GLUSchar** vertexSource, const GLUSchar** controlSource, const GLUSchar** evaluationSource, const GLUSchar** geometrySource, const GLUSchar** fragmentSource);
109 
119 
130 
137 
138 #endif /* GLUS_SHADERPROGRAM_H_ */
struct _GLUSprogram GLUSprogram
Structure for shader program handling.
void GLUSvoid
Definition: glus_typedef.h:51
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramBuildComputeFromSource(GLUSprogram *shaderProgram, const GLUSchar **computeSource)
Builds a compute shader program by compiling and linking the giving source.
Definition: glus_program.c:361
GLUSuint control
Tessellation control shader.
Definition: glus_program.h:44
unsigned int GLUSuint
Definition: glus_typedef.h:28
GLUSuint program
The created program.
Definition: glus_program.h:29
unsigned int GLUSenum
Definition: glus_typedef.h:33
GLUSAPI GLUSvoid GLUSAPIENTRY glusProgramDestroy(GLUSprogram *shaderprogram)
Destroys a program by freeing all resources.
Definition: glus_program.c:433
char GLUSchar
Definition: glus_typedef.h:24
GLUSuint vertex
Vertex shader.
Definition: glus_program.h:39
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramCreateComputeFromSource(GLUSprogram *shaderProgram, const GLUSchar **computeSource)
Creates a compute shader program by compiling the giving source.
Definition: glus_program.c:245
GLUSuint evaluation
Tessellation evaluation shader.
Definition: glus_program.h:49
#define GLUSAPI
Definition: glus_function.h:38
unsigned char GLUSboolean
Definition: glus_typedef.h:21
GLUSuint geometry
Geometry shader.
Definition: glus_program.h:54
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramLink(GLUSprogram *shaderProgram)
Links a formerly created program.
Definition: glus_program.c:304
GLUSuint compute
Compute shader.
Definition: glus_program.h:34
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramBuildFromSource(GLUSprogram *shaderProgram, const GLUSchar **vertexSource, const GLUSchar **controlSource, const GLUSchar **evaluationSource, const GLUSchar **geometrySource, const GLUSchar **fragmentSource)
Builds a program by compiling and linking the giving sources.
Definition: glus_program.c:351
GLUSuint fragment
Fragment shader.
Definition: glus_program.h:59
#define GLUSAPIENTRY
Definition: glus_function.h:31
Structure for shader program handling.
Definition: glus_program.h:24
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramBuildSeparableFromSource(GLUSprogram *shaderProgram, const GLUSenum type, const GLUSchar **source)
Builds a stand-alone, separable shader program by compiling and linking the giving source...
Definition: glus_program.c:371
GLUSAPI GLUSboolean GLUSAPIENTRY glusProgramCreateFromSource(GLUSprogram *shaderProgram, const GLUSchar **vertexSource, const GLUSchar **controlSource, const GLUSchar **evaluationSource, const GLUSchar **geometrySource, const GLUSchar **fragmentSource)
Creates a program by compiling the giving sources.
Definition: glus_program.c:20