@defold-typescript/types 0.40.0 → 0.41.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 (224) hide show
  1. package/api-availability.json +3963 -772
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18069 -10240
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +560 -89
  6. package/fixtures/messages_doc.json +96 -0
  7. package/generated/b2d.d.ts +680 -4
  8. package/generated/b2d_body.d.ts +29 -103
  9. package/generated/b2d_chain.d.ts +5 -6
  10. package/generated/b2d_fixture.d.ts +34 -38
  11. package/generated/b2d_joint.d.ts +503 -25
  12. package/generated/b2d_shape.d.ts +183 -20
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +16 -15
  15. package/generated/builtin-messages.d.ts +7 -1
  16. package/generated/bullet3d.d.ts +91 -0
  17. package/generated/bullet3d_collision_object.d.ts +433 -0
  18. package/generated/bullet3d_constraint.d.ts +818 -0
  19. package/generated/bullet3d_rigid_body.d.ts +429 -0
  20. package/generated/bullet3d_shape.d.ts +123 -0
  21. package/generated/bullet3d_world.d.ts +492 -0
  22. package/generated/camera.d.ts +29 -32
  23. package/generated/collectionfactory.d.ts +15 -18
  24. package/generated/collectionproxy.d.ts +22 -6
  25. package/generated/compute.d.ts +12 -238
  26. package/generated/crash.d.ts +24 -10
  27. package/generated/editor-vm/http.d.ts +90 -7
  28. package/generated/editor-vm/image.d.ts +7 -7
  29. package/generated/editor-vm/json.d.ts +11 -0
  30. package/generated/editor-vm/localization.d.ts +7 -7
  31. package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
  32. package/generated/editor-vm/zip.d.ts +28 -0
  33. package/generated/editor.d.ts +1496 -430
  34. package/generated/factory.d.ts +21 -25
  35. package/generated/font.d.ts +64 -22
  36. package/generated/go.d.ts +235 -182
  37. package/generated/graphics.d.ts +335 -97
  38. package/generated/gui.d.ts +240 -471
  39. package/generated/html5.d.ts +2 -2
  40. package/generated/http.d.ts +28 -35
  41. package/generated/image.d.ts +105 -72
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +7 -0
  44. package/generated/kinds/render-script.d.ts +7 -0
  45. package/generated/kinds/script.d.ts +7 -0
  46. package/generated/label.d.ts +77 -7
  47. package/generated/liveupdate.d.ts +13 -10
  48. package/generated/material.d.ts +312 -360
  49. package/generated/model.d.ts +40 -39
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +365 -133
  52. package/generated/profiler.d.ts +13 -23
  53. package/generated/render.d.ts +237 -297
  54. package/generated/resource.d.ts +664 -583
  55. package/generated/socket.d.ts +120 -133
  56. package/generated/sound.d.ts +62 -31
  57. package/generated/sprite.d.ts +31 -17
  58. package/generated/sys.d.ts +234 -190
  59. package/generated/tilemap.d.ts +21 -16
  60. package/generated/timer.d.ts +34 -21
  61. package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
  62. package/generated/versions/defold-1.12.4/buffer.d.ts +1 -3
  63. package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
  65. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
  66. package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
  67. package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
  68. package/generated/versions/defold-1.12.4/go.d.ts +6 -12
  69. package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
  70. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  71. package/generated/versions/defold-1.12.4/http.d.ts +0 -13
  72. package/generated/versions/defold-1.12.4/image.d.ts +16 -33
  73. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  74. package/generated/versions/defold-1.12.4/json.d.ts +10 -6
  75. package/generated/versions/defold-1.12.4/label.d.ts +2 -3
  76. package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
  77. package/generated/versions/defold-1.12.4/model.d.ts +2 -10
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
  81. package/generated/versions/defold-1.12.4/render.d.ts +99 -128
  82. package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
  83. package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
  84. package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
  86. package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
  87. package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
  88. package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
  89. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -21
  90. package/generated/versions/defold-1.12.4/window.d.ts +1 -16
  91. package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
  92. package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
  93. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +169 -8
  94. package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
  95. package/generated/versions/defold-1.13.0/buffer.d.ts +1 -3
  96. package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
  100. package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
  101. package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
  102. package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
  103. package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
  104. package/generated/versions/defold-1.13.0/go.d.ts +6 -12
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
  107. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  108. package/generated/versions/defold-1.13.0/http.d.ts +0 -13
  109. package/generated/versions/defold-1.13.0/image.d.ts +16 -33
  110. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  111. package/generated/versions/defold-1.13.0/json.d.ts +10 -6
  112. package/generated/versions/defold-1.13.0/label.d.ts +2 -3
  113. package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
  114. package/generated/versions/defold-1.13.0/material.d.ts +68 -106
  115. package/generated/versions/defold-1.13.0/model.d.ts +2 -10
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
  119. package/generated/versions/defold-1.13.0/render.d.ts +99 -128
  120. package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
  121. package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
  122. package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
  124. package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
  125. package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
  126. package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
  127. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -21
  128. package/generated/versions/defold-1.13.0/window.d.ts +1 -16
  129. package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
  130. package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
  131. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
  132. package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
  133. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
  134. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
  135. package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
  136. package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
  137. package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
  138. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
  139. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
  140. package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
  141. package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
  142. package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
  143. package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
  144. package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
  145. package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
  146. package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
  147. package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
  148. package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
  149. package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
  150. package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
  151. package/generated/versions/defold-1.13.1/font.d.ts +81 -0
  152. package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
  153. package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
  154. package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
  155. package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
  156. package/generated/versions/defold-1.13.1/http.d.ts +77 -0
  157. package/generated/versions/defold-1.13.1/image.d.ts +131 -0
  158. package/generated/versions/defold-1.13.1/index.d.ts +57 -0
  159. package/generated/versions/defold-1.13.1/json.d.ts +80 -0
  160. package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
  161. package/generated/versions/defold-1.13.1/label.d.ts +93 -0
  162. package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
  163. package/generated/versions/defold-1.13.1/material.d.ts +408 -0
  164. package/generated/versions/defold-1.13.1/model.d.ts +272 -0
  165. package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
  166. package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
  167. package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
  168. package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
  169. package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
  170. package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
  171. package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
  172. package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
  173. package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
  174. package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
  175. package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
  176. package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
  177. package/generated/versions/defold-1.13.1/types.d.ts +61 -0
  178. package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
  179. package/generated/versions/defold-1.13.1/window.d.ts +183 -0
  180. package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
  181. package/generated/vmath.d.ts +1 -21
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +7 -0
  185. package/package.json +13 -2
  186. package/scripts/example-store-io.ts +12 -1
  187. package/scripts/extension-goldens.ts +1 -0
  188. package/scripts/fidelity-baseline.json +146 -46
  189. package/scripts/generate-api-availability.ts +90 -12
  190. package/scripts/generate-api-signatures.ts +12 -2
  191. package/scripts/import-defold-release.ts +85 -24
  192. package/scripts/prose-constants.ts +77 -16
  193. package/scripts/regen.ts +391 -77
  194. package/scripts/shared-handle-methods.ts +53 -0
  195. package/scripts/signature-store-fs.ts +1 -0
  196. package/scripts/sync-api-docs.ts +16 -5
  197. package/src/api-availability.ts +0 -0
  198. package/src/api-doc.ts +201 -3
  199. package/src/api-identity.ts +252 -0
  200. package/src/core-types.ts +26 -3
  201. package/src/correction-pins.ts +49 -0
  202. package/src/doc-comment.ts +104 -11
  203. package/src/doc-corrections.ts +108 -0
  204. package/src/editor-vm-globals.d.ts +5 -2
  205. package/src/emit-dts.ts +2064 -281
  206. package/src/emit-messages.ts +52 -0
  207. package/src/example-store.ts +125 -14
  208. package/src/field-correction-coverage.ts +204 -0
  209. package/src/fnv1a.ts +16 -0
  210. package/src/go-overloads.d.ts +25 -6
  211. package/src/index-base-table.ts +145 -0
  212. package/src/index-slot-classifications.ts +588 -0
  213. package/src/index.ts +38 -5
  214. package/src/library-index-slot-classifications.ts +332 -0
  215. package/src/lifecycle.ts +61 -199
  216. package/src/luals-type-expr.ts +354 -0
  217. package/src/msg-overloads.d.ts +0 -1
  218. package/src/param-correction-provenance.ts +8 -11
  219. package/src/render-overloads.d.ts +0 -15
  220. package/src/return-correction-provenance.ts +58 -16
  221. package/src/sys-overloads.d.ts +48 -0
  222. package/src/vmath-overloads.d.ts +27 -1
  223. package/src/window-event-guard.d.ts +6 -9
  224. package/url-parameters.json +1 -2
@@ -10,9 +10,17 @@ declare global {
10
10
  type render_target = Opaque<"render_target">;
11
11
  type texture = Opaque<"texture">;
12
12
  type ClearBufferKey = typeof graphics.BUFFER_TYPE_COLOR0_BIT | typeof graphics.BUFFER_TYPE_DEPTH_BIT | typeof graphics.BUFFER_TYPE_STENCIL_BIT;
13
+ /**
14
+ * The rendering context was lost. Rendering is paused and all graphics resources become invalid. Passed to the `render.set_listener` callback.
15
+ */
16
+ const CONTEXT_EVENT_CONTEXT_LOST: number & { readonly __brand: "render.CONTEXT_EVENT_CONTEXT_LOST" };
17
+ /**
18
+ * The rendering context was restored. Rendering is still paused and graphics resources are still invalid, but can be reloaded. Passed to the `render.set_listener` callback.
19
+ */
20
+ const CONTEXT_EVENT_CONTEXT_RESTORED: number & { readonly __brand: "render.CONTEXT_EVENT_CONTEXT_RESTORED" };
13
21
  const FRUSTUM_PLANES_ALL: number & { readonly __brand: "render.FRUSTUM_PLANES_ALL" };
14
22
  const FRUSTUM_PLANES_SIDES: number & { readonly __brand: "render.FRUSTUM_PLANES_SIDES" };
15
- const RENDER_TARGET_DEFAULT: number & { readonly __brand: "render.RENDER_TARGET_DEFAULT" };
23
+ const RENDER_TARGET_DEFAULT: undefined;
16
24
  /**
17
25
  * Depth sort far-to-near (default; good for transparent passes).
18
26
  */
@@ -25,6 +33,10 @@ declare global {
25
33
  * No per-call sorting; draw entries in insertion order.
26
34
  */
27
35
  const SORT_NONE: number & { readonly __brand: "render.SORT_NONE" };
36
+ /**
37
+ * Render target buffer flag that samples a depth or stencil buffer as a texture, for `render.render_target`.
38
+ */
39
+ const TEXTURE_BIT: number & { readonly __brand: "render.TEXTURE_BIT" };
28
40
  /**
29
41
  * Clear buffers in the currently enabled render target with specified value. If the render target has been created with multiple
30
42
  * color attachments, all buffers will be cleared with the same value.
@@ -32,9 +44,7 @@ declare global {
32
44
  * @param buffers - table with keys specifying which buffers to clear and values set to clear values. Available keys are:
33
45
  *
34
46
  * - `graphics.BUFFER_TYPE_COLOR0_BIT`
35
- *
36
47
  * - `graphics.BUFFER_TYPE_DEPTH_BIT`
37
- *
38
48
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
39
49
  * @example
40
50
  * ```ts
@@ -52,39 +62,41 @@ declare global {
52
62
  *
53
63
  * @returns new constant buffer
54
64
  * @example
65
+ * Set a "tint" constant in a constant buffer in the render script:
55
66
  * ```ts
56
- * export default defineRenderScript({
57
- * init() {
58
- * return { my_pred: render.predicate([hash("my_tag")]) };
59
- * },
60
- *
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
- * });
67
+ * const constants = render.constant_buffer();
68
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
69
+ * ```
70
+ * @example
71
+ * Then use the constant buffer when drawing a predicate:
72
+ * ```ts
73
+ * function draw_tinted(self: { my_pred: Opaque<"render_predicate"> }) {
74
+ * const constants = render.constant_buffer();
75
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
76
+ * render.draw(self.my_pred, { constants });
77
+ * }
78
+ * ```
79
+ * @example
80
+ * The constant buffer also supports array values by specifying constants in a table:
81
+ * ```ts
82
+ * const constants = render.constant_buffer();
83
+ * constants.light_colors = [];
84
+ * constants.light_colors[0] = vmath.vector4(1, 0, 0, 1);
85
+ * constants.light_colors[1] = vmath.vector4(0, 1, 0, 1);
86
+ * constants.light_colors[2] = vmath.vector4(0, 0, 1, 1);
87
+ * ```
88
+ * @example
89
+ * You can also create the table by passing the vectors directly when creating the table:
90
+ * ```ts
91
+ * const constants = render.constant_buffer();
92
+ * constants.light_colors = [
93
+ * vmath.vector4(1, 0, 0, 1),
94
+ * vmath.vector4(0, 1, 0, 1),
95
+ * vmath.vector4(0, 0, 1, 1),
96
+ * ];
97
+ *
98
+ * // Add more constants to the array
99
+ * constants.light_colors[3] = vmath.vector4(1, 1, 1, 1);
88
100
  * ```
89
101
  */
90
102
  function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] };
@@ -136,15 +148,10 @@ declare global {
136
148
  * @param state - state to disable
137
149
  *
138
150
  * - `graphics.STATE_DEPTH_TEST`
139
- *
140
151
  * - `graphics.STATE_STENCIL_TEST`
141
- *
142
152
  * - `graphics.STATE_BLEND`
143
- *
144
153
  * - `graphics.STATE_ALPHA_TEST` ( not available on iOS and Android)
145
- *
146
154
  * - `graphics.STATE_CULL_FACE`
147
- *
148
155
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
149
156
  * @example
150
157
  * ```ts
@@ -230,8 +237,10 @@ declare global {
230
237
  * render.set_compute();
231
238
  * },
232
239
  * });
233
- *
234
- * // Dispatch a compute program with a constant buffer:
240
+ * ```
241
+ * @example
242
+ * Dispatch a compute program with a constant buffer:
243
+ * ```ts
235
244
  * const constants = render.constant_buffer();
236
245
  * constants.tint = vmath.vector4(1, 1, 1, 1);
237
246
  * render.dispatch_compute(32, 32, 32, { constants });
@@ -253,7 +262,6 @@ declare global {
253
262
  * int Determines which sides of the frustum will be used. Default is render.FRUSTUM_PLANES_SIDES.
254
263
  *
255
264
  * - render.FRUSTUM_PLANES_SIDES : The left, right, top and bottom sides of the frustum.
256
- *
257
265
  * - render.FRUSTUM_PLANES_ALL : All 6 sides of the frustum.
258
266
  *
259
267
  * `constants`
@@ -264,35 +272,43 @@ declare global {
264
272
  * ```ts
265
273
  * export default defineRenderScript({
266
274
  * init() {
267
- * return {
268
- * // define a predicate matching anything with material tag "my_tag"
269
- * my_pred: render.predicate([hash("my_tag")]),
270
- * proj: vmath.matrix4_perspective(math.rad(45), render.get_window_width() / render.get_window_height(), 0.1, 1000),
271
- * view: vmath.matrix4_look_at(vmath.vector3(0, 0, 10), vmath.vector3(0, 0, 0), vmath.vector3(0, 1, 0)),
272
- * };
275
+ * // define a predicate matching anything with material tag "my_tag"
276
+ * return { my_pred: render.predicate([hash("my_tag")]) };
273
277
  * },
274
278
  *
275
279
  * update(self, dt) {
276
280
  * // draw everything in the my_pred predicate
277
281
  * render.draw(self.my_pred);
278
- *
279
- * // Draw predicate with constants:
280
- * const constants = render.constant_buffer();
281
- * constants.tint = vmath.vector4(1, 1, 1, 1);
282
- * render.draw(self.my_pred, { constants });
283
- *
284
- * // Draw with predicate and frustum culling (without near+far planes):
285
- * const frustum = self.proj.mul(self.view);
286
- * render.draw(self.my_pred, { frustum });
287
- *
288
- * // Draw with predicate and frustum culling (with near+far planes):
289
- * const frustum2 = self.proj.mul(self.view);
290
- * render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
291
282
  * },
292
283
  * });
293
284
  * ```
285
+ * @example
286
+ * Draw predicate with constants:
287
+ * ```ts
288
+ * function draw_tinted(self: { my_pred: Opaque<"render_predicate"> }) {
289
+ * const constants = render.constant_buffer();
290
+ * constants.tint = vmath.vector4(1, 1, 1, 1);
291
+ * render.draw(self.my_pred, { constants });
292
+ * }
293
+ * ```
294
+ * @example
295
+ * Draw with predicate and frustum culling (without near+far planes):
296
+ * ```ts
297
+ * function draw_culled(self: { my_pred: Opaque<"render_predicate">; proj: Matrix4; view: Matrix4 }) {
298
+ * const frustum = self.proj.mul(self.view);
299
+ * render.draw(self.my_pred, { frustum });
300
+ * }
301
+ * ```
302
+ * @example
303
+ * Draw with predicate and frustum culling (with near+far planes):
304
+ * ```ts
305
+ * function draw_culled(self: { my_pred: Opaque<"render_predicate">; proj: Matrix4; view: Matrix4 }) {
306
+ * const frustum = self.proj.mul(self.view);
307
+ * render.draw(self.my_pred, { frustum, frustum_planes: render.FRUSTUM_PLANES_ALL });
308
+ * }
309
+ * ```
294
310
  */
295
- function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] }; sort_order?: number }): void;
311
+ function draw(predicate: Opaque<"render_predicate">, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] }; sort_order?: number }): void;
296
312
  /**
297
313
  * Draws all 3d debug graphics such as lines drawn with "draw_line" messages and physics visualization.
298
314
  *
@@ -304,7 +320,6 @@ declare global {
304
320
  * int Determines which sides of the frustum will be used. Default is render.FRUSTUM_PLANES_SIDES.
305
321
  *
306
322
  * - render.FRUSTUM_PLANES_SIDES : The left, right, top and bottom sides of the frustum.
307
- *
308
323
  * - render.FRUSTUM_PLANES_ALL : All sides of the frustum.
309
324
  * @example
310
325
  * ```ts
@@ -347,15 +362,10 @@ declare global {
347
362
  * @param state - state to enable
348
363
  *
349
364
  * - `graphics.STATE_DEPTH_TEST`
350
- *
351
365
  * - `graphics.STATE_STENCIL_TEST`
352
- *
353
366
  * - `graphics.STATE_BLEND`
354
- *
355
367
  * - `graphics.STATE_ALPHA_TEST` ( not available on iOS and Android)
356
- *
357
368
  * - `graphics.STATE_CULL_FACE`
358
- *
359
369
  * - `graphics.STATE_POLYGON_OFFSET_FILL`
360
370
  * @example
361
371
  * ```ts
@@ -396,18 +406,14 @@ declare global {
396
406
  * If The render target has been created as depth and/or stencil textures, these buffer types can be used:
397
407
  *
398
408
  * - `graphics.BUFFER_TYPE_DEPTH_BIT`
399
- *
400
409
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
401
410
  *
402
411
  * If the render target has been created with multiple color attachments, these buffer types can be used
403
412
  * to enable those textures as well. Currently 4 color attachments are supported:
404
413
  *
405
414
  * - `graphics.BUFFER_TYPE_COLOR0_BIT`
406
- *
407
415
  * - `graphics.BUFFER_TYPE_COLOR1_BIT`
408
- *
409
416
  * - `graphics.BUFFER_TYPE_COLOR2_BIT`
410
- *
411
417
  * - `graphics.BUFFER_TYPE_COLOR3_BIT`
412
418
  * @example
413
419
  * ```ts
@@ -499,9 +505,7 @@ declare global {
499
505
  * @param buffer_type - which type of buffer to retrieve the height from
500
506
  *
501
507
  * - `graphics.BUFFER_TYPE_COLOR0_BIT`
502
- *
503
508
  * - `graphics.BUFFER_TYPE_DEPTH_BIT`
504
- *
505
509
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
506
510
  * @returns the height of the render target buffer texture
507
511
  * @example
@@ -542,11 +546,8 @@ declare global {
542
546
  * @param buffer_type - which type of buffer to retrieve the width from
543
547
  *
544
548
  * - `graphics.BUFFER_TYPE_COLOR0_BIT`
545
- *
546
549
  * - `graphics.BUFFER_TYPE_COLOR[x]_BIT` (x: [0..3], if supported!)
547
- *
548
550
  * - `graphics.BUFFER_TYPE_DEPTH_BIT`
549
- *
550
551
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
551
552
  * @returns the width of the render target buffer texture
552
553
  * @example
@@ -635,7 +636,7 @@ declare global {
635
636
  * const p = render.predicate([hash("opaque"), hash("smoke")]);
636
637
  * ```
637
638
  */
638
- function predicate(tags: (string | Hash)[]): number;
639
+ function predicate(tags: (string | Hash)[]): Opaque<"render_predicate">;
639
640
  /**
640
641
  * Sets the blend equation with separate equations for the color and alpha channels.
641
642
  *
@@ -714,11 +715,8 @@ declare global {
714
715
  * The blended RGBA values of a pixel comes from the following equations:
715
716
  *
716
717
  * - Rd = min(kR, Rs * sR + Rd * dR)
717
- *
718
718
  * - Gd = min(kG, Gs * sG + Gd * dG)
719
- *
720
719
  * - Bd = min(kB, Bs * sB + Bd * dB)
721
- *
722
720
  * - Ad = min(kA, As * sA + Ad * dA)
723
721
  *
724
722
  * Blend function `(graphics.BLEND_FACTOR_SRC_ALPHA, graphics.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA)` is useful for
@@ -762,29 +760,27 @@ declare global {
762
760
  * `use_frustum`
763
761
  * boolean If true, the renderer will use the cameras view-projection matrix for frustum culling (default: false)
764
762
  * @example
763
+ * Set the current camera to be used for rendering
765
764
  * ```ts
766
- * export default defineRenderScript({
767
- * init() {
768
- * return { my_pred: render.predicate([hash("my_tag")]) };
769
- * },
770
- *
771
- * update(self, dt) {
772
- * // Set the current camera to be used for rendering
773
- * render.set_camera("main:/my_go#camera");
774
- * render.draw(self.my_pred);
775
- * render.set_camera(undefined);
776
- *
777
- * // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
778
- * // The camera frustum will take precedence over the frustum plane option in render.draw
779
- * render.set_camera("main:/my_go#camera", { use_frustum: true });
780
- * // However, we can still customize the frustum planes regardless of the camera option!
781
- * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
782
- * render.set_camera();
783
- * },
784
- * });
765
+ * function draw_through_camera(self: { my_pred: Opaque<"render_predicate"> }) {
766
+ * render.set_camera("main:/my_go#camera");
767
+ * render.draw(self.my_pred);
768
+ * render.set_camera(undefined);
769
+ * }
770
+ * ```
771
+ * @example
772
+ * Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
773
+ * ```ts
774
+ * function draw_through_camera(self: { my_pred: Opaque<"render_predicate"> }) {
775
+ * // The camera frustum will take precedence over the frustum plane option in render.draw
776
+ * render.set_camera("main:/my_go#camera", { use_frustum: true });
777
+ * // However, we can still customize the frustum planes regardless of the camera option!
778
+ * render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
779
+ * render.set_camera();
780
+ * }
785
781
  * ```
786
782
  */
787
- function set_camera(camera?: Url | number | string, options?: { use_frustum?: boolean }): void;
783
+ function set_camera(camera?: Url | number | string | Hash, options?: { use_frustum?: boolean }): void;
788
784
  /**
789
785
  * Specifies whether the individual color components in the frame buffer is enabled for writing (`true`) or disabled (`false`). For example, if `blue` is `false`, nothing is written to the blue component of any pixel in any of the color buffers, regardless of the drawing operation attempted. Note that writing are either enabled or disabled for entire color components, not the individual bits of a component.
790
786
  * The component masks are all initially `true`.
@@ -834,9 +830,7 @@ declare global {
834
830
  * @param face_type - face type
835
831
  *
836
832
  * - `graphics.FACE_TYPE_FRONT`
837
- *
838
833
  * - `graphics.FACE_TYPE_BACK`
839
- *
840
834
  * - `graphics.FACE_TYPE_FRONT_AND_BACK`
841
835
  * @example
842
836
  * ```ts
@@ -854,19 +848,12 @@ declare global {
854
848
  * Function constants:
855
849
  *
856
850
  * - `graphics.COMPARE_FUNC_NEVER` (never passes)
857
- *
858
851
  * - `graphics.COMPARE_FUNC_LESS` (passes if the incoming depth value is less than the stored value)
859
- *
860
852
  * - `graphics.COMPARE_FUNC_LEQUAL` (passes if the incoming depth value is less than or equal to the stored value)
861
- *
862
853
  * - `graphics.COMPARE_FUNC_GREATER` (passes if the incoming depth value is greater than the stored value)
863
- *
864
854
  * - `graphics.COMPARE_FUNC_GEQUAL` (passes if the incoming depth value is greater than or equal to the stored value)
865
- *
866
855
  * - `graphics.COMPARE_FUNC_EQUAL` (passes if the incoming depth value is equal to the stored value)
867
- *
868
856
  * - `graphics.COMPARE_FUNC_NOTEQUAL` (passes if the incoming depth value is not equal to the stored value)
869
- *
870
857
  * - `graphics.COMPARE_FUNC_ALWAYS` (always passes)
871
858
  *
872
859
  * The depth function is initially set to `graphics.COMPARE_FUNC_LESS`.
@@ -978,9 +965,7 @@ declare global {
978
965
  * A buffer type defined that doesn't exist in the render target is silently ignored.
979
966
  *
980
967
  * - `graphics.BUFFER_TYPE_COLOR0_BIT`
981
- *
982
968
  * - `graphics.BUFFER_TYPE_DEPTH_BIT`
983
- *
984
969
  * - `graphics.BUFFER_TYPE_STENCIL_BIT`
985
970
  * @example
986
971
  * How to set a render target and draw to it and then switch back to the default render target
@@ -1036,7 +1021,7 @@ declare global {
1036
1021
  * });
1037
1022
  * ```
1038
1023
  */
1039
- function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT, options?: { transient?: graphics.BufferType[] }): void;
1024
+ function set_render_target(render_target?: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT, options?: { transient?: graphics.BufferType[] }): void;
1040
1025
  /**
1041
1026
  * Sets the render target size for a render target created from
1042
1027
  * either a render script, or from a render target resource.
@@ -1077,19 +1062,12 @@ declare global {
1077
1062
  * Function constant:
1078
1063
  *
1079
1064
  * - `graphics.COMPARE_FUNC_NEVER` (never passes)
1080
- *
1081
1065
  * - `graphics.COMPARE_FUNC_LESS` (passes if (ref & mask) < (stencil & mask))
1082
- *
1083
1066
  * - `graphics.COMPARE_FUNC_LEQUAL` (passes if (ref & mask) <= (stencil & mask))
1084
- *
1085
1067
  * - `graphics.COMPARE_FUNC_GREATER` (passes if (ref & mask) > (stencil & mask))
1086
- *
1087
1068
  * - `graphics.COMPARE_FUNC_GEQUAL` (passes if (ref & mask) >= (stencil & mask))
1088
- *
1089
1069
  * - `graphics.COMPARE_FUNC_EQUAL` (passes if (ref & mask) = (stencil & mask))
1090
- *
1091
1070
  * - `graphics.COMPARE_FUNC_NOTEQUAL` (passes if (ref & mask) != (stencil & mask))
1092
- *
1093
1071
  * - `graphics.COMPARE_FUNC_ALWAYS` (always passes)
1094
1072
  *
1095
1073
  * @param func - stencil test function, see the description for available values
@@ -1130,19 +1108,12 @@ declare global {
1130
1108
  * Operator constants:
1131
1109
  *
1132
1110
  * - `graphics.STENCIL_OP_KEEP` (keeps the current value)
1133
- *
1134
1111
  * - `graphics.STENCIL_OP_ZERO` (sets the stencil buffer value to 0)
1135
- *
1136
1112
  * - `graphics.STENCIL_OP_REPLACE` (sets the stencil buffer value to `ref`, as specified by render.set_stencil_func)
1137
- *
1138
1113
  * - `graphics.STENCIL_OP_INCR` (increments the stencil buffer value and clamp to the maximum representable unsigned value)
1139
- *
1140
1114
  * - `graphics.STENCIL_OP_INCR_WRAP` (increments the stencil buffer value and wrap to zero when incrementing the maximum representable unsigned value)
1141
- *
1142
1115
  * - `graphics.STENCIL_OP_DECR` (decrements the current stencil buffer value and clamp to 0)
1143
- *
1144
1116
  * - `graphics.STENCIL_OP_DECR_WRAP` (decrements the current stencil buffer value and wrap to the maximum representable unsigned value when decrementing zero)
1145
- *
1146
1117
  * - `graphics.STENCIL_OP_INVERT` (bitwise inverts the current stencil buffer value)
1147
1118
  *
1148
1119
  * `dppass` and `dpfail` specify the stencil buffer actions depending on whether subsequent