@defold-typescript/types 0.50.1 → 0.52.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 +4 -58
- package/api-signatures.json +1128 -1552
- package/api-targets.json +15 -5
- package/examples/translations.json +19 -71
- package/fixtures/messages_doc.json +20 -39
- package/generated/b2d_world.d.ts +10 -10
- package/generated/buffer.d.ts +9 -9
- package/generated/builtin-messages.d.ts +16 -14
- package/generated/bullet3d_collision_object.d.ts +1 -1
- package/generated/bullet3d_constraint.d.ts +109 -7
- package/generated/bullet3d_shape.d.ts +2 -2
- package/generated/collectionfactory.d.ts +1 -1
- package/generated/collectionproxy.d.ts +2 -2
- package/generated/factory.d.ts +4 -2
- package/generated/go.d.ts +114 -220
- package/generated/graphics.d.ts +5 -0
- package/generated/gui.d.ts +148 -371
- package/generated/http.d.ts +4 -2
- package/generated/image.d.ts +56 -4
- package/generated/kinds/gui-script.d.ts +3 -0
- package/generated/kinds/render-script.d.ts +15 -15
- package/generated/kinds/script.d.ts +1 -0
- package/generated/liveupdate.d.ts +5 -1
- package/generated/material.d.ts +3 -3
- package/generated/model.d.ts +4 -5
- package/generated/particlefx.d.ts +20 -1
- package/generated/physics.d.ts +48 -4
- package/generated/render-script-modules/b2d.d.ts +711 -0
- package/generated/render-script-modules/bullet3d.d.ts +73 -0
- package/generated/render-script-modules/collectionfactory.d.ts +25 -0
- package/generated/render-script-modules/collectionproxy.d.ts +39 -0
- package/generated/render-script-modules/factory.d.ts +25 -0
- package/generated/render-script-modules/go.d.ts +436 -0
- package/generated/render-script-modules/label.d.ts +105 -0
- package/generated/render-script-modules/model.d.ts +89 -0
- package/generated/render-script-modules/particlefx.d.ts +59 -0
- package/generated/render-script-modules/physics.d.ts +333 -0
- package/generated/render-script-modules/resource.d.ts +1233 -0
- package/generated/render-script-modules/sound.d.ts +227 -0
- package/generated/render-script-modules/sprite.d.ts +68 -0
- package/generated/render-script-modules/tilemap.d.ts +43 -0
- package/generated/render.d.ts +175 -21
- package/generated/resource.d.ts +31 -10
- package/generated/sprite.d.ts +49 -1
- package/generated/sys.d.ts +78 -10
- package/generated/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.12.4/factory.d.ts +4 -2
- package/generated/versions/defold-1.12.4/go.d.ts +115 -343
- package/generated/versions/defold-1.12.4/graphics.d.ts +1 -0
- package/generated/versions/defold-1.12.4/gui.d.ts +151 -513
- package/generated/versions/defold-1.12.4/http.d.ts +4 -2
- package/generated/versions/defold-1.12.4/image.d.ts +83 -3
- package/generated/versions/defold-1.12.4/index.d.ts +2 -0
- package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.12.4/model.d.ts +4 -5
- package/generated/versions/defold-1.12.4/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.12.4/physics.d.ts +47 -3
- package/generated/versions/defold-1.12.4/render.d.ts +119 -15
- package/generated/versions/defold-1.12.4/resource.d.ts +43 -10
- package/generated/versions/defold-1.12.4/sprite.d.ts +58 -1
- package/generated/versions/defold-1.12.4/sys.d.ts +101 -6
- package/generated/versions/defold-1.12.4/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.0/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.0/go.d.ts +115 -370
- package/generated/versions/defold-1.13.0/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +151 -513
- package/generated/versions/defold-1.13.0/http.d.ts +4 -2
- package/generated/versions/defold-1.13.0/image.d.ts +83 -3
- package/generated/versions/defold-1.13.0/index.d.ts +2 -0
- package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.0/material.d.ts +3 -1
- package/generated/versions/defold-1.13.0/model.d.ts +4 -5
- package/generated/versions/defold-1.13.0/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.13.0/physics.d.ts +47 -3
- package/generated/versions/defold-1.13.0/render.d.ts +182 -16
- package/generated/versions/defold-1.13.0/resource.d.ts +43 -10
- package/generated/versions/defold-1.13.0/sprite.d.ts +58 -1
- package/generated/versions/defold-1.13.0/sys.d.ts +101 -6
- package/generated/versions/defold-1.13.0/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.1/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.1/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.1/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.1/go.d.ts +115 -370
- package/generated/versions/defold-1.13.1/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.1/gui.d.ts +151 -529
- package/generated/versions/defold-1.13.1/http.d.ts +4 -2
- package/generated/versions/defold-1.13.1/image.d.ts +83 -3
- package/generated/versions/defold-1.13.1/index.d.ts +3 -0
- package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.1/material.d.ts +3 -1
- package/generated/versions/defold-1.13.1/model.d.ts +4 -5
- package/generated/versions/defold-1.13.1/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.13.1/physics.d.ts +47 -3
- package/generated/versions/defold-1.13.1/render.d.ts +182 -16
- package/generated/versions/defold-1.13.1/resource.d.ts +43 -10
- package/generated/versions/defold-1.13.1/sprite.d.ts +58 -1
- package/generated/versions/defold-1.13.1/sys.d.ts +101 -6
- package/generated/versions/defold-1.13.1/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.2/b2d_world.d.ts +10 -10
- package/generated/versions/defold-1.13.2/buffer.d.ts +9 -9
- package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +1 -1
- package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +109 -7
- package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +2 -2
- package/generated/versions/defold-1.13.2/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.2/collectionproxy.d.ts +2 -2
- package/generated/versions/defold-1.13.2/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.2/go.d.ts +114 -220
- package/generated/versions/defold-1.13.2/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.2/gui.d.ts +148 -371
- package/generated/versions/defold-1.13.2/http.d.ts +4 -2
- package/generated/versions/defold-1.13.2/image.d.ts +56 -4
- package/generated/versions/defold-1.13.2/index.d.ts +3 -0
- package/generated/versions/defold-1.13.2/liveupdate.d.ts +5 -1
- package/generated/versions/defold-1.13.2/material.d.ts +3 -3
- package/generated/versions/defold-1.13.2/model.d.ts +4 -5
- package/generated/versions/defold-1.13.2/particlefx.d.ts +20 -1
- package/generated/versions/defold-1.13.2/physics.d.ts +48 -4
- package/generated/versions/defold-1.13.2/render.d.ts +164 -20
- package/generated/versions/defold-1.13.2/resource.d.ts +31 -10
- package/generated/versions/defold-1.13.2/sprite.d.ts +49 -1
- package/generated/versions/defold-1.13.2/sys.d.ts +78 -10
- package/generated/versions/defold-1.13.2/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.2/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.2/window.d.ts +1 -1
- package/generated/vmath.d.ts +0 -24
- package/generated/window.d.ts +1 -1
- package/identity-vocabulary.json +98 -7
- package/index.d.ts +3 -0
- package/package.json +3 -1
- package/scripts/generate-api-availability.ts +6 -22
- package/scripts/generate-api-signatures.ts +87 -21
- package/scripts/materialize-version.ts +53 -6
- package/scripts/regen.ts +256 -44
- package/scripts/signature-store-fs.ts +1 -0
- package/scripts/target-version.ts +26 -0
- package/src/api-doc.ts +26 -0
- package/src/component-properties.d.ts +226 -6
- package/src/core-types.ts +82 -20
- package/src/doc-corrections.ts +53 -5
- package/src/emit-dts.ts +1300 -269
- package/src/emit-messages.ts +289 -0
- package/src/engine-globals.d.ts +8 -2
- package/src/go-overloads.d.ts +80 -15
- package/src/gui-overloads.d.ts +489 -0
- package/src/gui-texture-removal.d.ts +41 -0
- package/src/index.ts +2 -0
- package/src/lifecycle.ts +46 -37
- package/src/luals-type-expr.ts +6 -1
- package/src/msg-overloads.d.ts +25 -13
- package/src/physics-event-guard.d.ts +39 -0
- package/src/render-overloads.d.ts +2 -2
- package/src/return-correction-provenance.ts +36 -6
- package/src/signature-store.ts +50 -0
- package/src/timers.d.ts +2 -1
- package/src/vmath-overloads.d.ts +26 -0
- package/src/window-event-guard.d.ts +5 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import type { Hash } from "../../../src/core-types";
|
|
2
|
+
import type { Hash, Url } from "../../../src/core-types";
|
|
3
3
|
|
|
4
4
|
declare global {
|
|
5
5
|
/**
|
|
@@ -31,6 +31,8 @@ declare global {
|
|
|
31
31
|
* - number `range_start`: the start offset into the requested file
|
|
32
32
|
* - number `range_end`: the end offset into the requested file (inclusive)
|
|
33
33
|
* - number `document_size`: the full size of the requested file
|
|
34
|
+
*
|
|
35
|
+
* With `report_progress` set, the callback also receives progress events carrying `bytes_sent`, `bytes_received`, `bytes_total` and `url` but no `status`; `response.bytes_received !== undefined` marks a progress event, since a final response never carries it.
|
|
34
36
|
* @param headers - optional table with custom headers
|
|
35
37
|
* @param post_data - optional data to send
|
|
36
38
|
* @param options - optional table with request parameters. Supported entries:
|
|
@@ -70,7 +72,7 @@ declare global {
|
|
|
70
72
|
* });
|
|
71
73
|
* ```
|
|
72
74
|
*/
|
|
73
|
-
function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }) => void, headers?: LuaMap<string, string> | Record<string, string>, post_data?: string, options?: { timeout?: number; path?: string; ignore_cache?: boolean; chunked_transfer?: boolean; report_progress?: boolean }): void;
|
|
75
|
+
function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; url: string; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_sent?: number; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }, sender: Url) => void, headers?: LuaMap<string, string> | Record<string, string>, post_data?: string, options?: { timeout?: number; path?: string; ignore_cache?: boolean; chunked_transfer?: boolean; report_progress?: boolean }): void;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
|
|
@@ -44,7 +44,7 @@ declare global {
|
|
|
44
44
|
* }
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
function get_astc_header(buffer: string): { width: number; height: number; depth: number; block_size_x: number; block_size_y: number; block_size_z: number }
|
|
47
|
+
function get_astc_header(buffer: string): { width: number; height: number; depth: number; block_size_x: number; block_size_y: number; block_size_z: number };
|
|
48
48
|
/**
|
|
49
49
|
* Load image (PNG or JPEG) from buffer.
|
|
50
50
|
*
|
|
@@ -77,7 +77,87 @@ declare global {
|
|
|
77
77
|
* });
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
function load(buffer: string
|
|
80
|
+
function load(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Load image (PNG or JPEG) from buffer.
|
|
83
|
+
*
|
|
84
|
+
* @param buffer - image data buffer
|
|
85
|
+
* @param options - An optional table containing parameters for loading the image. Supported entries:
|
|
86
|
+
*
|
|
87
|
+
* `premultiply_alpha`
|
|
88
|
+
* boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
|
|
89
|
+
* `flip_vertically`
|
|
90
|
+
* boolean True if the image contents should be flipped vertically. Defaults to `false`.
|
|
91
|
+
* @returns object or `nil` if loading fails. The object is a table with the following fields:
|
|
92
|
+
*
|
|
93
|
+
* - number `width`: image width
|
|
94
|
+
* - number `height`: image height
|
|
95
|
+
* - constant `type`: image type
|
|
96
|
+
* - `image.TYPE_RGB`
|
|
97
|
+
* - `image.TYPE_RGBA`
|
|
98
|
+
* - `image.TYPE_LUMINANCE`
|
|
99
|
+
* - `image.TYPE_LUMINANCE_ALPHA`
|
|
100
|
+
* - string `buffer`: the raw image data
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* // How to load an image from an URL and create a GUI texture from it:
|
|
104
|
+
* const imgurl = "http://www.site.com/image.png";
|
|
105
|
+
* http.request(imgurl, "GET", (self, id, response) => {
|
|
106
|
+
* const img = response.response !== undefined ? image.load(response.response) : undefined;
|
|
107
|
+
* if (img !== undefined) {
|
|
108
|
+
* const tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer);
|
|
109
|
+
* }
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
function load(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Load image (PNG or JPEG) from a string buffer.
|
|
116
|
+
*
|
|
117
|
+
* @param buffer - image data buffer
|
|
118
|
+
* @param options - An optional table containing parameters for loading the image. Supported entries:
|
|
119
|
+
*
|
|
120
|
+
* `premultiply_alpha`
|
|
121
|
+
* boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
|
|
122
|
+
* `flip_vertically`
|
|
123
|
+
* boolean True if the image contents should be flipped vertically. Defaults to `false`.
|
|
124
|
+
* @returns object or `nil` if loading fails. The object is a table with the following fields:
|
|
125
|
+
*
|
|
126
|
+
* - number `width`: image width
|
|
127
|
+
* - number `height`: image height
|
|
128
|
+
* - constant `type`: image type
|
|
129
|
+
* - `image.TYPE_RGB`
|
|
130
|
+
* - `image.TYPE_RGBA`
|
|
131
|
+
* - `image.TYPE_LUMINANCE`
|
|
132
|
+
* - `image.TYPE_LUMINANCE_ALPHA`
|
|
133
|
+
* - buffer `buffer`: the script buffer that holds the decompressed image data. See buffer.create how to use the buffer.
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* // Load an image from an URL as a buffer and create a texture resource from it:
|
|
137
|
+
* const imgurl = "http://www.site.com/image.png";
|
|
138
|
+
* http.request(imgurl, "GET", (self, id, response) => {
|
|
139
|
+
* const img =
|
|
140
|
+
* response.response !== undefined
|
|
141
|
+
* ? image.load_buffer(response.response, { flip_vertically: true })
|
|
142
|
+
* : undefined;
|
|
143
|
+
* // the engine registers a texture format only when the driver supports it
|
|
144
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
145
|
+
* if (img !== undefined && format !== undefined) {
|
|
146
|
+
* const tparams = {
|
|
147
|
+
* width: img.width,
|
|
148
|
+
* height: img.height,
|
|
149
|
+
* type: graphics.TEXTURE_TYPE_2D,
|
|
150
|
+
* format,
|
|
151
|
+
* };
|
|
152
|
+
*
|
|
153
|
+
* const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
|
|
154
|
+
* // Apply the texture to a model
|
|
155
|
+
* go.set("/go1#model", "texture0", my_texture_id);
|
|
156
|
+
* }
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
function load_buffer(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
|
|
81
161
|
/**
|
|
82
162
|
* Load image (PNG or JPEG) from a string buffer.
|
|
83
163
|
*
|
|
@@ -124,7 +204,7 @@ declare global {
|
|
|
124
204
|
* });
|
|
125
205
|
* ```
|
|
126
206
|
*/
|
|
127
|
-
function load_buffer(buffer: string, options
|
|
207
|
+
function load_buffer(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
|
|
128
208
|
}
|
|
129
209
|
}
|
|
130
210
|
|
|
@@ -47,10 +47,13 @@ import "../../../src/engine-globals";
|
|
|
47
47
|
import "../../../src/msg-overloads";
|
|
48
48
|
import "../../../src/message-guard";
|
|
49
49
|
import "../../../src/window-event-guard";
|
|
50
|
+
import "../../../src/physics-event-guard";
|
|
50
51
|
import "../../../src/scene-addresses";
|
|
51
52
|
import "../../../src/go-overloads";
|
|
52
53
|
import "../../../src/component-properties";
|
|
53
54
|
import "../../../src/render-overloads";
|
|
55
|
+
import "../../../src/gui-overloads";
|
|
56
|
+
import "../../../src/gui-texture-removal";
|
|
54
57
|
import "../../../src/vmath-overloads";
|
|
55
58
|
import "../../../src/sys-overloads";
|
|
56
59
|
|
|
@@ -38,6 +38,10 @@ declare global {
|
|
|
38
38
|
* Memory wasn't allocated
|
|
39
39
|
*/
|
|
40
40
|
const LIVEUPDATE_MEM_ERROR: number & { readonly __brand: "liveupdate.LIVEUPDATE_MEM_ERROR" };
|
|
41
|
+
/**
|
|
42
|
+
* Live update is not initialized. `liveupdate.add_mount` and `liveupdate.remove_mount` return it while live update is disabled.
|
|
43
|
+
*/
|
|
44
|
+
const LIVEUPDATE_NOT_INITIALIZED: number & { readonly __brand: "liveupdate.LIVEUPDATE_NOT_INITIALIZED" };
|
|
41
45
|
/**
|
|
42
46
|
* LIVEUPDATE_OK
|
|
43
47
|
*/
|
|
@@ -217,6 +217,8 @@ declare global {
|
|
|
217
217
|
* - `graphics.TEXTURE_USAGE_FLAG_STORAGE`
|
|
218
218
|
* - `graphics.TEXTURE_USAGE_FLAG_INPUT`
|
|
219
219
|
* - `graphics.TEXTURE_USAGE_FLAG_COLOR`
|
|
220
|
+
*
|
|
221
|
+
* Keyed by sampler slot from 1; a slot with no texture has no entry, so iterate with `for (const [slot, info] of textures)`.
|
|
220
222
|
* @example
|
|
221
223
|
* ```ts
|
|
222
224
|
* // Get the textures from a material specified as a resource property
|
|
@@ -231,7 +233,7 @@ declare global {
|
|
|
231
233
|
* });
|
|
232
234
|
* ```
|
|
233
235
|
*/
|
|
234
|
-
function get_textures(path: Hash | string): { path: Hash; handle: Hash; width: number; height: number; depth: number; mipmaps: number; type: number; flags: number }
|
|
236
|
+
function get_textures(path: Hash | string): LuaMap<number, { path: Hash; handle: Hash; width: number; height: number; depth: number; mipmaps: number; type: number; flags: number }>;
|
|
235
237
|
/**
|
|
236
238
|
* Returns a table of all the vertex attributes in the material. This function will return all the vertex attributes
|
|
237
239
|
* that are used in the vertex shader of the material.
|
|
@@ -155,10 +155,9 @@ declare global {
|
|
|
155
155
|
* // How to play the "jump" animation followed by the "run" animation:
|
|
156
156
|
* const url = msg.url("#model");
|
|
157
157
|
*
|
|
158
|
-
* function anim_done(self: unknown, message_id:
|
|
158
|
+
* function anim_done(self: unknown, message_id: Hash, message: { animation_id: Hash }) {
|
|
159
159
|
* if (message_id === hash("model_animation_done")) {
|
|
160
|
-
*
|
|
161
|
-
* if (animation_id === hash("jump")) {
|
|
160
|
+
* if (message.animation_id === hash("jump")) {
|
|
162
161
|
* // open animation done, chain with "run"
|
|
163
162
|
* const properties = { blend_duration: 0.2 };
|
|
164
163
|
* model.play_anim(url, "run", go.PLAYBACK_LOOP_FORWARD, properties, anim_done);
|
|
@@ -175,7 +174,7 @@ declare global {
|
|
|
175
174
|
* });
|
|
176
175
|
* ```
|
|
177
176
|
*/
|
|
178
|
-
function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: go.Playback, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id:
|
|
177
|
+
function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: go.Playback, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id: Hash, message: BuiltinMessages["model_animation_done"]) => void): void;
|
|
179
178
|
/**
|
|
180
179
|
* Resets a shader constant for a model component.
|
|
181
180
|
* The constant must be defined in the material assigned to the model.
|
|
@@ -229,7 +228,7 @@ declare global {
|
|
|
229
228
|
/**
|
|
230
229
|
* The current animation set on the component. The type of the property is hash.
|
|
231
230
|
*/
|
|
232
|
-
animation: Hash;
|
|
231
|
+
readonly animation: Hash;
|
|
233
232
|
/**
|
|
234
233
|
* The normalized animation cursor. The type of the property is number.
|
|
235
234
|
* Please note that model events may not fire as expected when the cursor is manipulated directly.
|
|
@@ -134,7 +134,28 @@ declare global {
|
|
|
134
134
|
* });
|
|
135
135
|
* ```
|
|
136
136
|
*/
|
|
137
|
-
function stop(url: string | Hash | Url
|
|
137
|
+
function stop(url: string | Hash | Url): void;
|
|
138
|
+
/**
|
|
139
|
+
* Stops a particle FX component from playing.
|
|
140
|
+
* Stopping a particle FX does not remove already spawned particles.
|
|
141
|
+
* Which particle FX to stop is identified by the URL.
|
|
142
|
+
*
|
|
143
|
+
* @param url - the particle fx that should stop playing
|
|
144
|
+
* @param options - Options when stopping the particle fx. Supported options:
|
|
145
|
+
*
|
|
146
|
+
* - boolean `clear`: instantly clear spawned particles
|
|
147
|
+
* @example
|
|
148
|
+
* ```ts
|
|
149
|
+
* // How to stop a particle fx when a game object is deleted and immediately also
|
|
150
|
+
* // clear any spawned particles:
|
|
151
|
+
* export default defineScript({
|
|
152
|
+
* final(self) {
|
|
153
|
+
* particlefx.stop("#particlefx", { clear: true });
|
|
154
|
+
* },
|
|
155
|
+
* });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
function stop(url: string | Hash | Url, options: { clear?: boolean }): void;
|
|
138
159
|
interface properties {
|
|
139
160
|
/**
|
|
140
161
|
* The animation used during rendering by an emitter in a particle FX component.
|
|
@@ -200,7 +200,7 @@ declare global {
|
|
|
200
200
|
* @returns It returns a list. If missed it returns `nil`. See ray_cast_response for details on the returned values.
|
|
201
201
|
* @example
|
|
202
202
|
* ```ts
|
|
203
|
-
* function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash
|
|
203
|
+
* function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash }) {
|
|
204
204
|
* // act on the hit (see 'ray_cast_response')
|
|
205
205
|
* }
|
|
206
206
|
*
|
|
@@ -225,7 +225,7 @@ declare global {
|
|
|
225
225
|
* });
|
|
226
226
|
* ```
|
|
227
227
|
*/
|
|
228
|
-
function raycast(from: Vector3, to: Vector3, groups: Hash[], options?: { all?: boolean }):
|
|
228
|
+
function raycast(from: Vector3, to: Vector3, groups: Hash[], options?: { all?: boolean }): Omit<BuiltinMessages["ray_cast_response"], "request_id">[] | Omit<BuiltinMessages["ray_cast_response"], "request_id"> | undefined;
|
|
229
229
|
/**
|
|
230
230
|
* Ray casts are used to test for intersections against collision objects in the physics world.
|
|
231
231
|
* Collision objects of types kinematic, dynamic and static are tested against. Trigger objects
|
|
@@ -269,7 +269,51 @@ declare global {
|
|
|
269
269
|
* });
|
|
270
270
|
* ```
|
|
271
271
|
*/
|
|
272
|
-
function raycast_async(from: Vector3, to: Vector3, groups: Hash[]
|
|
272
|
+
function raycast_async(from: Vector3, to: Vector3, groups: Hash[]): void;
|
|
273
|
+
/**
|
|
274
|
+
* Ray casts are used to test for intersections against collision objects in the physics world.
|
|
275
|
+
* Collision objects of types kinematic, dynamic and static are tested against. Trigger objects
|
|
276
|
+
* do not intersect with ray casts.
|
|
277
|
+
* Which collision objects to hit is filtered by their collision groups and can be configured
|
|
278
|
+
* through `groups`.
|
|
279
|
+
* The actual ray cast will be performed during the physics-update.
|
|
280
|
+
*
|
|
281
|
+
* - If an object is hit, the result will be reported via a ray_cast_response message.
|
|
282
|
+
* - If there is no object hit, the result will be reported via a ray_cast_missed message.
|
|
283
|
+
*
|
|
284
|
+
* NOTE: Ray casts will ignore collision objects that contain the starting point of the ray. This is a limitation in Box2D.
|
|
285
|
+
*
|
|
286
|
+
* @param from - the world position of the start of the ray
|
|
287
|
+
* @param to - the world position of the end of the ray
|
|
288
|
+
* @param groups - a lua table containing the hashed groups for which to test collisions against
|
|
289
|
+
* @param request_id - a number in range [0,255]. It will be sent back in the response for identification, 0 by default
|
|
290
|
+
* @example
|
|
291
|
+
* ```ts
|
|
292
|
+
* // How to perform a ray cast asynchronously:
|
|
293
|
+
* export default defineScript({
|
|
294
|
+
* init() {
|
|
295
|
+
* return { my_groups: [hash("my_group1"), hash("my_group2")] };
|
|
296
|
+
* },
|
|
297
|
+
*
|
|
298
|
+
* update(self, dt) {
|
|
299
|
+
* // request ray cast
|
|
300
|
+
* const my_start = go.get_world_position();
|
|
301
|
+
* const my_end = vmath.vector3(my_start.x, my_start.y - 100, my_start.z);
|
|
302
|
+
* physics.raycast_async(my_start, my_end, self.my_groups);
|
|
303
|
+
* },
|
|
304
|
+
*
|
|
305
|
+
* on_message(self, message_id, message, sender) {
|
|
306
|
+
* // check for the response
|
|
307
|
+
* if (message_id === hash("ray_cast_response")) {
|
|
308
|
+
* // act on the hit
|
|
309
|
+
* } else if (message_id === hash("ray_cast_missed")) {
|
|
310
|
+
* // act on the miss
|
|
311
|
+
* }
|
|
312
|
+
* },
|
|
313
|
+
* });
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
316
|
+
function raycast_async(from: Vector3, to: Vector3, groups: Hash[], request_id: number): void;
|
|
273
317
|
/**
|
|
274
318
|
* Only one physics world event listener can be set at a time.
|
|
275
319
|
*
|
|
@@ -6,10 +6,12 @@ declare global {
|
|
|
6
6
|
* Rendering API documentation
|
|
7
7
|
*/
|
|
8
8
|
namespace render {
|
|
9
|
-
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
9
|
+
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
|
|
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
|
+
type RenderTargetTextureType = typeof graphics.TEXTURE_TYPE_2D | typeof graphics.TEXTURE_TYPE_CUBE_MAP;
|
|
14
|
+
type RenderTargetParams = Record<string | number, unknown>;
|
|
13
15
|
/**
|
|
14
16
|
* The rendering context was lost. Rendering is paused and all graphics resources become invalid. Passed to the `render.set_listener` callback.
|
|
15
17
|
*/
|
|
@@ -104,7 +106,7 @@ declare global {
|
|
|
104
106
|
* constants.light_colors[3] = vmath.vector4(1, 1, 1, 1);
|
|
105
107
|
* ```
|
|
106
108
|
*/
|
|
107
|
-
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
109
|
+
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
|
|
108
110
|
/**
|
|
109
111
|
* Deletes a render target created by a render script.
|
|
110
112
|
* You cannot delete a render target resource.
|
|
@@ -117,9 +119,12 @@ declare global {
|
|
|
117
119
|
* return { my_render_target: render.render_target("my_target", {}) };
|
|
118
120
|
* },
|
|
119
121
|
*
|
|
120
|
-
* final
|
|
121
|
-
*
|
|
122
|
-
*
|
|
122
|
+
* // A render script has no final hook, so free the target on a message.
|
|
123
|
+
* on_message(self, message_id) {
|
|
124
|
+
* if (message_id === hash("release_target")) {
|
|
125
|
+
* // How to delete a render target:
|
|
126
|
+
* render.delete_render_target(self.my_render_target);
|
|
127
|
+
* }
|
|
123
128
|
* },
|
|
124
129
|
* });
|
|
125
130
|
* ```
|
|
@@ -182,8 +187,11 @@ declare global {
|
|
|
182
187
|
* ```ts
|
|
183
188
|
* export default defineRenderScript({
|
|
184
189
|
* init() {
|
|
190
|
+
* // the engine registers a texture format only when the driver supports it
|
|
191
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
192
|
+
* if (format === undefined) return undefined;
|
|
185
193
|
* const color_params = {
|
|
186
|
-
* format
|
|
194
|
+
* format,
|
|
187
195
|
* width: render.get_window_width(),
|
|
188
196
|
* height: render.get_window_height(),
|
|
189
197
|
* };
|
|
@@ -194,6 +202,7 @@ declare global {
|
|
|
194
202
|
* },
|
|
195
203
|
*
|
|
196
204
|
* update(self, dt) {
|
|
205
|
+
* if (self === undefined) return;
|
|
197
206
|
* render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
198
207
|
* // draw a predicate with the render target available as texture 0 in the predicate
|
|
199
208
|
* // material shader.
|
|
@@ -204,7 +213,7 @@ declare global {
|
|
|
204
213
|
* });
|
|
205
214
|
* ```
|
|
206
215
|
*/
|
|
207
|
-
function disable_texture(binding:
|
|
216
|
+
function disable_texture(binding: string | Hash | number): void;
|
|
208
217
|
/**
|
|
209
218
|
* Dispatches the currently enabled compute program. The dispatch call takes three arguments x,y,z which constitutes
|
|
210
219
|
* the 'global working group' of the compute dispatch. Together with the 'local working group' specified in the compute shader
|
|
@@ -223,8 +232,11 @@ declare global {
|
|
|
223
232
|
* ```ts
|
|
224
233
|
* export default defineRenderScript({
|
|
225
234
|
* init() {
|
|
235
|
+
* // the engine registers a texture format only when the driver supports it
|
|
236
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
237
|
+
* if (format === undefined) return undefined;
|
|
226
238
|
* const color_params = {
|
|
227
|
-
* format
|
|
239
|
+
* format,
|
|
228
240
|
* width: render.get_window_width(),
|
|
229
241
|
* height: render.get_window_height(),
|
|
230
242
|
* };
|
|
@@ -235,6 +247,7 @@ declare global {
|
|
|
235
247
|
* },
|
|
236
248
|
*
|
|
237
249
|
* update(self, dt) {
|
|
250
|
+
* if (self === undefined) return;
|
|
238
251
|
* render.set_compute("bloom");
|
|
239
252
|
* render.enable_texture(0, self.backing_texture);
|
|
240
253
|
* render.enable_texture(1, self.scene_rt);
|
|
@@ -251,7 +264,69 @@ declare global {
|
|
|
251
264
|
* render.dispatch_compute(32, 32, 32, { constants });
|
|
252
265
|
* ```
|
|
253
266
|
*/
|
|
254
|
-
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
267
|
+
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> } }): void;
|
|
268
|
+
/**
|
|
269
|
+
* Draws all objects that match a specified predicate. An optional constant buffer can be
|
|
270
|
+
* provided to override the default constants. If no constants buffer is provided, a default
|
|
271
|
+
* system constants buffer is used containing constants as defined in materials and set through
|
|
272
|
+
* go.set (or particlefx.set_constant) on visual components.
|
|
273
|
+
*
|
|
274
|
+
* @param predicate - predicate to draw for
|
|
275
|
+
* @param options - optional table with properties:
|
|
276
|
+
*
|
|
277
|
+
* `frustum`
|
|
278
|
+
* matrix4 A frustum matrix used to cull renderable items. (E.g. `local frustum = proj * view`). default=nil
|
|
279
|
+
* `frustum_planes`
|
|
280
|
+
* int Determines which sides of the frustum will be used. Default is render.FRUSTUM_PLANES_SIDES.
|
|
281
|
+
*
|
|
282
|
+
* - render.FRUSTUM_PLANES_SIDES : The left, right, top and bottom sides of the frustum.
|
|
283
|
+
* - render.FRUSTUM_PLANES_ALL : All 6 sides of the frustum.
|
|
284
|
+
*
|
|
285
|
+
* `constants`
|
|
286
|
+
* constant_buffer optional constants to use while rendering
|
|
287
|
+
* `sort_order`
|
|
288
|
+
* int How to sort draw order for world-ordered entries. Default uses the renderer's preferred world sorting (back-to-front).
|
|
289
|
+
* @example
|
|
290
|
+
* ```ts
|
|
291
|
+
* export default defineRenderScript({
|
|
292
|
+
* init() {
|
|
293
|
+
* // define a predicate matching anything with material tag "my_tag"
|
|
294
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
295
|
+
* },
|
|
296
|
+
*
|
|
297
|
+
* update(self, dt) {
|
|
298
|
+
* // draw everything in the my_pred predicate
|
|
299
|
+
* render.draw(self.my_pred);
|
|
300
|
+
* },
|
|
301
|
+
* });
|
|
302
|
+
* ```
|
|
303
|
+
* @example
|
|
304
|
+
* Draw predicate with constants:
|
|
305
|
+
* ```ts
|
|
306
|
+
* function draw_tinted(self: { my_pred: Opaque<"render_predicate"> }) {
|
|
307
|
+
* const constants = render.constant_buffer();
|
|
308
|
+
* constants.tint = vmath.vector4(1, 1, 1, 1);
|
|
309
|
+
* render.draw(self.my_pred, { constants });
|
|
310
|
+
* }
|
|
311
|
+
* ```
|
|
312
|
+
* @example
|
|
313
|
+
* Draw with predicate and frustum culling (without near+far planes):
|
|
314
|
+
* ```ts
|
|
315
|
+
* function draw_culled(self: { my_pred: Opaque<"render_predicate">; proj: Matrix4; view: Matrix4 }) {
|
|
316
|
+
* const frustum = self.proj.mul(self.view);
|
|
317
|
+
* render.draw(self.my_pred, { frustum });
|
|
318
|
+
* }
|
|
319
|
+
* ```
|
|
320
|
+
* @example
|
|
321
|
+
* Draw with predicate and frustum culling (with near+far planes):
|
|
322
|
+
* ```ts
|
|
323
|
+
* function draw_culled(self: { my_pred: Opaque<"render_predicate">; proj: Matrix4; view: Matrix4 }) {
|
|
324
|
+
* const frustum = self.proj.mul(self.view);
|
|
325
|
+
* render.draw(self.my_pred, { frustum, frustum_planes: render.FRUSTUM_PLANES_ALL });
|
|
326
|
+
* }
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
function draw(predicate: Opaque<"render_predicate">): void;
|
|
255
330
|
/**
|
|
256
331
|
* Draws all objects that match a specified predicate. An optional constant buffer can be
|
|
257
332
|
* provided to override the default constants. If no constants buffer is provided, a default
|
|
@@ -313,7 +388,7 @@ declare global {
|
|
|
313
388
|
* }
|
|
314
389
|
* ```
|
|
315
390
|
*/
|
|
316
|
-
function draw(predicate: Opaque<"render_predicate">, options
|
|
391
|
+
function draw(predicate: Opaque<"render_predicate">, options: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> }; sort_order?: number }): void;
|
|
317
392
|
/**
|
|
318
393
|
* Draws all 3d debug graphics such as lines drawn with "draw_line" messages and physics visualization.
|
|
319
394
|
*
|
|
@@ -424,8 +499,11 @@ declare global {
|
|
|
424
499
|
* ```ts
|
|
425
500
|
* export default defineRenderScript({
|
|
426
501
|
* init() {
|
|
502
|
+
* // the engine registers a texture format only when the driver supports it
|
|
503
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
504
|
+
* if (format === undefined) return undefined;
|
|
427
505
|
* const color_params = {
|
|
428
|
-
* format
|
|
506
|
+
* format,
|
|
429
507
|
* width: render.get_window_width(),
|
|
430
508
|
* height: render.get_window_height(),
|
|
431
509
|
* };
|
|
@@ -436,6 +514,7 @@ declare global {
|
|
|
436
514
|
* },
|
|
437
515
|
*
|
|
438
516
|
* update(self, dt) {
|
|
517
|
+
* if (self === undefined) return;
|
|
439
518
|
* // enable target so all drawing is done to it
|
|
440
519
|
* render.set_render_target(self.my_render_target);
|
|
441
520
|
*
|
|
@@ -516,8 +595,11 @@ declare global {
|
|
|
516
595
|
* ```ts
|
|
517
596
|
* export default defineRenderScript({
|
|
518
597
|
* init() {
|
|
598
|
+
* // the engine registers a texture format only when the driver supports it
|
|
599
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
600
|
+
* if (format === undefined) return undefined;
|
|
519
601
|
* const color_params = {
|
|
520
|
-
* format
|
|
602
|
+
* format,
|
|
521
603
|
* width: render.get_window_width(),
|
|
522
604
|
* height: render.get_window_height(),
|
|
523
605
|
* };
|
|
@@ -529,6 +611,7 @@ declare global {
|
|
|
529
611
|
* },
|
|
530
612
|
*
|
|
531
613
|
* update(self, dt) {
|
|
614
|
+
* if (self === undefined) return;
|
|
532
615
|
* // get the height of the render target color buffer
|
|
533
616
|
* const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
534
617
|
* // get the height of a render target resource
|
|
@@ -553,8 +636,11 @@ declare global {
|
|
|
553
636
|
* ```ts
|
|
554
637
|
* export default defineRenderScript({
|
|
555
638
|
* init() {
|
|
639
|
+
* // the engine registers a texture format only when the driver supports it
|
|
640
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
641
|
+
* if (format === undefined) return undefined;
|
|
556
642
|
* const color_params = {
|
|
557
|
-
* format
|
|
643
|
+
* format,
|
|
558
644
|
* width: render.get_window_width(),
|
|
559
645
|
* height: render.get_window_height(),
|
|
560
646
|
* };
|
|
@@ -566,6 +652,7 @@ declare global {
|
|
|
566
652
|
* },
|
|
567
653
|
*
|
|
568
654
|
* update(self, dt) {
|
|
655
|
+
* if (self === undefined) return;
|
|
569
656
|
* // get the width of the render target color buffer
|
|
570
657
|
* const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
571
658
|
* // get the width of a render target resource
|
|
@@ -738,7 +825,7 @@ declare global {
|
|
|
738
825
|
* render.set_blend_func_separate(graphics.BLEND_FACTOR_SRC_ALPHA, graphics.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, graphics.BLEND_FACTOR_ONE, graphics.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA);
|
|
739
826
|
* ```
|
|
740
827
|
*/
|
|
741
|
-
function set_blend_func_separate(source_factor_color:
|
|
828
|
+
function set_blend_func_separate(source_factor_color: graphics.BlendFactor, destination_factor_color: graphics.BlendFactor, source_factor_alpha: graphics.BlendFactor, destination_factor_alpha: graphics.BlendFactor): void;
|
|
742
829
|
/**
|
|
743
830
|
* Sets the current render camera to be used for rendering. If a render camera
|
|
744
831
|
* has been set by the render script, the renderer will be using its projection and view matrix
|
|
@@ -969,8 +1056,86 @@ declare global {
|
|
|
969
1056
|
* // 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
|
|
970
1057
|
* export default defineRenderScript({
|
|
971
1058
|
* init() {
|
|
1059
|
+
* // the engine registers a texture format only when the driver supports it
|
|
1060
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
1061
|
+
* if (format === undefined) return undefined;
|
|
1062
|
+
* const color_params = {
|
|
1063
|
+
* format,
|
|
1064
|
+
* width: render.get_window_width(),
|
|
1065
|
+
* height: render.get_window_height(),
|
|
1066
|
+
* };
|
|
1067
|
+
* return {
|
|
1068
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
1069
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
1070
|
+
* };
|
|
1071
|
+
* },
|
|
1072
|
+
*
|
|
1073
|
+
* update(self, dt) {
|
|
1074
|
+
* if (self === undefined) return;
|
|
1075
|
+
* // set render target so all drawing is done to it
|
|
1076
|
+
* render.set_render_target(self.my_render_target, {
|
|
1077
|
+
* transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],
|
|
1078
|
+
* });
|
|
1079
|
+
*
|
|
1080
|
+
* // draw a predicate to the render target
|
|
1081
|
+
* render.draw(self.my_pred);
|
|
1082
|
+
*
|
|
1083
|
+
* // set default render target. This also invalidates the depth and stencil buffers of the current target (self.my_render_target)
|
|
1084
|
+
* // which can be an optimisation on some hardware
|
|
1085
|
+
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
1086
|
+
* },
|
|
1087
|
+
* });
|
|
1088
|
+
* ```
|
|
1089
|
+
* @example
|
|
1090
|
+
* ```ts
|
|
1091
|
+
* export default defineRenderScript({
|
|
1092
|
+
* init() {
|
|
1093
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
1094
|
+
* },
|
|
1095
|
+
*
|
|
1096
|
+
* update(self, dt) {
|
|
1097
|
+
* // set render target by a render target resource identifier
|
|
1098
|
+
* render.set_render_target("my_rt_resource");
|
|
1099
|
+
*
|
|
1100
|
+
* // draw a predicate to the render target
|
|
1101
|
+
* render.draw(self.my_pred);
|
|
1102
|
+
*
|
|
1103
|
+
* // reset the render target to the default backbuffer
|
|
1104
|
+
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
1105
|
+
* },
|
|
1106
|
+
* });
|
|
1107
|
+
* ```
|
|
1108
|
+
*/
|
|
1109
|
+
function set_render_target(render_target?: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT): void;
|
|
1110
|
+
/**
|
|
1111
|
+
* Sets a render target. Subsequent draw operations will be to the
|
|
1112
|
+
* render target until it is replaced by a subsequent call to set_render_target.
|
|
1113
|
+
* This function supports render targets created by a render script, or a render target resource.
|
|
1114
|
+
*
|
|
1115
|
+
* @param render_target - render target to set. render.RENDER_TARGET_DEFAULT to set the default render target
|
|
1116
|
+
* @param options - optional table with behaviour parameters
|
|
1117
|
+
*
|
|
1118
|
+
* `transient`
|
|
1119
|
+
* table Transient frame buffer types are only valid while the render target is active, i.e becomes undefined when a new target is set by a subsequent call to set_render_target.
|
|
1120
|
+
* Default is all non-transient. Be aware that some hardware uses a combined depth stencil buffer and when this is the case both are considered non-transient if exclusively selected!
|
|
1121
|
+
* A buffer type defined that doesn't exist in the render target is silently ignored.
|
|
1122
|
+
*
|
|
1123
|
+
* - `graphics.BUFFER_TYPE_COLOR0_BIT`
|
|
1124
|
+
* - `graphics.BUFFER_TYPE_DEPTH_BIT`
|
|
1125
|
+
* - `graphics.BUFFER_TYPE_STENCIL_BIT`
|
|
1126
|
+
* @example
|
|
1127
|
+
* How to set a render target and draw to it and then switch back to the default render target
|
|
1128
|
+
* 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
|
|
1129
|
+
* ```ts
|
|
1130
|
+
* // How to set a render target and draw to it and then switch back to the default render target
|
|
1131
|
+
* // 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
|
|
1132
|
+
* export default defineRenderScript({
|
|
1133
|
+
* init() {
|
|
1134
|
+
* // the engine registers a texture format only when the driver supports it
|
|
1135
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
1136
|
+
* if (format === undefined) return undefined;
|
|
972
1137
|
* const color_params = {
|
|
973
|
-
* format
|
|
1138
|
+
* format,
|
|
974
1139
|
* width: render.get_window_width(),
|
|
975
1140
|
* height: render.get_window_height(),
|
|
976
1141
|
* };
|
|
@@ -981,6 +1146,7 @@ declare global {
|
|
|
981
1146
|
* },
|
|
982
1147
|
*
|
|
983
1148
|
* update(self, dt) {
|
|
1149
|
+
* if (self === undefined) return;
|
|
984
1150
|
* // set render target so all drawing is done to it
|
|
985
1151
|
* render.set_render_target(self.my_render_target, {
|
|
986
1152
|
* transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],
|
|
@@ -1015,7 +1181,7 @@ declare global {
|
|
|
1015
1181
|
* });
|
|
1016
1182
|
* ```
|
|
1017
1183
|
*/
|
|
1018
|
-
function set_render_target(render_target
|
|
1184
|
+
function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT | undefined, options: { transient?: graphics.BufferType[] }): void;
|
|
1019
1185
|
/**
|
|
1020
1186
|
* Sets the render target size for a render target created from
|
|
1021
1187
|
* either a render script, or from a render target resource.
|