@defold-typescript/types 0.38.0 → 0.40.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.
- package/api-availability.json +117 -0
- package/api-signatures.json +586 -480
- package/examples/translations.json +356 -180
- package/generated/b2d_body.d.ts +7 -4
- package/generated/b2d_shape.d.ts +23 -1
- package/generated/buffer.d.ts +34 -19
- package/generated/camera.d.ts +3 -2
- package/generated/collectionfactory.d.ts +17 -12
- package/generated/collectionproxy.d.ts +2 -2
- package/generated/compute.d.ts +1 -1
- package/generated/factory.d.ts +2 -1
- package/generated/go.d.ts +150 -91
- package/generated/graphics.d.ts +54 -0
- package/generated/gui.d.ts +117 -71
- package/generated/html5.d.ts +4 -2
- package/generated/http.d.ts +8 -2
- package/generated/image.d.ts +24 -15
- package/generated/kinds/gui-script.d.ts +1 -0
- package/generated/kinds/render-script.d.ts +1 -0
- package/generated/kinds/script.d.ts +1 -0
- package/generated/material.d.ts +1 -1
- package/generated/model.d.ts +41 -7
- package/generated/particlefx.d.ts +1 -1
- package/generated/physics.d.ts +29 -20
- package/generated/profiler.d.ts +10 -3
- package/generated/render.d.ts +293 -111
- package/generated/resource.d.ts +243 -226
- package/generated/socket.d.ts +33 -18
- package/generated/sound.d.ts +6 -5
- package/generated/sprite.d.ts +9 -1
- package/generated/sys.d.ts +44 -27
- package/generated/tilemap.d.ts +25 -19
- package/generated/timer.d.ts +33 -24
- package/generated/versions/defold-1.12.4/buffer.d.ts +34 -19
- package/generated/versions/defold-1.12.4/camera.d.ts +3 -2
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +17 -12
- package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.12.4/factory.d.ts +2 -1
- package/generated/versions/defold-1.12.4/go.d.ts +150 -91
- package/generated/versions/defold-1.12.4/graphics.d.ts +2 -0
- package/generated/versions/defold-1.12.4/gui.d.ts +109 -69
- package/generated/versions/defold-1.12.4/html5.d.ts +4 -2
- package/generated/versions/defold-1.12.4/http.d.ts +8 -2
- package/generated/versions/defold-1.12.4/image.d.ts +24 -15
- package/generated/versions/defold-1.12.4/index.d.ts +1 -0
- package/generated/versions/defold-1.12.4/model.d.ts +41 -7
- package/generated/versions/defold-1.12.4/particlefx.d.ts +1 -1
- package/generated/versions/defold-1.12.4/physics.d.ts +29 -20
- package/generated/versions/defold-1.12.4/profiler.d.ts +10 -3
- package/generated/versions/defold-1.12.4/render.d.ts +292 -110
- package/generated/versions/defold-1.12.4/resource.d.ts +243 -226
- package/generated/versions/defold-1.12.4/socket.d.ts +33 -18
- package/generated/versions/defold-1.12.4/sound.d.ts +6 -5
- package/generated/versions/defold-1.12.4/sprite.d.ts +9 -1
- package/generated/versions/defold-1.12.4/sys.d.ts +44 -27
- package/generated/versions/defold-1.12.4/tilemap.d.ts +25 -19
- package/generated/versions/defold-1.12.4/timer.d.ts +33 -24
- package/generated/versions/defold-1.12.4/vmath.d.ts +18 -10
- package/generated/versions/defold-1.12.4/window.d.ts +5 -3
- package/generated/versions/defold-1.13.0/b2d_body.d.ts +7 -4
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +23 -1
- package/generated/versions/defold-1.13.0/buffer.d.ts +34 -19
- package/generated/versions/defold-1.13.0/camera.d.ts +3 -2
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +17 -12
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.0/compute.d.ts +1 -1
- package/generated/versions/defold-1.13.0/factory.d.ts +2 -1
- package/generated/versions/defold-1.13.0/go.d.ts +150 -91
- package/generated/versions/defold-1.13.0/graphics.d.ts +50 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +109 -69
- package/generated/versions/defold-1.13.0/html5.d.ts +4 -2
- package/generated/versions/defold-1.13.0/http.d.ts +8 -2
- package/generated/versions/defold-1.13.0/image.d.ts +24 -15
- package/generated/versions/defold-1.13.0/index.d.ts +1 -0
- package/generated/versions/defold-1.13.0/material.d.ts +1 -1
- package/generated/versions/defold-1.13.0/model.d.ts +41 -7
- package/generated/versions/defold-1.13.0/particlefx.d.ts +1 -1
- package/generated/versions/defold-1.13.0/physics.d.ts +29 -20
- package/generated/versions/defold-1.13.0/profiler.d.ts +10 -3
- package/generated/versions/defold-1.13.0/render.d.ts +293 -111
- package/generated/versions/defold-1.13.0/resource.d.ts +243 -226
- package/generated/versions/defold-1.13.0/socket.d.ts +33 -18
- package/generated/versions/defold-1.13.0/sound.d.ts +6 -5
- package/generated/versions/defold-1.13.0/sprite.d.ts +9 -1
- package/generated/versions/defold-1.13.0/sys.d.ts +44 -27
- package/generated/versions/defold-1.13.0/tilemap.d.ts +25 -19
- package/generated/versions/defold-1.13.0/timer.d.ts +33 -24
- package/generated/versions/defold-1.13.0/vmath.d.ts +18 -10
- package/generated/versions/defold-1.13.0/window.d.ts +5 -3
- package/generated/vmath.d.ts +18 -10
- package/generated/window.d.ts +5 -3
- package/index.d.ts +1 -0
- package/package.json +2 -1
- package/scripts/generate-api-signatures.ts +2 -1
- package/scripts/prose-constants.ts +96 -0
- package/scripts/regen.ts +6 -2
- package/src/api-doc.ts +8 -0
- package/src/component-properties.d.ts +33 -0
- package/src/core-types.ts +4 -2
- package/src/custom-messages.d.ts +4 -3
- package/src/doc-comment.ts +247 -43
- package/src/emit-dts.ts +958 -57
- package/src/engine-globals.d.ts +2 -2
- package/src/example-store.ts +26 -0
- package/src/go-overloads.d.ts +11 -10
- package/src/index.ts +9 -0
- package/src/param-correction-provenance.ts +67 -0
- package/src/render-overloads.d.ts +15 -17
- package/src/script-api.ts +3 -1
package/generated/render.d.ts
CHANGED
|
@@ -6,9 +6,10 @@ declare global {
|
|
|
6
6
|
* Rendering API documentation
|
|
7
7
|
*/
|
|
8
8
|
namespace render {
|
|
9
|
-
type constant_buffer = Opaque<"constant_buffer"
|
|
9
|
+
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] };
|
|
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<
|
|
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,33 +53,41 @@ declare global {
|
|
|
52
53
|
* @returns new constant buffer
|
|
53
54
|
* @example
|
|
54
55
|
* ```ts
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
56
|
+
* export default defineRenderScript({
|
|
57
|
+
* init() {
|
|
58
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
59
|
+
* },
|
|
58
60
|
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
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
|
-
function constant_buffer(): Opaque<"constant_buffer"
|
|
90
|
+
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] };
|
|
82
91
|
/**
|
|
83
92
|
* Deletes a render target created by a render script.
|
|
84
93
|
* You cannot delete a render target resource.
|
|
@@ -86,8 +95,16 @@ declare global {
|
|
|
86
95
|
* @param render_target - render target to delete
|
|
87
96
|
* @example
|
|
88
97
|
* ```ts
|
|
89
|
-
*
|
|
90
|
-
*
|
|
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
|
-
*
|
|
102
|
-
*
|
|
103
|
-
* render.
|
|
104
|
-
*
|
|
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,39 @@ declare global {
|
|
|
123
148
|
* - `graphics.STATE_POLYGON_OFFSET_FILL`
|
|
124
149
|
* @example
|
|
125
150
|
* ```ts
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* render.
|
|
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:
|
|
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
|
|
171
|
+
* export default defineRenderScript({
|
|
172
|
+
* init() {
|
|
173
|
+
* const color_params = {
|
|
174
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
175
|
+
* width: render.get_window_width(),
|
|
176
|
+
* height: render.get_window_height(),
|
|
177
|
+
* };
|
|
178
|
+
* return {
|
|
179
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
180
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
181
|
+
* };
|
|
182
|
+
* },
|
|
183
|
+
*
|
|
139
184
|
* update(self, dt) {
|
|
140
185
|
* render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
141
186
|
* // draw a predicate with the render target available as texture 0 in the predicate
|
|
@@ -147,7 +192,7 @@ declare global {
|
|
|
147
192
|
* });
|
|
148
193
|
* ```
|
|
149
194
|
*/
|
|
150
|
-
function disable_texture(binding: Opaque<"texture"> | string | Hash): void;
|
|
195
|
+
function disable_texture(binding: Opaque<"texture"> | string | Hash | number): void;
|
|
151
196
|
/**
|
|
152
197
|
* Dispatches the currently enabled compute program. The dispatch call takes three arguments x,y,z which constitutes
|
|
153
198
|
* the 'global working group' of the compute dispatch. Together with the 'local working group' specified in the compute shader
|
|
@@ -164,7 +209,7 @@ declare global {
|
|
|
164
209
|
* constant_buffer optional constants to use while rendering
|
|
165
210
|
* @example
|
|
166
211
|
* ```ts
|
|
167
|
-
* export default
|
|
212
|
+
* export default defineRenderScript({
|
|
168
213
|
* init() {
|
|
169
214
|
* const color_params = {
|
|
170
215
|
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
@@ -172,6 +217,7 @@ declare global {
|
|
|
172
217
|
* height: render.get_window_height(),
|
|
173
218
|
* };
|
|
174
219
|
* return {
|
|
220
|
+
* backing_texture: resource.get_texture_info("/main/backing.texturec").handle,
|
|
175
221
|
* scene_rt: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
176
222
|
* };
|
|
177
223
|
* },
|
|
@@ -191,7 +237,7 @@ declare global {
|
|
|
191
237
|
* render.dispatch_compute(32, 32, 32, { constants });
|
|
192
238
|
* ```
|
|
193
239
|
*/
|
|
194
|
-
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> }): void;
|
|
240
|
+
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] } }): void;
|
|
195
241
|
/**
|
|
196
242
|
* Draws all objects that match a specified predicate. An optional constant buffer can be
|
|
197
243
|
* provided to override the default constants. If no constants buffer is provided, a default
|
|
@@ -216,33 +262,37 @@ declare global {
|
|
|
216
262
|
* int How to sort draw order for world-ordered entries. Default uses the renderer's preferred world sorting (back-to-front).
|
|
217
263
|
* @example
|
|
218
264
|
* ```ts
|
|
219
|
-
* export default
|
|
265
|
+
* export default defineRenderScript({
|
|
220
266
|
* init() {
|
|
221
|
-
*
|
|
222
|
-
*
|
|
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
|
+
* };
|
|
223
273
|
* },
|
|
224
274
|
*
|
|
225
275
|
* update(self, dt) {
|
|
226
276
|
* // draw everything in the my_pred predicate
|
|
227
277
|
* render.draw(self.my_pred);
|
|
228
|
-
* },
|
|
229
|
-
* });
|
|
230
278
|
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
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 });
|
|
235
283
|
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
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 });
|
|
239
287
|
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
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
|
+
* },
|
|
292
|
+
* });
|
|
243
293
|
* ```
|
|
244
294
|
*/
|
|
245
|
-
function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"
|
|
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;
|
|
246
296
|
/**
|
|
247
297
|
* Draws all 3d debug graphics such as lines drawn with "draw_line" messages and physics visualization.
|
|
248
298
|
*
|
|
@@ -258,7 +308,7 @@ declare global {
|
|
|
258
308
|
* - render.FRUSTUM_PLANES_ALL : All sides of the frustum.
|
|
259
309
|
* @example
|
|
260
310
|
* ```ts
|
|
261
|
-
* export default
|
|
311
|
+
* export default defineRenderScript({
|
|
262
312
|
* update(self, dt) {
|
|
263
313
|
* // draw debug visualization
|
|
264
314
|
* render.draw_debug3d();
|
|
@@ -276,10 +326,18 @@ declare global {
|
|
|
276
326
|
* @param material_id - material id to enable
|
|
277
327
|
* @example
|
|
278
328
|
* ```ts
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
* render.
|
|
282
|
-
*
|
|
329
|
+
* export default defineRenderScript({
|
|
330
|
+
* init() {
|
|
331
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
332
|
+
* },
|
|
333
|
+
*
|
|
334
|
+
* update(self, dt) {
|
|
335
|
+
* // Enable material named "glow", then draw my_pred with it.
|
|
336
|
+
* render.enable_material("glow");
|
|
337
|
+
* render.draw(self.my_pred);
|
|
338
|
+
* render.disable_material();
|
|
339
|
+
* },
|
|
340
|
+
* });
|
|
283
341
|
* ```
|
|
284
342
|
*/
|
|
285
343
|
function enable_material(material_id: string | Hash): void;
|
|
@@ -301,13 +359,21 @@ declare global {
|
|
|
301
359
|
* - `graphics.STATE_POLYGON_OFFSET_FILL`
|
|
302
360
|
* @example
|
|
303
361
|
* ```ts
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
* render.
|
|
307
|
-
*
|
|
362
|
+
* export default defineRenderScript({
|
|
363
|
+
* init() {
|
|
364
|
+
* return { gui_pred: render.predicate([hash("gui")]) };
|
|
365
|
+
* },
|
|
366
|
+
*
|
|
367
|
+
* update(self, dt) {
|
|
368
|
+
* // Enable stencil test when drawing the gui predicate, then disable it:
|
|
369
|
+
* render.enable_state(graphics.STATE_STENCIL_TEST);
|
|
370
|
+
* render.draw(self.gui_pred);
|
|
371
|
+
* render.disable_state(graphics.STATE_STENCIL_TEST);
|
|
372
|
+
* },
|
|
373
|
+
* });
|
|
308
374
|
* ```
|
|
309
375
|
*/
|
|
310
|
-
function enable_state(state:
|
|
376
|
+
function enable_state(state: graphics.State): void;
|
|
311
377
|
/**
|
|
312
378
|
* Sets the specified texture handle for a render target attachment or a regular texture
|
|
313
379
|
* that should be used for rendering. The texture can be bound to either a texture unit
|
|
@@ -345,7 +411,19 @@ declare global {
|
|
|
345
411
|
* - `graphics.BUFFER_TYPE_COLOR3_BIT`
|
|
346
412
|
* @example
|
|
347
413
|
* ```ts
|
|
348
|
-
* export default
|
|
414
|
+
* export default defineRenderScript({
|
|
415
|
+
* init() {
|
|
416
|
+
* const color_params = {
|
|
417
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
418
|
+
* width: render.get_window_width(),
|
|
419
|
+
* height: render.get_window_height(),
|
|
420
|
+
* };
|
|
421
|
+
* return {
|
|
422
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
423
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
424
|
+
* };
|
|
425
|
+
* },
|
|
426
|
+
*
|
|
349
427
|
* update(self, dt) {
|
|
350
428
|
* // enable target so all drawing is done to it
|
|
351
429
|
* render.set_render_target(self.my_render_target);
|
|
@@ -362,9 +440,15 @@ declare global {
|
|
|
362
440
|
* render.draw(self.my_pred);
|
|
363
441
|
* },
|
|
364
442
|
* });
|
|
365
|
-
*
|
|
443
|
+
* ```
|
|
444
|
+
* @example
|
|
445
|
+
* ```ts
|
|
366
446
|
* // Or enable a render target by resource id:
|
|
367
|
-
* export default
|
|
447
|
+
* export default defineRenderScript({
|
|
448
|
+
* init() {
|
|
449
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
450
|
+
* },
|
|
451
|
+
*
|
|
368
452
|
* update(self, dt) {
|
|
369
453
|
* render.set_render_target("my_rt_resource");
|
|
370
454
|
* render.draw(self.my_pred);
|
|
@@ -376,9 +460,15 @@ declare global {
|
|
|
376
460
|
* render.draw(self.my_pred);
|
|
377
461
|
* },
|
|
378
462
|
* });
|
|
379
|
-
*
|
|
463
|
+
* ```
|
|
464
|
+
* @example
|
|
465
|
+
* ```ts
|
|
380
466
|
* // Or bind a texture handle directly:
|
|
381
|
-
* export default
|
|
467
|
+
* export default defineRenderScript({
|
|
468
|
+
* init() {
|
|
469
|
+
* return { my_texture_handle: resource.get_texture_info("/main/my_texture.texturec").handle };
|
|
470
|
+
* },
|
|
471
|
+
*
|
|
382
472
|
* update(self, dt) {
|
|
383
473
|
* // bind a texture to the texture unit 0
|
|
384
474
|
* render.enable_texture(0, self.my_texture_handle);
|
|
@@ -388,7 +478,7 @@ declare global {
|
|
|
388
478
|
* });
|
|
389
479
|
* ```
|
|
390
480
|
*/
|
|
391
|
-
function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash
|
|
481
|
+
function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash | Opaque<"render_target"> | number, buffer_type?: graphics.BufferType): void;
|
|
392
482
|
/**
|
|
393
483
|
* Returns the logical window height that is set in the "game.project" settings.
|
|
394
484
|
* Note that the actual window pixel size can change, either by device constraints
|
|
@@ -416,13 +506,35 @@ declare global {
|
|
|
416
506
|
* @returns the height of the render target buffer texture
|
|
417
507
|
* @example
|
|
418
508
|
* ```ts
|
|
419
|
-
*
|
|
420
|
-
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
509
|
+
* export default defineRenderScript({
|
|
510
|
+
* init() {
|
|
511
|
+
* // render target buffer parameters
|
|
512
|
+
* const color_params = {
|
|
513
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
514
|
+
* width: render.get_window_width(),
|
|
515
|
+
* height: render.get_window_height(),
|
|
516
|
+
* min_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
517
|
+
* mag_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
518
|
+
* u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
519
|
+
* v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
520
|
+
* };
|
|
521
|
+
* return {
|
|
522
|
+
* target_right: render.render_target("right", {
|
|
523
|
+
* [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
|
|
524
|
+
* }),
|
|
525
|
+
* };
|
|
526
|
+
* },
|
|
527
|
+
*
|
|
528
|
+
* update(self, dt) {
|
|
529
|
+
* // get the height of the render target color buffer
|
|
530
|
+
* const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
531
|
+
* // get the height of a render target resource
|
|
532
|
+
* const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
533
|
+
* },
|
|
534
|
+
* });
|
|
423
535
|
* ```
|
|
424
536
|
*/
|
|
425
|
-
function get_render_target_height(render_target: Opaque<"render_target"
|
|
537
|
+
function get_render_target_height(render_target: Opaque<"render_target"> | string | Hash, buffer_type: graphics.BufferType): number;
|
|
426
538
|
/**
|
|
427
539
|
* Returns the specified buffer width from a render target.
|
|
428
540
|
*
|
|
@@ -439,13 +551,35 @@ declare global {
|
|
|
439
551
|
* @returns the width of the render target buffer texture
|
|
440
552
|
* @example
|
|
441
553
|
* ```ts
|
|
442
|
-
*
|
|
443
|
-
*
|
|
444
|
-
*
|
|
445
|
-
*
|
|
554
|
+
* export default defineRenderScript({
|
|
555
|
+
* init() {
|
|
556
|
+
* // render target buffer parameters
|
|
557
|
+
* const color_params = {
|
|
558
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
559
|
+
* width: render.get_window_width(),
|
|
560
|
+
* height: render.get_window_height(),
|
|
561
|
+
* min_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
562
|
+
* mag_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
563
|
+
* u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
564
|
+
* v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
565
|
+
* };
|
|
566
|
+
* return {
|
|
567
|
+
* target_right: render.render_target("right", {
|
|
568
|
+
* [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
|
|
569
|
+
* }),
|
|
570
|
+
* };
|
|
571
|
+
* },
|
|
572
|
+
*
|
|
573
|
+
* update(self, dt) {
|
|
574
|
+
* // get the width of the render target color buffer
|
|
575
|
+
* const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
576
|
+
* // get the width of a render target resource
|
|
577
|
+
* const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
578
|
+
* },
|
|
579
|
+
* });
|
|
446
580
|
* ```
|
|
447
581
|
*/
|
|
448
|
-
function get_render_target_width(render_target: Opaque<"render_target"
|
|
582
|
+
function get_render_target_width(render_target: Opaque<"render_target"> | string | Hash, buffer_type: graphics.BufferType): number;
|
|
449
583
|
/**
|
|
450
584
|
* Returns the logical window width that is set in the "game.project" settings.
|
|
451
585
|
* Note that the actual window pixel size can change, either by device constraints
|
|
@@ -629,20 +763,28 @@ declare global {
|
|
|
629
763
|
* boolean If true, the renderer will use the cameras view-projection matrix for frustum culling (default: false)
|
|
630
764
|
* @example
|
|
631
765
|
* ```ts
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
|
-
* render.
|
|
635
|
-
*
|
|
636
|
-
*
|
|
637
|
-
*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
*
|
|
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
|
+
* });
|
|
643
785
|
* ```
|
|
644
786
|
*/
|
|
645
|
-
function set_camera(camera?: Url | number, options?: { use_frustum?: boolean }): void;
|
|
787
|
+
function set_camera(camera?: Url | number | string, options?: { use_frustum?: boolean }): void;
|
|
646
788
|
/**
|
|
647
789
|
* 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.
|
|
648
790
|
* The component masks are all initially `true`.
|
|
@@ -666,11 +808,19 @@ declare global {
|
|
|
666
808
|
* @param compute - compute id to use, or nil to disable
|
|
667
809
|
* @example
|
|
668
810
|
* ```ts
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
*
|
|
672
|
-
*
|
|
673
|
-
*
|
|
811
|
+
* export default defineRenderScript({
|
|
812
|
+
* init() {
|
|
813
|
+
* return { backing_texture: "my_texture_resource" };
|
|
814
|
+
* },
|
|
815
|
+
*
|
|
816
|
+
* update(self, dt) {
|
|
817
|
+
* // Enable compute program named "fractals", then dispatch it.
|
|
818
|
+
* render.set_compute("fractals");
|
|
819
|
+
* render.enable_texture(0, self.backing_texture);
|
|
820
|
+
* render.dispatch_compute(128, 128, 1);
|
|
821
|
+
* render.set_compute();
|
|
822
|
+
* },
|
|
823
|
+
* });
|
|
674
824
|
* ```
|
|
675
825
|
*/
|
|
676
826
|
function set_compute(compute?: string | Hash): void;
|
|
@@ -760,7 +910,7 @@ declare global {
|
|
|
760
910
|
* ```ts
|
|
761
911
|
* // Set listener and handle render context events.
|
|
762
912
|
* // custom.render_script
|
|
763
|
-
* export default
|
|
913
|
+
* export default defineRenderScript({
|
|
764
914
|
* init() {
|
|
765
915
|
* render.set_listener((self, event_type) => {
|
|
766
916
|
* if (event_type === render.CONTEXT_EVENT_CONTEXT_LOST) {
|
|
@@ -784,7 +934,7 @@ declare global {
|
|
|
784
934
|
* offset for each polygon. The initial value is `0`.
|
|
785
935
|
* `units` is multiplied by an implementation-specific value to create a
|
|
786
936
|
* constant depth offset. The initial value is `0`.
|
|
787
|
-
* The value of the offset is computed as `factor`
|
|
937
|
+
* The value of the offset is computed as `factor` × `DZ` + `r` × `units`
|
|
788
938
|
* `DZ` is a measurement of the depth slope of the polygon which is the change in z (depth)
|
|
789
939
|
* values divided by the change in either x or y coordinates, as you traverse a polygon.
|
|
790
940
|
* The depth values are in window coordinates, clamped to the range [0, 1].
|
|
@@ -833,10 +983,24 @@ declare global {
|
|
|
833
983
|
*
|
|
834
984
|
* - `graphics.BUFFER_TYPE_STENCIL_BIT`
|
|
835
985
|
* @example
|
|
986
|
+
* How to set a render target and draw to it and then switch back to the default render target
|
|
987
|
+
* 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
988
|
* ```ts
|
|
837
989
|
* // How to set a render target and draw to it and then switch back to the default render target
|
|
838
990
|
* // 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
|
|
991
|
+
* export default defineRenderScript({
|
|
992
|
+
* init() {
|
|
993
|
+
* const color_params = {
|
|
994
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
995
|
+
* width: render.get_window_width(),
|
|
996
|
+
* height: render.get_window_height(),
|
|
997
|
+
* };
|
|
998
|
+
* return {
|
|
999
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
1000
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
1001
|
+
* };
|
|
1002
|
+
* },
|
|
1003
|
+
*
|
|
840
1004
|
* update(self, dt) {
|
|
841
1005
|
* // set render target so all drawing is done to it
|
|
842
1006
|
* render.set_render_target(self.my_render_target, {
|
|
@@ -851,9 +1015,15 @@ declare global {
|
|
|
851
1015
|
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
852
1016
|
* },
|
|
853
1017
|
* });
|
|
854
|
-
*
|
|
1018
|
+
* ```
|
|
1019
|
+
* @example
|
|
1020
|
+
* ```ts
|
|
855
1021
|
* // Or set the render target by a render target resource identifier:
|
|
856
|
-
* export default
|
|
1022
|
+
* export default defineRenderScript({
|
|
1023
|
+
* init() {
|
|
1024
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
1025
|
+
* },
|
|
1026
|
+
*
|
|
857
1027
|
* update(self, dt) {
|
|
858
1028
|
* render.set_render_target("my_rt_resource");
|
|
859
1029
|
*
|
|
@@ -866,7 +1036,7 @@ declare global {
|
|
|
866
1036
|
* });
|
|
867
1037
|
* ```
|
|
868
1038
|
*/
|
|
869
|
-
function set_render_target(render_target: Opaque<"render_target"
|
|
1039
|
+
function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT, options?: { transient?: graphics.BufferType[] }): void;
|
|
870
1040
|
/**
|
|
871
1041
|
* Sets the render target size for a render target created from
|
|
872
1042
|
* either a render script, or from a render target resource.
|
|
@@ -876,12 +1046,20 @@ declare global {
|
|
|
876
1046
|
* @param height - new render target height
|
|
877
1047
|
* @example
|
|
878
1048
|
* ```ts
|
|
879
|
-
*
|
|
880
|
-
*
|
|
881
|
-
* render.
|
|
1049
|
+
* export default defineRenderScript({
|
|
1050
|
+
* init() {
|
|
1051
|
+
* return { my_render_target: render.render_target("my_target", {}) };
|
|
1052
|
+
* },
|
|
1053
|
+
*
|
|
1054
|
+
* update(self, dt) {
|
|
1055
|
+
* // Resize render targets to the current window size:
|
|
1056
|
+
* render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
|
|
1057
|
+
* render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
|
|
1058
|
+
* },
|
|
1059
|
+
* });
|
|
882
1060
|
* ```
|
|
883
1061
|
*/
|
|
884
|
-
function set_render_target_size(render_target: Opaque<"render_target"
|
|
1062
|
+
function set_render_target_size(render_target: Opaque<"render_target"> | string | Hash, width: number, height: number): void;
|
|
885
1063
|
/**
|
|
886
1064
|
* Stenciling is similar to depth-buffering as it enables and disables drawing on a
|
|
887
1065
|
* per-pixel basis. First, GL drawing primitives are drawn into the stencil planes.
|
|
@@ -992,7 +1170,7 @@ declare global {
|
|
|
992
1170
|
* ```ts
|
|
993
1171
|
* // How to set the view and projection matrices according to
|
|
994
1172
|
* // the values supplied by a camera.
|
|
995
|
-
* export default
|
|
1173
|
+
* export default defineRenderScript({
|
|
996
1174
|
* init() {
|
|
997
1175
|
* return {
|
|
998
1176
|
* view: vmath.matrix4(),
|
|
@@ -1007,7 +1185,11 @@ declare global {
|
|
|
1007
1185
|
* },
|
|
1008
1186
|
*
|
|
1009
1187
|
* on_message(self, message_id, message) {
|
|
1010
|
-
* if (
|
|
1188
|
+
* if (
|
|
1189
|
+
* message_id === hash("set_view_projection") &&
|
|
1190
|
+
* types.is_matrix4(message.view) &&
|
|
1191
|
+
* types.is_matrix4(message.projection)
|
|
1192
|
+
* ) {
|
|
1011
1193
|
* // camera view and projection arrives here.
|
|
1012
1194
|
* self.view = message.view;
|
|
1013
1195
|
* self.projection = message.projection;
|