Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/mozilla/dom/WebGL2RenderingContextBinding.h
Line
Count
Source (jump to first uncovered line)
1
/* THIS FILE IS AUTOGENERATED FROM WebGL2RenderingContext.webidl BY Codegen.py - DO NOT EDIT */
2
3
#ifndef mozilla_dom_WebGL2RenderingContextBinding_h
4
#define mozilla_dom_WebGL2RenderingContextBinding_h
5
6
#include "GeckoProfiler.h"
7
#include "js/RootingAPI.h"
8
#include "jsfriendapi.h"
9
#include "jspubtd.h"
10
#include "mozilla/ErrorResult.h"
11
#include "mozilla/dom/BindingDeclarations.h"
12
#include "mozilla/dom/FakeString.h"
13
#include "mozilla/dom/Nullable.h"
14
#include "mozilla/dom/PrototypeList.h"
15
#include "mozilla/dom/TypedArray.h"
16
#include "mozilla/dom/UnionMember.h"
17
18
namespace mozilla {
19
20
class WebGL2Context;
21
struct WebGL2ContextAtoms;
22
class WebGLExtensionEXTColorBufferFloat;
23
struct WebGLExtensionEXTColorBufferFloatAtoms;
24
class WebGLSampler;
25
struct WebGLSamplerAtoms;
26
class WebGLSync;
27
struct WebGLSyncAtoms;
28
class WebGLTransformFeedback;
29
struct WebGLTransformFeedbackAtoms;
30
31
namespace dom {
32
33
struct NativePropertyHooks;
34
class ProtoAndIfaceCache;
35
36
} // namespace dom
37
38
} // namespace mozilla
39
40
namespace mozilla {
41
namespace dom {
42
43
class Uint32ArrayOrUnsignedLongSequence
44
{
45
  friend class Uint32ArrayOrUnsignedLongSequenceArgument;
46
  enum Type
47
  {
48
    eUninitialized,
49
    eUint32Array,
50
    eUnsignedLongSequence
51
  };
52
53
  union Value
54
  {
55
    UnionMember<RootedSpiderMonkeyInterface<Uint32Array> > mUint32Array;
56
    UnionMember<binding_detail::AutoSequence<uint32_t> > mUnsignedLongSequence;
57
58
  };
59
60
  Type mType;
61
  Value mValue;
62
63
  Uint32ArrayOrUnsignedLongSequence(const Uint32ArrayOrUnsignedLongSequence&) = delete;
64
  Uint32ArrayOrUnsignedLongSequence& operator=(const Uint32ArrayOrUnsignedLongSequence&) = delete;
65
public:
66
  explicit inline Uint32ArrayOrUnsignedLongSequence()
67
    : mType(eUninitialized)
68
0
  {
69
0
  }
70
71
  inline ~Uint32ArrayOrUnsignedLongSequence()
72
0
  {
73
0
    Uninit();
74
0
  }
75
76
  inline RootedSpiderMonkeyInterface<Uint32Array>&
77
  RawSetAsUint32Array(JSContext* cx)
78
0
  {
79
0
    if (mType == eUint32Array) {
80
0
      return mValue.mUint32Array.Value();
81
0
    }
82
0
    MOZ_ASSERT(mType == eUninitialized);
83
0
    mType = eUint32Array;
84
0
    return mValue.mUint32Array.SetValue(cx);
85
0
  }
86
87
  inline RootedSpiderMonkeyInterface<Uint32Array>&
88
  SetAsUint32Array(JSContext* cx)
89
0
  {
90
0
    if (mType == eUint32Array) {
91
0
      return mValue.mUint32Array.Value();
92
0
    }
93
0
    Uninit();
94
0
    mType = eUint32Array;
95
0
    return mValue.mUint32Array.SetValue(cx);
96
0
  }
97
98
  inline bool
99
  IsUint32Array() const
100
0
  {
101
0
    return mType == eUint32Array;
102
0
  }
103
104
  inline RootedSpiderMonkeyInterface<Uint32Array>&
105
  GetAsUint32Array()
106
0
  {
107
0
    MOZ_ASSERT(IsUint32Array(), "Wrong type!");
108
0
    return mValue.mUint32Array.Value();
109
0
  }
110
111
  inline Uint32Array const &
112
  GetAsUint32Array() const
113
0
  {
114
0
    MOZ_ASSERT(IsUint32Array(), "Wrong type!");
115
0
    return mValue.mUint32Array.Value();
116
0
  }
117
118
  inline binding_detail::AutoSequence<uint32_t>&
119
  RawSetAsUnsignedLongSequence()
120
0
  {
121
0
    if (mType == eUnsignedLongSequence) {
122
0
      return mValue.mUnsignedLongSequence.Value();
123
0
    }
124
0
    MOZ_ASSERT(mType == eUninitialized);
125
0
    mType = eUnsignedLongSequence;
126
0
    return mValue.mUnsignedLongSequence.SetValue();
127
0
  }
128
129
  inline binding_detail::AutoSequence<uint32_t>&
130
  SetAsUnsignedLongSequence()
131
0
  {
132
0
    if (mType == eUnsignedLongSequence) {
133
0
      return mValue.mUnsignedLongSequence.Value();
134
0
    }
135
0
    Uninit();
136
0
    mType = eUnsignedLongSequence;
137
0
    return mValue.mUnsignedLongSequence.SetValue();
138
0
  }
139
140
  inline bool
141
  IsUnsignedLongSequence() const
142
0
  {
143
0
    return mType == eUnsignedLongSequence;
144
0
  }
145
146
  inline binding_detail::AutoSequence<uint32_t>&
147
  GetAsUnsignedLongSequence()
148
0
  {
149
0
    MOZ_ASSERT(IsUnsignedLongSequence(), "Wrong type!");
150
0
    return mValue.mUnsignedLongSequence.Value();
151
0
  }
152
153
  inline const Sequence<uint32_t>&
154
  GetAsUnsignedLongSequence() const
155
0
  {
156
0
    MOZ_ASSERT(IsUnsignedLongSequence(), "Wrong type!");
157
0
    return mValue.mUnsignedLongSequence.Value();
158
0
  }
159
160
  inline void
161
  Uninit()
162
  {
163
    switch (mType) {
164
      case eUninitialized: {
165
        break;
166
      }
167
      case eUint32Array: {
168
        DestroyUint32Array();
169
        break;
170
      }
171
      case eUnsignedLongSequence: {
172
        DestroyUnsignedLongSequence();
173
        break;
174
      }
175
    }
176
  }
177
178
  bool
179
  ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
180
181
private:
182
  inline void
183
  DestroyUint32Array()
184
0
  {
185
0
    MOZ_ASSERT(IsUint32Array(), "Wrong type!");
186
0
    mValue.mUint32Array.Destroy();
187
0
    mType = eUninitialized;
188
0
  }
189
190
  inline void
191
  DestroyUnsignedLongSequence()
192
0
  {
193
0
    MOZ_ASSERT(IsUnsignedLongSequence(), "Wrong type!");
194
0
    mValue.mUnsignedLongSequence.Destroy();
195
0
    mType = eUninitialized;
196
0
  }
197
};
198
199
200
class OwningUint32ArrayOrUnsignedLongSequence : public AllOwningUnionBase
201
{
202
  friend void ImplCycleCollectionUnlink(OwningUint32ArrayOrUnsignedLongSequence& aUnion);
203
  enum Type
204
  {
205
    eUninitialized,
206
    eUint32Array,
207
    eUnsignedLongSequence
208
  };
209
210
  union Value
211
  {
212
    UnionMember<Uint32Array > mUint32Array;
213
    UnionMember<Sequence<uint32_t> > mUnsignedLongSequence;
214
215
  };
216
217
  Type mType;
218
  Value mValue;
219
220
  OwningUint32ArrayOrUnsignedLongSequence(const OwningUint32ArrayOrUnsignedLongSequence&) = delete;
221
  OwningUint32ArrayOrUnsignedLongSequence& operator=(const OwningUint32ArrayOrUnsignedLongSequence&) = delete;
222
public:
223
  explicit inline OwningUint32ArrayOrUnsignedLongSequence()
224
    : mType(eUninitialized)
225
0
  {
226
0
  }
227
228
  inline ~OwningUint32ArrayOrUnsignedLongSequence()
229
0
  {
230
0
    Uninit();
231
0
  }
232
233
  Uint32Array&
234
  RawSetAsUint32Array();
235
236
  Uint32Array&
237
  SetAsUint32Array();
238
239
  bool
240
  TrySetToUint32Array(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
241
242
  inline bool
243
  IsUint32Array() const
244
0
  {
245
0
    return mType == eUint32Array;
246
0
  }
247
248
  inline Uint32Array&
249
  GetAsUint32Array()
250
0
  {
251
0
    MOZ_ASSERT(IsUint32Array(), "Wrong type!");
252
0
    return mValue.mUint32Array.Value();
253
0
  }
254
255
  inline Uint32Array const &
256
  GetAsUint32Array() const
257
0
  {
258
0
    MOZ_ASSERT(IsUint32Array(), "Wrong type!");
259
0
    return mValue.mUint32Array.Value();
260
0
  }
261
262
  Sequence<uint32_t>&
263
  RawSetAsUnsignedLongSequence();
264
265
  Sequence<uint32_t>&
266
  SetAsUnsignedLongSequence();
267
268
  bool
269
  TrySetToUnsignedLongSequence(JSContext* cx, JS::Handle<JS::Value> value, bool& tryNext, bool passedToJSImpl = false);
270
271
  inline bool
272
  IsUnsignedLongSequence() const
273
0
  {
274
0
    return mType == eUnsignedLongSequence;
275
0
  }
276
277
  inline Sequence<uint32_t>&
278
  GetAsUnsignedLongSequence()
279
0
  {
280
0
    MOZ_ASSERT(IsUnsignedLongSequence(), "Wrong type!");
281
0
    return mValue.mUnsignedLongSequence.Value();
282
0
  }
283
284
  inline Sequence<uint32_t> const &
285
  GetAsUnsignedLongSequence() const
286
0
  {
287
0
    MOZ_ASSERT(IsUnsignedLongSequence(), "Wrong type!");
288
0
    return mValue.mUnsignedLongSequence.Value();
289
0
  }
290
291
  void
292
  Uninit();
293
294
  bool
295
  ToJSVal(JSContext* cx, JS::Handle<JSObject*> scopeObj, JS::MutableHandle<JS::Value> rval) const;
296
297
  void
298
  TraceUnion(JSTracer* trc);
299
300
private:
301
  void
302
  DestroyUint32Array();
303
304
  void
305
  DestroyUnsignedLongSequence();
306
};
307
308
309
namespace EXT_color_buffer_float_Binding {
310
311
  typedef mozilla::WebGLExtensionEXTColorBufferFloat NativeType;
312
313
  const JSClass*
314
  GetJSClass();
315
316
  bool
317
  Wrap(JSContext* aCx, mozilla::WebGLExtensionEXTColorBufferFloat* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
318
319
  template <class T>
320
  inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
321
0
  {
322
0
    JS::Rooted<JSObject*> reflector(aCx);
323
0
    return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
324
0
  }
325
326
  // We declare this as an array so that retrieving a pointer to this
327
  // binding's property hooks only requires compile/link-time resolvable
328
  // address arithmetic.  Declaring it as a pointer instead would require
329
  // doing a run-time load to fetch a pointer to this binding's property
330
  // hooks.  And then structures which embedded a pointer to this structure
331
  // would require a run-time load for proper initialization, which would
332
  // then induce static constructors.  Lots of static constructors.
333
  extern const NativePropertyHooks sNativePropertyHooks[];
334
335
  void
336
  CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
337
338
  inline JS::Handle<JSObject*> GetProtoObjectHandle(JSContext* aCx)
339
0
  {
340
0
    /* Get the interface prototype object for this class.  This will create the
341
0
       object as needed. */
342
0
    return GetPerInterfaceObjectHandle(aCx, prototypes::id::EXT_color_buffer_float,
343
0
                                       &CreateInterfaceObjects,
344
0
                                       /* aDefineOnGlobal = */ true);
345
0
346
0
  }
347
348
} // namespace EXT_color_buffer_float_Binding
349
350
351
352
namespace WebGL2RenderingContext_Binding {
353
354
  typedef mozilla::WebGL2Context NativeType;
355
356
  static const uint32_t READ_BUFFER = 3074;
357
  static const uint32_t UNPACK_ROW_LENGTH = 3314;
358
  static const uint32_t UNPACK_SKIP_ROWS = 3315;
359
  static const uint32_t UNPACK_SKIP_PIXELS = 3316;
360
  static const uint32_t PACK_ROW_LENGTH = 3330;
361
  static const uint32_t PACK_SKIP_ROWS = 3331;
362
  static const uint32_t PACK_SKIP_PIXELS = 3332;
363
  static const uint32_t COLOR = 6144;
364
  static const uint32_t DEPTH = 6145;
365
  static const uint32_t STENCIL = 6146;
366
  static const uint32_t RED = 6403;
367
  static const uint32_t RGB8 = 32849;
368
  static const uint32_t RGBA8 = 32856;
369
  static const uint32_t RGB10_A2 = 32857;
370
  static const uint32_t TEXTURE_BINDING_3D = 32874;
371
  static const uint32_t UNPACK_SKIP_IMAGES = 32877;
372
  static const uint32_t UNPACK_IMAGE_HEIGHT = 32878;
373
  static const uint32_t TEXTURE_3D = 32879;
374
  static const uint32_t TEXTURE_WRAP_R = 32882;
375
  static const uint32_t MAX_3D_TEXTURE_SIZE = 32883;
376
  static const uint32_t UNSIGNED_INT_2_10_10_10_REV = 33640;
377
  static const uint32_t MAX_ELEMENTS_VERTICES = 33000;
378
  static const uint32_t MAX_ELEMENTS_INDICES = 33001;
379
  static const uint32_t TEXTURE_MIN_LOD = 33082;
380
  static const uint32_t TEXTURE_MAX_LOD = 33083;
381
  static const uint32_t TEXTURE_BASE_LEVEL = 33084;
382
  static const uint32_t TEXTURE_MAX_LEVEL = 33085;
383
  static const uint32_t MIN = 32775;
384
  static const uint32_t MAX = 32776;
385
  static const uint32_t DEPTH_COMPONENT24 = 33190;
386
  static const uint32_t MAX_TEXTURE_LOD_BIAS = 34045;
387
  static const uint32_t TEXTURE_COMPARE_MODE = 34892;
388
  static const uint32_t TEXTURE_COMPARE_FUNC = 34893;
389
  static const uint32_t CURRENT_QUERY = 34917;
390
  static const uint32_t QUERY_RESULT = 34918;
391
  static const uint32_t QUERY_RESULT_AVAILABLE = 34919;
392
  static const uint32_t STREAM_READ = 35041;
393
  static const uint32_t STREAM_COPY = 35042;
394
  static const uint32_t STATIC_READ = 35045;
395
  static const uint32_t STATIC_COPY = 35046;
396
  static const uint32_t DYNAMIC_READ = 35049;
397
  static const uint32_t DYNAMIC_COPY = 35050;
398
  static const uint32_t MAX_DRAW_BUFFERS = 34852;
399
  static const uint32_t DRAW_BUFFER0 = 34853;
400
  static const uint32_t DRAW_BUFFER1 = 34854;
401
  static const uint32_t DRAW_BUFFER2 = 34855;
402
  static const uint32_t DRAW_BUFFER3 = 34856;
403
  static const uint32_t DRAW_BUFFER4 = 34857;
404
  static const uint32_t DRAW_BUFFER5 = 34858;
405
  static const uint32_t DRAW_BUFFER6 = 34859;
406
  static const uint32_t DRAW_BUFFER7 = 34860;
407
  static const uint32_t DRAW_BUFFER8 = 34861;
408
  static const uint32_t DRAW_BUFFER9 = 34862;
409
  static const uint32_t DRAW_BUFFER10 = 34863;
410
  static const uint32_t DRAW_BUFFER11 = 34864;
411
  static const uint32_t DRAW_BUFFER12 = 34865;
412
  static const uint32_t DRAW_BUFFER13 = 34866;
413
  static const uint32_t DRAW_BUFFER14 = 34867;
414
  static const uint32_t DRAW_BUFFER15 = 34868;
415
  static const uint32_t MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657;
416
  static const uint32_t MAX_VERTEX_UNIFORM_COMPONENTS = 35658;
417
  static const uint32_t SAMPLER_3D = 35679;
418
  static const uint32_t SAMPLER_2D_SHADOW = 35682;
419
  static const uint32_t FRAGMENT_SHADER_DERIVATIVE_HINT = 35723;
420
  static const uint32_t PIXEL_PACK_BUFFER = 35051;
421
  static const uint32_t PIXEL_UNPACK_BUFFER = 35052;
422
  static const uint32_t PIXEL_PACK_BUFFER_BINDING = 35053;
423
  static const uint32_t PIXEL_UNPACK_BUFFER_BINDING = 35055;
424
  static const uint32_t FLOAT_MAT2x3 = 35685;
425
  static const uint32_t FLOAT_MAT2x4 = 35686;
426
  static const uint32_t FLOAT_MAT3x2 = 35687;
427
  static const uint32_t FLOAT_MAT3x4 = 35688;
428
  static const uint32_t FLOAT_MAT4x2 = 35689;
429
  static const uint32_t FLOAT_MAT4x3 = 35690;
430
  static const uint32_t SRGB = 35904;
431
  static const uint32_t SRGB8 = 35905;
432
  static const uint32_t SRGB8_ALPHA8 = 35907;
433
  static const uint32_t COMPARE_REF_TO_TEXTURE = 34894;
434
  static const uint32_t RGBA32F = 34836;
435
  static const uint32_t RGB32F = 34837;
436
  static const uint32_t RGBA16F = 34842;
437
  static const uint32_t RGB16F = 34843;
438
  static const uint32_t VERTEX_ATTRIB_ARRAY_INTEGER = 35069;
439
  static const uint32_t MAX_ARRAY_TEXTURE_LAYERS = 35071;
440
  static const uint32_t MIN_PROGRAM_TEXEL_OFFSET = 35076;
441
  static const uint32_t MAX_PROGRAM_TEXEL_OFFSET = 35077;
442
  static const uint32_t MAX_VARYING_COMPONENTS = 35659;
443
  static const uint32_t TEXTURE_2D_ARRAY = 35866;
444
  static const uint32_t TEXTURE_BINDING_2D_ARRAY = 35869;
445
  static const uint32_t R11F_G11F_B10F = 35898;
446
  static const uint32_t UNSIGNED_INT_10F_11F_11F_REV = 35899;
447
  static const uint32_t RGB9_E5 = 35901;
448
  static const uint32_t UNSIGNED_INT_5_9_9_9_REV = 35902;
449
  static const uint32_t TRANSFORM_FEEDBACK_BUFFER_MODE = 35967;
450
  static const uint32_t MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968;
451
  static const uint32_t TRANSFORM_FEEDBACK_VARYINGS = 35971;
452
  static const uint32_t TRANSFORM_FEEDBACK_BUFFER_START = 35972;
453
  static const uint32_t TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973;
454
  static const uint32_t TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976;
455
  static const uint32_t RASTERIZER_DISCARD = 35977;
456
  static const uint32_t MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978;
457
  static const uint32_t MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979;
458
  static const uint32_t INTERLEAVED_ATTRIBS = 35980;
459
  static const uint32_t SEPARATE_ATTRIBS = 35981;
460
  static const uint32_t TRANSFORM_FEEDBACK_BUFFER = 35982;
461
  static const uint32_t TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983;
462
  static const uint32_t RGBA32UI = 36208;
463
  static const uint32_t RGB32UI = 36209;
464
  static const uint32_t RGBA16UI = 36214;
465
  static const uint32_t RGB16UI = 36215;
466
  static const uint32_t RGBA8UI = 36220;
467
  static const uint32_t RGB8UI = 36221;
468
  static const uint32_t RGBA32I = 36226;
469
  static const uint32_t RGB32I = 36227;
470
  static const uint32_t RGBA16I = 36232;
471
  static const uint32_t RGB16I = 36233;
472
  static const uint32_t RGBA8I = 36238;
473
  static const uint32_t RGB8I = 36239;
474
  static const uint32_t RED_INTEGER = 36244;
475
  static const uint32_t RGB_INTEGER = 36248;
476
  static const uint32_t RGBA_INTEGER = 36249;
477
  static const uint32_t SAMPLER_2D_ARRAY = 36289;
478
  static const uint32_t SAMPLER_2D_ARRAY_SHADOW = 36292;
479
  static const uint32_t SAMPLER_CUBE_SHADOW = 36293;
480
  static const uint32_t UNSIGNED_INT_VEC2 = 36294;
481
  static const uint32_t UNSIGNED_INT_VEC3 = 36295;
482
  static const uint32_t UNSIGNED_INT_VEC4 = 36296;
483
  static const uint32_t INT_SAMPLER_2D = 36298;
484
  static const uint32_t INT_SAMPLER_3D = 36299;
485
  static const uint32_t INT_SAMPLER_CUBE = 36300;
486
  static const uint32_t INT_SAMPLER_2D_ARRAY = 36303;
487
  static const uint32_t UNSIGNED_INT_SAMPLER_2D = 36306;
488
  static const uint32_t UNSIGNED_INT_SAMPLER_3D = 36307;
489
  static const uint32_t UNSIGNED_INT_SAMPLER_CUBE = 36308;
490
  static const uint32_t UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311;
491
  static const uint32_t DEPTH_COMPONENT32F = 36012;
492
  static const uint32_t DEPTH32F_STENCIL8 = 36013;
493
  static const uint32_t FLOAT_32_UNSIGNED_INT_24_8_REV = 36269;
494
  static const uint32_t FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296;
495
  static const uint32_t FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297;
496
  static const uint32_t FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298;
497
  static const uint32_t FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299;
498
  static const uint32_t FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300;
499
  static const uint32_t FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301;
500
  static const uint32_t FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302;
501
  static const uint32_t FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303;
502
  static const uint32_t FRAMEBUFFER_DEFAULT = 33304;
503
  static const uint32_t UNSIGNED_INT_24_8 = 34042;
504
  static const uint32_t DEPTH24_STENCIL8 = 35056;
505
  static const uint32_t UNSIGNED_NORMALIZED = 35863;
506
  static const uint32_t DRAW_FRAMEBUFFER_BINDING = 36006;
507
  static const uint32_t READ_FRAMEBUFFER = 36008;
508
  static const uint32_t DRAW_FRAMEBUFFER = 36009;
509
  static const uint32_t READ_FRAMEBUFFER_BINDING = 36010;
510
  static const uint32_t RENDERBUFFER_SAMPLES = 36011;
511
  static const uint32_t FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052;
512
  static const uint32_t MAX_COLOR_ATTACHMENTS = 36063;
513
  static const uint32_t COLOR_ATTACHMENT1 = 36065;
514
  static const uint32_t COLOR_ATTACHMENT2 = 36066;
515
  static const uint32_t COLOR_ATTACHMENT3 = 36067;
516
  static const uint32_t COLOR_ATTACHMENT4 = 36068;
517
  static const uint32_t COLOR_ATTACHMENT5 = 36069;
518
  static const uint32_t COLOR_ATTACHMENT6 = 36070;
519
  static const uint32_t COLOR_ATTACHMENT7 = 36071;
520
  static const uint32_t COLOR_ATTACHMENT8 = 36072;
521
  static const uint32_t COLOR_ATTACHMENT9 = 36073;
522
  static const uint32_t COLOR_ATTACHMENT10 = 36074;
523
  static const uint32_t COLOR_ATTACHMENT11 = 36075;
524
  static const uint32_t COLOR_ATTACHMENT12 = 36076;
525
  static const uint32_t COLOR_ATTACHMENT13 = 36077;
526
  static const uint32_t COLOR_ATTACHMENT14 = 36078;
527
  static const uint32_t COLOR_ATTACHMENT15 = 36079;
528
  static const uint32_t FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182;
529
  static const uint32_t MAX_SAMPLES = 36183;
530
  static const uint32_t HALF_FLOAT = 5131;
531
  static const uint32_t RG = 33319;
532
  static const uint32_t RG_INTEGER = 33320;
533
  static const uint32_t R8 = 33321;
534
  static const uint32_t RG8 = 33323;
535
  static const uint32_t R16F = 33325;
536
  static const uint32_t R32F = 33326;
537
  static const uint32_t RG16F = 33327;
538
  static const uint32_t RG32F = 33328;
539
  static const uint32_t R8I = 33329;
540
  static const uint32_t R8UI = 33330;
541
  static const uint32_t R16I = 33331;
542
  static const uint32_t R16UI = 33332;
543
  static const uint32_t R32I = 33333;
544
  static const uint32_t R32UI = 33334;
545
  static const uint32_t RG8I = 33335;
546
  static const uint32_t RG8UI = 33336;
547
  static const uint32_t RG16I = 33337;
548
  static const uint32_t RG16UI = 33338;
549
  static const uint32_t RG32I = 33339;
550
  static const uint32_t RG32UI = 33340;
551
  static const uint32_t VERTEX_ARRAY_BINDING = 34229;
552
  static const uint32_t R8_SNORM = 36756;
553
  static const uint32_t RG8_SNORM = 36757;
554
  static const uint32_t RGB8_SNORM = 36758;
555
  static const uint32_t RGBA8_SNORM = 36759;
556
  static const uint32_t SIGNED_NORMALIZED = 36764;
557
  static const uint32_t COPY_READ_BUFFER = 36662;
558
  static const uint32_t COPY_WRITE_BUFFER = 36663;
559
  static const uint32_t COPY_READ_BUFFER_BINDING = 36662;
560
  static const uint32_t COPY_WRITE_BUFFER_BINDING = 36663;
561
  static const uint32_t UNIFORM_BUFFER = 35345;
562
  static const uint32_t UNIFORM_BUFFER_BINDING = 35368;
563
  static const uint32_t UNIFORM_BUFFER_START = 35369;
564
  static const uint32_t UNIFORM_BUFFER_SIZE = 35370;
565
  static const uint32_t MAX_VERTEX_UNIFORM_BLOCKS = 35371;
566
  static const uint32_t MAX_FRAGMENT_UNIFORM_BLOCKS = 35373;
567
  static const uint32_t MAX_COMBINED_UNIFORM_BLOCKS = 35374;
568
  static const uint32_t MAX_UNIFORM_BUFFER_BINDINGS = 35375;
569
  static const uint32_t MAX_UNIFORM_BLOCK_SIZE = 35376;
570
  static const uint32_t MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377;
571
  static const uint32_t MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379;
572
  static const uint32_t UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380;
573
  static const uint32_t ACTIVE_UNIFORM_BLOCKS = 35382;
574
  static const uint32_t UNIFORM_TYPE = 35383;
575
  static const uint32_t UNIFORM_SIZE = 35384;
576
  static const uint32_t UNIFORM_BLOCK_INDEX = 35386;
577
  static const uint32_t UNIFORM_OFFSET = 35387;
578
  static const uint32_t UNIFORM_ARRAY_STRIDE = 35388;
579
  static const uint32_t UNIFORM_MATRIX_STRIDE = 35389;
580
  static const uint32_t UNIFORM_IS_ROW_MAJOR = 35390;
581
  static const uint32_t UNIFORM_BLOCK_BINDING = 35391;
582
  static const uint32_t UNIFORM_BLOCK_DATA_SIZE = 35392;
583
  static const uint32_t UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394;
584
  static const uint32_t UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395;
585
  static const uint32_t UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396;
586
  static const uint32_t UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398;
587
  static const uint32_t INVALID_INDEX = 4294967295;
588
  static const uint32_t MAX_VERTEX_OUTPUT_COMPONENTS = 37154;
589
  static const uint32_t MAX_FRAGMENT_INPUT_COMPONENTS = 37157;
590
  static const uint32_t MAX_SERVER_WAIT_TIMEOUT = 37137;
591
  static const uint32_t OBJECT_TYPE = 37138;
592
  static const uint32_t SYNC_CONDITION = 37139;
593
  static const uint32_t SYNC_STATUS = 37140;
594
  static const uint32_t SYNC_FLAGS = 37141;
595
  static const uint32_t SYNC_FENCE = 37142;
596
  static const uint32_t SYNC_GPU_COMMANDS_COMPLETE = 37143;
597
  static const uint32_t UNSIGNALED = 37144;
598
  static const uint32_t SIGNALED = 37145;
599
  static const uint32_t ALREADY_SIGNALED = 37146;
600
  static const uint32_t TIMEOUT_EXPIRED = 37147;
601
  static const uint32_t CONDITION_SATISFIED = 37148;
602
#ifdef XP_WIN
603
#undef WAIT_FAILED
604
#endif // XP_WIN
605
  static const uint32_t WAIT_FAILED = 37149;
606
607
  static const uint32_t SYNC_FLUSH_COMMANDS_BIT = 1;
608
  static const uint32_t VERTEX_ATTRIB_ARRAY_DIVISOR = 35070;
609
  static const uint32_t ANY_SAMPLES_PASSED = 35887;
610
  static const uint32_t ANY_SAMPLES_PASSED_CONSERVATIVE = 36202;
611
  static const uint32_t SAMPLER_BINDING = 35097;
612
  static const uint32_t RGB10_A2UI = 36975;
613
  static const uint32_t INT_2_10_10_10_REV = 36255;
614
  static const uint32_t TRANSFORM_FEEDBACK = 36386;
615
  static const uint32_t TRANSFORM_FEEDBACK_PAUSED = 36387;
616
  static const uint32_t TRANSFORM_FEEDBACK_ACTIVE = 36388;
617
  static const uint32_t TRANSFORM_FEEDBACK_BINDING = 36389;
618
  static const uint32_t TEXTURE_IMMUTABLE_FORMAT = 37167;
619
  static const uint32_t MAX_ELEMENT_INDEX = 36203;
620
  static const uint32_t TEXTURE_IMMUTABLE_LEVELS = 33503;
621
  static const int64_t TIMEOUT_IGNORED = -1;
622
  static const uint32_t MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447;
623
  static const uint32_t DEPTH_BUFFER_BIT = 256;
624
  static const uint32_t STENCIL_BUFFER_BIT = 1024;
625
  static const uint32_t COLOR_BUFFER_BIT = 16384;
626
  static const uint32_t POINTS = 0;
627
  static const uint32_t LINES = 1;
628
  static const uint32_t LINE_LOOP = 2;
629
  static const uint32_t LINE_STRIP = 3;
630
  static const uint32_t TRIANGLES = 4;
631
  static const uint32_t TRIANGLE_STRIP = 5;
632
  static const uint32_t TRIANGLE_FAN = 6;
633
  static const uint32_t ZERO = 0;
634
  static const uint32_t ONE = 1;
635
  static const uint32_t SRC_COLOR = 768;
636
  static const uint32_t ONE_MINUS_SRC_COLOR = 769;
637
  static const uint32_t SRC_ALPHA = 770;
638
  static const uint32_t ONE_MINUS_SRC_ALPHA = 771;
639
  static const uint32_t DST_ALPHA = 772;
640
  static const uint32_t ONE_MINUS_DST_ALPHA = 773;
641
  static const uint32_t DST_COLOR = 774;
642
  static const uint32_t ONE_MINUS_DST_COLOR = 775;
643
  static const uint32_t SRC_ALPHA_SATURATE = 776;
644
  static const uint32_t FUNC_ADD = 32774;
645
  static const uint32_t BLEND_EQUATION = 32777;
646
  static const uint32_t BLEND_EQUATION_RGB = 32777;
647
  static const uint32_t BLEND_EQUATION_ALPHA = 34877;
648
  static const uint32_t FUNC_SUBTRACT = 32778;
649
  static const uint32_t FUNC_REVERSE_SUBTRACT = 32779;
650
  static const uint32_t BLEND_DST_RGB = 32968;
651
  static const uint32_t BLEND_SRC_RGB = 32969;
652
  static const uint32_t BLEND_DST_ALPHA = 32970;
653
  static const uint32_t BLEND_SRC_ALPHA = 32971;
654
  static const uint32_t CONSTANT_COLOR = 32769;
655
  static const uint32_t ONE_MINUS_CONSTANT_COLOR = 32770;
656
  static const uint32_t CONSTANT_ALPHA = 32771;
657
  static const uint32_t ONE_MINUS_CONSTANT_ALPHA = 32772;
658
  static const uint32_t BLEND_COLOR = 32773;
659
  static const uint32_t ARRAY_BUFFER = 34962;
660
  static const uint32_t ELEMENT_ARRAY_BUFFER = 34963;
661
  static const uint32_t ARRAY_BUFFER_BINDING = 34964;
662
  static const uint32_t ELEMENT_ARRAY_BUFFER_BINDING = 34965;
663
  static const uint32_t STREAM_DRAW = 35040;
664
  static const uint32_t STATIC_DRAW = 35044;
665
  static const uint32_t DYNAMIC_DRAW = 35048;
666
  static const uint32_t BUFFER_SIZE = 34660;
667
  static const uint32_t BUFFER_USAGE = 34661;
668
  static const uint32_t CURRENT_VERTEX_ATTRIB = 34342;
669
  static const uint32_t FRONT = 1028;
670
  static const uint32_t BACK = 1029;
671
  static const uint32_t FRONT_AND_BACK = 1032;
672
  static const uint32_t CULL_FACE = 2884;
673
  static const uint32_t BLEND = 3042;
674
  static const uint32_t DITHER = 3024;
675
  static const uint32_t STENCIL_TEST = 2960;
676
  static const uint32_t DEPTH_TEST = 2929;
677
  static const uint32_t SCISSOR_TEST = 3089;
678
  static const uint32_t POLYGON_OFFSET_FILL = 32823;
679
  static const uint32_t SAMPLE_ALPHA_TO_COVERAGE = 32926;
680
  static const uint32_t SAMPLE_COVERAGE = 32928;
681
#ifdef XP_WIN
682
#undef NO_ERROR
683
#endif // XP_WIN
684
  static const uint32_t NO_ERROR = 0;
685
686
  static const uint32_t INVALID_ENUM = 1280;
687
  static const uint32_t INVALID_VALUE = 1281;
688
  static const uint32_t INVALID_OPERATION = 1282;
689
  static const uint32_t OUT_OF_MEMORY = 1285;
690
  static const uint32_t CW = 2304;
691
  static const uint32_t CCW = 2305;
692
  static const uint32_t LINE_WIDTH = 2849;
693
  static const uint32_t ALIASED_POINT_SIZE_RANGE = 33901;
694
  static const uint32_t ALIASED_LINE_WIDTH_RANGE = 33902;
695
  static const uint32_t CULL_FACE_MODE = 2885;
696
  static const uint32_t FRONT_FACE = 2886;
697
  static const uint32_t DEPTH_RANGE = 2928;
698
  static const uint32_t DEPTH_WRITEMASK = 2930;
699
  static const uint32_t DEPTH_CLEAR_VALUE = 2931;
700
  static const uint32_t DEPTH_FUNC = 2932;
701
  static const uint32_t STENCIL_CLEAR_VALUE = 2961;
702
  static const uint32_t STENCIL_FUNC = 2962;
703
  static const uint32_t STENCIL_FAIL = 2964;
704
  static const uint32_t STENCIL_PASS_DEPTH_FAIL = 2965;
705
  static const uint32_t STENCIL_PASS_DEPTH_PASS = 2966;
706
  static const uint32_t STENCIL_REF = 2967;
707
  static const uint32_t STENCIL_VALUE_MASK = 2963;
708
  static const uint32_t STENCIL_WRITEMASK = 2968;
709
  static const uint32_t STENCIL_BACK_FUNC = 34816;
710
  static const uint32_t STENCIL_BACK_FAIL = 34817;
711
  static const uint32_t STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
712
  static const uint32_t STENCIL_BACK_PASS_DEPTH_PASS = 34819;
713
  static const uint32_t STENCIL_BACK_REF = 36003;
714
  static const uint32_t STENCIL_BACK_VALUE_MASK = 36004;
715
  static const uint32_t STENCIL_BACK_WRITEMASK = 36005;
716
  static const uint32_t VIEWPORT = 2978;
717
  static const uint32_t SCISSOR_BOX = 3088;
718
  static const uint32_t COLOR_CLEAR_VALUE = 3106;
719
  static const uint32_t COLOR_WRITEMASK = 3107;
720
  static const uint32_t UNPACK_ALIGNMENT = 3317;
721
  static const uint32_t PACK_ALIGNMENT = 3333;
722
  static const uint32_t MAX_TEXTURE_SIZE = 3379;
723
  static const uint32_t MAX_VIEWPORT_DIMS = 3386;
724
  static const uint32_t SUBPIXEL_BITS = 3408;
725
  static const uint32_t RED_BITS = 3410;
726
  static const uint32_t GREEN_BITS = 3411;
727
  static const uint32_t BLUE_BITS = 3412;
728
  static const uint32_t ALPHA_BITS = 3413;
729
  static const uint32_t DEPTH_BITS = 3414;
730
  static const uint32_t STENCIL_BITS = 3415;
731
  static const uint32_t POLYGON_OFFSET_UNITS = 10752;
732
  static const uint32_t POLYGON_OFFSET_FACTOR = 32824;
733
  static const uint32_t TEXTURE_BINDING_2D = 32873;
734
  static const uint32_t SAMPLE_BUFFERS = 32936;
735
  static const uint32_t SAMPLES = 32937;
736
  static const uint32_t SAMPLE_COVERAGE_VALUE = 32938;
737
  static const uint32_t SAMPLE_COVERAGE_INVERT = 32939;
738
  static const uint32_t COMPRESSED_TEXTURE_FORMATS = 34467;
739
  static const uint32_t DONT_CARE = 4352;
740
  static const uint32_t FASTEST = 4353;
741
  static const uint32_t NICEST = 4354;
742
  static const uint32_t GENERATE_MIPMAP_HINT = 33170;
743
  static const uint32_t BYTE = 5120;
744
  static const uint32_t UNSIGNED_BYTE = 5121;
745
  static const uint32_t SHORT = 5122;
746
  static const uint32_t UNSIGNED_SHORT = 5123;
747
  static const uint32_t INT = 5124;
748
  static const uint32_t UNSIGNED_INT = 5125;
749
  static const uint32_t FLOAT = 5126;
750
  static const uint32_t DEPTH_COMPONENT = 6402;
751
  static const uint32_t ALPHA = 6406;
752
  static const uint32_t RGB = 6407;
753
  static const uint32_t RGBA = 6408;
754
  static const uint32_t LUMINANCE = 6409;
755
  static const uint32_t LUMINANCE_ALPHA = 6410;
756
  static const uint32_t UNSIGNED_SHORT_4_4_4_4 = 32819;
757
  static const uint32_t UNSIGNED_SHORT_5_5_5_1 = 32820;
758
  static const uint32_t UNSIGNED_SHORT_5_6_5 = 33635;
759
  static const uint32_t FRAGMENT_SHADER = 35632;
760
  static const uint32_t VERTEX_SHADER = 35633;
761
  static const uint32_t MAX_VERTEX_ATTRIBS = 34921;
762
  static const uint32_t MAX_VERTEX_UNIFORM_VECTORS = 36347;
763
  static const uint32_t MAX_VARYING_VECTORS = 36348;
764
  static const uint32_t MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
765
  static const uint32_t MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
766
  static const uint32_t MAX_TEXTURE_IMAGE_UNITS = 34930;
767
  static const uint32_t MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
768
  static const uint32_t SHADER_TYPE = 35663;
769
  static const uint32_t DELETE_STATUS = 35712;
770
  static const uint32_t LINK_STATUS = 35714;
771
  static const uint32_t VALIDATE_STATUS = 35715;
772
  static const uint32_t ATTACHED_SHADERS = 35717;
773
  static const uint32_t ACTIVE_UNIFORMS = 35718;
774
  static const uint32_t ACTIVE_ATTRIBUTES = 35721;
775
  static const uint32_t SHADING_LANGUAGE_VERSION = 35724;
776
  static const uint32_t CURRENT_PROGRAM = 35725;
777
  static const uint32_t NEVER = 512;
778
  static const uint32_t LESS = 513;
779
  static const uint32_t EQUAL = 514;
780
  static const uint32_t LEQUAL = 515;
781
  static const uint32_t GREATER = 516;
782
  static const uint32_t NOTEQUAL = 517;
783
  static const uint32_t GEQUAL = 518;
784
  static const uint32_t ALWAYS = 519;
785
  static const uint32_t KEEP = 7680;
786
  static const uint32_t REPLACE = 7681;
787
  static const uint32_t INCR = 7682;
788
  static const uint32_t DECR = 7683;
789
  static const uint32_t INVERT = 5386;
790
  static const uint32_t INCR_WRAP = 34055;
791
  static const uint32_t DECR_WRAP = 34056;
792
  static const uint32_t VENDOR = 7936;
793
  static const uint32_t RENDERER = 7937;
794
  static const uint32_t VERSION = 7938;
795
  static const uint32_t NEAREST = 9728;
796
  static const uint32_t LINEAR = 9729;
797
  static const uint32_t NEAREST_MIPMAP_NEAREST = 9984;
798
  static const uint32_t LINEAR_MIPMAP_NEAREST = 9985;
799
  static const uint32_t NEAREST_MIPMAP_LINEAR = 9986;
800
  static const uint32_t LINEAR_MIPMAP_LINEAR = 9987;
801
  static const uint32_t TEXTURE_MAG_FILTER = 10240;
802
  static const uint32_t TEXTURE_MIN_FILTER = 10241;
803
  static const uint32_t TEXTURE_WRAP_S = 10242;
804
  static const uint32_t TEXTURE_WRAP_T = 10243;
805
  static const uint32_t TEXTURE_2D = 3553;
806
  static const uint32_t TEXTURE = 5890;
807
  static const uint32_t TEXTURE_CUBE_MAP = 34067;
808
  static const uint32_t TEXTURE_BINDING_CUBE_MAP = 34068;
809
  static const uint32_t TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
810
  static const uint32_t TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
811
  static const uint32_t TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
812
  static const uint32_t TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
813
  static const uint32_t TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
814
  static const uint32_t TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
815
  static const uint32_t MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
816
  static const uint32_t TEXTURE0 = 33984;
817
  static const uint32_t TEXTURE1 = 33985;
818
  static const uint32_t TEXTURE2 = 33986;
819
  static const uint32_t TEXTURE3 = 33987;
820
  static const uint32_t TEXTURE4 = 33988;
821
  static const uint32_t TEXTURE5 = 33989;
822
  static const uint32_t TEXTURE6 = 33990;
823
  static const uint32_t TEXTURE7 = 33991;
824
  static const uint32_t TEXTURE8 = 33992;
825
  static const uint32_t TEXTURE9 = 33993;
826
  static const uint32_t TEXTURE10 = 33994;
827
  static const uint32_t TEXTURE11 = 33995;
828
  static const uint32_t TEXTURE12 = 33996;
829
  static const uint32_t TEXTURE13 = 33997;
830
  static const uint32_t TEXTURE14 = 33998;
831
  static const uint32_t TEXTURE15 = 33999;
832
  static const uint32_t TEXTURE16 = 34000;
833
  static const uint32_t TEXTURE17 = 34001;
834
  static const uint32_t TEXTURE18 = 34002;
835
  static const uint32_t TEXTURE19 = 34003;
836
  static const uint32_t TEXTURE20 = 34004;
837
  static const uint32_t TEXTURE21 = 34005;
838
  static const uint32_t TEXTURE22 = 34006;
839
  static const uint32_t TEXTURE23 = 34007;
840
  static const uint32_t TEXTURE24 = 34008;
841
  static const uint32_t TEXTURE25 = 34009;
842
  static const uint32_t TEXTURE26 = 34010;
843
  static const uint32_t TEXTURE27 = 34011;
844
  static const uint32_t TEXTURE28 = 34012;
845
  static const uint32_t TEXTURE29 = 34013;
846
  static const uint32_t TEXTURE30 = 34014;
847
  static const uint32_t TEXTURE31 = 34015;
848
  static const uint32_t ACTIVE_TEXTURE = 34016;
849
  static const uint32_t REPEAT = 10497;
850
  static const uint32_t CLAMP_TO_EDGE = 33071;
851
  static const uint32_t MIRRORED_REPEAT = 33648;
852
  static const uint32_t FLOAT_VEC2 = 35664;
853
  static const uint32_t FLOAT_VEC3 = 35665;
854
  static const uint32_t FLOAT_VEC4 = 35666;
855
  static const uint32_t INT_VEC2 = 35667;
856
  static const uint32_t INT_VEC3 = 35668;
857
  static const uint32_t INT_VEC4 = 35669;
858
  static const uint32_t BOOL = 35670;
859
  static const uint32_t BOOL_VEC2 = 35671;
860
  static const uint32_t BOOL_VEC3 = 35672;
861
  static const uint32_t BOOL_VEC4 = 35673;
862
  static const uint32_t FLOAT_MAT2 = 35674;
863
  static const uint32_t FLOAT_MAT3 = 35675;
864
  static const uint32_t FLOAT_MAT4 = 35676;
865
  static const uint32_t SAMPLER_2D = 35678;
866
  static const uint32_t SAMPLER_CUBE = 35680;
867
  static const uint32_t VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
868
  static const uint32_t VERTEX_ATTRIB_ARRAY_SIZE = 34339;
869
  static const uint32_t VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
870
  static const uint32_t VERTEX_ATTRIB_ARRAY_TYPE = 34341;
871
  static const uint32_t VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
872
  static const uint32_t VERTEX_ATTRIB_ARRAY_POINTER = 34373;
873
  static const uint32_t VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
874
  static const uint32_t IMPLEMENTATION_COLOR_READ_TYPE = 35738;
875
  static const uint32_t IMPLEMENTATION_COLOR_READ_FORMAT = 35739;
876
  static const uint32_t COMPILE_STATUS = 35713;
877
  static const uint32_t LOW_FLOAT = 36336;
878
  static const uint32_t MEDIUM_FLOAT = 36337;
879
  static const uint32_t HIGH_FLOAT = 36338;
880
  static const uint32_t LOW_INT = 36339;
881
  static const uint32_t MEDIUM_INT = 36340;
882
  static const uint32_t HIGH_INT = 36341;
883
  static const uint32_t FRAMEBUFFER = 36160;
884
  static const uint32_t RENDERBUFFER = 36161;
885
  static const uint32_t RGBA4 = 32854;
886
  static const uint32_t RGB5_A1 = 32855;
887
  static const uint32_t RGB565 = 36194;
888
  static const uint32_t DEPTH_COMPONENT16 = 33189;
889
  static const uint32_t STENCIL_INDEX8 = 36168;
890
  static const uint32_t DEPTH_STENCIL = 34041;
891
  static const uint32_t RENDERBUFFER_WIDTH = 36162;
892
  static const uint32_t RENDERBUFFER_HEIGHT = 36163;
893
  static const uint32_t RENDERBUFFER_INTERNAL_FORMAT = 36164;
894
  static const uint32_t RENDERBUFFER_RED_SIZE = 36176;
895
  static const uint32_t RENDERBUFFER_GREEN_SIZE = 36177;
896
  static const uint32_t RENDERBUFFER_BLUE_SIZE = 36178;
897
  static const uint32_t RENDERBUFFER_ALPHA_SIZE = 36179;
898
  static const uint32_t RENDERBUFFER_DEPTH_SIZE = 36180;
899
  static const uint32_t RENDERBUFFER_STENCIL_SIZE = 36181;
900
  static const uint32_t FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
901
  static const uint32_t FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
902
  static const uint32_t FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
903
  static const uint32_t FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
904
  static const uint32_t COLOR_ATTACHMENT0 = 36064;
905
  static const uint32_t DEPTH_ATTACHMENT = 36096;
906
  static const uint32_t STENCIL_ATTACHMENT = 36128;
907
  static const uint32_t DEPTH_STENCIL_ATTACHMENT = 33306;
908
  static const uint32_t NONE = 0;
909
  static const uint32_t FRAMEBUFFER_COMPLETE = 36053;
910
  static const uint32_t FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
911
  static const uint32_t FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
912
  static const uint32_t FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
913
  static const uint32_t FRAMEBUFFER_UNSUPPORTED = 36061;
914
  static const uint32_t FRAMEBUFFER_BINDING = 36006;
915
  static const uint32_t RENDERBUFFER_BINDING = 36007;
916
  static const uint32_t MAX_RENDERBUFFER_SIZE = 34024;
917
  static const uint32_t INVALID_FRAMEBUFFER_OPERATION = 1286;
918
  static const uint32_t UNPACK_FLIP_Y_WEBGL = 37440;
919
  static const uint32_t UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
920
  static const uint32_t CONTEXT_LOST_WEBGL = 37442;
921
  static const uint32_t UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
922
  static const uint32_t BROWSER_DEFAULT_WEBGL = 37444;
923
  bool
924
  ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
925
926
  const JSClass*
927
  GetJSClass();
928
929
  bool
930
  Wrap(JSContext* aCx, mozilla::WebGL2Context* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
931
932
  template <class T>
933
  inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
934
0
  {
935
0
    JS::Rooted<JSObject*> reflector(aCx);
936
0
    return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
937
0
  }
938
939
  // We declare this as an array so that retrieving a pointer to this
940
  // binding's property hooks only requires compile/link-time resolvable
941
  // address arithmetic.  Declaring it as a pointer instead would require
942
  // doing a run-time load to fetch a pointer to this binding's property
943
  // hooks.  And then structures which embedded a pointer to this structure
944
  // would require a run-time load for proper initialization, which would
945
  // then induce static constructors.  Lots of static constructors.
946
  extern const NativePropertyHooks sNativePropertyHooks[];
947
948
  void
949
  CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
950
951
  inline JS::Handle<JSObject*> GetProtoObjectHandle(JSContext* aCx)
952
0
  {
953
0
    /* Get the interface prototype object for this class.  This will create the
954
0
       object as needed. */
955
0
    return GetPerInterfaceObjectHandle(aCx, prototypes::id::WebGL2RenderingContext,
956
0
                                       &CreateInterfaceObjects,
957
0
                                       /* aDefineOnGlobal = */ true);
958
0
959
0
  }
960
961
  inline JS::Handle<JSObject*> GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true)
962
0
  {
963
0
    /* Get the interface object for this class.  This will create the object as
964
0
       needed. */
965
0
966
0
    return GetPerInterfaceObjectHandle(aCx, constructors::id::WebGL2RenderingContext,
967
0
                                       &CreateInterfaceObjects,
968
0
                                       aDefineOnGlobal);
969
0
  }
970
971
  JSObject*
972
  GetConstructorObject(JSContext* aCx);
973
974
} // namespace WebGL2RenderingContext_Binding
975
976
977
978
namespace WebGLSampler_Binding {
979
980
  typedef mozilla::WebGLSampler NativeType;
981
982
  bool
983
  ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
984
985
  const JSClass*
986
  GetJSClass();
987
988
  bool
989
  Wrap(JSContext* aCx, mozilla::WebGLSampler* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
990
991
  template <class T>
992
  inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
993
0
  {
994
0
    JS::Rooted<JSObject*> reflector(aCx);
995
0
    return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
996
0
  }
997
998
  // We declare this as an array so that retrieving a pointer to this
999
  // binding's property hooks only requires compile/link-time resolvable
1000
  // address arithmetic.  Declaring it as a pointer instead would require
1001
  // doing a run-time load to fetch a pointer to this binding's property
1002
  // hooks.  And then structures which embedded a pointer to this structure
1003
  // would require a run-time load for proper initialization, which would
1004
  // then induce static constructors.  Lots of static constructors.
1005
  extern const NativePropertyHooks sNativePropertyHooks[];
1006
1007
  void
1008
  CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
1009
1010
  inline JS::Handle<JSObject*> GetProtoObjectHandle(JSContext* aCx)
1011
0
  {
1012
0
    /* Get the interface prototype object for this class.  This will create the
1013
0
       object as needed. */
1014
0
    return GetPerInterfaceObjectHandle(aCx, prototypes::id::WebGLSampler,
1015
0
                                       &CreateInterfaceObjects,
1016
0
                                       /* aDefineOnGlobal = */ true);
1017
0
1018
0
  }
1019
1020
  inline JS::Handle<JSObject*> GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true)
1021
0
  {
1022
0
    /* Get the interface object for this class.  This will create the object as
1023
0
       needed. */
1024
0
1025
0
    return GetPerInterfaceObjectHandle(aCx, constructors::id::WebGLSampler,
1026
0
                                       &CreateInterfaceObjects,
1027
0
                                       aDefineOnGlobal);
1028
0
  }
1029
1030
  JSObject*
1031
  GetConstructorObject(JSContext* aCx);
1032
1033
} // namespace WebGLSampler_Binding
1034
1035
1036
1037
namespace WebGLSync_Binding {
1038
1039
  typedef mozilla::WebGLSync NativeType;
1040
1041
  bool
1042
  ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
1043
1044
  const JSClass*
1045
  GetJSClass();
1046
1047
  bool
1048
  Wrap(JSContext* aCx, mozilla::WebGLSync* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
1049
1050
  template <class T>
1051
  inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
1052
0
  {
1053
0
    JS::Rooted<JSObject*> reflector(aCx);
1054
0
    return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
1055
0
  }
1056
1057
  // We declare this as an array so that retrieving a pointer to this
1058
  // binding's property hooks only requires compile/link-time resolvable
1059
  // address arithmetic.  Declaring it as a pointer instead would require
1060
  // doing a run-time load to fetch a pointer to this binding's property
1061
  // hooks.  And then structures which embedded a pointer to this structure
1062
  // would require a run-time load for proper initialization, which would
1063
  // then induce static constructors.  Lots of static constructors.
1064
  extern const NativePropertyHooks sNativePropertyHooks[];
1065
1066
  void
1067
  CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
1068
1069
  inline JS::Handle<JSObject*> GetProtoObjectHandle(JSContext* aCx)
1070
0
  {
1071
0
    /* Get the interface prototype object for this class.  This will create the
1072
0
       object as needed. */
1073
0
    return GetPerInterfaceObjectHandle(aCx, prototypes::id::WebGLSync,
1074
0
                                       &CreateInterfaceObjects,
1075
0
                                       /* aDefineOnGlobal = */ true);
1076
0
1077
0
  }
1078
1079
  inline JS::Handle<JSObject*> GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true)
1080
0
  {
1081
0
    /* Get the interface object for this class.  This will create the object as
1082
0
       needed. */
1083
0
1084
0
    return GetPerInterfaceObjectHandle(aCx, constructors::id::WebGLSync,
1085
0
                                       &CreateInterfaceObjects,
1086
0
                                       aDefineOnGlobal);
1087
0
  }
1088
1089
  JSObject*
1090
  GetConstructorObject(JSContext* aCx);
1091
1092
} // namespace WebGLSync_Binding
1093
1094
1095
1096
namespace WebGLTransformFeedback_Binding {
1097
1098
  typedef mozilla::WebGLTransformFeedback NativeType;
1099
1100
  bool
1101
  ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
1102
1103
  const JSClass*
1104
  GetJSClass();
1105
1106
  bool
1107
  Wrap(JSContext* aCx, mozilla::WebGLTransformFeedback* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
1108
1109
  template <class T>
1110
  inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
1111
0
  {
1112
0
    JS::Rooted<JSObject*> reflector(aCx);
1113
0
    return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
1114
0
  }
1115
1116
  // We declare this as an array so that retrieving a pointer to this
1117
  // binding's property hooks only requires compile/link-time resolvable
1118
  // address arithmetic.  Declaring it as a pointer instead would require
1119
  // doing a run-time load to fetch a pointer to this binding's property
1120
  // hooks.  And then structures which embedded a pointer to this structure
1121
  // would require a run-time load for proper initialization, which would
1122
  // then induce static constructors.  Lots of static constructors.
1123
  extern const NativePropertyHooks sNativePropertyHooks[];
1124
1125
  void
1126
  CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
1127
1128
  inline JS::Handle<JSObject*> GetProtoObjectHandle(JSContext* aCx)
1129
0
  {
1130
0
    /* Get the interface prototype object for this class.  This will create the
1131
0
       object as needed. */
1132
0
    return GetPerInterfaceObjectHandle(aCx, prototypes::id::WebGLTransformFeedback,
1133
0
                                       &CreateInterfaceObjects,
1134
0
                                       /* aDefineOnGlobal = */ true);
1135
0
1136
0
  }
1137
1138
  inline JS::Handle<JSObject*> GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true)
1139
0
  {
1140
0
    /* Get the interface object for this class.  This will create the object as
1141
0
       needed. */
1142
0
1143
0
    return GetPerInterfaceObjectHandle(aCx, constructors::id::WebGLTransformFeedback,
1144
0
                                       &CreateInterfaceObjects,
1145
0
                                       aDefineOnGlobal);
1146
0
  }
1147
1148
  JSObject*
1149
  GetConstructorObject(JSContext* aCx);
1150
1151
} // namespace WebGLTransformFeedback_Binding
1152
1153
1154
1155
} // namespace dom
1156
} // namespace mozilla
1157
1158
#endif // mozilla_dom_WebGL2RenderingContextBinding_h