@easywasm/gl 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,10 +6,9 @@ It should make existing projects that use those libs easier to compile for wasm,
6
6
 
7
7
  Think of it as a platform-layer. You have WASI, which covers a lot of "OS things" like filesystem, time, etc, and you have this covers all the basic stuff you need to make a game (window, graphics, input, sound.)
8
8
 
9
-
10
9
  ## basic usage
11
10
 
12
- You can assume GLFW (and some of GL) is exposed, and then you can use it normally. You can see an example in [index.html](./web/index.html). The example is in [example.c](./src/example.c)
11
+ You can assume GLFW (and most of OpenGL) is exposed, and then you can use it normally. You can see an example in [index.html](./web/index.html). The code is in [example.c](./src/example.c), and can be compiled as native or wasm.
13
12
 
14
13
  - `npm start` - compile example for web - requires wasi-sdk
15
- - `npm run example:mac` - compiles same example for native mac. This is what I have for testing. Might add more build commands, later
14
+ - `npm run example:mac` - compiles same example for native mac. This is what I have for testing. Might add more build commands, later
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easywasm/gl",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Web host interface exposing GLFW 3.5 to WebAssembly modules compiled with wasi-sdk",
5
5
  "type": "module",
6
6
  "main": "web/index.js",
@@ -29,7 +29,7 @@
29
29
  "scripts": {
30
30
  "start": "npx -y live-server web",
31
31
  "prestart": "npm run example:web",
32
- "example:web": " /opt/wasi-sdk/bin/clang -DGLFW_INCLUDE_NONE -Wl,--allow-undefined -O3 src/example.c -o web/example.wasm",
33
- "example:mac": "clang $(pkg-config --cflags --libs glfw3) -isysroot $(xcrun --show-sdk-path) -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo src/example.c -o example"
32
+ "example:web": " /opt/wasi-sdk/bin/clang -O3 -ffast-math -Wl,--export=update -DGLFW_INCLUDE_NONE -Wl,--allow-undefined src/example.c -o web/example.wasm",
33
+ "example:mac": "clang -O3 -ffast-math $(pkg-config --cflags --libs glfw3) -isysroot $(xcrun --show-sdk-path) -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo src/example.c -o example"
34
34
  }
35
35
  }
package/src/example.c CHANGED
@@ -1,17 +1,7 @@
1
1
  // this is an exmaple of wasm/native code
2
2
 
3
- #include "glfw3.h"
4
3
  #include <math.h>
5
-
6
- #ifdef __wasm__
7
- void glClearColor(float r, float g, float b, float a);
8
- void glClear(unsigned int mask);
9
- # define GL_COLOR_BUFFER_BIT 0x4000
10
- #elif defined(__APPLE__)
11
- # include <OpenGL/gl.h>
12
- #else
13
- # include <GL/gl.h>
14
- #endif
4
+ #include "platform.h"
15
5
 
16
6
  static GLFWwindow* window = NULL;
17
7
 
@@ -20,11 +10,8 @@ static void key_callback(GLFWwindow* w, int key, int scancode, int action, int m
20
10
  glfwSetWindowShouldClose(w, GLFW_TRUE);
21
11
  }
22
12
 
23
- // On wasm: exported and called each tick by JS requestAnimationFrame.
24
- // On native: called in the main loop below.
25
- // Returns 1 to keep going, 0 to stop.
26
- __attribute__((export_name("frame")))
27
- int frame(void) {
13
+ // return "keep going"
14
+ int update() {
28
15
  if (!window || glfwWindowShouldClose(window)) return 0;
29
16
 
30
17
  float t = (float)glfwGetTime();
@@ -40,7 +27,8 @@ int frame(void) {
40
27
  return 1;
41
28
  }
42
29
 
43
- int main(void) {
30
+ // return exit-status
31
+ int setup() {
44
32
  if (!glfwInit()) return -1;
45
33
 
46
34
  window = glfwCreateWindow(640, 480, "GLFW Demo", NULL, NULL);
@@ -49,10 +37,5 @@ int main(void) {
49
37
  glfwMakeContextCurrent(window);
50
38
  glfwSetKeyCallback(window, key_callback);
51
39
 
52
- #ifndef __wasm__
53
- while (frame()) {}
54
- glfwTerminate();
55
- #endif
56
-
57
40
  return 0;
58
- }
41
+ }
package/src/gl.h ADDED
@@ -0,0 +1,569 @@
1
+ // this sets up GL, with everything extern (imported from host)
2
+
3
+ #ifndef __gles1_gl_h_
4
+ #define __gles1_gl_h_ 1
5
+
6
+ #ifdef __cplusplus
7
+ extern "C" {
8
+ #endif
9
+
10
+ #ifndef GL_VERSION_ES_CM_1_0
11
+ #define GL_VERSION_ES_CM_1_0 1
12
+
13
+ #include <stdint.h>
14
+ typedef int32_t khronos_int32_t;
15
+ typedef uint32_t khronos_uint32_t;
16
+ typedef int64_t khronos_int64_t;
17
+ typedef uint64_t khronos_uint64_t;
18
+ #define KHRONOS_SUPPORT_INT64 1
19
+ #define KHRONOS_SUPPORT_FLOAT 1
20
+ typedef signed char khronos_int8_t;
21
+ typedef unsigned char khronos_uint8_t;
22
+ typedef signed short int khronos_int16_t;
23
+ typedef unsigned short int khronos_uint16_t;
24
+ typedef float khronos_float_t;
25
+ typedef signed long int khronos_ssize_t;
26
+ typedef unsigned long int khronos_usize_t;
27
+ typedef signed long int khronos_intptr_t;
28
+ typedef unsigned long int khronos_uintptr_t;
29
+
30
+ #define GL_API extern
31
+ #define GL_APIENTRY
32
+
33
+ typedef khronos_int8_t GLbyte;
34
+ typedef khronos_float_t GLclampf;
35
+ typedef khronos_int16_t GLshort;
36
+ typedef khronos_uint16_t GLushort;
37
+ typedef void GLvoid;
38
+ typedef unsigned int GLenum;
39
+ typedef khronos_float_t GLfloat;
40
+ typedef khronos_int32_t GLfixed;
41
+ typedef unsigned int GLuint;
42
+ typedef khronos_ssize_t GLsizeiptr;
43
+ typedef khronos_intptr_t GLintptr;
44
+ typedef unsigned int GLbitfield;
45
+ typedef int GLint;
46
+ typedef khronos_uint8_t GLubyte;
47
+ typedef unsigned char GLboolean;
48
+ typedef int GLsizei;
49
+ typedef khronos_int32_t GLclampx;
50
+ #define GL_VERSION_ES_CL_1_0 1
51
+ #define GL_VERSION_ES_CM_1_1 1
52
+ #define GL_VERSION_ES_CL_1_1 1
53
+ #define GL_DEPTH_BUFFER_BIT 0x00000100
54
+ #define GL_STENCIL_BUFFER_BIT 0x00000400
55
+ #define GL_COLOR_BUFFER_BIT 0x00004000
56
+ #define GL_FALSE 0
57
+ #define GL_TRUE 1
58
+ #define GL_POINTS 0x0000
59
+ #define GL_LINES 0x0001
60
+ #define GL_LINE_LOOP 0x0002
61
+ #define GL_LINE_STRIP 0x0003
62
+ #define GL_TRIANGLES 0x0004
63
+ #define GL_TRIANGLE_STRIP 0x0005
64
+ #define GL_TRIANGLE_FAN 0x0006
65
+ #define GL_NEVER 0x0200
66
+ #define GL_LESS 0x0201
67
+ #define GL_EQUAL 0x0202
68
+ #define GL_LEQUAL 0x0203
69
+ #define GL_GREATER 0x0204
70
+ #define GL_NOTEQUAL 0x0205
71
+ #define GL_GEQUAL 0x0206
72
+ #define GL_ALWAYS 0x0207
73
+ #define GL_ZERO 0
74
+ #define GL_ONE 1
75
+ #define GL_SRC_COLOR 0x0300
76
+ #define GL_ONE_MINUS_SRC_COLOR 0x0301
77
+ #define GL_SRC_ALPHA 0x0302
78
+ #define GL_ONE_MINUS_SRC_ALPHA 0x0303
79
+ #define GL_DST_ALPHA 0x0304
80
+ #define GL_ONE_MINUS_DST_ALPHA 0x0305
81
+ #define GL_DST_COLOR 0x0306
82
+ #define GL_ONE_MINUS_DST_COLOR 0x0307
83
+ #define GL_SRC_ALPHA_SATURATE 0x0308
84
+ #define GL_CLIP_PLANE0 0x3000
85
+ #define GL_CLIP_PLANE1 0x3001
86
+ #define GL_CLIP_PLANE2 0x3002
87
+ #define GL_CLIP_PLANE3 0x3003
88
+ #define GL_CLIP_PLANE4 0x3004
89
+ #define GL_CLIP_PLANE5 0x3005
90
+ #define GL_FRONT 0x0404
91
+ #define GL_BACK 0x0405
92
+ #define GL_FRONT_AND_BACK 0x0408
93
+ #define GL_FOG 0x0B60
94
+ #define GL_LIGHTING 0x0B50
95
+ #define GL_TEXTURE_2D 0x0DE1
96
+ #define GL_CULL_FACE 0x0B44
97
+ #define GL_ALPHA_TEST 0x0BC0
98
+ #define GL_BLEND 0x0BE2
99
+ #define GL_COLOR_LOGIC_OP 0x0BF2
100
+ #define GL_DITHER 0x0BD0
101
+ #define GL_STENCIL_TEST 0x0B90
102
+ #define GL_DEPTH_TEST 0x0B71
103
+ #define GL_POINT_SMOOTH 0x0B10
104
+ #define GL_LINE_SMOOTH 0x0B20
105
+ #define GL_SCISSOR_TEST 0x0C11
106
+ #define GL_COLOR_MATERIAL 0x0B57
107
+ #define GL_NORMALIZE 0x0BA1
108
+ #define GL_RESCALE_NORMAL 0x803A
109
+ #define GL_VERTEX_ARRAY 0x8074
110
+ #define GL_NORMAL_ARRAY 0x8075
111
+ #define GL_COLOR_ARRAY 0x8076
112
+ #define GL_TEXTURE_COORD_ARRAY 0x8078
113
+ #define GL_MULTISAMPLE 0x809D
114
+ #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
115
+ #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
116
+ #define GL_SAMPLE_COVERAGE 0x80A0
117
+ #define GL_NO_ERROR 0
118
+ #define GL_INVALID_ENUM 0x0500
119
+ #define GL_INVALID_VALUE 0x0501
120
+ #define GL_INVALID_OPERATION 0x0502
121
+ #define GL_STACK_OVERFLOW 0x0503
122
+ #define GL_STACK_UNDERFLOW 0x0504
123
+ #define GL_OUT_OF_MEMORY 0x0505
124
+ #define GL_EXP 0x0800
125
+ #define GL_EXP2 0x0801
126
+ #define GL_FOG_DENSITY 0x0B62
127
+ #define GL_FOG_START 0x0B63
128
+ #define GL_FOG_END 0x0B64
129
+ #define GL_FOG_MODE 0x0B65
130
+ #define GL_FOG_COLOR 0x0B66
131
+ #define GL_CW 0x0900
132
+ #define GL_CCW 0x0901
133
+ #define GL_CURRENT_COLOR 0x0B00
134
+ #define GL_CURRENT_NORMAL 0x0B02
135
+ #define GL_CURRENT_TEXTURE_COORDS 0x0B03
136
+ #define GL_POINT_SIZE 0x0B11
137
+ #define GL_POINT_SIZE_MIN 0x8126
138
+ #define GL_POINT_SIZE_MAX 0x8127
139
+ #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
140
+ #define GL_POINT_DISTANCE_ATTENUATION 0x8129
141
+ #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
142
+ #define GL_LINE_WIDTH 0x0B21
143
+ #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
144
+ #define GL_ALIASED_POINT_SIZE_RANGE 0x846D
145
+ #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
146
+ #define GL_CULL_FACE_MODE 0x0B45
147
+ #define GL_FRONT_FACE 0x0B46
148
+ #define GL_SHADE_MODEL 0x0B54
149
+ #define GL_DEPTH_RANGE 0x0B70
150
+ #define GL_DEPTH_WRITEMASK 0x0B72
151
+ #define GL_DEPTH_CLEAR_VALUE 0x0B73
152
+ #define GL_DEPTH_FUNC 0x0B74
153
+ #define GL_STENCIL_CLEAR_VALUE 0x0B91
154
+ #define GL_STENCIL_FUNC 0x0B92
155
+ #define GL_STENCIL_VALUE_MASK 0x0B93
156
+ #define GL_STENCIL_FAIL 0x0B94
157
+ #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
158
+ #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
159
+ #define GL_STENCIL_REF 0x0B97
160
+ #define GL_STENCIL_WRITEMASK 0x0B98
161
+ #define GL_MATRIX_MODE 0x0BA0
162
+ #define GL_VIEWPORT 0x0BA2
163
+ #define GL_MODELVIEW_STACK_DEPTH 0x0BA3
164
+ #define GL_PROJECTION_STACK_DEPTH 0x0BA4
165
+ #define GL_TEXTURE_STACK_DEPTH 0x0BA5
166
+ #define GL_MODELVIEW_MATRIX 0x0BA6
167
+ #define GL_PROJECTION_MATRIX 0x0BA7
168
+ #define GL_TEXTURE_MATRIX 0x0BA8
169
+ #define GL_ALPHA_TEST_FUNC 0x0BC1
170
+ #define GL_ALPHA_TEST_REF 0x0BC2
171
+ #define GL_BLEND_DST 0x0BE0
172
+ #define GL_BLEND_SRC 0x0BE1
173
+ #define GL_LOGIC_OP_MODE 0x0BF0
174
+ #define GL_SCISSOR_BOX 0x0C10
175
+ #define GL_COLOR_CLEAR_VALUE 0x0C22
176
+ #define GL_COLOR_WRITEMASK 0x0C23
177
+ #define GL_MAX_LIGHTS 0x0D31
178
+ #define GL_MAX_CLIP_PLANES 0x0D32
179
+ #define GL_MAX_TEXTURE_SIZE 0x0D33
180
+ #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
181
+ #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
182
+ #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
183
+ #define GL_MAX_VIEWPORT_DIMS 0x0D3A
184
+ #define GL_MAX_TEXTURE_UNITS 0x84E2
185
+ #define GL_SUBPIXEL_BITS 0x0D50
186
+ #define GL_RED_BITS 0x0D52
187
+ #define GL_GREEN_BITS 0x0D53
188
+ #define GL_BLUE_BITS 0x0D54
189
+ #define GL_ALPHA_BITS 0x0D55
190
+ #define GL_DEPTH_BITS 0x0D56
191
+ #define GL_STENCIL_BITS 0x0D57
192
+ #define GL_POLYGON_OFFSET_UNITS 0x2A00
193
+ #define GL_POLYGON_OFFSET_FILL 0x8037
194
+ #define GL_POLYGON_OFFSET_FACTOR 0x8038
195
+ #define GL_TEXTURE_BINDING_2D 0x8069
196
+ #define GL_VERTEX_ARRAY_SIZE 0x807A
197
+ #define GL_VERTEX_ARRAY_TYPE 0x807B
198
+ #define GL_VERTEX_ARRAY_STRIDE 0x807C
199
+ #define GL_NORMAL_ARRAY_TYPE 0x807E
200
+ #define GL_NORMAL_ARRAY_STRIDE 0x807F
201
+ #define GL_COLOR_ARRAY_SIZE 0x8081
202
+ #define GL_COLOR_ARRAY_TYPE 0x8082
203
+ #define GL_COLOR_ARRAY_STRIDE 0x8083
204
+ #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
205
+ #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
206
+ #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
207
+ #define GL_VERTEX_ARRAY_POINTER 0x808E
208
+ #define GL_NORMAL_ARRAY_POINTER 0x808F
209
+ #define GL_COLOR_ARRAY_POINTER 0x8090
210
+ #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
211
+ #define GL_SAMPLE_BUFFERS 0x80A8
212
+ #define GL_SAMPLES 0x80A9
213
+ #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
214
+ #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
215
+ #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
216
+ #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
217
+ #define GL_DONT_CARE 0x1100
218
+ #define GL_FASTEST 0x1101
219
+ #define GL_NICEST 0x1102
220
+ #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
221
+ #define GL_POINT_SMOOTH_HINT 0x0C51
222
+ #define GL_LINE_SMOOTH_HINT 0x0C52
223
+ #define GL_FOG_HINT 0x0C54
224
+ #define GL_GENERATE_MIPMAP_HINT 0x8192
225
+ #define GL_LIGHT_MODEL_AMBIENT 0x0B53
226
+ #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
227
+ #define GL_AMBIENT 0x1200
228
+ #define GL_DIFFUSE 0x1201
229
+ #define GL_SPECULAR 0x1202
230
+ #define GL_POSITION 0x1203
231
+ #define GL_SPOT_DIRECTION 0x1204
232
+ #define GL_SPOT_EXPONENT 0x1205
233
+ #define GL_SPOT_CUTOFF 0x1206
234
+ #define GL_CONSTANT_ATTENUATION 0x1207
235
+ #define GL_LINEAR_ATTENUATION 0x1208
236
+ #define GL_QUADRATIC_ATTENUATION 0x1209
237
+ #define GL_BYTE 0x1400
238
+ #define GL_UNSIGNED_BYTE 0x1401
239
+ #define GL_SHORT 0x1402
240
+ #define GL_UNSIGNED_SHORT 0x1403
241
+ #define GL_FLOAT 0x1406
242
+ #define GL_FIXED 0x140C
243
+ #define GL_CLEAR 0x1500
244
+ #define GL_AND 0x1501
245
+ #define GL_AND_REVERSE 0x1502
246
+ #define GL_COPY 0x1503
247
+ #define GL_AND_INVERTED 0x1504
248
+ #define GL_NOOP 0x1505
249
+ #define GL_XOR 0x1506
250
+ #define GL_OR 0x1507
251
+ #define GL_NOR 0x1508
252
+ #define GL_EQUIV 0x1509
253
+ #define GL_INVERT 0x150A
254
+ #define GL_OR_REVERSE 0x150B
255
+ #define GL_COPY_INVERTED 0x150C
256
+ #define GL_OR_INVERTED 0x150D
257
+ #define GL_NAND 0x150E
258
+ #define GL_SET 0x150F
259
+ #define GL_EMISSION 0x1600
260
+ #define GL_SHININESS 0x1601
261
+ #define GL_AMBIENT_AND_DIFFUSE 0x1602
262
+ #define GL_MODELVIEW 0x1700
263
+ #define GL_PROJECTION 0x1701
264
+ #define GL_TEXTURE 0x1702
265
+ #define GL_ALPHA 0x1906
266
+ #define GL_RGB 0x1907
267
+ #define GL_RGBA 0x1908
268
+ #define GL_LUMINANCE 0x1909
269
+ #define GL_LUMINANCE_ALPHA 0x190A
270
+ #define GL_UNPACK_ALIGNMENT 0x0CF5
271
+ #define GL_PACK_ALIGNMENT 0x0D05
272
+ #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
273
+ #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
274
+ #define GL_UNSIGNED_SHORT_5_6_5 0x8363
275
+ #define GL_FLAT 0x1D00
276
+ #define GL_SMOOTH 0x1D01
277
+ #define GL_KEEP 0x1E00
278
+ #define GL_REPLACE 0x1E01
279
+ #define GL_INCR 0x1E02
280
+ #define GL_DECR 0x1E03
281
+ #define GL_VENDOR 0x1F00
282
+ #define GL_RENDERER 0x1F01
283
+ #define GL_VERSION 0x1F02
284
+ #define GL_EXTENSIONS 0x1F03
285
+ #define GL_MODULATE 0x2100
286
+ #define GL_DECAL 0x2101
287
+ #define GL_ADD 0x0104
288
+ #define GL_TEXTURE_ENV_MODE 0x2200
289
+ #define GL_TEXTURE_ENV_COLOR 0x2201
290
+ #define GL_TEXTURE_ENV 0x2300
291
+ #define GL_NEAREST 0x2600
292
+ #define GL_LINEAR 0x2601
293
+ #define GL_NEAREST_MIPMAP_NEAREST 0x2700
294
+ #define GL_LINEAR_MIPMAP_NEAREST 0x2701
295
+ #define GL_NEAREST_MIPMAP_LINEAR 0x2702
296
+ #define GL_LINEAR_MIPMAP_LINEAR 0x2703
297
+ #define GL_TEXTURE_MAG_FILTER 0x2800
298
+ #define GL_TEXTURE_MIN_FILTER 0x2801
299
+ #define GL_TEXTURE_WRAP_S 0x2802
300
+ #define GL_TEXTURE_WRAP_T 0x2803
301
+ #define GL_GENERATE_MIPMAP 0x8191
302
+ #define GL_TEXTURE0 0x84C0
303
+ #define GL_TEXTURE1 0x84C1
304
+ #define GL_TEXTURE2 0x84C2
305
+ #define GL_TEXTURE3 0x84C3
306
+ #define GL_TEXTURE4 0x84C4
307
+ #define GL_TEXTURE5 0x84C5
308
+ #define GL_TEXTURE6 0x84C6
309
+ #define GL_TEXTURE7 0x84C7
310
+ #define GL_TEXTURE8 0x84C8
311
+ #define GL_TEXTURE9 0x84C9
312
+ #define GL_TEXTURE10 0x84CA
313
+ #define GL_TEXTURE11 0x84CB
314
+ #define GL_TEXTURE12 0x84CC
315
+ #define GL_TEXTURE13 0x84CD
316
+ #define GL_TEXTURE14 0x84CE
317
+ #define GL_TEXTURE15 0x84CF
318
+ #define GL_TEXTURE16 0x84D0
319
+ #define GL_TEXTURE17 0x84D1
320
+ #define GL_TEXTURE18 0x84D2
321
+ #define GL_TEXTURE19 0x84D3
322
+ #define GL_TEXTURE20 0x84D4
323
+ #define GL_TEXTURE21 0x84D5
324
+ #define GL_TEXTURE22 0x84D6
325
+ #define GL_TEXTURE23 0x84D7
326
+ #define GL_TEXTURE24 0x84D8
327
+ #define GL_TEXTURE25 0x84D9
328
+ #define GL_TEXTURE26 0x84DA
329
+ #define GL_TEXTURE27 0x84DB
330
+ #define GL_TEXTURE28 0x84DC
331
+ #define GL_TEXTURE29 0x84DD
332
+ #define GL_TEXTURE30 0x84DE
333
+ #define GL_TEXTURE31 0x84DF
334
+ #define GL_ACTIVE_TEXTURE 0x84E0
335
+ #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
336
+ #define GL_REPEAT 0x2901
337
+ #define GL_CLAMP_TO_EDGE 0x812F
338
+ #define GL_LIGHT0 0x4000
339
+ #define GL_LIGHT1 0x4001
340
+ #define GL_LIGHT2 0x4002
341
+ #define GL_LIGHT3 0x4003
342
+ #define GL_LIGHT4 0x4004
343
+ #define GL_LIGHT5 0x4005
344
+ #define GL_LIGHT6 0x4006
345
+ #define GL_LIGHT7 0x4007
346
+ #define GL_ARRAY_BUFFER 0x8892
347
+ #define GL_ELEMENT_ARRAY_BUFFER 0x8893
348
+ #define GL_ARRAY_BUFFER_BINDING 0x8894
349
+ #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
350
+ #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
351
+ #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
352
+ #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
353
+ #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
354
+ #define GL_STATIC_DRAW 0x88E4
355
+ #define GL_DYNAMIC_DRAW 0x88E8
356
+ #define GL_BUFFER_SIZE 0x8764
357
+ #define GL_BUFFER_USAGE 0x8765
358
+ #define GL_SUBTRACT 0x84E7
359
+ #define GL_COMBINE 0x8570
360
+ #define GL_COMBINE_RGB 0x8571
361
+ #define GL_COMBINE_ALPHA 0x8572
362
+ #define GL_RGB_SCALE 0x8573
363
+ #define GL_ADD_SIGNED 0x8574
364
+ #define GL_INTERPOLATE 0x8575
365
+ #define GL_CONSTANT 0x8576
366
+ #define GL_PRIMARY_COLOR 0x8577
367
+ #define GL_PREVIOUS 0x8578
368
+ #define GL_OPERAND0_RGB 0x8590
369
+ #define GL_OPERAND1_RGB 0x8591
370
+ #define GL_OPERAND2_RGB 0x8592
371
+ #define GL_OPERAND0_ALPHA 0x8598
372
+ #define GL_OPERAND1_ALPHA 0x8599
373
+ #define GL_OPERAND2_ALPHA 0x859A
374
+ #define GL_ALPHA_SCALE 0x0D1C
375
+ #define GL_SRC0_RGB 0x8580
376
+ #define GL_SRC1_RGB 0x8581
377
+ #define GL_SRC2_RGB 0x8582
378
+ #define GL_SRC0_ALPHA 0x8588
379
+ #define GL_SRC1_ALPHA 0x8589
380
+ #define GL_SRC2_ALPHA 0x858A
381
+ #define GL_DOT3_RGB 0x86AE
382
+ #define GL_DOT3_RGBA 0x86AF
383
+ GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLfloat ref);
384
+ GL_API void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
385
+ GL_API void GL_APIENTRY glClearDepthf (GLfloat d);
386
+ GL_API void GL_APIENTRY glClipPlanef (GLenum p, const GLfloat *eqn);
387
+ GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
388
+ GL_API void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f);
389
+ GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param);
390
+ GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params);
391
+ GL_API void GL_APIENTRY glFrustumf (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
392
+ GL_API void GL_APIENTRY glGetClipPlanef (GLenum plane, GLfloat *equation);
393
+ GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data);
394
+ GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
395
+ GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
396
+ GL_API void GL_APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
397
+ GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
398
+ GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param);
399
+ GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
400
+ GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
401
+ GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
402
+ GL_API void GL_APIENTRY glLineWidth (GLfloat width);
403
+ GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m);
404
+ GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
405
+ GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
406
+ GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m);
407
+ GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
408
+ GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
409
+ GL_API void GL_APIENTRY glOrthof (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
410
+ GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param);
411
+ GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params);
412
+ GL_API void GL_APIENTRY glPointSize (GLfloat size);
413
+ GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
414
+ GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
415
+ GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
416
+ GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
417
+ GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
418
+ GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
419
+ GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
420
+ GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
421
+ GL_API void GL_APIENTRY glActiveTexture (GLenum texture);
422
+ GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLfixed ref);
423
+ GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
424
+ GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
425
+ GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
426
+ GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
427
+ GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
428
+ GL_API void GL_APIENTRY glClear (GLbitfield mask);
429
+ GL_API void GL_APIENTRY glClearColorx (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
430
+ GL_API void GL_APIENTRY glClearDepthx (GLfixed depth);
431
+ GL_API void GL_APIENTRY glClearStencil (GLint s);
432
+ GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture);
433
+ GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation);
434
+ GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
435
+ GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
436
+ GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
437
+ GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
438
+ GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
439
+ GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
440
+ GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
441
+ GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
442
+ GL_API void GL_APIENTRY glCullFace (GLenum mode);
443
+ GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
444
+ GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
445
+ GL_API void GL_APIENTRY glDepthFunc (GLenum func);
446
+ GL_API void GL_APIENTRY glDepthMask (GLboolean flag);
447
+ GL_API void GL_APIENTRY glDepthRangex (GLfixed n, GLfixed f);
448
+ GL_API void GL_APIENTRY glDisable (GLenum cap);
449
+ GL_API void GL_APIENTRY glDisableClientState (GLenum array);
450
+ GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
451
+ GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
452
+ GL_API void GL_APIENTRY glEnable (GLenum cap);
453
+ GL_API void GL_APIENTRY glEnableClientState (GLenum array);
454
+ GL_API void GL_APIENTRY glFinish (void);
455
+ GL_API void GL_APIENTRY glFlush (void);
456
+ GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param);
457
+ GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *param);
458
+ GL_API void GL_APIENTRY glFrontFace (GLenum mode);
459
+ GL_API void GL_APIENTRY glFrustumx (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
460
+ GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data);
461
+ GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
462
+ GL_API void GL_APIENTRY glGetClipPlanex (GLenum plane, GLfixed *equation);
463
+ GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
464
+ GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
465
+ GL_API GLenum GL_APIENTRY glGetError (void);
466
+ GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *data);
467
+ GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
468
+ GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params);
469
+ GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params);
470
+ GL_API void GL_APIENTRY glGetPointerv (GLenum pname, void **params);
471
+ GL_API const GLubyte *GL_APIENTRY glGetString (GLenum name);
472
+ GL_API void GL_APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
473
+ GL_API void GL_APIENTRY glGetTexEnvxv (GLenum target, GLenum pname, GLfixed *params);
474
+ GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
475
+ GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params);
476
+ GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode);
477
+ GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
478
+ GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
479
+ GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture);
480
+ GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param);
481
+ GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *param);
482
+ GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param);
483
+ GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params);
484
+ GL_API void GL_APIENTRY glLineWidthx (GLfixed width);
485
+ GL_API void GL_APIENTRY glLoadIdentity (void);
486
+ GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m);
487
+ GL_API void GL_APIENTRY glLogicOp (GLenum opcode);
488
+ GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param);
489
+ GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *param);
490
+ GL_API void GL_APIENTRY glMatrixMode (GLenum mode);
491
+ GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m);
492
+ GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
493
+ GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz);
494
+ GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
495
+ GL_API void GL_APIENTRY glOrthox (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
496
+ GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
497
+ GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param);
498
+ GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params);
499
+ GL_API void GL_APIENTRY glPointSizex (GLfixed size);
500
+ GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units);
501
+ GL_API void GL_APIENTRY glPopMatrix (void);
502
+ GL_API void GL_APIENTRY glPushMatrix (void);
503
+ GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
504
+ GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
505
+ GL_API void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
506
+ GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert);
507
+ GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z);
508
+ GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
509
+ GL_API void GL_APIENTRY glShadeModel (GLenum mode);
510
+ GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
511
+ GL_API void GL_APIENTRY glStencilMask (GLuint mask);
512
+ GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
513
+ GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
514
+ GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
515
+ GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param);
516
+ GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
517
+ GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params);
518
+ GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
519
+ GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
520
+ GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param);
521
+ GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
522
+ GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params);
523
+ GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
524
+ GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
525
+ GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
526
+ GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
527
+ #endif /* GL_VERSION_ES_CM_1_0 */
528
+
529
+ #ifndef GL_OES_compressed_paletted_texture
530
+ #define GL_OES_compressed_paletted_texture 1
531
+ #define GL_PALETTE4_RGB8_OES 0x8B90
532
+ #define GL_PALETTE4_RGBA8_OES 0x8B91
533
+ #define GL_PALETTE4_R5_G6_B5_OES 0x8B92
534
+ #define GL_PALETTE4_RGBA4_OES 0x8B93
535
+ #define GL_PALETTE4_RGB5_A1_OES 0x8B94
536
+ #define GL_PALETTE8_RGB8_OES 0x8B95
537
+ #define GL_PALETTE8_RGBA8_OES 0x8B96
538
+ #define GL_PALETTE8_R5_G6_B5_OES 0x8B97
539
+ #define GL_PALETTE8_RGBA4_OES 0x8B98
540
+ #define GL_PALETTE8_RGB5_A1_OES 0x8B99
541
+ #endif /* GL_OES_compressed_paletted_texture */
542
+
543
+ #ifndef GL_OES_point_size_array
544
+ #define GL_OES_point_size_array 1
545
+ #define GL_POINT_SIZE_ARRAY_OES 0x8B9C
546
+ #define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A
547
+ #define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B
548
+ #define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C
549
+ #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F
550
+ GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const void *pointer);
551
+ #endif /* GL_OES_point_size_array */
552
+
553
+ #ifndef GL_OES_point_sprite
554
+ #define GL_OES_point_sprite 1
555
+ #define GL_POINT_SPRITE_OES 0x8861
556
+ #define GL_COORD_REPLACE_OES 0x8862
557
+ #endif /* GL_OES_point_sprite */
558
+
559
+ #ifndef GL_OES_read_format
560
+ #define GL_OES_read_format 1
561
+ #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
562
+ #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
563
+ #endif /* GL_OES_read_format */
564
+
565
+ #ifdef __cplusplus
566
+ }
567
+ #endif
568
+
569
+ #endif
package/src/platform.h ADDED
@@ -0,0 +1,28 @@
1
+ // this sets up GLFW/GL for native or wasm
2
+
3
+ #include "glfw3.h"
4
+
5
+ #ifdef __wasm__
6
+ #include "gl.h"
7
+ #elif defined(__APPLE__)
8
+ #include <OpenGL/gl.h>
9
+ #else
10
+ #include <GL/gl.h>
11
+ #endif
12
+
13
+ int update(void);
14
+ int setup();
15
+
16
+ int main(void) {
17
+ int ok = setup();
18
+ if (ok != 0) {
19
+ return ok;
20
+ }
21
+
22
+ #ifndef __wasm__
23
+ while (update()) {}
24
+ glfwTerminate();
25
+ #endif
26
+
27
+ return 0;
28
+ }