@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
|
@@ -14,9 +14,10 @@ declare global {
|
|
|
14
14
|
* require features not in OpenGL ES 2.0, but those will not work cross platform.
|
|
15
15
|
*/
|
|
16
16
|
namespace render {
|
|
17
|
-
type constant_buffer = Opaque<"constant_buffer"
|
|
17
|
+
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] };
|
|
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<
|
|
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,33 +61,41 @@ declare global {
|
|
|
60
61
|
* @returns new constant buffer
|
|
61
62
|
* @example
|
|
62
63
|
* ```ts
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
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
|
-
*
|
|
86
|
-
*
|
|
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
|
-
function constant_buffer(): Opaque<"constant_buffer"
|
|
98
|
+
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] };
|
|
90
99
|
/**
|
|
91
100
|
* Deletes a render target created by a render script.
|
|
92
101
|
* You cannot delete a render target resource.
|
|
@@ -94,8 +103,16 @@ declare global {
|
|
|
94
103
|
* @param render_target - render target to delete
|
|
95
104
|
* @example
|
|
96
105
|
* ```ts
|
|
97
|
-
*
|
|
98
|
-
*
|
|
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
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* render.
|
|
112
|
-
*
|
|
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,39 @@ declare global {
|
|
|
131
156
|
* - `graphics.STATE_POLYGON_OFFSET_FILL`
|
|
132
157
|
* @example
|
|
133
158
|
* ```ts
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* render.
|
|
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:
|
|
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
|
|
179
|
+
* export default defineRenderScript({
|
|
180
|
+
* init() {
|
|
181
|
+
* const color_params = {
|
|
182
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
183
|
+
* width: render.get_window_width(),
|
|
184
|
+
* height: render.get_window_height(),
|
|
185
|
+
* };
|
|
186
|
+
* return {
|
|
187
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
188
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
189
|
+
* };
|
|
190
|
+
* },
|
|
191
|
+
*
|
|
147
192
|
* update(self, dt) {
|
|
148
193
|
* render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
149
194
|
* // draw a predicate with the render target available as texture 0 in the predicate
|
|
@@ -155,7 +200,7 @@ declare global {
|
|
|
155
200
|
* });
|
|
156
201
|
* ```
|
|
157
202
|
*/
|
|
158
|
-
function disable_texture(binding: Opaque<"texture"> | string | Hash): void;
|
|
203
|
+
function disable_texture(binding: Opaque<"texture"> | string | Hash | number): void;
|
|
159
204
|
/**
|
|
160
205
|
* Dispatches the currently enabled compute program. The dispatch call takes three arguments x,y,z which constitutes
|
|
161
206
|
* the 'global working group' of the compute dispatch. Together with the 'local working group' specified in the compute shader
|
|
@@ -172,7 +217,7 @@ declare global {
|
|
|
172
217
|
* constant_buffer optional constants to use while rendering
|
|
173
218
|
* @example
|
|
174
219
|
* ```ts
|
|
175
|
-
* export default
|
|
220
|
+
* export default defineRenderScript({
|
|
176
221
|
* init() {
|
|
177
222
|
* const color_params = {
|
|
178
223
|
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
@@ -180,6 +225,7 @@ declare global {
|
|
|
180
225
|
* height: render.get_window_height(),
|
|
181
226
|
* };
|
|
182
227
|
* return {
|
|
228
|
+
* backing_texture: resource.get_texture_info("/main/backing.texturec").handle,
|
|
183
229
|
* scene_rt: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
184
230
|
* };
|
|
185
231
|
* },
|
|
@@ -199,7 +245,7 @@ declare global {
|
|
|
199
245
|
* render.dispatch_compute(32, 32, 32, { constants });
|
|
200
246
|
* ```
|
|
201
247
|
*/
|
|
202
|
-
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> }): void;
|
|
248
|
+
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] } }): void;
|
|
203
249
|
/**
|
|
204
250
|
* Draws all objects that match a specified predicate. An optional constant buffer can be
|
|
205
251
|
* provided to override the default constants. If no constants buffer is provided, a default
|
|
@@ -224,33 +270,37 @@ declare global {
|
|
|
224
270
|
* int How to sort draw order for world-ordered entries. Default uses the renderer's preferred world sorting (back-to-front).
|
|
225
271
|
* @example
|
|
226
272
|
* ```ts
|
|
227
|
-
* export default
|
|
273
|
+
* export default defineRenderScript({
|
|
228
274
|
* init() {
|
|
229
|
-
*
|
|
230
|
-
*
|
|
275
|
+
* return {
|
|
276
|
+
* // define a predicate matching anything with material tag "my_tag"
|
|
277
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
278
|
+
* proj: vmath.matrix4_perspective(math.rad(45), render.get_window_width() / render.get_window_height(), 0.1, 1000),
|
|
279
|
+
* view: vmath.matrix4_look_at(vmath.vector3(0, 0, 10), vmath.vector3(0, 0, 0), vmath.vector3(0, 1, 0)),
|
|
280
|
+
* };
|
|
231
281
|
* },
|
|
232
282
|
*
|
|
233
283
|
* update(self, dt) {
|
|
234
284
|
* // draw everything in the my_pred predicate
|
|
235
285
|
* render.draw(self.my_pred);
|
|
236
|
-
* },
|
|
237
|
-
* });
|
|
238
286
|
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
287
|
+
* // Draw predicate with constants:
|
|
288
|
+
* const constants = render.constant_buffer();
|
|
289
|
+
* constants.tint = vmath.vector4(1, 1, 1, 1);
|
|
290
|
+
* render.draw(self.my_pred, { constants });
|
|
243
291
|
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
292
|
+
* // Draw with predicate and frustum culling (without near+far planes):
|
|
293
|
+
* const frustum = self.proj.mul(self.view);
|
|
294
|
+
* render.draw(self.my_pred, { frustum });
|
|
247
295
|
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
296
|
+
* // Draw with predicate and frustum culling (with near+far planes):
|
|
297
|
+
* const frustum2 = self.proj.mul(self.view);
|
|
298
|
+
* render.draw(self.my_pred, { frustum: frustum2, frustum_planes: render.FRUSTUM_PLANES_ALL });
|
|
299
|
+
* },
|
|
300
|
+
* });
|
|
251
301
|
* ```
|
|
252
302
|
*/
|
|
253
|
-
function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"
|
|
303
|
+
function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] }; sort_order?: number }): void;
|
|
254
304
|
/**
|
|
255
305
|
* Draws all 3d debug graphics such as lines drawn with "draw_line" messages and physics visualization.
|
|
256
306
|
*
|
|
@@ -266,7 +316,7 @@ declare global {
|
|
|
266
316
|
* - render.FRUSTUM_PLANES_ALL : All sides of the frustum.
|
|
267
317
|
* @example
|
|
268
318
|
* ```ts
|
|
269
|
-
* export default
|
|
319
|
+
* export default defineRenderScript({
|
|
270
320
|
* update(self, dt) {
|
|
271
321
|
* // draw debug visualization
|
|
272
322
|
* render.draw_debug3d();
|
|
@@ -284,10 +334,18 @@ declare global {
|
|
|
284
334
|
* @param material_id - material id to enable
|
|
285
335
|
* @example
|
|
286
336
|
* ```ts
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* render.
|
|
290
|
-
*
|
|
337
|
+
* export default defineRenderScript({
|
|
338
|
+
* init() {
|
|
339
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
340
|
+
* },
|
|
341
|
+
*
|
|
342
|
+
* update(self, dt) {
|
|
343
|
+
* // Enable material named "glow", then draw my_pred with it.
|
|
344
|
+
* render.enable_material("glow");
|
|
345
|
+
* render.draw(self.my_pred);
|
|
346
|
+
* render.disable_material();
|
|
347
|
+
* },
|
|
348
|
+
* });
|
|
291
349
|
* ```
|
|
292
350
|
*/
|
|
293
351
|
function enable_material(material_id: string | Hash): void;
|
|
@@ -309,13 +367,21 @@ declare global {
|
|
|
309
367
|
* - `graphics.STATE_POLYGON_OFFSET_FILL`
|
|
310
368
|
* @example
|
|
311
369
|
* ```ts
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
* render.
|
|
315
|
-
*
|
|
370
|
+
* export default defineRenderScript({
|
|
371
|
+
* init() {
|
|
372
|
+
* return { gui_pred: render.predicate([hash("gui")]) };
|
|
373
|
+
* },
|
|
374
|
+
*
|
|
375
|
+
* update(self, dt) {
|
|
376
|
+
* // Enable stencil test when drawing the gui predicate, then disable it:
|
|
377
|
+
* render.enable_state(graphics.STATE_STENCIL_TEST);
|
|
378
|
+
* render.draw(self.gui_pred);
|
|
379
|
+
* render.disable_state(graphics.STATE_STENCIL_TEST);
|
|
380
|
+
* },
|
|
381
|
+
* });
|
|
316
382
|
* ```
|
|
317
383
|
*/
|
|
318
|
-
function enable_state(state:
|
|
384
|
+
function enable_state(state: graphics.State): void;
|
|
319
385
|
/**
|
|
320
386
|
* Sets the specified texture handle for a render target attachment or a regular texture
|
|
321
387
|
* that should be used for rendering. The texture can be bound to either a texture unit
|
|
@@ -353,7 +419,19 @@ declare global {
|
|
|
353
419
|
* - `graphics.BUFFER_TYPE_COLOR3_BIT`
|
|
354
420
|
* @example
|
|
355
421
|
* ```ts
|
|
356
|
-
* export default
|
|
422
|
+
* export default defineRenderScript({
|
|
423
|
+
* init() {
|
|
424
|
+
* const color_params = {
|
|
425
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
426
|
+
* width: render.get_window_width(),
|
|
427
|
+
* height: render.get_window_height(),
|
|
428
|
+
* };
|
|
429
|
+
* return {
|
|
430
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
431
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
432
|
+
* };
|
|
433
|
+
* },
|
|
434
|
+
*
|
|
357
435
|
* update(self, dt) {
|
|
358
436
|
* // enable target so all drawing is done to it
|
|
359
437
|
* render.set_render_target(self.my_render_target);
|
|
@@ -370,9 +448,15 @@ declare global {
|
|
|
370
448
|
* render.draw(self.my_pred);
|
|
371
449
|
* },
|
|
372
450
|
* });
|
|
373
|
-
*
|
|
451
|
+
* ```
|
|
452
|
+
* @example
|
|
453
|
+
* ```ts
|
|
374
454
|
* // Or enable a render target by resource id:
|
|
375
|
-
* export default
|
|
455
|
+
* export default defineRenderScript({
|
|
456
|
+
* init() {
|
|
457
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
458
|
+
* },
|
|
459
|
+
*
|
|
376
460
|
* update(self, dt) {
|
|
377
461
|
* render.set_render_target("my_rt_resource");
|
|
378
462
|
* render.draw(self.my_pred);
|
|
@@ -384,9 +468,15 @@ declare global {
|
|
|
384
468
|
* render.draw(self.my_pred);
|
|
385
469
|
* },
|
|
386
470
|
* });
|
|
387
|
-
*
|
|
471
|
+
* ```
|
|
472
|
+
* @example
|
|
473
|
+
* ```ts
|
|
388
474
|
* // Or bind a texture handle directly:
|
|
389
|
-
* export default
|
|
475
|
+
* export default defineRenderScript({
|
|
476
|
+
* init() {
|
|
477
|
+
* return { my_texture_handle: resource.get_texture_info("/main/my_texture.texturec").handle };
|
|
478
|
+
* },
|
|
479
|
+
*
|
|
390
480
|
* update(self, dt) {
|
|
391
481
|
* // bind a texture to the texture unit 0
|
|
392
482
|
* render.enable_texture(0, self.my_texture_handle);
|
|
@@ -396,7 +486,7 @@ declare global {
|
|
|
396
486
|
* });
|
|
397
487
|
* ```
|
|
398
488
|
*/
|
|
399
|
-
function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash
|
|
489
|
+
function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash | Opaque<"render_target"> | number, buffer_type?: graphics.BufferType): void;
|
|
400
490
|
/**
|
|
401
491
|
* Returns the logical window height that is set in the "game.project" settings.
|
|
402
492
|
* Note that the actual window pixel size can change, either by device constraints
|
|
@@ -424,13 +514,35 @@ declare global {
|
|
|
424
514
|
* @returns the height of the render target buffer texture
|
|
425
515
|
* @example
|
|
426
516
|
* ```ts
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
*
|
|
517
|
+
* export default defineRenderScript({
|
|
518
|
+
* init() {
|
|
519
|
+
* // render target buffer parameters
|
|
520
|
+
* const color_params = {
|
|
521
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
522
|
+
* width: render.get_window_width(),
|
|
523
|
+
* height: render.get_window_height(),
|
|
524
|
+
* min_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
525
|
+
* mag_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
526
|
+
* u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
527
|
+
* v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
528
|
+
* };
|
|
529
|
+
* return {
|
|
530
|
+
* target_right: render.render_target("right", {
|
|
531
|
+
* [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
|
|
532
|
+
* }),
|
|
533
|
+
* };
|
|
534
|
+
* },
|
|
535
|
+
*
|
|
536
|
+
* update(self, dt) {
|
|
537
|
+
* // get the height of the render target color buffer
|
|
538
|
+
* const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
539
|
+
* // get the height of a render target resource
|
|
540
|
+
* const w = render.get_render_target_height("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
541
|
+
* },
|
|
542
|
+
* });
|
|
431
543
|
* ```
|
|
432
544
|
*/
|
|
433
|
-
function get_render_target_height(render_target: Opaque<"render_target"
|
|
545
|
+
function get_render_target_height(render_target: Opaque<"render_target"> | string | Hash, buffer_type: graphics.BufferType): number;
|
|
434
546
|
/**
|
|
435
547
|
* Returns the specified buffer width from a render target.
|
|
436
548
|
*
|
|
@@ -447,13 +559,35 @@ declare global {
|
|
|
447
559
|
* @returns the width of the render target buffer texture
|
|
448
560
|
* @example
|
|
449
561
|
* ```ts
|
|
450
|
-
*
|
|
451
|
-
*
|
|
452
|
-
*
|
|
453
|
-
*
|
|
562
|
+
* export default defineRenderScript({
|
|
563
|
+
* init() {
|
|
564
|
+
* // render target buffer parameters
|
|
565
|
+
* const color_params = {
|
|
566
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
567
|
+
* width: render.get_window_width(),
|
|
568
|
+
* height: render.get_window_height(),
|
|
569
|
+
* min_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
570
|
+
* mag_filter: graphics.TEXTURE_FILTER_LINEAR,
|
|
571
|
+
* u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
572
|
+
* v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,
|
|
573
|
+
* };
|
|
574
|
+
* return {
|
|
575
|
+
* target_right: render.render_target("right", {
|
|
576
|
+
* [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,
|
|
577
|
+
* }),
|
|
578
|
+
* };
|
|
579
|
+
* },
|
|
580
|
+
*
|
|
581
|
+
* update(self, dt) {
|
|
582
|
+
* // get the width of the render target color buffer
|
|
583
|
+
* const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
584
|
+
* // get the width of a render target resource
|
|
585
|
+
* const w2 = render.get_render_target_width("my_rt_resource", graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
586
|
+
* },
|
|
587
|
+
* });
|
|
454
588
|
* ```
|
|
455
589
|
*/
|
|
456
|
-
function get_render_target_width(render_target: Opaque<"render_target"
|
|
590
|
+
function get_render_target_width(render_target: Opaque<"render_target"> | string | Hash, buffer_type: graphics.BufferType): number;
|
|
457
591
|
/**
|
|
458
592
|
* Returns the logical window width that is set in the "game.project" settings.
|
|
459
593
|
* Note that the actual window pixel size can change, either by device constraints
|
|
@@ -613,20 +747,28 @@ declare global {
|
|
|
613
747
|
* boolean If true, the renderer will use the cameras view-projection matrix for frustum culling (default: false)
|
|
614
748
|
* @example
|
|
615
749
|
* ```ts
|
|
616
|
-
*
|
|
617
|
-
*
|
|
618
|
-
* render.
|
|
619
|
-
*
|
|
750
|
+
* export default defineRenderScript({
|
|
751
|
+
* init() {
|
|
752
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
753
|
+
* },
|
|
620
754
|
*
|
|
621
|
-
*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
*
|
|
626
|
-
*
|
|
755
|
+
* update(self, dt) {
|
|
756
|
+
* // Set the current camera to be used for rendering
|
|
757
|
+
* render.set_camera("main:/my_go#camera");
|
|
758
|
+
* render.draw(self.my_pred);
|
|
759
|
+
* render.set_camera(undefined);
|
|
760
|
+
*
|
|
761
|
+
* // Use the camera frustum for frustum culling together with a specific frustum plane option for the draw command
|
|
762
|
+
* // The camera frustum will take precedence over the frustum plane option in render.draw
|
|
763
|
+
* render.set_camera("main:/my_go#camera", { use_frustum: true });
|
|
764
|
+
* // However, we can still customize the frustum planes regardless of the camera option!
|
|
765
|
+
* render.draw(self.my_pred, { frustum_planes: render.FRUSTUM_PLANES_ALL });
|
|
766
|
+
* render.set_camera();
|
|
767
|
+
* },
|
|
768
|
+
* });
|
|
627
769
|
* ```
|
|
628
770
|
*/
|
|
629
|
-
function set_camera(camera?: Url | number, options?: { use_frustum?: boolean }): void;
|
|
771
|
+
function set_camera(camera?: Url | number | string, options?: { use_frustum?: boolean }): void;
|
|
630
772
|
/**
|
|
631
773
|
* 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.
|
|
632
774
|
* The component masks are all initially `true`.
|
|
@@ -650,11 +792,19 @@ declare global {
|
|
|
650
792
|
* @param compute - compute id to use, or nil to disable
|
|
651
793
|
* @example
|
|
652
794
|
* ```ts
|
|
653
|
-
*
|
|
654
|
-
*
|
|
655
|
-
*
|
|
656
|
-
*
|
|
657
|
-
*
|
|
795
|
+
* export default defineRenderScript({
|
|
796
|
+
* init() {
|
|
797
|
+
* return { backing_texture: "my_texture_resource" };
|
|
798
|
+
* },
|
|
799
|
+
*
|
|
800
|
+
* update(self, dt) {
|
|
801
|
+
* // Enable compute program named "fractals", then dispatch it.
|
|
802
|
+
* render.set_compute("fractals");
|
|
803
|
+
* render.enable_texture(0, self.backing_texture);
|
|
804
|
+
* render.dispatch_compute(128, 128, 1);
|
|
805
|
+
* render.set_compute();
|
|
806
|
+
* },
|
|
807
|
+
* });
|
|
658
808
|
* ```
|
|
659
809
|
*/
|
|
660
810
|
function set_compute(compute?: string | Hash): void;
|
|
@@ -744,7 +894,7 @@ declare global {
|
|
|
744
894
|
* ```ts
|
|
745
895
|
* // Set listener and handle render context events.
|
|
746
896
|
* // custom.render_script
|
|
747
|
-
* export default
|
|
897
|
+
* export default defineRenderScript({
|
|
748
898
|
* init() {
|
|
749
899
|
* render.set_listener((self, event_type) => {
|
|
750
900
|
* if (event_type === render.CONTEXT_EVENT_CONTEXT_LOST) {
|
|
@@ -768,7 +918,7 @@ declare global {
|
|
|
768
918
|
* offset for each polygon. The initial value is `0`.
|
|
769
919
|
* `units` is multiplied by an implementation-specific value to create a
|
|
770
920
|
* constant depth offset. The initial value is `0`.
|
|
771
|
-
* The value of the offset is computed as `factor`
|
|
921
|
+
* The value of the offset is computed as `factor` × `DZ` + `r` × `units`
|
|
772
922
|
* `DZ` is a measurement of the depth slope of the polygon which is the change in z (depth)
|
|
773
923
|
* values divided by the change in either x or y coordinates, as you traverse a polygon.
|
|
774
924
|
* The depth values are in window coordinates, clamped to the range [0, 1].
|
|
@@ -817,10 +967,24 @@ declare global {
|
|
|
817
967
|
*
|
|
818
968
|
* - `graphics.BUFFER_TYPE_STENCIL_BIT`
|
|
819
969
|
* @example
|
|
970
|
+
* How to set a render target and draw to it and then switch back to the default render target
|
|
971
|
+
* 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
972
|
* ```ts
|
|
821
973
|
* // How to set a render target and draw to it and then switch back to the default render target
|
|
822
974
|
* // 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
|
|
975
|
+
* export default defineRenderScript({
|
|
976
|
+
* init() {
|
|
977
|
+
* const color_params = {
|
|
978
|
+
* format: graphics.TEXTURE_FORMAT_RGBA,
|
|
979
|
+
* width: render.get_window_width(),
|
|
980
|
+
* height: render.get_window_height(),
|
|
981
|
+
* };
|
|
982
|
+
* return {
|
|
983
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
984
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
985
|
+
* };
|
|
986
|
+
* },
|
|
987
|
+
*
|
|
824
988
|
* update(self, dt) {
|
|
825
989
|
* // set render target so all drawing is done to it
|
|
826
990
|
* render.set_render_target(self.my_render_target, {
|
|
@@ -835,9 +999,15 @@ declare global {
|
|
|
835
999
|
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
836
1000
|
* },
|
|
837
1001
|
* });
|
|
838
|
-
*
|
|
1002
|
+
* ```
|
|
1003
|
+
* @example
|
|
1004
|
+
* ```ts
|
|
839
1005
|
* // Or set the render target by a render target resource identifier:
|
|
840
|
-
* export default
|
|
1006
|
+
* export default defineRenderScript({
|
|
1007
|
+
* init() {
|
|
1008
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
1009
|
+
* },
|
|
1010
|
+
*
|
|
841
1011
|
* update(self, dt) {
|
|
842
1012
|
* render.set_render_target("my_rt_resource");
|
|
843
1013
|
*
|
|
@@ -850,7 +1020,7 @@ declare global {
|
|
|
850
1020
|
* });
|
|
851
1021
|
* ```
|
|
852
1022
|
*/
|
|
853
|
-
function set_render_target(render_target: Opaque<"render_target"
|
|
1023
|
+
function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT, options?: { transient?: graphics.BufferType[] }): void;
|
|
854
1024
|
/**
|
|
855
1025
|
* Sets the render target size for a render target created from
|
|
856
1026
|
* either a render script, or from a render target resource.
|
|
@@ -860,12 +1030,20 @@ declare global {
|
|
|
860
1030
|
* @param height - new render target height
|
|
861
1031
|
* @example
|
|
862
1032
|
* ```ts
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
* render.
|
|
1033
|
+
* export default defineRenderScript({
|
|
1034
|
+
* init() {
|
|
1035
|
+
* return { my_render_target: render.render_target("my_target", {}) };
|
|
1036
|
+
* },
|
|
1037
|
+
*
|
|
1038
|
+
* update(self, dt) {
|
|
1039
|
+
* // Resize render targets to the current window size:
|
|
1040
|
+
* render.set_render_target_size(self.my_render_target, render.get_window_width(), render.get_window_height());
|
|
1041
|
+
* render.set_render_target_size("my_rt_resource", render.get_window_width(), render.get_window_height());
|
|
1042
|
+
* },
|
|
1043
|
+
* });
|
|
866
1044
|
* ```
|
|
867
1045
|
*/
|
|
868
|
-
function set_render_target_size(render_target: Opaque<"render_target"
|
|
1046
|
+
function set_render_target_size(render_target: Opaque<"render_target"> | string | Hash, width: number, height: number): void;
|
|
869
1047
|
/**
|
|
870
1048
|
* Stenciling is similar to depth-buffering as it enables and disables drawing on a
|
|
871
1049
|
* per-pixel basis. First, GL drawing primitives are drawn into the stencil planes.
|
|
@@ -976,7 +1154,7 @@ declare global {
|
|
|
976
1154
|
* ```ts
|
|
977
1155
|
* // How to set the view and projection matrices according to
|
|
978
1156
|
* // the values supplied by a camera.
|
|
979
|
-
* export default
|
|
1157
|
+
* export default defineRenderScript({
|
|
980
1158
|
* init() {
|
|
981
1159
|
* return {
|
|
982
1160
|
* view: vmath.matrix4(),
|
|
@@ -991,7 +1169,11 @@ declare global {
|
|
|
991
1169
|
* },
|
|
992
1170
|
*
|
|
993
1171
|
* on_message(self, message_id, message) {
|
|
994
|
-
* if (
|
|
1172
|
+
* if (
|
|
1173
|
+
* message_id === hash("set_view_projection") &&
|
|
1174
|
+
* types.is_matrix4(message.view) &&
|
|
1175
|
+
* types.is_matrix4(message.projection)
|
|
1176
|
+
* ) {
|
|
995
1177
|
* // camera view and projection arrives here.
|
|
996
1178
|
* self.view = message.view;
|
|
997
1179
|
* self.projection = message.projection;
|