Added missing launcher
[mupen64plus-pandora.git] / source / mupen64plus-video-arachnoid / src / MultiTexturingExt.h
CommitLineData
22726e4d 1/******************************************************************************
2 * Arachnoid Graphics Plugin for Mupen64Plus
3 * http://bitbucket.org/wahrhaft/mupen64plus-video-arachnoid/
4 *
5 * Copyright (C) 2009 Jon Ring
6 * Copyright (C) 2007 Kristofer Karlsson, Rickard Niklasson
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 *****************************************************************************/
22
23#ifndef MULTI_TEXTURING_EXTENSION_H_
24#define MULTI_TEXTURING_EXTENSION_H_
25
26#include "m64p.h"
27#include "OpenGL.h"
28
29#ifndef GL_GLEXT_VERSION
30 //Multi Texturing Definitions
31 #if !defined(GL_ARB_multitexture) && !defined(HAVE_GLES)
32 #define GL_TEXTURE0_ARB 0x84C0
33 #define GL_TEXTURE1_ARB 0x84C1
34 #define GL_TEXTURE2_ARB 0x84C2
35 #define GL_TEXTURE3_ARB 0x84C3
36 #define GL_TEXTURE4_ARB 0x84C4
37 #define GL_TEXTURE5_ARB 0x84C5
38 #define GL_TEXTURE6_ARB 0x84C6
39 #define GL_TEXTURE7_ARB 0x84C7
40 #define GL_TEXTURE8_ARB 0x84C8
41 #define GL_TEXTURE9_ARB 0x84C9
42 #define GL_TEXTURE10_ARB 0x84CA
43 #define GL_TEXTURE11_ARB 0x84CB
44 #define GL_TEXTURE12_ARB 0x84CC
45 #define GL_TEXTURE13_ARB 0x84CD
46 #define GL_TEXTURE14_ARB 0x84CE
47 #define GL_TEXTURE15_ARB 0x84CF
48 #define GL_TEXTURE16_ARB 0x84D0
49 #define GL_TEXTURE17_ARB 0x84D1
50 #define GL_TEXTURE18_ARB 0x84D2
51 #define GL_TEXTURE19_ARB 0x84D3
52 #define GL_TEXTURE20_ARB 0x84D4
53 #define GL_TEXTURE21_ARB 0x84D5
54 #define GL_TEXTURE22_ARB 0x84D6
55 #define GL_TEXTURE23_ARB 0x84D7
56 #define GL_TEXTURE24_ARB 0x84D8
57 #define GL_TEXTURE25_ARB 0x84D9
58 #define GL_TEXTURE26_ARB 0x84DA
59 #define GL_TEXTURE27_ARB 0x84DB
60 #define GL_TEXTURE28_ARB 0x84DC
61 #define GL_TEXTURE29_ARB 0x84DD
62 #define GL_TEXTURE30_ARB 0x84DE
63 #define GL_TEXTURE31_ARB 0x84DF
64 #define GL_ACTIVE_TEXTURE_ARB 0x84E0
65 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
66 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
67 #endif
68
69 //Multitexturing Functions
70 #if !defined(GL_ARB_multitexture) && !defined(HAVE_GLES)
71 #define GL_ARB_multitexture 1
72 #ifdef GL_GLEXT_PROTOTYPES
73 extern void APIENTRY glActiveTextureARB (GLenum);
74 extern void APIENTRY glClientActiveTextureARB (GLenum);
75 extern void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble);
76 extern void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *);
77 extern void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat);
78 extern void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *);
79 extern void APIENTRY glMultiTexCoord1iARB (GLenum, GLint);
80 extern void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *);
81 extern void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort);
82 extern void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *);
83 extern void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble);
84 extern void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *);
85 extern void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat);
86 extern void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *);
87 extern void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint);
88 extern void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *);
89 extern void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort);
90 extern void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *);
91 extern void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble);
92 extern void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *);
93 extern void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
94 extern void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *);
95 extern void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint);
96 extern void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *);
97 extern void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort);
98 extern void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *);
99 extern void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
100 extern void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *);
101 extern void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
102 extern void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *);
103 extern void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint);
104 extern void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *);
105 extern void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort);
106 extern void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *);
107 #endif /* GL_GLEXT_PROTOTYPES */
108 typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
109 typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
110 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
111 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
112 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
113 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
114 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
115 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
116 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
117 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
118 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
119 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
120 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
121 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
122 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
123 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
124 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
125 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
126 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
127 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
128 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
129 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
130 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
131 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
132 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
133 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
134 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
135 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
136 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
137 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
138 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
139 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
140 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
141 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
142
143 extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
144 extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
145 extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
146 #endif
147#endif
148extern bool g_MultiTextureARBSupport;
149
150//Function for initializing multitexturing extensions
151bool initializeMultiTexturingExtensions();
152
153#endif