summaryrefslogtreecommitdiff
path: root/Runtime/GfxDevice/opengl/UnityGL.h
blob: e7f4bb28b57fa1546ee493646c20d5b6cdc77339 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#ifndef UNITYGL_H
#define UNITYGL_H

#ifdef GLES_INCLUDES_H
#	error "Don't include UnityGL.h and GLESIncludes.h at the same time!"
#endif

#if UNITY_OSX
	#include "unity_gl.h"
	#undef GL_VERSION_1_2
	#include "unity_glext.h"
#elif UNITY_WIN
	#undef NOMINMAX
	#define NOMINMAX 1
	#include <windows.h>
	#include "unity_gl.h"
	#undef GL_VERSION_1_2
	#include "unity_glext.h"
	#include "PlatformDependent/Win/wglext.h"
#elif UNITY_WII
	#include <revolution.h>
#elif UNITY_ANDROID
	#include <GLES/gl.h>
#elif UNITY_LINUX
	#include "unity_gl.h"
	#undef GL_VERSION_1_2
	#include "unity_glext.h"
#else
#error "Unknown platform"
#endif

#if UNITY_WII

typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef int GLsizei;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef void GLvoid;

void glBegin (GLenum mode);
void glEnd (void);

void glVertex2f (GLfloat x, GLfloat y);
void glVertex3f (GLfloat x, GLfloat y, GLfloat z);
void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w );
void glVertex3fv (const GLfloat *v);
void glColor4fv (const GLfloat *v);
void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void glTexCoord1f (GLfloat s);
void glTexCoord2f (GLfloat s, GLfloat t);
void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
void glTexCoord1fv (const GLfloat *v);
void glTexCoord2fv (const GLfloat *v);
void glTexCoord3fv (const GLfloat *v);
void glTexCoord4fv (const GLfloat *v);
//void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
void glNormal3fv (const GLfloat *v);
void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);

void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
void glDisableClientState (GLenum array);
void glClientActiveTextureARB (GLenum);
void glPolygonMode (GLenum face, GLenum mode);
void glActiveTextureARB (GLenum);
void glMultiTexCoord3fvARB (GLenum, const GLfloat *);
void glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
void glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
void glMultiTexCoord4fvARB (GLenum, const GLfloat *);
void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
void glDrawArrays (GLenum mode, GLint first, GLsizei count);
void glDisableVertexAttribArrayARB (GLuint);
void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);

void glBindTexture (GLenum target, GLuint texture);
void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
void glTexParameteri (GLenum target, GLenum pname, GLint param);
void glTranslatef (GLfloat x, GLfloat y, GLfloat z);
void glScalef (GLfloat x, GLfloat y, GLfloat z);

void glMatrixMode (GLenum mode);
void glMultMatrixf (const GLfloat *m);
void glPushMatrix (void);
void glPopMatrix (void);
void glLoadIdentity (void);

#define GL_UNSIGNED_BYTE                  0x1401
#define GL_UNSIGNED_SHORT                 0x1403
#define GL_FLOAT                          0x1406

#define GL_ZERO                           0
#define GL_ONE                            1
//#define GL_SRC_COLOR                      0x0300
//#define GL_ONE_MINUS_SRC_COLOR            0x0301
//#define GL_SRC_ALPHA                      0x0302
//#define GL_ONE_MINUS_SRC_ALPHA            0x0303
//#define GL_DST_ALPHA                      0x0304
//#define GL_ONE_MINUS_DST_ALPHA            0x0305

#define GL_FRONT_AND_BACK                 0x0408

#define GL_LINES                          0x0001
#define GL_TRIANGLES                      0x0004
#define GL_TRIANGLE_STRIP                 0x0005
#define GL_QUADS                          0x0007

#define GL_TEXTURE_2D                     0x0DE1

#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A

#define GL_TEXTURE_BORDER_COLOR           0x1004
#define GL_TEXTURE_WRAP_S                 0x2802
#define GL_TEXTURE_WRAP_T                 0x2803
#define GL_CLAMP_TO_BORDER_ARB            0x812D

#define GL_LINE                           0x1B01
#define GL_FILL                           0x1B02

#define GL_MODELVIEW                      0x1700
#define GL_PROJECTION                     0x1701
#define GL_TEXTURE                        0x1702

#define GL_COLOR_ARRAY                    0x8076
#define GL_VERTEX_ARRAY                   0x8074
#define GL_NORMAL_ARRAY                   0x8075
#define GL_TEXTURE_COORD_ARRAY            0x8078

#define GL_TEXTURE0_ARB                   0x84C0

#elif UNITY_ANDROID
#else

#if GFX_SUPPORTS_OPENGL
#define DEF(a,b) extern a UNITYGL_##b
#include "GLExtensionDefs.h"
#undef DEF
#endif

#endif

#if GFX_SUPPORTS_OPENGL
void InitGLExtensions();
void CleanupGLExtensions();
void UnbindVertexBuffersGL(); // defined in GfxDeviceGL.cpp
#include "GLAssert.h"
#endif


//#define DUMMY_OPENGL_CALLS


#ifndef DUMMY_OPENGL_CALLS
#define OGL_CALL(x) do { x; GLAssert(); } while(0)
#else
void DummyOpenGLFunction();
#define OGL_CALL(x) DummyOpenGLFunction()
#endif



#endif