@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
@@ -17,6 +17,7 @@ declare global {
17
17
  type constant_buffer = Opaque<"constant_buffer">;
18
18
  type render_target = Opaque<"render_target">;
19
19
  type texture = Opaque<"texture">;
20
+ type ClearBufferKey = typeof graphics.BUFFER_TYPE_COLOR0_BIT | typeof graphics.BUFFER_TYPE_DEPTH_BIT | typeof graphics.BUFFER_TYPE_STENCIL_BIT;
20
21
  const FRUSTUM_PLANES_ALL: number & { readonly __brand: "render.FRUSTUM_PLANES_ALL" };
21
22
  const FRUSTUM_PLANES_SIDES: number & { readonly __brand: "render.FRUSTUM_PLANES_SIDES" };
22
23
  const RENDER_TARGET_DEFAULT: number & { readonly __brand: "render.RENDER_TARGET_DEFAULT" };
@@ -52,7 +53,7 @@ declare global {
52
53
  * render.clear(buffers);
53
54
  * ```
54
55
  */
55
- 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;
56
+ function clear(buffers: LuaMap<render.ClearBufferKey, number | Vector4>): void;
56
57
  /**
57
58
  * Constant buffers are used to set shader program variables and are optionally passed to the `render.draw()` function.
58
59
  * The buffer's constant elements can be indexed like an ordinary Lua table, but you can't iterate over them with pairs() or ipairs().
@@ -60,30 +61,38 @@ declare global {
60
61
  * @returns new constant buffer
61
62
  * @example
62
63
  * ```ts
63
- * // Set a "tint" constant in a constant buffer in the render script:
64
- * const constants = render.constant_buffer();
65
- * constants.tint = vmath.vector4(1, 1, 1, 1);
66
- *
67
- * // Then use the constant buffer when drawing a predicate:
68
- * render.draw(self.my_pred, { constants });
69
- *
70
- * // The constant buffer also supports array values by specifying constants in an array:
71
- * const constants2 = render.constant_buffer();
72
- * constants2.light_colors = [];
73
- * constants2.light_colors[0] = vmath.vector4(1, 0, 0, 1);
74
- * constants2.light_colors[1] = vmath.vector4(0, 1, 0, 1);
75
- * constants2.light_colors[2] = vmath.vector4(0, 0, 1, 1);
76
- *
77
- * // You can also create the array by passing the vectors directly:
78
- * const constants3 = render.constant_buffer();
79
- * constants3.light_colors = [
80
- * vmath.vector4(1, 0, 0, 1),
81
- * vmath.vector4(0, 1, 0, 1),
82
- * vmath.vector4(0, 0, 1, 1),
83
- * ];
64
+ * export default defineRenderScript({
65
+ * init() {
66
+ * return { my_pred: render.predicate([hash("my_tag")]) };
67
+ * },
84
68
  *
85
- * // Add more constants to the array
86
- * constants3.light_colors[3] = vmath.vector4(1, 1, 1, 1);
69
+ * update(self, dt) {
70
+ * // Set a "tint" constant in a constant buffer in the render script:
71
+ * const constants = render.constant_buffer();
72
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
73
+ *
74
+ * // Then use the constant buffer when drawing a predicate:
75
+ * render.draw(self.my_pred, { constants });
76
+ *
77
+ * // The constant buffer also supports array values by specifying constants in an array:
78
+ * const constants2 = render.constant_buffer();
79
+ * constants2.light_colors = [];
80
+ * constants2.light_colors[0] = vmath.vector4(1, 0, 0, 1);
81
+ * constants2.light_colors[1] = vmath.vector4(0, 1, 0, 1);
82
+ * constants2.light_colors[2] = vmath.vector4(0, 0, 1, 1);
83
+ *
84
+ * // You can also create the array by passing the vectors directly:
85
+ * const constants3 = render.constant_buffer();
86
+ * constants3.light_colors = [
87
+ * vmath.vector4(1, 0, 0, 1),
88
+ * vmath.vector4(0, 1, 0, 1),
89
+ * vmath.vector4(0, 0, 1, 1),
90
+ * ];
91
+ *
92
+ * // Add more constants to the array
93
+ * constants3.light_colors[3] = vmath.vector4(1, 1, 1, 1);
94
+ * },
95
+ * });
87
96
  * ```
88
97
  */
89
98
  function constant_buffer(): Opaque<"constant_buffer">;
@@ -94,8 +103,16 @@ declare global {
94
103
  * @param render_target - render target to delete
95
104
  * @example
96
105
  * ```ts
97
- * // How to delete a render target:
98
- * render.delete_render_target(self.my_render_target);
106
+ * export default defineRenderScript({
107
+ * init() {
108
+ * return { my_render_target: render.render_target("my_target", {}) };
109
+ * },
110
+ *
111
+ * final(self) {
112
+ * // How to delete a render target:
113
+ * render.delete_render_target(self.my_render_target);
114
+ * },
115
+ * });
99
116
  * ```
100
117
  */
101
118
  function delete_render_target(render_target: Opaque<"render_target">): void;
@@ -106,10 +123,18 @@ declare global {
106
123
  *
107
124
  * @example
108
125
  * ```ts
109
- * // Enable material named "glow", then draw my_pred with it.
110
- * render.enable_material("glow");
111
- * render.draw(self.my_pred);
112
- * render.disable_material();
126
+ * export default defineRenderScript({
127
+ * init() {
128
+ * return { my_pred: render.predicate([hash("my_tag")]) };
129
+ * },
130
+ *
131
+ * update(self, dt) {
132
+ * // Enable material named "glow", then draw my_pred with it.
133
+ * render.enable_material("glow");
134
+ * render.draw(self.my_pred);
135
+ * render.disable_material();
136
+ * },
137
+ * });
113
138
  * ```
114
139
  */
115
140
  function disable_material(): void;
@@ -131,19 +156,27 @@ declare global {
131
156
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
132
157
  * @example
133
158
  * ```ts
134
- * // Disable face culling when drawing the tile predicate:
135
- * render.disable_state(graphics.STATE_CULL_FACE);
136
- * render.draw(self.tile_pred);
159
+ * export default defineRenderScript({
160
+ * init() {
161
+ * return { tile_pred: render.predicate([hash("tile")]) };
162
+ * },
163
+ *
164
+ * update(self, dt) {
165
+ * // Disable face culling when drawing the tile predicate:
166
+ * render.disable_state(graphics.STATE_CULL_FACE);
167
+ * render.draw(self.tile_pred);
168
+ * },
169
+ * });
137
170
  * ```
138
171
  */
139
- 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;
172
+ function disable_state(state: graphics.State): void;
140
173
  /**
141
174
  * Disables a texture that has previourly been enabled.
142
175
  *
143
176
  * @param binding - texture binding, either by texture unit, string or hash that should be disabled
144
177
  * @example
145
178
  * ```ts
146
- * export default defineScript({
179
+ * export default defineRenderScript({
147
180
  * update(self, dt) {
148
181
  * render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
149
182
  * // draw a predicate with the render target available as texture 0 in the predicate
@@ -172,7 +205,7 @@ declare global {
172
205
  * constant_buffer optional constants to use while rendering
173
206
  * @example
174
207
  * ```ts
175
- * export default defineScript({
208
+ * export default defineRenderScript({
176
209
  * init() {
177
210
  * const color_params = {
178
211
  * format: graphics.TEXTURE_FORMAT_RGBA,
@@ -224,7 +257,7 @@ declare global {
224
257
  * int How to sort draw order for world-ordered entries. Default uses the renderer's preferred world sorting (back-to-front).
225
258
  * @example
226
259
  * ```ts
227
- * export default defineScript({
260
+ * export default defineRenderScript({
228
261
  * init() {
229
262
  * // define a predicate matching anything with material tag "my_tag"
230
263
  * return { my_pred: render.predicate([hash("my_tag")]) };
@@ -233,21 +266,21 @@ declare global {
233
266
  * update(self, dt) {
234
267
  * // draw everything in the my_pred predicate
235
268
  * render.draw(self.my_pred);
236
- * },
237
- * });
238
269
  *
239
- * // Draw predicate with constants:
240
- * const constants = render.constant_buffer();
241
- * constants.tint = vmath.vector4(1, 1, 1, 1);
242
- * render.draw(self.my_pred, { constants });
270
+ * // Draw predicate with constants:
271
+ * const constants = render.constant_buffer();
272
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
273
+ * render.draw(self.my_pred, { constants });
243
274
  *
244
- * // Draw with predicate and frustum culling (without near+far planes):
245
- * const frustum = self.proj.mul(self.view);
246
- * render.draw(self.my_pred, { frustum });
275
+ * // Draw with predicate and frustum culling (without near+far planes):
276
+ * const frustum = self.proj.mul(self.view);
277
+ * render.draw(self.my_pred, { frustum });
247
278
  *
248
- * // Draw with predicate and frustum culling (with near+far planes):
249
- * const frustum2 = self.proj.mul(self.view);
250
- * render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
279
+ * // Draw with predicate and frustum culling (with near+far planes):
280
+ * const frustum2 = self.proj.mul(self.view);
281
+ * render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
282
+ * },
283
+ * });
251
284
  * ```
252
285
  */
253
286
  function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer">; sort_order?: number }): void;
@@ -266,7 +299,7 @@ declare global {
266
299
  * - render.FRUSTUM_PLANES_ALL : All sides of the frustum.
267
300
  * @example
268
301
  * ```ts
269
- * export default defineScript({
302
+ * export default defineRenderScript({
270
303
  * update(self, dt) {
271
304
  * // draw debug visualization
272
305
  * render.draw_debug3d();
@@ -284,10 +317,18 @@ declare global {
284
317
  * @param material_id - material id to enable
285
318
  * @example
286
319
  * ```ts
287
- * // Enable material named "glow", then draw my_pred with it.
288
- * render.enable_material("glow");
289
- * render.draw(self.my_pred);
290
- * render.disable_material();
320
+ * export default defineRenderScript({
321
+ * init() {
322
+ * return { my_pred: render.predicate([hash("my_tag")]) };
323
+ * },
324
+ *
325
+ * update(self, dt) {
326
+ * // Enable material named "glow", then draw my_pred with it.
327
+ * render.enable_material("glow");
328
+ * render.draw(self.my_pred);
329
+ * render.disable_material();
330
+ * },
331
+ * });
291
332
  * ```
292
333
  */
293
334
  function enable_material(material_id: string | Hash): void;
@@ -309,13 +350,21 @@ declare global {
309
350
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
310
351
  * @example
311
352
  * ```ts
312
- * // Enable stencil test when drawing the gui predicate, then disable it:
313
- * render.enable_state(graphics.STATE_STENCIL_TEST);
314
- * render.draw(self.gui_pred);
315
- * render.disable_state(graphics.STATE_STENCIL_TEST);
353
+ * export default defineRenderScript({
354
+ * init() {
355
+ * return { gui_pred: render.predicate([hash("gui")]) };
356
+ * },
357
+ *
358
+ * update(self, dt) {
359
+ * // Enable stencil test when drawing the gui predicate, then disable it:
360
+ * render.enable_state(graphics.STATE_STENCIL_TEST);
361
+ * render.draw(self.gui_pred);
362
+ * render.disable_state(graphics.STATE_STENCIL_TEST);
363
+ * },
364
+ * });
316
365
  * ```
317
366
  */
318
- 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;
367
+ function enable_state(state: graphics.State): void;
319
368
  /**
320
369
  * Sets the specified texture handle for a render target attachment or a regular texture
321
370
  * that should be used for rendering. The texture can be bound to either a texture unit
@@ -353,7 +402,7 @@ declare global {
353
402
  * - `graphics.BUFFER_TYPE_COLOR3_BIT`
354
403
  * @example
355
404
  * ```ts
356
- * export default defineScript({
405
+ * export default defineRenderScript({
357
406
  * update(self, dt) {
358
407
  * // enable target so all drawing is done to it
359
408
  * render.set_render_target(self.my_render_target);
@@ -370,9 +419,11 @@ declare global {
370
419
  * render.draw(self.my_pred);
371
420
  * },
372
421
  * });
373
- *
422
+ * ```
423
+ * @example
424
+ * ```ts
374
425
  * // Or enable a render target by resource id:
375
- * export default defineScript({
426
+ * export default defineRenderScript({
376
427
  * update(self, dt) {
377
428
  * render.set_render_target("my_rt_resource");
378
429
  * render.draw(self.my_pred);
@@ -384,9 +435,11 @@ declare global {
384
435
  * render.draw(self.my_pred);
385
436
  * },
386
437
  * });
387
- *
438
+ * ```
439
+ * @example
440
+ * ```ts
388
441
  * // Or bind a texture handle directly:
389
- * export default defineScript({
442
+ * export default defineRenderScript({
390
443
  * update(self, dt) {
391
444
  * // bind a texture to the texture unit 0
392
445
  * render.enable_texture(0, self.my_texture_handle);
@@ -396,7 +449,7 @@ declare global {
396
449
  * });
397
450
  * ```
398
451
  */
399
- 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;
452
+ function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash, buffer_type?: graphics.BufferType): void;
400
453
  /**
401
454
  * Returns the logical window height that is set in the "game.project" settings.
402
455
  * Note that the actual window pixel size can change, either by device constraints
@@ -424,13 +477,35 @@ declare global {
424
477
  * @returns the height of the render target buffer texture
425
478
  * @example
426
479
  * ```ts
427
- * // get the height of the render target color buffer
428
- * const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
429
- * // get the height of a render target resource
430
- * const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
480
+ * export default defineRenderScript({
481
+ * init() {
482
+ * // render target buffer parameters
483
+ * const color_params = {
484
+ * format: graphics.TEXTURE_FORMAT_RGBA,
485
+ * width: render.get_window_width(),
486
+ * height: render.get_window_height(),
487
+ * min_filter: graphics.TEXTURE_FILTER_LINEAR,
488
+ * mag_filter: graphics.TEXTURE_FILTER_LINEAR,
489
+ * u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
490
+ * v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
491
+ * };
492
+ * return {
493
+ * target_right: render.render_target("right", {
494
+ * [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
495
+ * }),
496
+ * };
497
+ * },
498
+ *
499
+ * update(self, dt) {
500
+ * // get the height of the render target color buffer
501
+ * const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
502
+ * // get the height of a render target resource
503
+ * const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
504
+ * },
505
+ * });
431
506
  * ```
432
507
  */
433
- 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;
508
+ function get_render_target_height(render_target: Opaque<"render_target">, buffer_type: graphics.BufferType): number;
434
509
  /**
435
510
  * Returns the specified buffer width from a render target.
436
511
  *
@@ -447,13 +522,35 @@ declare global {
447
522
  * @returns the width of the render target buffer texture
448
523
  * @example
449
524
  * ```ts
450
- * // get the width of the render target color buffer
451
- * const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
452
- * // get the width of a render target resource
453
- * const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
525
+ * export default defineRenderScript({
526
+ * init() {
527
+ * // render target buffer parameters
528
+ * const color_params = {
529
+ * format: graphics.TEXTURE_FORMAT_RGBA,
530
+ * width: render.get_window_width(),
531
+ * height: render.get_window_height(),
532
+ * min_filter: graphics.TEXTURE_FILTER_LINEAR,
533
+ * mag_filter: graphics.TEXTURE_FILTER_LINEAR,
534
+ * u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
535
+ * v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
536
+ * };
537
+ * return {
538
+ * target_right: render.render_target("right", {
539
+ * [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
540
+ * }),
541
+ * };
542
+ * },
543
+ *
544
+ * update(self, dt) {
545
+ * // get the width of the render target color buffer
546
+ * const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
547
+ * // get the width of a render target resource
548
+ * const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
549
+ * },
550
+ * });
454
551
  * ```
455
552
  */
456
- 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;
553
+ function get_render_target_width(render_target: Opaque<"render_target">, buffer_type: graphics.BufferType): number;
457
554
  /**
458
555
  * Returns the logical window width that is set in the "game.project" settings.
459
556
  * Note that the actual window pixel size can change, either by device constraints
@@ -613,17 +710,25 @@ declare global {
613
710
  * boolean If true, the renderer will use the cameras view-projection matrix for frustum culling (default: false)
614
711
  * @example
615
712
  * ```ts
616
- * // Set the current camera to be used for rendering
617
- * render.set_camera("main:/my_go#camera");
618
- * render.draw(self.my_pred);
619
- * render.set_camera(undefined);
713
+ * export default defineRenderScript({
714
+ * init() {
715
+ * return { my_pred: render.predicate([hash("my_tag")]) };
716
+ * },
620
717
  *
621
- * // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
622
- * // The camera frustum will take precedence over the frustum plane option in render.draw
623
- * render.set_camera("main:/my_go#camera", { use_frustum: true });
624
- * // However, we can still customize the frustum planes regardless of the camera option!
625
- * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
626
- * render.set_camera();
718
+ * update(self, dt) {
719
+ * // Set the current camera to be used for rendering
720
+ * render.set_camera("main:/my_go#camera");
721
+ * render.draw(self.my_pred);
722
+ * render.set_camera(undefined);
723
+ *
724
+ * // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
725
+ * // The camera frustum will take precedence over the frustum plane option in render.draw
726
+ * render.set_camera("main:/my_go#camera", { use_frustum: true });
727
+ * // However, we can still customize the frustum planes regardless of the camera option!
728
+ * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
729
+ * render.set_camera();
730
+ * },
731
+ * });
627
732
  * ```
628
733
  */
629
734
  function set_camera(camera?: Url | number, options?: { use_frustum?: boolean }): void;
@@ -650,11 +755,19 @@ declare global {
650
755
  * @param compute - compute id to use, or nil to disable
651
756
  * @example
652
757
  * ```ts
653
- * // Enable compute program named "fractals", then dispatch it.
654
- * render.set_compute("fractals");
655
- * render.enable_texture(0, self.backing_texture);
656
- * render.dispatch_compute(128, 128, 1);
657
- * render.set_compute();
758
+ * export default defineRenderScript({
759
+ * init() {
760
+ * return { backing_texture: "my_texture_resource" };
761
+ * },
762
+ *
763
+ * update(self, dt) {
764
+ * // Enable compute program named "fractals", then dispatch it.
765
+ * render.set_compute("fractals");
766
+ * render.enable_texture(0, self.backing_texture);
767
+ * render.dispatch_compute(128, 128, 1);
768
+ * render.set_compute();
769
+ * },
770
+ * });
658
771
  * ```
659
772
  */
660
773
  function set_compute(compute?: string | Hash): void;
@@ -744,7 +857,7 @@ declare global {
744
857
  * ```ts
745
858
  * // Set listener and handle render context events.
746
859
  * // custom.render_script
747
- * export default defineScript({
860
+ * export default defineRenderScript({
748
861
  * init() {
749
862
  * render.set_listener((self, event_type) => {
750
863
  * if (event_type === render.CONTEXT_EVENT_CONTEXT_LOST) {
@@ -817,10 +930,12 @@ declare global {
817
930
  *
818
931
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
819
932
  * @example
933
+ * How to set a render target and draw to it and then switch back to the default render target
934
+ * 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
820
935
  * ```ts
821
936
  * // How to set a render target and draw to it and then switch back to the default render target
822
937
  * // 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
823
- * export default defineScript({
938
+ * export default defineRenderScript({
824
939
  * update(self, dt) {
825
940
  * // set render target so all drawing is done to it
826
941
  * render.set_render_target(self.my_render_target, {
@@ -835,9 +950,11 @@ declare global {
835
950
  * render.set_render_target(render.RENDER_TARGET_DEFAULT);
836
951
  * },
837
952
  * });
838
- *
953
+ * ```
954
+ * @example
955
+ * ```ts
839
956
  * // Or set the render target by a render target resource identifier:
840
- * export default defineScript({
957
+ * export default defineRenderScript({
841
958
  * update(self, dt) {
842
959
  * render.set_render_target("my_rt_resource");
843
960
  *
@@ -860,9 +977,17 @@ declare global {
860
977
  * @param height - new render target height
861
978
  * @example
862
979
  * ```ts
863
- * // Resize render targets to the current window size:
864
- * render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
865
- * render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
980
+ * export default defineRenderScript({
981
+ * init() {
982
+ * return { my_render_target: render.render_target("my_target", {}) };
983
+ * },
984
+ *
985
+ * update(self, dt) {
986
+ * // Resize render targets to the current window size:
987
+ * render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
988
+ * render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
989
+ * },
990
+ * });
866
991
  * ```
867
992
  */
868
993
  function set_render_target_size(render_target: Opaque<"render_target">, width: number, height: number): void;
@@ -976,7 +1101,7 @@ declare global {
976
1101
  * ```ts
977
1102
  * // How to set the view and projection matrices according to
978
1103
  * // the values supplied by a camera.
979
- * export default defineScript({
1104
+ * export default defineRenderScript({
980
1105
  * init() {
981
1106
  * return {
982
1107
  * view: vmath.matrix4(),