vanta-engine 1.0.2 → 1.0.4

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 (156) hide show
  1. package/dist/chunk-BDKR3WGZ.mjs +35 -0
  2. package/dist/chunk-BDKR3WGZ.mjs.map +1 -0
  3. package/dist/index.d.cts +755 -0
  4. package/dist/index.d.ts +755 -27
  5. package/dist/index.js +8406 -26
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +8369 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/module-62JUDQR5.mjs +11 -0
  10. package/dist/module-62JUDQR5.mjs.map +1 -0
  11. package/package.json +10 -7
  12. package/dist/engine.d.ts +0 -18
  13. package/dist/engine.d.ts.map +0 -1
  14. package/dist/engine.js +0 -23
  15. package/dist/engine.js.map +0 -1
  16. package/dist/graphics/assets/asset_format/format.d.ts +0 -115
  17. package/dist/graphics/assets/asset_format/format.d.ts.map +0 -1
  18. package/dist/graphics/assets/asset_format/format.js +0 -29
  19. package/dist/graphics/assets/asset_format/format.js.map +0 -1
  20. package/dist/graphics/assets/asset_loaders/obj.d.ts +0 -127
  21. package/dist/graphics/assets/asset_loaders/obj.d.ts.map +0 -1
  22. package/dist/graphics/assets/asset_loaders/obj.js +0 -762
  23. package/dist/graphics/assets/asset_loaders/obj.js.map +0 -1
  24. package/dist/graphics/assets/material.d.ts +0 -33
  25. package/dist/graphics/assets/material.d.ts.map +0 -1
  26. package/dist/graphics/assets/material.js +0 -104
  27. package/dist/graphics/assets/material.js.map +0 -1
  28. package/dist/graphics/assets/mesh.d.ts +0 -17
  29. package/dist/graphics/assets/mesh.d.ts.map +0 -1
  30. package/dist/graphics/assets/mesh.js +0 -47
  31. package/dist/graphics/assets/mesh.js.map +0 -1
  32. package/dist/graphics/assets/model.d.ts +0 -13
  33. package/dist/graphics/assets/model.d.ts.map +0 -1
  34. package/dist/graphics/assets/model.js +0 -18
  35. package/dist/graphics/assets/model.js.map +0 -1
  36. package/dist/graphics/assets/texture.d.ts +0 -93
  37. package/dist/graphics/assets/texture.d.ts.map +0 -1
  38. package/dist/graphics/assets/texture.js +0 -318
  39. package/dist/graphics/assets/texture.js.map +0 -1
  40. package/dist/graphics/assets/uniform_buffer.d.ts +0 -28
  41. package/dist/graphics/assets/uniform_buffer.d.ts.map +0 -1
  42. package/dist/graphics/assets/uniform_buffer.js +0 -132
  43. package/dist/graphics/assets/uniform_buffer.js.map +0 -1
  44. package/dist/graphics/assets/vaos.d.ts +0 -9
  45. package/dist/graphics/assets/vaos.d.ts.map +0 -1
  46. package/dist/graphics/assets/vaos.js +0 -98
  47. package/dist/graphics/assets/vaos.js.map +0 -1
  48. package/dist/graphics/framebuffer.d.ts +0 -77
  49. package/dist/graphics/framebuffer.d.ts.map +0 -1
  50. package/dist/graphics/framebuffer.js +0 -265
  51. package/dist/graphics/framebuffer.js.map +0 -1
  52. package/dist/graphics/graphics_manager.d.ts +0 -70
  53. package/dist/graphics/graphics_manager.d.ts.map +0 -1
  54. package/dist/graphics/graphics_manager.js +0 -503
  55. package/dist/graphics/graphics_manager.js.map +0 -1
  56. package/dist/graphics/shader_program.d.ts +0 -66
  57. package/dist/graphics/shader_program.d.ts.map +0 -1
  58. package/dist/graphics/shader_program.js +0 -92
  59. package/dist/graphics/shader_program.js.map +0 -1
  60. package/dist/graphics/utility.d.ts +0 -14
  61. package/dist/graphics/utility.d.ts.map +0 -1
  62. package/dist/graphics/utility.js +0 -81
  63. package/dist/graphics/utility.js.map +0 -1
  64. package/dist/hook_manager.d.ts +0 -33
  65. package/dist/hook_manager.d.ts.map +0 -1
  66. package/dist/hook_manager.js +0 -102
  67. package/dist/hook_manager.js.map +0 -1
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/input/input_manager.d.ts +0 -41
  70. package/dist/input/input_manager.d.ts.map +0 -1
  71. package/dist/input/input_manager.js +0 -121
  72. package/dist/input/input_manager.js.map +0 -1
  73. package/dist/node/camera3d.d.ts +0 -10
  74. package/dist/node/camera3d.d.ts.map +0 -1
  75. package/dist/node/camera3d.js +0 -25
  76. package/dist/node/camera3d.js.map +0 -1
  77. package/dist/node/lights/directional_light.d.ts +0 -20
  78. package/dist/node/lights/directional_light.d.ts.map +0 -1
  79. package/dist/node/lights/directional_light.js +0 -111
  80. package/dist/node/lights/directional_light.js.map +0 -1
  81. package/dist/node/lights/light.d.ts +0 -15
  82. package/dist/node/lights/light.d.ts.map +0 -1
  83. package/dist/node/lights/light.js +0 -24
  84. package/dist/node/lights/light.js.map +0 -1
  85. package/dist/node/lights/point_light.d.ts +0 -26
  86. package/dist/node/lights/point_light.d.ts.map +0 -1
  87. package/dist/node/lights/point_light.js +0 -109
  88. package/dist/node/lights/point_light.js.map +0 -1
  89. package/dist/node/lights/spot_light.d.ts +0 -13
  90. package/dist/node/lights/spot_light.d.ts.map +0 -1
  91. package/dist/node/lights/spot_light.js +0 -35
  92. package/dist/node/lights/spot_light.js.map +0 -1
  93. package/dist/node/object3d.d.ts +0 -10
  94. package/dist/node/object3d.d.ts.map +0 -1
  95. package/dist/node/object3d.js +0 -60
  96. package/dist/node/object3d.js.map +0 -1
  97. package/dist/node/skybox.d.ts +0 -15
  98. package/dist/node/skybox.d.ts.map +0 -1
  99. package/dist/node/skybox.js +0 -33
  100. package/dist/node/skybox.js.map +0 -1
  101. package/dist/node/sprite2d.d.ts +0 -14
  102. package/dist/node/sprite2d.d.ts.map +0 -1
  103. package/dist/node/sprite2d.js +0 -33
  104. package/dist/node/sprite2d.js.map +0 -1
  105. package/dist/node.d.ts +0 -76
  106. package/dist/node.d.ts.map +0 -1
  107. package/dist/node.js +0 -308
  108. package/dist/node.js.map +0 -1
  109. package/dist/scene.d.ts +0 -19
  110. package/dist/scene.d.ts.map +0 -1
  111. package/dist/scene.js +0 -50
  112. package/dist/scene.js.map +0 -1
  113. package/dist/shaders/default_2d.fs.d.ts +0 -3
  114. package/dist/shaders/default_2d.fs.d.ts.map +0 -1
  115. package/dist/shaders/default_2d.fs.js +0 -14
  116. package/dist/shaders/default_2d.fs.js.map +0 -1
  117. package/dist/shaders/default_2d.vs.d.ts +0 -3
  118. package/dist/shaders/default_2d.vs.d.ts.map +0 -1
  119. package/dist/shaders/default_2d.vs.js +0 -16
  120. package/dist/shaders/default_2d.vs.js.map +0 -1
  121. package/dist/shaders/default_3d.fs.d.ts +0 -3
  122. package/dist/shaders/default_3d.fs.d.ts.map +0 -1
  123. package/dist/shaders/default_3d.fs.js +0 -327
  124. package/dist/shaders/default_3d.fs.js.map +0 -1
  125. package/dist/shaders/default_3d.vs.d.ts +0 -3
  126. package/dist/shaders/default_3d.vs.d.ts.map +0 -1
  127. package/dist/shaders/default_3d.vs.js +0 -36
  128. package/dist/shaders/default_3d.vs.js.map +0 -1
  129. package/dist/shaders/default_directional_shadow.fs.d.ts +0 -3
  130. package/dist/shaders/default_directional_shadow.fs.d.ts.map +0 -1
  131. package/dist/shaders/default_directional_shadow.fs.js +0 -6
  132. package/dist/shaders/default_directional_shadow.fs.js.map +0 -1
  133. package/dist/shaders/default_directional_shadow.vs.d.ts +0 -3
  134. package/dist/shaders/default_directional_shadow.vs.d.ts.map +0 -1
  135. package/dist/shaders/default_directional_shadow.vs.js +0 -11
  136. package/dist/shaders/default_directional_shadow.vs.js.map +0 -1
  137. package/dist/shaders/default_point_shadow.fs.d.ts +0 -3
  138. package/dist/shaders/default_point_shadow.fs.d.ts.map +0 -1
  139. package/dist/shaders/default_point_shadow.fs.js +0 -18
  140. package/dist/shaders/default_point_shadow.fs.js.map +0 -1
  141. package/dist/shaders/default_point_shadow.vs.d.ts +0 -3
  142. package/dist/shaders/default_point_shadow.vs.d.ts.map +0 -1
  143. package/dist/shaders/default_point_shadow.vs.js +0 -14
  144. package/dist/shaders/default_point_shadow.vs.js.map +0 -1
  145. package/dist/shaders/default_skybox.fs.d.ts +0 -3
  146. package/dist/shaders/default_skybox.fs.d.ts.map +0 -1
  147. package/dist/shaders/default_skybox.fs.js +0 -14
  148. package/dist/shaders/default_skybox.fs.js.map +0 -1
  149. package/dist/shaders/default_skybox.vs.d.ts +0 -3
  150. package/dist/shaders/default_skybox.vs.d.ts.map +0 -1
  151. package/dist/shaders/default_skybox.vs.js +0 -23
  152. package/dist/shaders/default_skybox.vs.js.map +0 -1
  153. package/dist/utility.d.ts +0 -5
  154. package/dist/utility.d.ts.map +0 -1
  155. package/dist/utility.js +0 -19
  156. package/dist/utility.js.map +0 -1
@@ -1,318 +0,0 @@
1
- const UNSIGNED_BYTE = 5121;
2
- const UNSIGNED_INT = 5125;
3
- export var TextureType;
4
- (function (TextureType) {
5
- TextureType["COLOR"] = "COLOR";
6
- TextureType["DEPTH"] = "DEPTH";
7
- TextureType["COLOR_ARRAY"] = "COLOR_ARRAY";
8
- TextureType["DEPTH_ARRAY"] = "DEPTH_ARRAY";
9
- })(TextureType || (TextureType = {}));
10
- export class Texture {
11
- constructor(gm, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
12
- this.texture_type = TextureType.COLOR;
13
- this.image_type = 0;
14
- this.gm = gm;
15
- this.name = name;
16
- var width = 0, height = 0, mip_level = 0;
17
- var image_array_size = 1;
18
- var texture_parameters = {};
19
- this.format = this.gm.gl.DEPTH_COMPONENT; // Random default, this will be set down the call tree
20
- this.internal_format = this.gm.gl.DEPTH_COMPONENT24; // Random default, this will be set down the call tree
21
- if (typeof arg1 === 'number' && typeof arg2 === 'number' && typeof arg3 === 'string' && Object.values(TextureType).includes(arg3)) {
22
- // Blank Texture Constructor
23
- width = arg1;
24
- height = arg2;
25
- this.texture_type = arg3 ? arg3 : TextureType.COLOR;
26
- texture_parameters = arg4 ? arg4 : {};
27
- this.webgl_texture = this.create_texture(null, this.texture_type, texture_parameters, 0, width, height);
28
- }
29
- else if (typeof arg1 === 'number') {
30
- // Texture Array Constructor count
31
- if (arg4 !== TextureType.COLOR_ARRAY
32
- && arg4 !== TextureType.DEPTH_ARRAY
33
- && typeof arg1 === "number") {
34
- throw new Error(`Arg 2 "texture_type" must be TextureType.COLOR_ARRAY or TextureType.DEPTH_ARRAY if the "images" argument is an number of images.`);
35
- }
36
- image_array_size = arg1;
37
- width = arg2;
38
- height = arg3;
39
- this.texture_type = arg4;
40
- texture_parameters = arg5 === undefined ? {} : arg5;
41
- mip_level = arg6 === undefined ? 0 : arg6;
42
- this.webgl_texture = this.create_texture(image_array_size, this.texture_type, texture_parameters, mip_level, width, height);
43
- }
44
- else if (arg1 instanceof Array) {
45
- // Texture Array Constructor Images
46
- if (arg2 !== TextureType.COLOR_ARRAY && arg1 instanceof Array) {
47
- throw new Error(`Arg 2 "texture_type" must be TextureType.COLOR_ARRAY if the "images" argument is an array.`);
48
- }
49
- if (arg2 !== TextureType.COLOR_ARRAY
50
- && arg2 !== TextureType.DEPTH_ARRAY
51
- && typeof arg1 === "number") {
52
- throw new Error(`Arg 2 "texture_type" must be TextureType.COLOR_ARRAY or TextureType.DEPTH_ARRAY if the "images" argument is an number of images.`);
53
- }
54
- const images = arg1;
55
- this.texture_type = arg2;
56
- texture_parameters = arg3 === undefined ? {} : arg3;
57
- mip_level = arg4 === undefined ? 0 : arg4;
58
- this.webgl_texture = this.create_texture(images, this.texture_type, texture_parameters, mip_level);
59
- }
60
- else {
61
- // Texture Constructor
62
- if (arg1 instanceof Array) {
63
- throw new Error(`Arg 2 "texture_type" must be TextureType.COLOR_ARRAY if the "images" argument is an array.`);
64
- }
65
- const image = arg1;
66
- this.texture_type = arg2;
67
- texture_parameters = arg3 === undefined ? {} : arg3;
68
- mip_level = arg4 === undefined ? 0 : arg3;
69
- this.webgl_texture = this.create_texture(image, this.texture_type, texture_parameters, mip_level);
70
- }
71
- // set parameters
72
- this.width = width;
73
- this.height = height;
74
- this.texture_parameters = texture_parameters;
75
- this.mip_level = mip_level;
76
- this.image_array_size = image_array_size;
77
- }
78
- resize_texture_array(new_size) {
79
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, this.webgl_texture);
80
- this.gm.gl.texImage3D(this.gm.gl.TEXTURE_2D_ARRAY, 0, this.internal_format, this.width, this.height, new_size, 0, this.format, this.image_type, null);
81
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, null);
82
- }
83
- [Symbol.dispose]() {
84
- this.gm.gl.deleteTexture(this.webgl_texture);
85
- }
86
- create_texture(image, texture_type, texture_parameters, mip_level, width = 0, height = 0) {
87
- switch (texture_type) {
88
- case TextureType.COLOR:
89
- return this.create_color_texture(image, width, height, mip_level, texture_parameters);
90
- case TextureType.DEPTH:
91
- return this.create_depth_texture(image, width, height, texture_parameters);
92
- case TextureType.COLOR_ARRAY:
93
- return this.create_color_array_texture(image, width, height, mip_level, texture_parameters);
94
- case TextureType.DEPTH_ARRAY:
95
- return this.create_depth_array_texture(Math.max(image, 1), width, height, texture_parameters);
96
- }
97
- }
98
- create_depth_array_texture(images, width = 0, height = 0, texture_parameters) {
99
- // images is a count of images.
100
- let texture = this.gm.gl.createTexture();
101
- if (!texture)
102
- throw new Error("Failed to create texture");
103
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, texture);
104
- this.internal_format = this.gm.gl.DEPTH_COMPONENT24;
105
- this.format = this.gm.gl.DEPTH_COMPONENT;
106
- this.image_type = this.gm.gl.UNSIGNED_INT;
107
- this.gm.gl.texImage3D(this.gm.gl.TEXTURE_2D_ARRAY, 0, this.internal_format, width, height, images, 0, this.format, this.image_type, null);
108
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_MIN_FILTER, this.gm.gl.NEAREST);
109
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_MAG_FILTER, this.gm.gl.NEAREST);
110
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_WRAP_S, this.gm.gl.CLAMP_TO_EDGE);
111
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_WRAP_T, this.gm.gl.CLAMP_TO_EDGE);
112
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_BASE_LEVEL, 0);
113
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, this.gm.gl.TEXTURE_MAX_LEVEL, 0);
114
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
115
- let parameter_name = Number(parameter_name_string);
116
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, parameter_name, parameter_value);
117
- }
118
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, null);
119
- return texture;
120
- }
121
- create_color_array_texture(images, width = 0, height = 0, mip_level, texture_parameters) {
122
- // images is either a list of images or a count of images to allocate for.
123
- let texture = this.gm.gl.createTexture();
124
- if (!texture)
125
- throw new Error("Failed to create texture");
126
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, texture);
127
- this.internal_format = this.gm.gl.RGBA;
128
- this.format = this.gm.gl.RGBA;
129
- this.image_type = this.gm.gl.UNSIGNED_BYTE;
130
- if (images instanceof Array) {
131
- this.gm.gl.texImage3D(this.gm.gl.TEXTURE_2D_ARRAY, mip_level, this.internal_format, width, height, images.length, 0, this.format, this.image_type, null);
132
- for (var i = 0; i < images.length; ++i) {
133
- const image = images[i];
134
- this.gm.gl.texSubImage3D(this.gm.gl.TEXTURE_2D_ARRAY, mip_level, 0, 0, i, // x, y, z offset
135
- width, height, 1, // z depth
136
- this.format, this.image_type, image);
137
- }
138
- }
139
- else {
140
- this.gm.gl.texImage3D(this.gm.gl.TEXTURE_2D_ARRAY, mip_level, this.internal_format, width, height, Math.max(images, 1), 0, this.format, this.image_type, null);
141
- }
142
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
143
- let parameter_name = Number(parameter_name_string);
144
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D_ARRAY, parameter_name, parameter_value);
145
- }
146
- if (images)
147
- this.gm.gl.generateMipmap(this.gm.gl.TEXTURE_2D_ARRAY);
148
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D_ARRAY, null);
149
- return texture;
150
- }
151
- create_color_texture(image, width = 0, height = 0, mip_level, texture_parameters) {
152
- let texture = this.gm.gl.createTexture();
153
- if (!texture)
154
- throw new Error("Failed to create texture");
155
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D, texture);
156
- this.internal_format = this.gm.gl.RGBA;
157
- this.format = this.gm.gl.RGBA;
158
- this.image_type = this.gm.gl.UNSIGNED_BYTE;
159
- if (image === null)
160
- this.gm.gl.texImage2D(this.gm.gl.TEXTURE_2D, mip_level, this.internal_format, width, height, 0, this.format, this.image_type, null);
161
- else
162
- this.gm.gl.texImage2D(this.gm.gl.TEXTURE_2D, mip_level, this.internal_format, this.format, this.image_type, image);
163
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
164
- let parameter_name = Number(parameter_name_string);
165
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D, parameter_name, parameter_value);
166
- }
167
- this.gm.gl.generateMipmap(this.gm.gl.TEXTURE_2D);
168
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D, null);
169
- return texture;
170
- }
171
- create_depth_texture(image, width = 0, height = 0, texture_parameters) {
172
- let texture = this.gm.gl.createTexture();
173
- if (!texture)
174
- throw new Error("Failed to create texture");
175
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D, texture);
176
- this.internal_format = this.gm.gl.DEPTH_COMPONENT24;
177
- this.format = this.gm.gl.DEPTH_COMPONENT;
178
- this.image_type = this.gm.gl.UNSIGNED_INT;
179
- if (image === null)
180
- this.gm.gl.texImage2D(this.gm.gl.TEXTURE_2D, 0, this.internal_format, width, height, 0, this.format, this.image_type, null);
181
- else
182
- this.gm.gl.texImage2D(this.gm.gl.TEXTURE_2D, 0, this.internal_format, this.format, this.image_type, image);
183
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
184
- let parameter_name = Number(parameter_name_string);
185
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_2D, parameter_name, parameter_value);
186
- }
187
- this.gm.gl.generateMipmap(this.gm.gl.TEXTURE_2D);
188
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_2D, null);
189
- return texture;
190
- }
191
- }
192
- export class CubeMapTexture {
193
- constructor(gm, name, arg1, arg2, arg3 = 0, arg4 = UNSIGNED_INT, arg5 = {}, arg6, arg7, arg8, arg9, arg10, arg11) {
194
- this.gm = gm;
195
- this.name = name;
196
- if (arg6 === undefined) {
197
- const size = arg1;
198
- this.size = size;
199
- const texture_type = arg2;
200
- const mip_level = arg3;
201
- const image_type = arg4;
202
- const texture_parameters = arg5;
203
- this.webgl_texture = this.create_depth_texture(size, texture_type, texture_parameters, mip_level, image_type);
204
- }
205
- else {
206
- var size = 0;
207
- var texture_type;
208
- var image_top;
209
- var image_bottom;
210
- var image_front;
211
- var image_back;
212
- var image_left;
213
- var image_right;
214
- var texture_parameters;
215
- var mip_level;
216
- var image_type;
217
- if (typeof arg1 === "number") {
218
- size = arg1;
219
- texture_type = arg2;
220
- image_top = arg3;
221
- image_bottom = arg4;
222
- image_front = arg5;
223
- image_back = arg6;
224
- image_left = arg7;
225
- image_right = arg8;
226
- texture_parameters = arg9;
227
- mip_level = arg10;
228
- image_type = arg11;
229
- }
230
- else {
231
- texture_type = arg1;
232
- image_top = arg2;
233
- image_bottom = arg3;
234
- image_front = arg4;
235
- image_back = arg5;
236
- image_left = arg6;
237
- image_right = arg7;
238
- texture_parameters = arg8;
239
- mip_level = arg9;
240
- image_type = arg10 ? arg10 : UNSIGNED_BYTE;
241
- }
242
- this.size = size;
243
- this.webgl_texture = this.create_texture(size, [
244
- image_right,
245
- image_left,
246
- image_top,
247
- image_bottom,
248
- image_front,
249
- image_back
250
- ], texture_parameters, mip_level, image_type);
251
- }
252
- }
253
- [Symbol.dispose]() {
254
- this.gm.gl.deleteTexture(this.webgl_texture);
255
- }
256
- create_depth_texture(size, texture_type, texture_parameters, mip_level, image_type) {
257
- let texture = this.gm.gl.createTexture();
258
- if (!texture)
259
- throw new Error("Failed to create texture");
260
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_CUBE_MAP, texture);
261
- for (let i = 0; i < 6; i++) {
262
- this.gm.gl.texImage2D(this.gm.gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, mip_level, // mip level
263
- this.gm.gl.DEPTH_COMPONENT24, // internal format
264
- size, size, // width, height
265
- 0, // border
266
- this.gm.gl.DEPTH_COMPONENT, // format
267
- image_type, // type
268
- null // no data yet
269
- );
270
- }
271
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_MAG_FILTER, this.gm.gl.NEAREST);
272
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_MIN_FILTER, this.gm.gl.NEAREST);
273
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_S, this.gm.gl.CLAMP_TO_EDGE);
274
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_T, this.gm.gl.CLAMP_TO_EDGE);
275
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_R, this.gm.gl.CLAMP_TO_EDGE);
276
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_COMPARE_MODE, this.gm.gl.COMPARE_REF_TO_TEXTURE);
277
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_COMPARE_FUNC, this.gm.gl.LEQUAL);
278
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
279
- let parameter_name = Number(parameter_name_string);
280
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, parameter_name, parameter_value);
281
- }
282
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_CUBE_MAP, null);
283
- return texture;
284
- }
285
- create_texture(size, images, texture_parameters, mip_level, image_type = this.gm.gl.UNSIGNED_BYTE) {
286
- let texture = this.gm.gl.createTexture();
287
- if (!texture)
288
- throw new Error("Failed to create texture");
289
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_CUBE_MAP, texture);
290
- const targets = [
291
- this.gm.gl.TEXTURE_CUBE_MAP_POSITIVE_X, // right
292
- this.gm.gl.TEXTURE_CUBE_MAP_NEGATIVE_X, // left
293
- this.gm.gl.TEXTURE_CUBE_MAP_POSITIVE_Y, // top
294
- this.gm.gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, // bottom
295
- this.gm.gl.TEXTURE_CUBE_MAP_POSITIVE_Z, // front
296
- this.gm.gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, // back
297
- ];
298
- targets.forEach((target, i) => {
299
- if (images[i] instanceof Float32Array)
300
- this.gm.gl.texImage2D(target, mip_level, this.gm.gl.RGBA32F, size, size, 0, this.gm.gl.RGBA, image_type, images[i]);
301
- else
302
- this.gm.gl.texImage2D(target, mip_level, this.gm.gl.RGBA, this.gm.gl.RGBA, image_type, images[i]);
303
- });
304
- this.gm.gl.generateMipmap(this.gm.gl.TEXTURE_CUBE_MAP);
305
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_MIN_FILTER, this.gm.gl.LINEAR_MIPMAP_LINEAR);
306
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_MAG_FILTER, this.gm.gl.LINEAR);
307
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_S, this.gm.gl.CLAMP_TO_EDGE);
308
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_T, this.gm.gl.CLAMP_TO_EDGE);
309
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, this.gm.gl.TEXTURE_WRAP_R, this.gm.gl.CLAMP_TO_EDGE);
310
- for (let [parameter_name_string, parameter_value] of Object.entries(texture_parameters)) {
311
- let parameter_name = Number(parameter_name_string);
312
- this.gm.gl.texParameteri(this.gm.gl.TEXTURE_CUBE_MAP, parameter_name, parameter_value);
313
- }
314
- this.gm.gl.bindTexture(this.gm.gl.TEXTURE_CUBE_MAP, null);
315
- return texture;
316
- }
317
- }
318
- //# sourceMappingURL=texture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/graphics/assets/texture.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- import { GraphicsManager } from "../graphics_manager";
2
- import { ShaderProgram } from "../shader_program";
3
- import Engine from "../../engine";
4
- type UBOBaseConstructor = new (...args: any[]) => {
5
- gm: GraphicsManager;
6
- } | {
7
- graphics_manager: GraphicsManager;
8
- } | {
9
- engine: Engine;
10
- };
11
- export interface ParameterMapping {
12
- class_property: string;
13
- uniform_property: string;
14
- type_check?: UBOBaseConstructor | string;
15
- }
16
- export declare function UniformBufferObjectMixin<TBase extends UBOBaseConstructor>(Base: TBase, location: string, parameter_mapping: ParameterMapping[], auto_send_buffer_data?: boolean): TBase & {
17
- new (...args: ConstructorParameters<TBase>): {
18
- _on_property_change(prop: string, value: any): boolean;
19
- send_UBO(): void;
20
- check_UBO(): boolean;
21
- gm?: GraphicsManager;
22
- graphics_manager?: GraphicsManager;
23
- engine?: Engine;
24
- };
25
- create_UBO(shader_program: ShaderProgram): void;
26
- };
27
- export {};
28
- //# sourceMappingURL=uniform_buffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uniform_buffer.d.ts","sourceRoot":"","sources":["../../../src/graphics/assets/uniform_buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAO,MAAM,mBAAmB,CAAC;AACvD,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,KAAK,kBAAkB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK;IAAE,EAAE,EAAE,eAAe,CAAA;CAAE,GAAC;IAAE,gBAAgB,EAAE,eAAe,CAAA;CAAE,GAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQnI,MAAM,WAAW,gBAAgB;IAC7B,cAAc,EAAC,MAAM,CAAC;IACtB,gBAAgB,EAAC,MAAM,CAAC;IACxB,UAAU,CAAC,EAAC,kBAAkB,GAAC,MAAM,CAAC;CACzC;AASD,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,kBAAkB,EACrE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,EAAE,iBAAiB,EAAC,gBAAgB,EAAE,EAClE,qBAAqB,GAAC,OAAc,GA2KqB,KAAK,GAAG;IAC7D,KAAK,GAAG,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC;kCA3IhB,MAAM,SAAS,GAAG,GAAE,OAAO;;qBAwDzC,OAAO;aA7GlB,eAAe;2BACD,eAAe;iBACzB,MAAM;MA8L2D;IACtE,UAAU,CAAC,cAAc,EAAC,aAAa,GAAE,IAAI,CAAC;CACjD,CACJ"}
@@ -1,132 +0,0 @@
1
- import { GraphicsManager } from "../graphics_manager";
2
- const p = {
3
- class_property: "",
4
- uniform_property: "",
5
- type_check: "number"
6
- };
7
- export function UniformBufferObjectMixin(Base, location, parameter_mapping, auto_send_buffer_data = true) {
8
- class UniformBufferObjectMixin extends Base {
9
- constructor(...args) {
10
- super(...args);
11
- for (const parameter of parameter_mapping) {
12
- const property = parameter.class_property;
13
- let value = this[property];
14
- Object.defineProperty(this, property, {
15
- get: () => this["stored_" + property],
16
- set: (new_value) => {
17
- if (value !== new_value) {
18
- this["stored_" + property] = new Proxy(new_value, {
19
- set: (target, p, nv) => {
20
- target[p] = nv;
21
- return this._on_property_change(property, new_value);
22
- }
23
- });
24
- this._on_property_change(property, new_value);
25
- }
26
- },
27
- enumerable: true,
28
- configurable: true
29
- });
30
- this["stored_" + property] = value;
31
- }
32
- }
33
- _on_property_change(prop, value) {
34
- UniformBufferObjectMixin.UBO_dirty = true;
35
- if (auto_send_buffer_data) {
36
- let gm = null;
37
- if ("engine" in this) {
38
- gm = this.engine.graphics_manager;
39
- }
40
- else if ("gm" in this) {
41
- gm = this.gm;
42
- }
43
- else if ("graphics_manager" in this) {
44
- gm = this.graphics_manager;
45
- }
46
- if (gm === null) {
47
- console.error(`Couldn't find graphics manager when the property named "${prop}" changed of the UBO at location "${location}".`);
48
- return true;
49
- }
50
- const data = GraphicsManager.flatten_uniform_array_value(value);
51
- for (const shader_program of UniformBufferObjectMixin.shader_programs) {
52
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, shader_program.ubos[location].webgl_buffer);
53
- gm.gl.bufferSubData(gm.gl.UNIFORM_BUFFER, shader_program.ubos[location][prop].offset, data, 0);
54
- }
55
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, null);
56
- }
57
- return true;
58
- }
59
- send_UBO() {
60
- var gm = null;
61
- for (const shader_program of UniformBufferObjectMixin.shader_programs) {
62
- gm = shader_program.gm;
63
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, shader_program.ubos[location].webgl_buffer);
64
- for (const parameter of parameter_mapping) {
65
- const data = GraphicsManager.flatten_uniform_array_value(this[parameter.class_property]);
66
- gm.gl.bufferSubData(gm.gl.UNIFORM_BUFFER, shader_program.ubos[location][parameter.class_property].offset, data, 0);
67
- }
68
- }
69
- if (gm)
70
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, null);
71
- // After sending set this flag
72
- UniformBufferObjectMixin.UBO_dirty = false;
73
- }
74
- check_UBO() {
75
- for (const parameter of parameter_mapping) {
76
- if (!(parameter.class_property in this)) {
77
- console.error(`Required UBO class property "${parameter.class_property}" not found in class "${Base.name}".`);
78
- return false;
79
- }
80
- else if (parameter.type_check !== undefined)
81
- if (typeof parameter.type_check === "string") {
82
- if (typeof this[parameter.class_property] !== parameter.type_check) {
83
- console.error(`Required UBO class property "${parameter.class_property}" in class definition "${Base.name}" must be of type "${parameter.type_check}".`);
84
- return false;
85
- }
86
- }
87
- else if (this[parameter.class_property] instanceof parameter.type_check) {
88
- console.error(`Required UBO class property "${parameter.class_property}" in class definition "${Base.name}" must be of type "${parameter.type_check.name}".`);
89
- return false;
90
- }
91
- }
92
- return true;
93
- }
94
- static create_UBO(shader_program) {
95
- UniformBufferObjectMixin.shader_programs.push(shader_program);
96
- const gm = shader_program.gm;
97
- const block_index = gm.gl.getUniformBlockIndex(shader_program, location);
98
- const block_size = gm.gl.getActiveUniformBlockParameter(shader_program, block_index, gm.gl.UNIFORM_BLOCK_DATA_SIZE);
99
- const ubo_buffer = gm.gl.createBuffer();
100
- shader_program.ubos[location] = {
101
- webgl_buffer: ubo_buffer
102
- };
103
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, ubo_buffer);
104
- gm.gl.bufferData(gm.gl.UNIFORM_BUFFER, block_size, gm.gl.DYNAMIC_DRAW);
105
- gm.gl.bindBuffer(gm.gl.UNIFORM_BUFFER, null);
106
- gm.gl.bindBufferBase(gm.gl.UNIFORM_BUFFER, shader_program.ubo_counter, ubo_buffer);
107
- ++shader_program.ubo_counter;
108
- var uniform_parameters = [];
109
- var class_parameters = [];
110
- for (var parameter of parameter_mapping) {
111
- uniform_parameters.push(parameter.uniform_property);
112
- class_parameters.push(parameter.class_property);
113
- }
114
- const ubo_variable_indices = gm.gl.getUniformIndices(shader_program, uniform_parameters);
115
- if (ubo_variable_indices === null) {
116
- throw new Error(`Failed to find an uniform buffer object named "${location}" in the shader program named "${shader_program.name}" with the properties named "` + uniform_parameters.join("\", \"") + "\".");
117
- }
118
- const ubo_variable_offsets = gm.gl.getActiveUniforms(shader_program, ubo_variable_indices, gm.gl.UNIFORM_OFFSET);
119
- for (var i = 0; i < class_parameters.length; ++i) {
120
- shader_program.ubos[location][class_parameters[i]] = {
121
- label: uniform_parameters[i],
122
- index: ubo_variable_indices[i],
123
- offset: ubo_variable_offsets[i]
124
- };
125
- }
126
- }
127
- }
128
- UniformBufferObjectMixin.shader_programs = [];
129
- UniformBufferObjectMixin.UBO_dirty = false;
130
- return UniformBufferObjectMixin;
131
- }
132
- //# sourceMappingURL=uniform_buffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uniform_buffer.js","sourceRoot":"","sources":["../../../src/graphics/assets/uniform_buffer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { GraphicsManager } from "../graphics_manager.ts";
2
- export interface VAOInfo {
3
- vao: WebGLVertexArrayObject;
4
- index_count: number;
5
- vertex_count: number;
6
- }
7
- export declare function get_skybox_vao(gm: GraphicsManager): VAOInfo;
8
- export declare function get_sprite_vao(gm: GraphicsManager): VAOInfo;
9
- //# sourceMappingURL=vaos.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vaos.d.ts","sourceRoot":"","sources":["../../../src/graphics/assets/vaos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAUzD,MAAM,WAAW,OAAO;IACpB,GAAG,EAAC,sBAAsB,CAAC;IAC3B,WAAW,EAAC,MAAM,CAAC;IACnB,YAAY,EAAC,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAC,eAAe,GAAE,OAAO,CAkDzD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAC,eAAe,GAAE,OAAO,CAgEzD"}
@@ -1,98 +0,0 @@
1
- var skybox_VAO = null;
2
- var skybox_VAO_index_count = 0;
3
- var skybox_VAO_vertex_count = 0;
4
- var sprite_VAO = null;
5
- var sprite_VAO_index_count = 0;
6
- var sprite_VAO_vertex_count = 0;
7
- export function get_skybox_vao(gm) {
8
- if (skybox_VAO)
9
- return { vao: skybox_VAO, index_count: skybox_VAO_index_count, vertex_count: skybox_VAO_vertex_count };
10
- const cube_vertices = new Float32Array([
11
- -1, -1, -1, // 0
12
- 1, -1, -1, // 1
13
- 1, 1, -1, // 2
14
- -1, 1, -1, // 3
15
- -1, -1, 1, // 4
16
- 1, -1, 1, // 5
17
- 1, 1, 1, // 6
18
- -1, 1, 1 // 7
19
- ]);
20
- const cube_indices = new Uint16Array([
21
- 0, 1, 2, 2, 3, 0, // -Z
22
- 4, 5, 6, 6, 7, 4, // +Z
23
- 0, 4, 7, 7, 3, 0, // -X
24
- 1, 5, 6, 6, 2, 1, // +X
25
- 3, 2, 6, 6, 7, 3, // +Y
26
- 0, 1, 5, 5, 4, 0 // -Y
27
- ]);
28
- skybox_VAO_vertex_count = cube_vertices.length;
29
- skybox_VAO_index_count = cube_indices.length;
30
- skybox_VAO = gm.gl.createVertexArray();
31
- gm.gl.bindVertexArray(skybox_VAO);
32
- // Vertex buffer
33
- const vbo = gm.gl.createBuffer();
34
- gm.gl.bindBuffer(gm.gl.ARRAY_BUFFER, vbo);
35
- gm.gl.bufferData(gm.gl.ARRAY_BUFFER, cube_vertices, gm.gl.STATIC_DRAW);
36
- // Position attribute (location 0)
37
- gm.gl.enableVertexAttribArray(0);
38
- gm.gl.vertexAttribPointer(0, 3, gm.gl.FLOAT, false, 0, 0);
39
- // Index buffer
40
- const ibo = gm.gl.createBuffer();
41
- gm.gl.bindBuffer(gm.gl.ELEMENT_ARRAY_BUFFER, ibo);
42
- gm.gl.bufferData(gm.gl.ELEMENT_ARRAY_BUFFER, cube_indices, gm.gl.STATIC_DRAW);
43
- // Unbind VAO
44
- gm.gl.bindVertexArray(null);
45
- gm.gl.bindBuffer(gm.gl.ARRAY_BUFFER, null);
46
- return { vao: skybox_VAO, index_count: skybox_VAO_index_count, vertex_count: skybox_VAO_vertex_count };
47
- }
48
- export function get_sprite_vao(gm) {
49
- if (sprite_VAO)
50
- return { vao: sprite_VAO, index_count: sprite_VAO_index_count, vertex_count: sprite_VAO_vertex_count };
51
- const quad_vertices = new Float32Array([
52
- -0.5, -0.5, 0.0, 0.0, 0.0, // bottom left
53
- 0.5, -0.5, 0.0, 1.0, 0.0, // bottom right
54
- 0.5, 0.5, 0.0, 1.0, 1.0, // top right
55
- -0.5, 0.5, 0.0, 0.0, 1.0 // top left
56
- ]);
57
- const quad_indices = new Uint16Array([
58
- 0, 1, 2, // First triangle
59
- 2, 3, 0 // Second triangle
60
- ]);
61
- sprite_VAO_vertex_count = quad_vertices.length / 5;
62
- sprite_VAO_index_count = quad_indices.length;
63
- sprite_VAO = gm.gl.createVertexArray();
64
- gm.gl.bindVertexArray(sprite_VAO);
65
- // Create and bind VBO
66
- const vbo = gm.gl.createBuffer();
67
- gm.gl.bindBuffer(gm.gl.ARRAY_BUFFER, vbo);
68
- gm.gl.bufferData(gm.gl.ARRAY_BUFFER, quad_vertices, gm.gl.STATIC_DRAW);
69
- // Setup vertex attributes
70
- const stride = 5 * Float32Array.BYTES_PER_ELEMENT; // 5 floats per vertex
71
- // Position attribute (location 0)
72
- gm.gl.enableVertexAttribArray(0);
73
- gm.gl.vertexAttribPointer(0, // attribute location
74
- 3, // number of components (x, y, z)
75
- gm.gl.FLOAT, // data type
76
- false, // normalize
77
- stride, // stride
78
- 0 // offset
79
- );
80
- // TexCoord attribute (location 1)
81
- gm.gl.enableVertexAttribArray(1);
82
- gm.gl.vertexAttribPointer(1, // attribute location
83
- 2, // number of components (u, v)
84
- gm.gl.FLOAT, // data type
85
- false, // normalize
86
- stride, // stride
87
- 3 * Float32Array.BYTES_PER_ELEMENT // offset (skip x, y, z)
88
- );
89
- // Create and bind EBO
90
- const ebo = gm.gl.createBuffer();
91
- gm.gl.bindBuffer(gm.gl.ELEMENT_ARRAY_BUFFER, ebo);
92
- gm.gl.bufferData(gm.gl.ELEMENT_ARRAY_BUFFER, quad_indices, gm.gl.STATIC_DRAW);
93
- // Unbind VAO
94
- gm.gl.bindVertexArray(null);
95
- gm.gl.bindBuffer(gm.gl.ARRAY_BUFFER, null);
96
- return { vao: sprite_VAO, index_count: sprite_VAO_index_count, vertex_count: sprite_VAO_vertex_count };
97
- }
98
- //# sourceMappingURL=vaos.js.map