@defold-typescript/types 0.38.0 → 0.39.0

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 (80) hide show
  1. package/api-signatures.json +336 -255
  2. package/examples/translations.json +323 -147
  3. package/generated/b2d_body.d.ts +7 -4
  4. package/generated/buffer.d.ts +16 -4
  5. package/generated/camera.d.ts +1 -0
  6. package/generated/collectionfactory.d.ts +5 -2
  7. package/generated/collectionproxy.d.ts +1 -1
  8. package/generated/factory.d.ts +2 -1
  9. package/generated/go.d.ts +141 -86
  10. package/generated/graphics.d.ts +2 -0
  11. package/generated/gui.d.ts +65 -40
  12. package/generated/html5.d.ts +1 -1
  13. package/generated/http.d.ts +4 -0
  14. package/generated/model.d.ts +9 -4
  15. package/generated/particlefx.d.ts +1 -1
  16. package/generated/physics.d.ts +16 -9
  17. package/generated/profiler.d.ts +9 -2
  18. package/generated/render.d.ts +224 -99
  19. package/generated/resource.d.ts +143 -157
  20. package/generated/socket.d.ts +13 -8
  21. package/generated/sound.d.ts +3 -2
  22. package/generated/sys.d.ts +16 -10
  23. package/generated/tilemap.d.ts +25 -19
  24. package/generated/timer.d.ts +33 -24
  25. package/generated/versions/defold-1.12.4/buffer.d.ts +16 -4
  26. package/generated/versions/defold-1.12.4/camera.d.ts +1 -0
  27. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +5 -2
  28. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
  29. package/generated/versions/defold-1.12.4/factory.d.ts +2 -1
  30. package/generated/versions/defold-1.12.4/go.d.ts +141 -86
  31. package/generated/versions/defold-1.12.4/graphics.d.ts +2 -0
  32. package/generated/versions/defold-1.12.4/gui.d.ts +63 -39
  33. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  34. package/generated/versions/defold-1.12.4/http.d.ts +4 -0
  35. package/generated/versions/defold-1.12.4/model.d.ts +9 -4
  36. package/generated/versions/defold-1.12.4/particlefx.d.ts +1 -1
  37. package/generated/versions/defold-1.12.4/physics.d.ts +16 -9
  38. package/generated/versions/defold-1.12.4/profiler.d.ts +9 -2
  39. package/generated/versions/defold-1.12.4/render.d.ts +223 -98
  40. package/generated/versions/defold-1.12.4/resource.d.ts +143 -157
  41. package/generated/versions/defold-1.12.4/socket.d.ts +13 -8
  42. package/generated/versions/defold-1.12.4/sound.d.ts +3 -2
  43. package/generated/versions/defold-1.12.4/sys.d.ts +16 -10
  44. package/generated/versions/defold-1.12.4/tilemap.d.ts +25 -19
  45. package/generated/versions/defold-1.12.4/timer.d.ts +33 -24
  46. package/generated/versions/defold-1.12.4/vmath.d.ts +13 -5
  47. package/generated/versions/defold-1.12.4/window.d.ts +5 -3
  48. package/generated/versions/defold-1.13.0/b2d_body.d.ts +7 -4
  49. package/generated/versions/defold-1.13.0/buffer.d.ts +16 -4
  50. package/generated/versions/defold-1.13.0/camera.d.ts +1 -0
  51. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +5 -2
  52. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
  53. package/generated/versions/defold-1.13.0/factory.d.ts +2 -1
  54. package/generated/versions/defold-1.13.0/go.d.ts +141 -86
  55. package/generated/versions/defold-1.13.0/graphics.d.ts +2 -0
  56. package/generated/versions/defold-1.13.0/gui.d.ts +63 -39
  57. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  58. package/generated/versions/defold-1.13.0/http.d.ts +4 -0
  59. package/generated/versions/defold-1.13.0/model.d.ts +9 -4
  60. package/generated/versions/defold-1.13.0/particlefx.d.ts +1 -1
  61. package/generated/versions/defold-1.13.0/physics.d.ts +16 -9
  62. package/generated/versions/defold-1.13.0/profiler.d.ts +9 -2
  63. package/generated/versions/defold-1.13.0/render.d.ts +224 -99
  64. package/generated/versions/defold-1.13.0/resource.d.ts +143 -157
  65. package/generated/versions/defold-1.13.0/socket.d.ts +13 -8
  66. package/generated/versions/defold-1.13.0/sound.d.ts +3 -2
  67. package/generated/versions/defold-1.13.0/sys.d.ts +16 -10
  68. package/generated/versions/defold-1.13.0/tilemap.d.ts +25 -19
  69. package/generated/versions/defold-1.13.0/timer.d.ts +33 -24
  70. package/generated/versions/defold-1.13.0/vmath.d.ts +13 -5
  71. package/generated/versions/defold-1.13.0/window.d.ts +5 -3
  72. package/generated/vmath.d.ts +13 -5
  73. package/generated/window.d.ts +5 -3
  74. package/package.json +2 -1
  75. package/src/api-doc.ts +8 -0
  76. package/src/doc-comment.ts +213 -32
  77. package/src/emit-dts.ts +501 -10
  78. package/src/example-store.ts +26 -0
  79. package/src/index.ts +5 -0
  80. package/src/render-overloads.d.ts +0 -17
@@ -9,6 +9,7 @@ declare global {
9
9
  type constant_buffer = Opaque<"constant_buffer">;
10
10
  type render_target = Opaque<"render_target">;
11
11
  type texture = Opaque<"texture">;
12
+ type ClearBufferKey = typeof graphics.BUFFER_TYPE_COLOR0_BIT | typeof graphics.BUFFER_TYPE_DEPTH_BIT | typeof graphics.BUFFER_TYPE_STENCIL_BIT;
12
13
  const FRUSTUM_PLANES_ALL: number & { readonly __brand: "render.FRUSTUM_PLANES_ALL" };
13
14
  const FRUSTUM_PLANES_SIDES: number & { readonly __brand: "render.FRUSTUM_PLANES_SIDES" };
14
15
  const RENDER_TARGET_DEFAULT: number & { readonly __brand: "render.RENDER_TARGET_DEFAULT" };
@@ -44,7 +45,7 @@ declare global {
44
45
  * render.clear(buffers);
45
46
  * ```
46
47
  */
47
- function clear(buffers: LuaMap<number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }, number | Vector4>): void;
48
+ function clear(buffers: LuaMap<render.ClearBufferKey, number | Vector4>): void;
48
49
  /**
49
50
  * Constant buffers are used to set shader program variables and are optionally passed to the `render.draw()` function.
50
51
  * The buffer's constant elements can be indexed like an ordinary Lua table, but you can't iterate over them with pairs() or ipairs().
@@ -52,30 +53,38 @@ declare global {
52
53
  * @returns new constant buffer
53
54
  * @example
54
55
  * ```ts
55
- * // Set a "tint" constant in a constant buffer in the render script:
56
- * const constants = render.constant_buffer();
57
- * constants.tint = vmath.vector4(1, 1, 1, 1);
56
+ * export default defineRenderScript({
57
+ * init() {
58
+ * return { my_pred: render.predicate([hash("my_tag")]) };
59
+ * },
58
60
  *
59
- * // Then use the constant buffer when drawing a predicate:
60
- * render.draw(self.my_pred, { constants });
61
- *
62
- * // The constant buffer also supports array values by specifying constants in an array:
63
- * const constants2 = render.constant_buffer();
64
- * constants2.light_colors = [];
65
- * constants2.light_colors[0] = vmath.vector4(1, 0, 0, 1);
66
- * constants2.light_colors[1] = vmath.vector4(0, 1, 0, 1);
67
- * constants2.light_colors[2] = vmath.vector4(0, 0, 1, 1);
68
- *
69
- * // You can also create the array by passing the vectors directly:
70
- * const constants3 = render.constant_buffer();
71
- * constants3.light_colors = [
72
- * vmath.vector4(1, 0, 0, 1),
73
- * vmath.vector4(0, 1, 0, 1),
74
- * vmath.vector4(0, 0, 1, 1),
75
- * ];
76
- *
77
- * // Add more constants to the array
78
- * constants3.light_colors[3] = vmath.vector4(1, 1, 1, 1);
61
+ * update(self, dt) {
62
+ * // Set a "tint" constant in a constant buffer in the render script:
63
+ * const constants = render.constant_buffer();
64
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
65
+ *
66
+ * // Then use the constant buffer when drawing a predicate:
67
+ * render.draw(self.my_pred, { constants });
68
+ *
69
+ * // The constant buffer also supports array values by specifying constants in an array:
70
+ * const constants2 = render.constant_buffer();
71
+ * constants2.light_colors = [];
72
+ * constants2.light_colors[0] = vmath.vector4(1, 0, 0, 1);
73
+ * constants2.light_colors[1] = vmath.vector4(0, 1, 0, 1);
74
+ * constants2.light_colors[2] = vmath.vector4(0, 0, 1, 1);
75
+ *
76
+ * // You can also create the array by passing the vectors directly:
77
+ * const constants3 = render.constant_buffer();
78
+ * constants3.light_colors = [
79
+ * vmath.vector4(1, 0, 0, 1),
80
+ * vmath.vector4(0, 1, 0, 1),
81
+ * vmath.vector4(0, 0, 1, 1),
82
+ * ];
83
+ *
84
+ * // Add more constants to the array
85
+ * constants3.light_colors[3] = vmath.vector4(1, 1, 1, 1);
86
+ * },
87
+ * });
79
88
  * ```
80
89
  */
81
90
  function constant_buffer(): Opaque<"constant_buffer">;
@@ -86,8 +95,16 @@ declare global {
86
95
  * @param render_target - render target to delete
87
96
  * @example
88
97
  * ```ts
89
- * // How to delete a render target:
90
- * render.delete_render_target(self.my_render_target);
98
+ * export default defineRenderScript({
99
+ * init() {
100
+ * return { my_render_target: render.render_target("my_target", {}) };
101
+ * },
102
+ *
103
+ * final(self) {
104
+ * // How to delete a render target:
105
+ * render.delete_render_target(self.my_render_target);
106
+ * },
107
+ * });
91
108
  * ```
92
109
  */
93
110
  function delete_render_target(render_target: Opaque<"render_target">): void;
@@ -98,10 +115,18 @@ declare global {
98
115
  *
99
116
  * @example
100
117
  * ```ts
101
- * // Enable material named "glow", then draw my_pred with it.
102
- * render.enable_material("glow");
103
- * render.draw(self.my_pred);
104
- * render.disable_material();
118
+ * export default defineRenderScript({
119
+ * init() {
120
+ * return { my_pred: render.predicate([hash("my_tag")]) };
121
+ * },
122
+ *
123
+ * update(self, dt) {
124
+ * // Enable material named "glow", then draw my_pred with it.
125
+ * render.enable_material("glow");
126
+ * render.draw(self.my_pred);
127
+ * render.disable_material();
128
+ * },
129
+ * });
105
130
  * ```
106
131
  */
107
132
  function disable_material(): void;
@@ -123,19 +148,27 @@ declare global {
123
148
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
124
149
  * @example
125
150
  * ```ts
126
- * // Disable face culling when drawing the tile predicate:
127
- * render.disable_state(graphics.STATE_CULL_FACE);
128
- * render.draw(self.tile_pred);
151
+ * export default defineRenderScript({
152
+ * init() {
153
+ * return { tile_pred: render.predicate([hash("tile")]) };
154
+ * },
155
+ *
156
+ * update(self, dt) {
157
+ * // Disable face culling when drawing the tile predicate:
158
+ * render.disable_state(graphics.STATE_CULL_FACE);
159
+ * render.draw(self.tile_pred);
160
+ * },
161
+ * });
129
162
  * ```
130
163
  */
131
- function disable_state(state: number & { readonly __brand: "graphics.STATE_DEPTH_TEST" } | number & { readonly __brand: "graphics.STATE_STENCIL_TEST" } | number & { readonly __brand: "graphics.STATE_BLEND" } | number & { readonly __brand: "graphics.STATE_ALPHA_TEST" } | number & { readonly __brand: "graphics.STATE_CULL_FACE" } | number & { readonly __brand: "graphics.STATE_POLYGON_OFFSET_FILL" }): void;
164
+ function disable_state(state: graphics.State): void;
132
165
  /**
133
166
  * Disables a texture that has previourly been enabled.
134
167
  *
135
168
  * @param binding - texture binding, either by texture unit, string or hash that should be disabled
136
169
  * @example
137
170
  * ```ts
138
- * export default defineScript({
171
+ * export default defineRenderScript({
139
172
  * update(self, dt) {
140
173
  * render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
141
174
  * // draw a predicate with the render target available as texture 0 in the predicate
@@ -164,7 +197,7 @@ declare global {
164
197
  * constant_buffer optional constants to use while rendering
165
198
  * @example
166
199
  * ```ts
167
- * export default defineScript({
200
+ * export default defineRenderScript({
168
201
  * init() {
169
202
  * const color_params = {
170
203
  * format: graphics.TEXTURE_FORMAT_RGBA,
@@ -216,7 +249,7 @@ declare global {
216
249
  * int How to sort draw order for world-ordered entries. Default uses the renderer's preferred world sorting (back-to-front).
217
250
  * @example
218
251
  * ```ts
219
- * export default defineScript({
252
+ * export default defineRenderScript({
220
253
  * init() {
221
254
  * // define a predicate matching anything with material tag "my_tag"
222
255
  * return { my_pred: render.predicate([hash("my_tag")]) };
@@ -225,21 +258,21 @@ declare global {
225
258
  * update(self, dt) {
226
259
  * // draw everything in the my_pred predicate
227
260
  * render.draw(self.my_pred);
228
- * },
229
- * });
230
261
  *
231
- * // Draw predicate with constants:
232
- * const constants = render.constant_buffer();
233
- * constants.tint = vmath.vector4(1, 1, 1, 1);
234
- * render.draw(self.my_pred, { constants });
262
+ * // Draw predicate with constants:
263
+ * const constants = render.constant_buffer();
264
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
265
+ * render.draw(self.my_pred, { constants });
235
266
  *
236
- * // Draw with predicate and frustum culling (without near+far planes):
237
- * const frustum = self.proj.mul(self.view);
238
- * render.draw(self.my_pred, { frustum });
267
+ * // Draw with predicate and frustum culling (without near+far planes):
268
+ * const frustum = self.proj.mul(self.view);
269
+ * render.draw(self.my_pred, { frustum });
239
270
  *
240
- * // Draw with predicate and frustum culling (with near+far planes):
241
- * const frustum2 = self.proj.mul(self.view);
242
- * render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
271
+ * // Draw with predicate and frustum culling (with near+far planes):
272
+ * const frustum2 = self.proj.mul(self.view);
273
+ * render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
274
+ * },
275
+ * });
243
276
  * ```
244
277
  */
245
278
  function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer">; sort_order?: number }): void;
@@ -258,7 +291,7 @@ declare global {
258
291
  * - render.FRUSTUM_PLANES_ALL : All sides of the frustum.
259
292
  * @example
260
293
  * ```ts
261
- * export default defineScript({
294
+ * export default defineRenderScript({
262
295
  * update(self, dt) {
263
296
  * // draw debug visualization
264
297
  * render.draw_debug3d();
@@ -276,10 +309,18 @@ declare global {
276
309
  * @param material_id - material id to enable
277
310
  * @example
278
311
  * ```ts
279
- * // Enable material named "glow", then draw my_pred with it.
280
- * render.enable_material("glow");
281
- * render.draw(self.my_pred);
282
- * render.disable_material();
312
+ * export default defineRenderScript({
313
+ * init() {
314
+ * return { my_pred: render.predicate([hash("my_tag")]) };
315
+ * },
316
+ *
317
+ * update(self, dt) {
318
+ * // Enable material named "glow", then draw my_pred with it.
319
+ * render.enable_material("glow");
320
+ * render.draw(self.my_pred);
321
+ * render.disable_material();
322
+ * },
323
+ * });
283
324
  * ```
284
325
  */
285
326
  function enable_material(material_id: string | Hash): void;
@@ -301,13 +342,21 @@ declare global {
301
342
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
302
343
  * @example
303
344
  * ```ts
304
- * // Enable stencil test when drawing the gui predicate, then disable it:
305
- * render.enable_state(graphics.STATE_STENCIL_TEST);
306
- * render.draw(self.gui_pred);
307
- * render.disable_state(graphics.STATE_STENCIL_TEST);
345
+ * export default defineRenderScript({
346
+ * init() {
347
+ * return { gui_pred: render.predicate([hash("gui")]) };
348
+ * },
349
+ *
350
+ * update(self, dt) {
351
+ * // Enable stencil test when drawing the gui predicate, then disable it:
352
+ * render.enable_state(graphics.STATE_STENCIL_TEST);
353
+ * render.draw(self.gui_pred);
354
+ * render.disable_state(graphics.STATE_STENCIL_TEST);
355
+ * },
356
+ * });
308
357
  * ```
309
358
  */
310
- function enable_state(state: number & { readonly __brand: "graphics.STATE_DEPTH_TEST" } | number & { readonly __brand: "graphics.STATE_STENCIL_TEST" } | number & { readonly __brand: "graphics.STATE_BLEND" } | number & { readonly __brand: "graphics.STATE_ALPHA_TEST" } | number & { readonly __brand: "graphics.STATE_CULL_FACE" } | number & { readonly __brand: "graphics.STATE_POLYGON_OFFSET_FILL" }): void;
359
+ function enable_state(state: graphics.State): void;
311
360
  /**
312
361
  * Sets the specified texture handle for a render target attachment or a regular texture
313
362
  * that should be used for rendering. The texture can be bound to either a texture unit
@@ -345,7 +394,7 @@ declare global {
345
394
  * - `graphics.BUFFER_TYPE_COLOR3_BIT`
346
395
  * @example
347
396
  * ```ts
348
- * export default defineScript({
397
+ * export default defineRenderScript({
349
398
  * update(self, dt) {
350
399
  * // enable target so all drawing is done to it
351
400
  * render.set_render_target(self.my_render_target);
@@ -362,9 +411,11 @@ declare global {
362
411
  * render.draw(self.my_pred);
363
412
  * },
364
413
  * });
365
- *
414
+ * ```
415
+ * @example
416
+ * ```ts
366
417
  * // Or enable a render target by resource id:
367
- * export default defineScript({
418
+ * export default defineRenderScript({
368
419
  * update(self, dt) {
369
420
  * render.set_render_target("my_rt_resource");
370
421
  * render.draw(self.my_pred);
@@ -376,9 +427,11 @@ declare global {
376
427
  * render.draw(self.my_pred);
377
428
  * },
378
429
  * });
379
- *
430
+ * ```
431
+ * @example
432
+ * ```ts
380
433
  * // Or bind a texture handle directly:
381
- * export default defineScript({
434
+ * export default defineRenderScript({
382
435
  * update(self, dt) {
383
436
  * // bind a texture to the texture unit 0
384
437
  * render.enable_texture(0, self.my_texture_handle);
@@ -388,7 +441,7 @@ declare global {
388
441
  * });
389
442
  * ```
390
443
  */
391
- function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash, buffer_type?: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): void;
444
+ function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash, buffer_type?: graphics.BufferType): void;
392
445
  /**
393
446
  * Returns the logical window height that is set in the "game.project" settings.
394
447
  * Note that the actual window pixel size can change, either by device constraints
@@ -416,13 +469,35 @@ declare global {
416
469
  * @returns the height of the render target buffer texture
417
470
  * @example
418
471
  * ```ts
419
- * // get the height of the render target color buffer
420
- * const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
421
- * // get the height of a render target resource
422
- * const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
472
+ * export default defineRenderScript({
473
+ * init() {
474
+ * // render target buffer parameters
475
+ * const color_params = {
476
+ * format: graphics.TEXTURE_FORMAT_RGBA,
477
+ * width: render.get_window_width(),
478
+ * height: render.get_window_height(),
479
+ * min_filter: graphics.TEXTURE_FILTER_LINEAR,
480
+ * mag_filter: graphics.TEXTURE_FILTER_LINEAR,
481
+ * u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
482
+ * v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
483
+ * };
484
+ * return {
485
+ * target_right: render.render_target("right", {
486
+ * [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
487
+ * }),
488
+ * };
489
+ * },
490
+ *
491
+ * update(self, dt) {
492
+ * // get the height of the render target color buffer
493
+ * const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
494
+ * // get the height of a render target resource
495
+ * const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
496
+ * },
497
+ * });
423
498
  * ```
424
499
  */
425
- function get_render_target_height(render_target: Opaque<"render_target">, buffer_type: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): number;
500
+ function get_render_target_height(render_target: Opaque<"render_target">, buffer_type: graphics.BufferType): number;
426
501
  /**
427
502
  * Returns the specified buffer width from a render target.
428
503
  *
@@ -439,13 +514,35 @@ declare global {
439
514
  * @returns the width of the render target buffer texture
440
515
  * @example
441
516
  * ```ts
442
- * // get the width of the render target color buffer
443
- * const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
444
- * // get the width of a render target resource
445
- * const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
517
+ * export default defineRenderScript({
518
+ * init() {
519
+ * // render target buffer parameters
520
+ * const color_params = {
521
+ * format: graphics.TEXTURE_FORMAT_RGBA,
522
+ * width: render.get_window_width(),
523
+ * height: render.get_window_height(),
524
+ * min_filter: graphics.TEXTURE_FILTER_LINEAR,
525
+ * mag_filter: graphics.TEXTURE_FILTER_LINEAR,
526
+ * u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
527
+ * v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
528
+ * };
529
+ * return {
530
+ * target_right: render.render_target("right", {
531
+ * [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
532
+ * }),
533
+ * };
534
+ * },
535
+ *
536
+ * update(self, dt) {
537
+ * // get the width of the render target color buffer
538
+ * const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
539
+ * // get the width of a render target resource
540
+ * const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
541
+ * },
542
+ * });
446
543
  * ```
447
544
  */
448
- function get_render_target_width(render_target: Opaque<"render_target">, buffer_type: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): number;
545
+ function get_render_target_width(render_target: Opaque<"render_target">, buffer_type: graphics.BufferType): number;
449
546
  /**
450
547
  * Returns the logical window width that is set in the "game.project" settings.
451
548
  * Note that the actual window pixel size can change, either by device constraints
@@ -629,17 +726,25 @@ declare global {
629
726
  * boolean If true, the renderer will use the cameras view-projection matrix for frustum culling (default: false)
630
727
  * @example
631
728
  * ```ts
632
- * // Set the current camera to be used for rendering
633
- * render.set_camera("main:/my_go#camera");
634
- * render.draw(self.my_pred);
635
- * render.set_camera(undefined);
636
- *
637
- * // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
638
- * // The camera frustum will take precedence over the frustum plane option in render.draw
639
- * render.set_camera("main:/my_go#camera", { use_frustum: true });
640
- * // However, we can still customize the frustum planes regardless of the camera option!
641
- * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
642
- * render.set_camera();
729
+ * export default defineRenderScript({
730
+ * init() {
731
+ * return { my_pred: render.predicate([hash("my_tag")]) };
732
+ * },
733
+ *
734
+ * update(self, dt) {
735
+ * // Set the current camera to be used for rendering
736
+ * render.set_camera("main:/my_go#camera");
737
+ * render.draw(self.my_pred);
738
+ * render.set_camera(undefined);
739
+ *
740
+ * // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
741
+ * // The camera frustum will take precedence over the frustum plane option in render.draw
742
+ * render.set_camera("main:/my_go#camera", { use_frustum: true });
743
+ * // However, we can still customize the frustum planes regardless of the camera option!
744
+ * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
745
+ * render.set_camera();
746
+ * },
747
+ * });
643
748
  * ```
644
749
  */
645
750
  function set_camera(camera?: Url | number, options?: { use_frustum?: boolean }): void;
@@ -666,11 +771,19 @@ declare global {
666
771
  * @param compute - compute id to use, or nil to disable
667
772
  * @example
668
773
  * ```ts
669
- * // Enable compute program named "fractals", then dispatch it.
670
- * render.set_compute("fractals");
671
- * render.enable_texture(0, self.backing_texture);
672
- * render.dispatch_compute(128, 128, 1);
673
- * render.set_compute();
774
+ * export default defineRenderScript({
775
+ * init() {
776
+ * return { backing_texture: "my_texture_resource" };
777
+ * },
778
+ *
779
+ * update(self, dt) {
780
+ * // Enable compute program named "fractals", then dispatch it.
781
+ * render.set_compute("fractals");
782
+ * render.enable_texture(0, self.backing_texture);
783
+ * render.dispatch_compute(128, 128, 1);
784
+ * render.set_compute();
785
+ * },
786
+ * });
674
787
  * ```
675
788
  */
676
789
  function set_compute(compute?: string | Hash): void;
@@ -760,7 +873,7 @@ declare global {
760
873
  * ```ts
761
874
  * // Set listener and handle render context events.
762
875
  * // custom.render_script
763
- * export default defineScript({
876
+ * export default defineRenderScript({
764
877
  * init() {
765
878
  * render.set_listener((self, event_type) => {
766
879
  * if (event_type === render.CONTEXT_EVENT_CONTEXT_LOST) {
@@ -833,10 +946,12 @@ declare global {
833
946
  *
834
947
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
835
948
  * @example
949
+ * How to set a render target and draw to it and then switch back to the default render target
950
+ * The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
836
951
  * ```ts
837
952
  * // How to set a render target and draw to it and then switch back to the default render target
838
953
  * // The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
839
- * export default defineScript({
954
+ * export default defineRenderScript({
840
955
  * update(self, dt) {
841
956
  * // set render target so all drawing is done to it
842
957
  * render.set_render_target(self.my_render_target, {
@@ -851,9 +966,11 @@ declare global {
851
966
  * render.set_render_target(render.RENDER_TARGET_DEFAULT);
852
967
  * },
853
968
  * });
854
- *
969
+ * ```
970
+ * @example
971
+ * ```ts
855
972
  * // Or set the render target by a render target resource identifier:
856
- * export default defineScript({
973
+ * export default defineRenderScript({
857
974
  * update(self, dt) {
858
975
  * render.set_render_target("my_rt_resource");
859
976
  *
@@ -876,9 +993,17 @@ declare global {
876
993
  * @param height - new render target height
877
994
  * @example
878
995
  * ```ts
879
- * // Resize render targets to the current window size:
880
- * render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
881
- * render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
996
+ * export default defineRenderScript({
997
+ * init() {
998
+ * return { my_render_target: render.render_target("my_target", {}) };
999
+ * },
1000
+ *
1001
+ * update(self, dt) {
1002
+ * // Resize render targets to the current window size:
1003
+ * render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
1004
+ * render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
1005
+ * },
1006
+ * });
882
1007
  * ```
883
1008
  */
884
1009
  function set_render_target_size(render_target: Opaque<"render_target">, width: number, height: number): void;
@@ -992,7 +1117,7 @@ declare global {
992
1117
  * ```ts
993
1118
  * // How to set the view and projection matrices according to
994
1119
  * // the values supplied by a camera.
995
- * export default defineScript({
1120
+ * export default defineRenderScript({
996
1121
  * init() {
997
1122
  * return {
998
1123
  * view: vmath.matrix4(),