| ARX 1.0 The next-generation open source augmented reality toolkit.

Loading...
Searching...
No Matches
shader_gl.h
Go to the documentation of this file.
1/*
2 * shader_gl.h
3 * artoolkitX
4 *
5 * This file is part of artoolkitX.
6 *
7 * artoolkitX is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * artoolkitX is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with artoolkitX. If not, see <http://www.gnu.org/licenses/>.
19 *
20 * As a special exception, the copyright holders of this library give you
21 * permission to link this library with independent modules to produce an
22 * executable, regardless of the license terms of these independent modules, and to
23 * copy and distribute the resulting executable under terms of your choice,
24 * provided that you also meet, for each linked independent module, the terms and
25 * conditions of the license of that module. An independent module is a module
26 * which is neither derived from nor based on this library. If you modify this
27 * library, you may extend this exception to your version of the library, but you
28 * are not obligated to do so. If you do not wish to do so, delete this exception
29 * statement from your version.
30 *
31 * Copyright 2018 Realmax, Inc.
32 * Copyright 2015 Daqri, LLC.
33 * Copyright 2011-2015 ARToolworks, Inc.
34 *
35 * Author(s): Philip Lamb
36 *
37 */
38
39#ifndef __shader_gl_h__
40#define __shader_gl_h__
41
42// ============================================================================
43// Public includes.
44// ============================================================================
45
46#include <ARX/AR/config.h>
47
48#if (HAVE_GLES2 || HAVE_GL3)
49
50#if HAVE_GLES2
51# include <ARX/ARG/glStateCache2.h>
52#elif HAVE_GL3
53# ifdef __APPLE__
54# include <OpenGL/gl3.h>
55# else
56# ifndef _WIN32
57# define GL_GLEXT_PROTOTYPES
58# endif
59# include <GL/glcorearb.h>
60# endif
61#endif
62
63
64#ifdef __cplusplus
65 extern "C" {
66#endif
67
68#ifdef _WIN32
69# ifdef ARG_STATIC
70# define SHADER_EXTERN
71# else
72# ifdef ARX_EXPORTS
73# define SHADER_EXTERN __declspec(dllexport)
74# else
75# define SHADER_EXTERN __declspec(dllimport)
76# endif
77# endif
78#else
79# define SHADER_EXTERN
80#endif
81
82// ============================================================================
83// Public types and definitions.
84// ============================================================================
85
86
87// ============================================================================
88// Public functions.
89// ============================================================================
90
91
92/* Shader Utilities */
93SHADER_EXTERN GLint arglGLCompileShaderFromFile(GLuint *shader, GLenum type, const char *pathname);
94SHADER_EXTERN GLint arglGLCompileShaderFromString(GLuint *shader, GLenum type, const char *s);
95SHADER_EXTERN GLint arglGLLinkProgram(GLuint prog);
96SHADER_EXTERN GLint arglGLValidateProgram(GLuint prog);
97SHADER_EXTERN void arglGLDestroyShaders(GLuint vertShader, GLuint fragShader, GLuint prog);
98
99#ifdef __cplusplus
100}
101#endif
102
103#endif // HAVE_GLES2 || HAVE_GL3
104
105#endif /* !__shader_gl_h__ */
glStateCache2.h