@gjsify/webgl 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.
Files changed (154) hide show
  1. package/README.md +14 -0
  2. package/lib/cjs/@types/glsl-tokenizer/index.d.js +0 -0
  3. package/lib/cjs/extensions/ext-blend-minmax.js +37 -0
  4. package/lib/cjs/extensions/ext-texture-filter-anisotropic.js +37 -0
  5. package/lib/cjs/extensions/oes-element-index-unit.js +33 -0
  6. package/lib/cjs/extensions/oes-standard-derivatives.js +36 -0
  7. package/lib/cjs/extensions/oes-texture-float-linear.js +33 -0
  8. package/lib/cjs/extensions/oes-texture-float.js +33 -0
  9. package/lib/cjs/extensions/stackgl-destroy-context.js +31 -0
  10. package/lib/cjs/extensions/stackgl-resize-drawing-buffer.js +31 -0
  11. package/lib/cjs/html-canvas-element.js +89 -0
  12. package/lib/cjs/index.js +34 -0
  13. package/lib/cjs/index.spec.js +175 -0
  14. package/lib/cjs/linkable.js +69 -0
  15. package/lib/cjs/test.js +25 -0
  16. package/lib/cjs/types/constructor.js +15 -0
  17. package/lib/cjs/types/extension.js +15 -0
  18. package/lib/cjs/types/index.js +21 -0
  19. package/lib/cjs/types/typed-array.js +15 -0
  20. package/lib/cjs/types/webgl-constants.js +15 -0
  21. package/lib/cjs/types/webgl-context-attribute-options.js +15 -0
  22. package/lib/cjs/utils.js +241 -0
  23. package/lib/cjs/webgl-active-info.js +29 -0
  24. package/lib/cjs/webgl-buffer.js +37 -0
  25. package/lib/cjs/webgl-context-attributes.js +43 -0
  26. package/lib/cjs/webgl-drawing-buffer-wrapper.js +29 -0
  27. package/lib/cjs/webgl-framebuffer.js +128 -0
  28. package/lib/cjs/webgl-program.js +45 -0
  29. package/lib/cjs/webgl-renderbuffer.js +43 -0
  30. package/lib/cjs/webgl-rendering-context.js +3355 -0
  31. package/lib/cjs/webgl-shader-precision-format.js +30 -0
  32. package/lib/cjs/webgl-shader.js +42 -0
  33. package/lib/cjs/webgl-texture-unit.js +31 -0
  34. package/lib/cjs/webgl-texture.js +41 -0
  35. package/lib/cjs/webgl-uniform-location.js +34 -0
  36. package/lib/cjs/webgl-vertex-attribute.js +166 -0
  37. package/lib/esm/@types/glsl-tokenizer/index.d.js +0 -0
  38. package/lib/esm/extensions/ext-blend-minmax.js +18 -0
  39. package/lib/esm/extensions/ext-texture-filter-anisotropic.js +18 -0
  40. package/lib/esm/extensions/oes-element-index-unit.js +14 -0
  41. package/lib/esm/extensions/oes-standard-derivatives.js +17 -0
  42. package/lib/esm/extensions/oes-texture-float-linear.js +14 -0
  43. package/lib/esm/extensions/oes-texture-float.js +14 -0
  44. package/lib/esm/extensions/stackgl-destroy-context.js +12 -0
  45. package/lib/esm/extensions/stackgl-resize-drawing-buffer.js +12 -0
  46. package/lib/esm/html-canvas-element.js +70 -0
  47. package/lib/esm/index.js +18 -0
  48. package/lib/esm/index.spec.js +146 -0
  49. package/lib/esm/linkable.js +50 -0
  50. package/lib/esm/test.js +3 -0
  51. package/lib/esm/types/constructor.js +0 -0
  52. package/lib/esm/types/extension.js +0 -0
  53. package/lib/esm/types/index.js +5 -0
  54. package/lib/esm/types/typed-array.js +0 -0
  55. package/lib/esm/types/webgl-constants.js +0 -0
  56. package/lib/esm/types/webgl-context-attribute-options.js +0 -0
  57. package/lib/esm/utils.js +212 -0
  58. package/lib/esm/webgl-active-info.js +10 -0
  59. package/lib/esm/webgl-buffer.js +18 -0
  60. package/lib/esm/webgl-context-attributes.js +24 -0
  61. package/lib/esm/webgl-drawing-buffer-wrapper.js +10 -0
  62. package/lib/esm/webgl-framebuffer.js +109 -0
  63. package/lib/esm/webgl-program.js +26 -0
  64. package/lib/esm/webgl-renderbuffer.js +24 -0
  65. package/lib/esm/webgl-rendering-context.js +3343 -0
  66. package/lib/esm/webgl-shader-precision-format.js +11 -0
  67. package/lib/esm/webgl-shader.js +23 -0
  68. package/lib/esm/webgl-texture-unit.js +12 -0
  69. package/lib/esm/webgl-texture.js +22 -0
  70. package/lib/esm/webgl-uniform-location.js +15 -0
  71. package/lib/esm/webgl-vertex-attribute.js +147 -0
  72. package/lib/types/extensions/ext-blend-minmax.d.ts +7 -0
  73. package/lib/types/extensions/ext-texture-filter-anisotropic.d.ts +7 -0
  74. package/lib/types/extensions/oes-element-index-unit.d.ts +4 -0
  75. package/lib/types/extensions/oes-standard-derivatives.d.ts +6 -0
  76. package/lib/types/extensions/oes-texture-float-linear.d.ts +4 -0
  77. package/lib/types/extensions/oes-texture-float.d.ts +4 -0
  78. package/lib/types/extensions/stackgl-destroy-context.d.ts +6 -0
  79. package/lib/types/extensions/stackgl-resize-drawing-buffer.d.ts +6 -0
  80. package/lib/types/html-canvas-element.d.ts +38 -0
  81. package/lib/types/index.d.ts +18 -0
  82. package/lib/types/linkable.d.ts +13 -0
  83. package/lib/types/types/constructor.d.ts +3 -0
  84. package/lib/types/types/extension.d.ts +2 -0
  85. package/lib/types/types/index.d.ts +5 -0
  86. package/lib/types/types/typed-array.d.ts +1 -0
  87. package/lib/types/types/webgl-constants.d.ts +299 -0
  88. package/lib/types/types/webgl-context-attribute-options.d.ts +12 -0
  89. package/lib/types/utils.d.ts +32 -0
  90. package/lib/types/webgl-active-info.d.ts +7 -0
  91. package/lib/types/webgl-buffer.d.ts +10 -0
  92. package/lib/types/webgl-context-attributes.d.ts +14 -0
  93. package/lib/types/webgl-drawing-buffer-wrapper.d.ts +6 -0
  94. package/lib/types/webgl-framebuffer.d.ts +17 -0
  95. package/lib/types/webgl-program.d.ts +14 -0
  96. package/lib/types/webgl-renderbuffer.d.ts +12 -0
  97. package/lib/types/webgl-rendering-context.d.ts +260 -0
  98. package/lib/types/webgl-shader-precision-format.d.ts +7 -0
  99. package/lib/types/webgl-shader.d.ts +12 -0
  100. package/lib/types/webgl-texture-unit.d.ts +10 -0
  101. package/lib/types/webgl-texture.d.ts +14 -0
  102. package/lib/types/webgl-uniform-location.d.ts +18 -0
  103. package/lib/types/webgl-vertex-attribute.d.ts +38 -0
  104. package/meson.build +39 -0
  105. package/package.json +55 -0
  106. package/src/test/app.vala +60 -0
  107. package/src/ts/@types/glsl-tokenizer/index.d.ts +18 -0
  108. package/src/ts/extensions/angle-instanced-arrays.ts.off +232 -0
  109. package/src/ts/extensions/ext-blend-minmax.ts +18 -0
  110. package/src/ts/extensions/ext-texture-filter-anisotropic.ts +18 -0
  111. package/src/ts/extensions/oes-element-index-unit.ts +14 -0
  112. package/src/ts/extensions/oes-standard-derivatives.ts +17 -0
  113. package/src/ts/extensions/oes-texture-float-linear.ts +14 -0
  114. package/src/ts/extensions/oes-texture-float.ts +14 -0
  115. package/src/ts/extensions/oes-vertex-array-object.ts.off +128 -0
  116. package/src/ts/extensions/stackgl-destroy-context.ts +12 -0
  117. package/src/ts/extensions/stackgl-resize-drawing-buffer.ts +14 -0
  118. package/src/ts/extensions/webgl-draw-buffers.ts.off +107 -0
  119. package/src/ts/html-canvas-element.ts +98 -0
  120. package/src/ts/index.spec.ts +186 -0
  121. package/src/ts/index.ts +21 -0
  122. package/src/ts/linkable.ts +55 -0
  123. package/src/ts/test.ts +6 -0
  124. package/src/ts/types/constructor.ts +3 -0
  125. package/src/ts/types/extension.ts +3 -0
  126. package/src/ts/types/index.ts +26 -0
  127. package/src/ts/types/typed-array.ts +1 -0
  128. package/src/ts/types/webgl-constants.ts +300 -0
  129. package/src/ts/types/webgl-context-attribute-options.ts +12 -0
  130. package/src/ts/utils.ts +266 -0
  131. package/src/ts/webgl-active-info.ts +13 -0
  132. package/src/ts/webgl-buffer.ts +21 -0
  133. package/src/ts/webgl-context-attributes.ts +24 -0
  134. package/src/ts/webgl-drawing-buffer-wrapper.ts +10 -0
  135. package/src/ts/webgl-framebuffer.ts +133 -0
  136. package/src/ts/webgl-program.ts +30 -0
  137. package/src/ts/webgl-renderbuffer.ts +28 -0
  138. package/src/ts/webgl-rendering-context.ts +4050 -0
  139. package/src/ts/webgl-shader-precision-format.ts +12 -0
  140. package/src/ts/webgl-shader.ts +29 -0
  141. package/src/ts/webgl-texture-unit.ts +16 -0
  142. package/src/ts/webgl-texture.ts +27 -0
  143. package/src/ts/webgl-uniform-location.ts +18 -0
  144. package/src/ts/webgl-vertex-attribute.ts +169 -0
  145. package/src/vala/handle-types.vala +23 -0
  146. package/src/vala/webgl-rendering-context-base.vala +1265 -0
  147. package/src/vala/webgl-rendering-context.vala +265 -0
  148. package/src/vapi/epoxy.vapi +14558 -0
  149. package/src/vapi/glesv2.vapi +670 -0
  150. package/test.gjs.js +39972 -0
  151. package/test.gjs.js.meta.json +1 -0
  152. package/tmp/.tsbuildinfo +1 -0
  153. package/tsconfig.json +38 -0
  154. package/tsconfig.types.json +7 -0
@@ -0,0 +1,265 @@
1
+
2
+ namespace Gwebgl {
3
+
4
+ using GL;
5
+
6
+ public class WebGLRenderingContext: WebGLRenderingContextBase {
7
+
8
+ public int width { get; construct; }
9
+ public int height { get; construct; }
10
+ public bool alpha { get; construct; }
11
+ public bool depth { get; construct; }
12
+ public bool stencil { get; construct; }
13
+ public bool antialias { get; construct; }
14
+ public bool premultipliedAlpha { get; construct; }
15
+ public bool preserveDrawingBuffer { get; construct; }
16
+ public bool preferLowPowerToHighPerformance { get; construct; }
17
+ public bool failIfMajorPerformanceCaveat { get; construct; }
18
+
19
+ public WebGLRenderingContext(
20
+ int width,
21
+ int height,
22
+ bool alpha,
23
+ bool depth,
24
+ bool stencil,
25
+ bool antialias,
26
+ bool premultipliedAlpha,
27
+ bool preserveDrawingBuffer,
28
+ bool preferLowPowerToHighPerformance,
29
+ bool failIfMajorPerformanceCaveat
30
+ ) {
31
+
32
+ }
33
+
34
+ construct {
35
+
36
+ }
37
+
38
+ // https://github.com/stackgl/headless-gl/blob/ce1c08c0ef0c31d8c308cb828fd2f172c0bf5084/src/native/webgl.cc#L2095
39
+ // public Variant extWEBGL_draw_buffers() {
40
+ // var builder = new VariantBuilder(new VariantType("a{si}"));
41
+ // // TODO:
42
+ // builder.add ("{si}", "COLOR_ATTACHMENT0_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT0_EXT));
43
+ // builder.add ("{si}", "COLOR_ATTACHMENT1_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT1_EXT));
44
+ // builder.add ("{si}", "COLOR_ATTACHMENT2_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT2_EXT));
45
+ // builder.add ("{si}", "COLOR_ATTACHMENT3_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT3_EXT));
46
+ // builder.add ("{si}", "COLOR_ATTACHMENT4_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT4_EXT));
47
+ // builder.add ("{si}", "COLOR_ATTACHMENT5_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT5_EXT));
48
+ // builder.add ("{si}", "COLOR_ATTACHMENT6_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT6_EXT));
49
+ // builder.add ("{si}", "COLOR_ATTACHMENT7_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT7_EXT));
50
+ // builder.add ("{si}", "COLOR_ATTACHMENT8_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT8_EXT));
51
+ // builder.add ("{si}", "COLOR_ATTACHMENT9_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT9_EXT));
52
+ // builder.add ("{si}", "COLOR_ATTACHMENT10_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT10_EXT));
53
+ // builder.add ("{si}", "COLOR_ATTACHMENT11_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT11_EXT));
54
+ // builder.add ("{si}", "COLOR_ATTACHMENT12_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT12_EXT));
55
+ // builder.add ("{si}", "COLOR_ATTACHMENT13_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT13_EXT));
56
+ // builder.add ("{si}", "COLOR_ATTACHMENT14_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT14_EXT));
57
+ // builder.add ("{si}", "COLOR_ATTACHMENT15_WEBGL", new Variant.int32(GL_COLOR_ATTACHMENT15_EXT));
58
+
59
+ // builder.add ("{si}", "DRAW_BUFFER0_WEBGL", new Variant.int32(GL_DRAW_BUFFER0_EXT));
60
+ // builder.add ("{si}", "DRAW_BUFFER1_WEBGL", new Variant.int32(GL_DRAW_BUFFER1_EXT));
61
+ // builder.add ("{si}", "DRAW_BUFFER2_WEBGL", new Variant.int32(GL_DRAW_BUFFER2_EXT));
62
+ // builder.add ("{si}", "DRAW_BUFFER3_WEBGL", new Variant.int32(GL_DRAW_BUFFER3_EXT));
63
+ // builder.add ("{si}", "DRAW_BUFFER4_WEBGL", new Variant.int32(GL_DRAW_BUFFER4_EXT));
64
+ // builder.add ("{si}", "DRAW_BUFFER5_WEBGL", new Variant.int32(GL_DRAW_BUFFER5_EXT));
65
+ // builder.add ("{si}", "DRAW_BUFFER6_WEBGL", new Variant.int32(GL_DRAW_BUFFER6_EXT));
66
+ // builder.add ("{si}", "DRAW_BUFFER7_WEBGL", new Variant.int32(GL_DRAW_BUFFER7_EXT));
67
+ // builder.add ("{si}", "DRAW_BUFFER8_WEBGL", new Variant.int32(GL_DRAW_BUFFER8_EXT));
68
+ // builder.add ("{si}", "DRAW_BUFFER9_WEBGL", new Variant.int32(GL_DRAW_BUFFER9_EXT));
69
+ // builder.add ("{si}", "DRAW_BUFFER10_WEBGL", new Variant.int32(GL_DRAW_BUFFER10_EXT));
70
+ // builder.add ("{si}", "DRAW_BUFFER11_WEBGL", new Variant.int32(GL_DRAW_BUFFER11_EXT));
71
+ // builder.add ("{si}", "DRAW_BUFFER12_WEBGL", new Variant.int32(GL_DRAW_BUFFER12_EXT));
72
+ // builder.add ("{si}", "DRAW_BUFFER13_WEBGL", new Variant.int32(GL_DRAW_BUFFER13_EXT));
73
+ // builder.add ("{si}", "DRAW_BUFFER14_WEBGL", new Variant.int32(GL_DRAW_BUFFER14_EXT));
74
+ // builder.add ("{si}", "DRAW_BUFFER15_WEBGL", new Variant.int32(GL_DRAW_BUFFER15_EXT));
75
+
76
+ // builder.add ("{si}", "MAX_COLOR_ATTACHMENTS_WEBGL", new Variant.int32(GL_MAX_COLOR_ATTACHMENTS_EXT));
77
+ // builder.add ("{si}", "MAX_DRAW_BUFFERS_WEBGL", new Variant.int32(GL_MAX_DRAW_BUFFERS_EXT));
78
+
79
+ // Variant result = builder.end();
80
+ // return result;
81
+ // }
82
+
83
+ // https://github.com/stackgl/headless-gl/blob/ce1c08c0ef0c31d8c308cb828fd2f172c0bf5084/src/native/webgl.cc#L2079
84
+ // public void drawBuffersWEBGL(ByteArray buffersArray) {
85
+ // // TODO:
86
+ // GLuint numBuffers = buffersArray.len;
87
+ // GLenum[] buffers = new GLenum[numBuffers];
88
+ // glDrawBuffersEXT(numBuffers, buffersArray.data);
89
+ // }
90
+
91
+ public bool isVariantOfByteArray(Variant variant) {
92
+ var type = variant.get_type();
93
+ return type.equal(new GLib.VariantType("ay"));
94
+ }
95
+
96
+ public void bufferData(int target, Variant variant, int usage) {
97
+ if (!this.isVariantOfByteArray(variant)) {
98
+ printerr("[bufferData] variant type must be 'ay'!");
99
+ return;
100
+ }
101
+
102
+ var bytes = variant.get_data_as_bytes ();
103
+ var size = bytes.get_size();
104
+ var data = bytes.get_data();
105
+
106
+ // print("\n\nbufferData");
107
+ // for (var i = 0; i < data.length; i++) {
108
+ // print("\n%i: %u", i, data[i]);
109
+ // }
110
+
111
+ glBufferData(target, size, (GL.GLvoid[]) data, usage);
112
+ }
113
+
114
+ public void bufferDataSizeOnly(int target, size_t size, int usage) {
115
+ // print("\nbufferDataSizeOnly target: %i, size: %s", target, size.to_string());
116
+ glBufferData(target, size, null, usage);
117
+ }
118
+
119
+ public void bufferSubData(int target, long offset, Variant variant) {
120
+ if (!this.isVariantOfByteArray(variant)) {
121
+ printerr("[bufferSubData] variant type must be 'ay'!");
122
+ return;
123
+ }
124
+
125
+ var bytes = variant.get_data_as_bytes ();
126
+ var size = bytes.get_size();
127
+ glBufferSubData(target, offset, size, (GL.GLvoid[]) bytes.get_data());
128
+ }
129
+
130
+ public void compressedTexImage2D(int target, int level, GLenum internalFormat, int width, int height, int border, Variant variant) {
131
+ if (!this.isVariantOfByteArray(variant)) {
132
+ printerr("[compressedTexImage2D] variant type must be 'ay'!");
133
+ return;
134
+ }
135
+
136
+ var bytes = variant.get_data_as_bytes ();
137
+ int imageSize = (int) bytes.get_size();
138
+
139
+ glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, (GL.GLvoid[]) bytes.get_data());
140
+ }
141
+
142
+ public void compressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, Variant variant) {
143
+ if (!this.isVariantOfByteArray(variant)) {
144
+ printerr("[compressedTexSubImage2D] variant type must be 'ay'!");
145
+ return;
146
+ }
147
+
148
+ var bytes = variant.get_data_as_bytes ();
149
+ int imageSize = (int) bytes.get_size();
150
+
151
+ glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, (GLsizei) imageSize, (GL.GLvoid[]) bytes.get_data());
152
+ }
153
+
154
+ public uint8[] readPixels(int x, int y, int width, int height, int format, int type, Variant variant) {
155
+ if (!this.isVariantOfByteArray(variant)) {
156
+ printerr("[compressedTexSubImage2D] variant type must be 'ay'!");
157
+ return new uint8[0];
158
+ }
159
+
160
+ var bytes = variant.get_data_as_bytes ();
161
+ var pixels = bytes.get_data();
162
+
163
+ glReadPixels(x, y, width, height, format, type, (GL.GLvoid[]) pixels);
164
+ return pixels;
165
+ }
166
+
167
+ public void texImage2D(int target, int level, int internalFormat, int width, int height, int border, int format, int type, Variant variant) {
168
+ if (!this.isVariantOfByteArray(variant)) {
169
+ printerr("[compressedTexSubImage2D] variant type must be 'ay'!");
170
+ return;
171
+ }
172
+
173
+ var bytes = variant.get_data_as_bytes ();
174
+ var pixels = bytes.get_data();
175
+
176
+
177
+ // for (var i = 0; i < pixels.length; i++) {
178
+ // print("\ntexImage2D %i: %u", i, pixels[i]);
179
+ // }
180
+
181
+ glTexImage2D(target, level, internalFormat, width, height, border, format, type, (GL.GLvoid[]) pixels);
182
+ }
183
+
184
+ public void texImage2DFromPixbuf(int target, int level, int internalFormat, int format, int type, Gdk.Pixbuf *source) {
185
+ int width = source->get_width();
186
+ int height = source->get_height();
187
+ var pixels = source->get_pixels();
188
+ glTexImage2D(target, level, internalFormat, width, height, 0, format, type, (GL.GLvoid[]) pixels);
189
+ }
190
+
191
+ public void texSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Variant variant) {
192
+ if (!this.isVariantOfByteArray(variant)) {
193
+ printerr("[compressedTexSubImage2D] variant type must be 'ay'!");
194
+ return;
195
+ }
196
+
197
+ var bytes = variant.get_data_as_bytes ();
198
+ var pixels = bytes.get_data();
199
+
200
+ glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, (GL.GLvoid[]) pixels);
201
+ }
202
+
203
+ public void texSubImage2DFromPixbuf(int target, int level, int xoffset, int yoffset, int format, int type, Gdk.Pixbuf *source) {
204
+ int width = source->get_width();
205
+ int height = source->get_height();
206
+ var pixels = source->get_pixels();
207
+
208
+ glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, (GL.GLvoid[]) pixels);
209
+ }
210
+
211
+ public void uniform1fv(/*WebGLUniformLocation*/ int location, int vLength, float[] value) {
212
+
213
+ glUniform1fv(location, vLength, value);
214
+ }
215
+
216
+ public void uniform1iv(/*WebGLUniformLocation*/ int location, int vLength, int[] value) {
217
+ glUniform1iv(location, vLength, value);
218
+ }
219
+
220
+ public void uniform2fv(/*WebGLUniformLocation*/ int location, int vLength, float[] value) {
221
+ glUniform2fv(location, vLength, value);
222
+ }
223
+
224
+ public void uniform2iv(/*WebGLUniformLocation*/ int location, int vLength, int[] value) {
225
+ glUniform2iv(location, vLength, value);
226
+ }
227
+
228
+ public void uniform3fv(/*WebGLUniformLocation*/ int location, int vLength, float[] value) {
229
+ glUniform3fv(location, vLength, value);
230
+ }
231
+
232
+ public void uniform3iv(/*WebGLUniformLocation*/ int location, int vLength, int[] value) {
233
+ glUniform3iv(location, vLength, value);
234
+ }
235
+
236
+ public void uniform4fv(/*WebGLUniformLocation*/ int location, int vLength, float[] value) {
237
+ glUniform4fv(location, vLength, value);
238
+ }
239
+
240
+ public void uniform4iv(/*WebGLUniformLocation*/ int location, int vLength, int[] value) {
241
+ glUniform4iv(location, vLength, value);
242
+ }
243
+
244
+ public void uniformMatrix2fv(/*WebGLUniformLocation*/ int location, bool transpose, float[] value) {
245
+ int valueLength = value.length;
246
+ glUniformMatrix2fv(location, valueLength / 4, (uint8) transpose, value);
247
+ }
248
+
249
+ public void uniformMatrix3fv(/*WebGLUniformLocation*/ int location, bool transpose, float[] value) {
250
+ int valueLength = value.length;
251
+ glUniformMatrix3fv(location, valueLength / 9, (uint8) transpose, value);
252
+ }
253
+
254
+ public void uniformMatrix4fv(/*WebGLUniformLocation*/ int location, bool transpose, float[] value) {
255
+ int valueLength = value.length;
256
+ // print("\nuniformMatrix4fv location: %i, valueLength: %i, transpose: %u ", location, valueLength, (uint8) transpose);
257
+
258
+ // for (var i = 0; i < valueLength; i++) {
259
+ // print("\n%i: %f", i, value[i]);
260
+ // }
261
+
262
+ glUniformMatrix4fv(location, valueLength / 16, (uint8) transpose, value);
263
+ }
264
+ }
265
+ }