@babylonjs/smart-filters 0.3.17-alpha → 0.4.1-alpha
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/dist/blocks/disableableShaderBlock.d.ts +56 -0
- package/dist/blocks/disableableShaderBlock.d.ts.map +1 -0
- package/dist/blocks/disableableShaderBlock.js +68 -0
- package/dist/blocks/disableableShaderBlock.js.map +1 -0
- package/dist/blocks/inputBlock.d.ts +2 -2
- package/dist/blocks/inputBlock.d.ts.map +1 -1
- package/dist/blocks/inputBlock.js +1 -1
- package/dist/blocks/inputBlock.js.map +1 -1
- package/dist/blocks/outputBlock.d.ts.map +1 -1
- package/dist/blocks/outputBlock.js +3 -2
- package/dist/blocks/outputBlock.js.map +1 -1
- package/dist/blocks/outputBlock.shader.d.ts.map +1 -1
- package/dist/blocks/outputBlock.shader.js +2 -5
- package/dist/blocks/outputBlock.shader.js.map +1 -1
- package/dist/blocks/shaderBlock.d.ts +4 -4
- package/dist/blocks/shaderBlock.d.ts.map +1 -1
- package/dist/blocks/shaderBlock.js +2 -2
- package/dist/blocks/shaderBlock.js.map +1 -1
- package/dist/editorUtils/editableInPropertyPage.d.ts +76 -0
- package/dist/editorUtils/editableInPropertyPage.d.ts.map +1 -0
- package/dist/editorUtils/editableInPropertyPage.js +41 -0
- package/dist/editorUtils/editableInPropertyPage.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/optimization/optimizedShaderBlock.d.ts +5 -5
- package/dist/optimization/optimizedShaderBlock.d.ts.map +1 -1
- package/dist/optimization/optimizedShaderBlock.js +2 -2
- package/dist/optimization/optimizedShaderBlock.js.map +1 -1
- package/dist/optimization/smartFilterOptimizer.d.ts +10 -0
- package/dist/optimization/smartFilterOptimizer.d.ts.map +1 -1
- package/dist/optimization/smartFilterOptimizer.js +30 -3
- package/dist/optimization/smartFilterOptimizer.js.map +1 -1
- package/dist/runtime/shaderRuntime.d.ts +5 -4
- package/dist/runtime/shaderRuntime.d.ts.map +1 -1
- package/dist/runtime/shaderRuntime.js +4 -4
- package/dist/runtime/shaderRuntime.js.map +1 -1
- package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
- package/dist/utils/buildTools/shaderConverter.js +7 -10
- package/dist/utils/buildTools/shaderConverter.js.map +1 -1
- package/dist/utils/shaderCodeUtils.d.ts +6 -5
- package/dist/utils/shaderCodeUtils.d.ts.map +1 -1
- package/dist/utils/shaderCodeUtils.js +19 -12
- package/dist/utils/shaderCodeUtils.js.map +1 -1
- package/package.json +1 -1
- package/src/blocks/disableableShaderBlock.ts +100 -0
- package/src/blocks/inputBlock.ts +3 -3
- package/src/blocks/outputBlock.shader.ts +2 -5
- package/src/blocks/outputBlock.ts +3 -2
- package/src/blocks/shaderBlock.ts +4 -4
- package/src/editorUtils/editableInPropertyPage.ts +101 -0
- package/src/index.ts +6 -4
- package/src/optimization/optimizedShaderBlock.ts +7 -7
- package/src/optimization/smartFilterOptimizer.ts +43 -5
- package/src/runtime/shaderRuntime.ts +8 -7
- package/src/utils/buildTools/shaderConverter.ts +8 -14
- package/src/utils/shaderCodeUtils.ts +29 -16
- package/dist/blocks/disableableBlock.d.ts +0 -30
- package/dist/blocks/disableableBlock.d.ts.map +0 -1
- package/dist/blocks/disableableBlock.js +0 -22
- package/dist/blocks/disableableBlock.js.map +0 -1
- package/src/blocks/disableableBlock.ts +0 -40
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { SmartFilter } from "../smartFilter.js";
|
|
2
|
+
import type { ConnectionPoint } from "../connection/connectionPoint.js";
|
|
3
|
+
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
|
+
import { ShaderBlock } from "./shaderBlock.js";
|
|
5
|
+
/**
|
|
6
|
+
* The interface that describes the disableable block.
|
|
7
|
+
*/
|
|
8
|
+
export interface IDisableableBlock {
|
|
9
|
+
/**
|
|
10
|
+
* The disabled connection point of the block.
|
|
11
|
+
*/
|
|
12
|
+
disabled: ConnectionPoint<ConnectionPointType.Boolean>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The strategy to use for making a block disableable.
|
|
16
|
+
*/
|
|
17
|
+
export declare enum BlockDisableStrategy {
|
|
18
|
+
/**
|
|
19
|
+
* The shader code is responsible for defining and consulting a uniform named disabled
|
|
20
|
+
* and no-oping (returning texture2D(mainInputTexture, vUV)) if the value is true.
|
|
21
|
+
*/
|
|
22
|
+
Manual = 0,
|
|
23
|
+
/**
|
|
24
|
+
* The Smart Filter system will automatically add code to sample the mainInputTexture and return immediately if disabled,
|
|
25
|
+
* and otherwise use the value within the block's shader code. If you need to modify UVs before sampling the default input texture,
|
|
26
|
+
* you'll need to use the Manual strategy instead.
|
|
27
|
+
*/
|
|
28
|
+
AutoSample = 1
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A ShaderBlock that can be disabled. The optimizer can optionally remove disabled blocks from the graph,
|
|
32
|
+
* or they can be controlled by the disabled connection point at runtime. If disabled, they pass the
|
|
33
|
+
* mainInputTexture through to the output connection point.
|
|
34
|
+
*/
|
|
35
|
+
export declare abstract class DisableableShaderBlock extends ShaderBlock implements IDisableableBlock {
|
|
36
|
+
/**
|
|
37
|
+
* The disabled connection point of the block.
|
|
38
|
+
*/
|
|
39
|
+
readonly disabled: import("../connection/connectionPointWithDefault.js").ConnectionPointWithDefault<ConnectionPointType.Boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* The strategy to use for making this block disableable.
|
|
42
|
+
*/
|
|
43
|
+
readonly blockDisableStrategy: BlockDisableStrategy;
|
|
44
|
+
private static _HasModifiedShaderCode;
|
|
45
|
+
private get _hasModifiedShaderCode();
|
|
46
|
+
private set _hasModifiedShaderCode(value);
|
|
47
|
+
/**
|
|
48
|
+
* Instantiates a new block.
|
|
49
|
+
* @param smartFilter - Defines the smart filter the block belongs to
|
|
50
|
+
* @param name - Defines the name of the block
|
|
51
|
+
* @param disableOptimization - Defines if the block should not be optimized (default: false)
|
|
52
|
+
* @param disableStrategy - Defines the strategy to use for making this block disableable (default: BlockDisableStrategy.AutoSample)
|
|
53
|
+
*/
|
|
54
|
+
constructor(smartFilter: SmartFilter, name: string, disableOptimization?: boolean, disableStrategy?: BlockDisableStrategy);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=disableableShaderBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disableableShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/disableableShaderBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B;;;OAGG;IACH,MAAM,IAAI;IAEV;;;;OAIG;IACH,UAAU,IAAI;CACjB;AAED;;;;GAIG;AACH,8BAAsB,sBAAuB,SAAQ,WAAY,YAAW,iBAAiB;IACzF;;OAEG;IACH,SAAgB,QAAQ,gHAItB;IAEF;;OAEG;IACH,SAAgB,oBAAoB,EAAE,oBAAoB,CAAC;IAQ3D,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAS;IAC9C,OAAO,KAAK,sBAAsB,GAEjC;IACD,OAAO,KAAK,sBAAsB,QAEjC;IAED;;;;;;OAMG;gBAEC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,mBAAmB,UAAQ,EAC3B,eAAe,uBAAkC;CAkBxD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
2
|
+
import { createStrongRef } from "../runtime/strongRef.js";
|
|
3
|
+
import { ShaderBlock } from "./shaderBlock.js";
|
|
4
|
+
import { injectAutoSampleDisableCode } from "../utils/shaderCodeUtils.js";
|
|
5
|
+
/**
|
|
6
|
+
* The strategy to use for making a block disableable.
|
|
7
|
+
*/
|
|
8
|
+
export var BlockDisableStrategy;
|
|
9
|
+
(function (BlockDisableStrategy) {
|
|
10
|
+
/**
|
|
11
|
+
* The shader code is responsible for defining and consulting a uniform named disabled
|
|
12
|
+
* and no-oping (returning texture2D(mainInputTexture, vUV)) if the value is true.
|
|
13
|
+
*/
|
|
14
|
+
BlockDisableStrategy[BlockDisableStrategy["Manual"] = 0] = "Manual";
|
|
15
|
+
/**
|
|
16
|
+
* The Smart Filter system will automatically add code to sample the mainInputTexture and return immediately if disabled,
|
|
17
|
+
* and otherwise use the value within the block's shader code. If you need to modify UVs before sampling the default input texture,
|
|
18
|
+
* you'll need to use the Manual strategy instead.
|
|
19
|
+
*/
|
|
20
|
+
BlockDisableStrategy[BlockDisableStrategy["AutoSample"] = 1] = "AutoSample";
|
|
21
|
+
})(BlockDisableStrategy || (BlockDisableStrategy = {}));
|
|
22
|
+
/**
|
|
23
|
+
* A ShaderBlock that can be disabled. The optimizer can optionally remove disabled blocks from the graph,
|
|
24
|
+
* or they can be controlled by the disabled connection point at runtime. If disabled, they pass the
|
|
25
|
+
* mainInputTexture through to the output connection point.
|
|
26
|
+
*/
|
|
27
|
+
export class DisableableShaderBlock extends ShaderBlock {
|
|
28
|
+
get _hasModifiedShaderCode() {
|
|
29
|
+
return this.constructor._HasModifiedShaderCode;
|
|
30
|
+
}
|
|
31
|
+
set _hasModifiedShaderCode(value) {
|
|
32
|
+
this.constructor._HasModifiedShaderCode = value;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Instantiates a new block.
|
|
36
|
+
* @param smartFilter - Defines the smart filter the block belongs to
|
|
37
|
+
* @param name - Defines the name of the block
|
|
38
|
+
* @param disableOptimization - Defines if the block should not be optimized (default: false)
|
|
39
|
+
* @param disableStrategy - Defines the strategy to use for making this block disableable (default: BlockDisableStrategy.AutoSample)
|
|
40
|
+
*/
|
|
41
|
+
constructor(smartFilter, name, disableOptimization = false, disableStrategy = BlockDisableStrategy.AutoSample) {
|
|
42
|
+
super(smartFilter, name, disableOptimization);
|
|
43
|
+
/**
|
|
44
|
+
* The disabled connection point of the block.
|
|
45
|
+
*/
|
|
46
|
+
this.disabled = this._registerOptionalInput("disabled", ConnectionPointType.Boolean, createStrongRef(false));
|
|
47
|
+
this.blockDisableStrategy = disableStrategy;
|
|
48
|
+
// If we haven't already modified the shader code for this block type, do so now
|
|
49
|
+
if (!this._hasModifiedShaderCode) {
|
|
50
|
+
this._hasModifiedShaderCode = true;
|
|
51
|
+
// Apply the disable strategy
|
|
52
|
+
const shaderProgram = this.getShaderProgram();
|
|
53
|
+
switch (this.blockDisableStrategy) {
|
|
54
|
+
case BlockDisableStrategy.AutoSample:
|
|
55
|
+
injectAutoSampleDisableCode(shaderProgram);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// The shader code is a static per block type. When an instance of a block is created, we may need to alter
|
|
62
|
+
// that code based on the block's disable strategy. We only want to do this once per block type, or we could
|
|
63
|
+
// incorrectly modify the shader code multiple times (once per block instance). Here we use a static boolean
|
|
64
|
+
// which will be per block type to track if we've already modified the shader code for this block type.
|
|
65
|
+
// This is more memory efficient than the alternative of making a copy of the shader code for each block instance
|
|
66
|
+
// and modifying each copy.
|
|
67
|
+
DisableableShaderBlock._HasModifiedShaderCode = false;
|
|
68
|
+
//# sourceMappingURL=disableableShaderBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disableableShaderBlock.js","sourceRoot":"","sources":["../../src/blocks/disableableShaderBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAY1E;;GAEG;AACH,MAAM,CAAN,IAAY,oBAaX;AAbD,WAAY,oBAAoB;IAC5B;;;OAGG;IACH,mEAAU,CAAA;IAEV;;;;OAIG;IACH,2EAAc,CAAA;AAClB,CAAC,EAbW,oBAAoB,KAApB,oBAAoB,QAa/B;AAED;;;;GAIG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;IAsB5D,IAAY,sBAAsB;QAC9B,OAAQ,IAAI,CAAC,WAA6C,CAAC,sBAAsB,CAAC;IACtF,CAAC;IACD,IAAY,sBAAsB,CAAC,KAAc;QAC5C,IAAI,CAAC,WAA6C,CAAC,sBAAsB,GAAG,KAAK,CAAC;IACvF,CAAC;IAED;;;;;;OAMG;IACH,YACI,WAAwB,EACxB,IAAY,EACZ,mBAAmB,GAAG,KAAK,EAC3B,eAAe,GAAG,oBAAoB,CAAC,UAAU;QAEjD,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAzClD;;WAEG;QACa,aAAQ,GAAG,IAAI,CAAC,sBAAsB,CAClD,UAAU,EACV,mBAAmB,CAAC,OAAO,EAC3B,eAAe,CAAC,KAAK,CAAC,CACzB,CAAC;QAmCE,IAAI,CAAC,oBAAoB,GAAG,eAAe,CAAC;QAE5C,gFAAgF;QAChF,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAEnC,6BAA6B;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAChC,KAAK,oBAAoB,CAAC,UAAU;oBAChC,2BAA2B,CAAC,aAAa,CAAC,CAAC;oBAC3C,MAAM;YACd,CAAC;QACL,CAAC;IACL,CAAC;;AA1CD,2GAA2G;AAC3G,4GAA4G;AAC5G,4GAA4G;AAC5G,uGAAuG;AACvG,iHAAiH;AACjH,2BAA2B;AACZ,6CAAsB,GAAG,KAAK,AAAR,CAAS"}
|
|
@@ -2,7 +2,7 @@ import type { SmartFilter } from "../smartFilter";
|
|
|
2
2
|
import type { ConnectionPointValue } from "../connection/connectionPointType";
|
|
3
3
|
import type { RuntimeData } from "../connection/connectionPoint";
|
|
4
4
|
import type { ConnectionPointWithDefault } from "../connection/connectionPointWithDefault";
|
|
5
|
-
import type {
|
|
5
|
+
import type { DisableableShaderBlock } from "./disableableShaderBlock";
|
|
6
6
|
import { BaseBlock } from "../blocks/baseBlock.js";
|
|
7
7
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
8
8
|
import type { Nullable } from "@babylonjs/core/types";
|
|
@@ -17,7 +17,7 @@ export declare function isTextureInputBlock(block: BaseBlock): block is InputBlo
|
|
|
17
17
|
* @param block - The block to check
|
|
18
18
|
* @returns true if the block is a disableable block, otherwise false
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function isDisableableShaderBlock(block: BaseBlock): block is DisableableShaderBlock;
|
|
21
21
|
/**
|
|
22
22
|
* This base class exists to provide a type that the serializer can use to represent
|
|
23
23
|
* any InputBlock without knowing the exact type it is.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"inputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export function isTextureInputBlock(block) {
|
|
|
22
22
|
* @param block - The block to check
|
|
23
23
|
* @returns true if the block is a disableable block, otherwise false
|
|
24
24
|
*/
|
|
25
|
-
export function
|
|
25
|
+
export function isDisableableShaderBlock(block) {
|
|
26
26
|
return block.disabled !== undefined;
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,aAAa,CAClB,KAA+C;IAE/C,OAAO,KAAK,IAAK,KAA0C,CAAC,KAAK,KAAK,SAAS,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAChD,OAAQ,KAAiD,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,aAAa,CAClB,KAA+C;IAE/C,OAAO,KAAK,IAAK,KAA0C,CAAC,KAAK,KAAK,SAAS,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAChD,OAAQ,KAAiD,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAgB;IACrD,OAAQ,KAAgC,CAAC,QAAQ,KAAK,SAAS,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,cAAe,SAAQ,SAAS;;AAClD;;GAEG;AACoB,wBAAS,GAAG,YAAY,CAAC;AA+DpD;;;;;;GAMG;AACH,MAAM,OAAO,UAA0C,SAAQ,cAAc;IAgBzE;;OAEG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAqB;QACzC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,YACI,WAAwB,EACxB,IAAY,EACZ,IAAO,EACP,YAAsD;QAEtD,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAjC7B;;WAEG;QACI,eAAU,GAAsC,IAAI,CAAC;QA+BxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,0BAA0B,CACzC,QAAQ,EACR,IAAI,EACJ,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAC7E,CAAC;QAEF,4FAA4F;QAC5F,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMvF;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;OAGG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;;OAGG;IACI,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAQ;IAEjE;;;OAGG;gBACS,WAAW,EAAE,WAAW;IAIpC;;OAEG;IACa,iBAAiB,IAAI,IAAI;IAQzC;;OAEG;IACa,oBAAoB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"outputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAMvF;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;OAGG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;;OAGG;IACI,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAQ;IAEjE;;;OAGG;gBACS,WAAW,EAAE,WAAW;IAIpC;;OAEG;IACa,iBAAiB,IAAI,IAAI;IAQzC;;OAEG;IACa,oBAAoB,IAAI,IAAI;IAS5C;;;;OAIG;IACa,qCAAqC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO,GACrB,IAAI;CAmBV"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
2
2
|
import { BaseBlock } from "./baseBlock.js";
|
|
3
|
-
import {
|
|
3
|
+
import { ShaderBinding, ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
4
4
|
import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
|
|
5
5
|
import { shaderProgram, uniforms } from "./outputBlock.shader.js";
|
|
6
6
|
/**
|
|
@@ -46,6 +46,7 @@ export class OutputBlock extends BaseBlock {
|
|
|
46
46
|
block.propagateRuntimeData();
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
this._confirmRuntimeDataSupplied(this.input);
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
52
|
* Generates the commands needed to execute the block at runtime and gathers promises for initialization work
|
|
@@ -73,7 +74,7 @@ OutputBlock.ClassName = "OutputBlock";
|
|
|
73
74
|
/**
|
|
74
75
|
* Shader binding to use when the OutputBlock is directly connected to a texture InputBlock.
|
|
75
76
|
*/
|
|
76
|
-
class OutputShaderBinding extends
|
|
77
|
+
class OutputShaderBinding extends ShaderBinding {
|
|
77
78
|
/**
|
|
78
79
|
* Creates a new shader binding instance.
|
|
79
80
|
* @param inputTexture - defines the input texture to copy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"outputBlock.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAkBtC;;;OAGG;IACH,YAAY,WAAwB;QAChC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAjBjC;;;WAGG;QACa,UAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElF;;;WAGG;QACI,wBAAmB,GAAkC,IAAI,CAAC;IAQjE,CAAC;IAED;;OAEG;IACa,iBAAiB;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAgB,EAAE,UAAkB,EAAE,EAAE;YACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACa,oBAAoB;QAChC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAgB,EAAE,UAAkB,EAAE,EAAE;YACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACjC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACa,qCAAqC,CACjD,kBAAsC,EACtC,WAAoB;;QAEpB,2FAA2F;QAC3F,iEAAiE;QACjE,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,UAAU,CAAC,OAAO,KAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAE3C,MAAM,kBAAkB,GAAG,IAAI,aAAa,CACxC,OAAO,CAAC,cAAc,EACtB,aAAa,EACb,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAClD,CAAC;YACF,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAE7C,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAExF,KAAK,CAAC,qCAAqC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;;AA1ED;;GAEG;AACoB,qBAAS,GAAG,aAAa,AAAhB,CAAiB;AA0ErD;;GAEG;AACH,MAAM,mBAAoB,SAAQ,aAAa;IAG3C;;;OAGG;IACH,YAAY,YAAsD;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACa,IAAI,CAAC,MAAc;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.shader.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"outputBlock.shader.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAmB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
|
|
@@ -5,17 +5,14 @@ export const shaderProgram = {
|
|
|
5
5
|
vertex: undefined,
|
|
6
6
|
fragment: {
|
|
7
7
|
uniform: `
|
|
8
|
-
uniform sampler2D _input_; // main
|
|
9
|
-
uniform bool _disabled_;`,
|
|
8
|
+
uniform sampler2D _input_; // main`,
|
|
10
9
|
mainInputTexture: "_input_",
|
|
11
10
|
mainFunctionName: "_copy_",
|
|
12
11
|
functions: [
|
|
13
12
|
{
|
|
14
13
|
name: "_copy_",
|
|
15
14
|
code: `
|
|
16
|
-
vec4 _copy_(vec2 vUV) {
|
|
17
|
-
if (_disabled_) return texture2D(_input_, vUV);
|
|
18
|
-
// main
|
|
15
|
+
vec4 _copy_(vec2 vUV) {
|
|
19
16
|
return texture2D(_input_, vUV);
|
|
20
17
|
}
|
|
21
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.shader.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE;QACN,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"outputBlock.shader.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE;QACN,OAAO,EAAE;+CAC8B;QACvC,gBAAgB,EAAE,SAAS;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,SAAS,EAAE;YACP;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;;;;;qBAKD;aACR;SACJ;KACJ;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,KAAK,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "@babylonjs/core/Engines/Extensions/engine.renderTarget.js";
|
|
2
2
|
import type { InitializationData, SmartFilter } from "../smartFilter";
|
|
3
3
|
import type { ShaderProgram } from "../utils/shaderCodeUtils";
|
|
4
|
-
import type {
|
|
4
|
+
import type { ShaderBinding } from "../runtime/shaderRuntime";
|
|
5
5
|
import type { ConnectionPoint } from "../connection/connectionPoint";
|
|
6
6
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
7
|
-
import {
|
|
7
|
+
import { BaseBlock } from "./baseBlock.js";
|
|
8
8
|
/**
|
|
9
9
|
* This is the base class for all shader blocks.
|
|
10
10
|
*
|
|
@@ -12,7 +12,7 @@ import { DisableableBlock } from "./disableableBlock.js";
|
|
|
12
12
|
*
|
|
13
13
|
* The only required function to implement is the bind function.
|
|
14
14
|
*/
|
|
15
|
-
export declare abstract class ShaderBlock extends
|
|
15
|
+
export declare abstract class ShaderBlock extends BaseBlock {
|
|
16
16
|
/**
|
|
17
17
|
* The class name of the block.
|
|
18
18
|
*/
|
|
@@ -22,7 +22,7 @@ export declare abstract class ShaderBlock extends DisableableBlock {
|
|
|
22
22
|
* It should throw an error if required inputs are missing.
|
|
23
23
|
* @returns The class instance that binds the data to the effect
|
|
24
24
|
*/
|
|
25
|
-
abstract getShaderBinding():
|
|
25
|
+
abstract getShaderBinding(): ShaderBinding;
|
|
26
26
|
/**
|
|
27
27
|
* The shader program (vertex and fragment code) to use to render the block
|
|
28
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,2DAA2D,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"shaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,2DAA2D,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,SAAS;IAC/C;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;;OAIG;aACa,gBAAgB,IAAI,aAAa;IAEjD;;OAEG;IACH,OAAc,UAAU,EAAE,aAAa,CAAC;IAExC;;OAEG;IACH,SAAgB,MAAM,+CAA+D;IAErF,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC;;OAEG;IACH,IAAW,YAAY,IAOQ,MAAM,CALpC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAEpC;IAED;;;OAGG;IACa,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI;IASzG,SAAS,CAAC,iCAAiC,IAAI,eAAe;IAc9D;;;;;OAKG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAI/E;;;OAGG;IACI,gBAAgB;IAIvB;;;;OAIG;IACa,qCAAqC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO,GACrB,IAAI;CAgCV"}
|
|
@@ -2,9 +2,9 @@ import "@babylonjs/core/Engines/Extensions/engine.renderTarget.js";
|
|
|
2
2
|
import { ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
3
3
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
4
|
import { createCommand } from "../command/command.js";
|
|
5
|
-
import { DisableableBlock } from "./disableableBlock.js";
|
|
6
5
|
import { undecorateSymbol } from "../utils/shaderCodeUtils.js";
|
|
7
6
|
import { getRenderTargetWrapper, registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
|
|
7
|
+
import { BaseBlock } from "./baseBlock.js";
|
|
8
8
|
/**
|
|
9
9
|
* This is the base class for all shader blocks.
|
|
10
10
|
*
|
|
@@ -12,7 +12,7 @@ import { getRenderTargetWrapper, registerFinalRenderCommand } from "../utils/ren
|
|
|
12
12
|
*
|
|
13
13
|
* The only required function to implement is the bind function.
|
|
14
14
|
*/
|
|
15
|
-
export class ShaderBlock extends
|
|
15
|
+
export class ShaderBlock extends BaseBlock {
|
|
16
16
|
/**
|
|
17
17
|
* Gets the texture ratio of the output texture.
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,2DAA2D,CAAC;AAMnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Observable } from "@babylonjs/core/Misc/observable";
|
|
2
|
+
/**
|
|
3
|
+
* Enum defining the type of properties that can be edited in the property pages in the node editor
|
|
4
|
+
*/
|
|
5
|
+
export declare enum PropertyTypeForEdition {
|
|
6
|
+
/** property is a boolean */
|
|
7
|
+
Boolean = 0,
|
|
8
|
+
/** property is a float */
|
|
9
|
+
Float = 1,
|
|
10
|
+
/** property is a int */
|
|
11
|
+
Int = 2,
|
|
12
|
+
/** property is a Vector2 */
|
|
13
|
+
Vector2 = 3,
|
|
14
|
+
/** property is a list of values */
|
|
15
|
+
List = 4
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Interface that defines an option in a variable of type list
|
|
19
|
+
*/
|
|
20
|
+
export interface IEditablePropertyListOption {
|
|
21
|
+
/** label of the option */
|
|
22
|
+
label: string;
|
|
23
|
+
/** value of the option */
|
|
24
|
+
value: number | string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Interface that defines the options available for an editable property
|
|
28
|
+
*/
|
|
29
|
+
export interface IEditablePropertyOption {
|
|
30
|
+
/** min value */
|
|
31
|
+
min?: number;
|
|
32
|
+
/** max value */
|
|
33
|
+
max?: number;
|
|
34
|
+
/** notifiers: indicates which actions to take when the property is changed */
|
|
35
|
+
notifiers?: {
|
|
36
|
+
/** the entity should be rebuilt */
|
|
37
|
+
rebuild?: boolean;
|
|
38
|
+
/** the preview should be updated */
|
|
39
|
+
update?: boolean;
|
|
40
|
+
/** the onPreviewCommandActivated observer of the preview manager should be triggered */
|
|
41
|
+
activatePreviewCommand?: boolean;
|
|
42
|
+
/** a callback to trigger */
|
|
43
|
+
callback?: () => boolean | undefined | void;
|
|
44
|
+
/** a callback to validate the property. Returns true if the property is ok, else false. If false, the rebuild/update/callback events won't be called */
|
|
45
|
+
onValidation?: (block: any, propertyName: string) => boolean;
|
|
46
|
+
};
|
|
47
|
+
/** a list of the options for a property of type list */
|
|
48
|
+
options?: IEditablePropertyListOption[] | Observable<IEditablePropertyListOption[]>;
|
|
49
|
+
/** whether the options' values should be treated as strings */
|
|
50
|
+
valuesAreStrings?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Interface that describes an editable property
|
|
54
|
+
*/
|
|
55
|
+
export interface IPropertyDescriptionForEdition {
|
|
56
|
+
/** name of the property */
|
|
57
|
+
propertyName: string;
|
|
58
|
+
/** display name of the property */
|
|
59
|
+
displayName: string;
|
|
60
|
+
/** type of the property */
|
|
61
|
+
type: PropertyTypeForEdition;
|
|
62
|
+
/** group of the property - all properties with the same group value will be displayed in a specific section */
|
|
63
|
+
groupName: string;
|
|
64
|
+
/** options for the property */
|
|
65
|
+
options: IEditablePropertyOption;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Decorator that flags a property in a node block as being editable
|
|
69
|
+
* @param displayName - the display name of the property
|
|
70
|
+
* @param propertyType - the type of the property
|
|
71
|
+
* @param groupName - the group name of the property
|
|
72
|
+
* @param options - the options of the property
|
|
73
|
+
* @returns the decorator
|
|
74
|
+
*/
|
|
75
|
+
export declare function editableInPropertyPage(displayName: string, propertyType?: PropertyTypeForEdition, groupName?: string, options?: IEditablePropertyOption): (target: any, propertyKey: string) => void;
|
|
76
|
+
//# sourceMappingURL=editableInPropertyPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editableInPropertyPage.d.ts","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;GAEG;AACH,oBAAY,sBAAsB;IAC9B,4BAA4B;IAC5B,OAAO,IAAA;IACP,0BAA0B;IAC1B,KAAK,IAAA;IACL,wBAAwB;IACxB,GAAG,IAAA;IACH,4BAA4B;IAC5B,OAAO,IAAA;IACP,mCAAmC;IACnC,IAAI,IAAA;CACP;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,SAAS,CAAC,EAAE;QACR,mCAAmC;QACnC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,oCAAoC;QACpC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,wFAAwF;QACxF,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;QAC5C,wJAAwJ;QACxJ,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;KAChE,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,2BAA2B,EAAE,GAAG,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACpF,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC3C,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,+GAA+G;IAC/G,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,OAAO,EAAE,uBAAuB,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,sBAAuD,EACrE,SAAS,GAAE,MAAqB,EAChC,OAAO,CAAC,EAAE,uBAAuB,YAEjB,GAAG,eAAe,MAAM,UAe3C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum defining the type of properties that can be edited in the property pages in the node editor
|
|
3
|
+
*/
|
|
4
|
+
export var PropertyTypeForEdition;
|
|
5
|
+
(function (PropertyTypeForEdition) {
|
|
6
|
+
/** property is a boolean */
|
|
7
|
+
PropertyTypeForEdition[PropertyTypeForEdition["Boolean"] = 0] = "Boolean";
|
|
8
|
+
/** property is a float */
|
|
9
|
+
PropertyTypeForEdition[PropertyTypeForEdition["Float"] = 1] = "Float";
|
|
10
|
+
/** property is a int */
|
|
11
|
+
PropertyTypeForEdition[PropertyTypeForEdition["Int"] = 2] = "Int";
|
|
12
|
+
/** property is a Vector2 */
|
|
13
|
+
PropertyTypeForEdition[PropertyTypeForEdition["Vector2"] = 3] = "Vector2";
|
|
14
|
+
/** property is a list of values */
|
|
15
|
+
PropertyTypeForEdition[PropertyTypeForEdition["List"] = 4] = "List";
|
|
16
|
+
})(PropertyTypeForEdition || (PropertyTypeForEdition = {}));
|
|
17
|
+
/**
|
|
18
|
+
* Decorator that flags a property in a node block as being editable
|
|
19
|
+
* @param displayName - the display name of the property
|
|
20
|
+
* @param propertyType - the type of the property
|
|
21
|
+
* @param groupName - the group name of the property
|
|
22
|
+
* @param options - the options of the property
|
|
23
|
+
* @returns the decorator
|
|
24
|
+
*/
|
|
25
|
+
export function editableInPropertyPage(displayName, propertyType = PropertyTypeForEdition.Boolean, groupName = "PROPERTIES", options) {
|
|
26
|
+
return (target, propertyKey) => {
|
|
27
|
+
let propStore = target._propStore;
|
|
28
|
+
if (!propStore) {
|
|
29
|
+
propStore = [];
|
|
30
|
+
target._propStore = propStore;
|
|
31
|
+
}
|
|
32
|
+
propStore.push({
|
|
33
|
+
propertyName: propertyKey,
|
|
34
|
+
displayName: displayName,
|
|
35
|
+
type: propertyType,
|
|
36
|
+
groupName: groupName,
|
|
37
|
+
options: options !== null && options !== void 0 ? options : {},
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=editableInPropertyPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editableInPropertyPage.js","sourceRoot":"","sources":["../../src/editorUtils/editableInPropertyPage.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAN,IAAY,sBAWX;AAXD,WAAY,sBAAsB;IAC9B,4BAA4B;IAC5B,yEAAO,CAAA;IACP,0BAA0B;IAC1B,qEAAK,CAAA;IACL,wBAAwB;IACxB,iEAAG,CAAA;IACH,4BAA4B;IAC5B,yEAAO,CAAA;IACP,mCAAmC;IACnC,mEAAI,CAAA;AACR,CAAC,EAXW,sBAAsB,KAAtB,sBAAsB,QAWjC;AAuDD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAClC,WAAmB,EACnB,eAAuC,sBAAsB,CAAC,OAAO,EACrE,YAAoB,YAAY,EAChC,OAAiC;IAEjC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QACxC,IAAI,SAAS,GAAqC,MAAM,CAAC,UAAU,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,SAAS,CAAC,IAAI,CAAC;YACX,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;SACzB,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,15 +14,17 @@ export { BaseBlock } from "./blocks/baseBlock.js";
|
|
|
14
14
|
export { InputBlock, type InputBlockEditorData } from "./blocks/inputBlock.js";
|
|
15
15
|
export { type AnyInputBlock } from "./blocks/inputBlock.js";
|
|
16
16
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
17
|
+
export { DisableableShaderBlock, BlockDisableStrategy as DisableStrategy } from "./blocks/disableableShaderBlock.js";
|
|
17
18
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
18
|
-
export { ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
19
|
-
export { type ShaderProgram
|
|
20
|
-
export { type IDisableableBlock } from "./blocks/
|
|
19
|
+
export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
20
|
+
export { type ShaderProgram } from "./utils/shaderCodeUtils.js";
|
|
21
|
+
export { type IDisableableBlock } from "./blocks/disableableShaderBlock.js";
|
|
21
22
|
export { type SmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
|
|
22
23
|
export { InternalSmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
|
|
23
24
|
export { RenderTargetGenerator } from "./runtime/renderTargetGenerator.js";
|
|
24
|
-
export { SmartFilter } from "./smartFilter.js";
|
|
25
|
+
export { SmartFilter, type InitializationData } from "./smartFilter.js";
|
|
25
26
|
export { SmartFilterOptimizer } from "./optimization/smartFilterOptimizer.js";
|
|
26
27
|
export * from "./utils/textureLoaders.js";
|
|
27
28
|
export * from "./serialization/index.js";
|
|
29
|
+
export * from "./editorUtils/editableInPropertyPage.js";
|
|
28
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,10 +14,11 @@ export { BaseBlock } from "./blocks/baseBlock.js";
|
|
|
14
14
|
export { InputBlock } from "./blocks/inputBlock.js";
|
|
15
15
|
export {} from "./blocks/inputBlock.js";
|
|
16
16
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
17
|
+
export { DisableableShaderBlock, BlockDisableStrategy as DisableStrategy } from "./blocks/disableableShaderBlock.js";
|
|
17
18
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
18
|
-
export { ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
19
|
-
export {
|
|
20
|
-
export {} from "./blocks/
|
|
19
|
+
export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
20
|
+
export {} from "./utils/shaderCodeUtils.js";
|
|
21
|
+
export {} from "./blocks/disableableShaderBlock.js";
|
|
21
22
|
export {} from "./runtime/smartFilterRuntime.js";
|
|
22
23
|
export { InternalSmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
|
|
23
24
|
export { RenderTargetGenerator } from "./runtime/renderTargetGenerator.js";
|
|
@@ -25,4 +26,5 @@ export { SmartFilter } from "./smartFilter.js";
|
|
|
25
26
|
export { SmartFilterOptimizer } from "./optimization/smartFilterOptimizer.js";
|
|
26
27
|
export * from "./utils/textureLoaders.js";
|
|
27
28
|
export * from "./serialization/index.js";
|
|
29
|
+
export * from "./editorUtils/editableInPropertyPage.js";
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAA6B,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAoB,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAA6B,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAA6B,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAoB,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAA6B,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAsB,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAA0B,MAAM,oCAAoC,CAAC;AAE5E,OAAO,EAA2B,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC"}
|
|
@@ -3,13 +3,13 @@ import type { SmartFilter } from "../smartFilter";
|
|
|
3
3
|
import type { ShaderProgram } from "../utils/shaderCodeUtils";
|
|
4
4
|
import type { RuntimeData } from "../connection/connectionPoint";
|
|
5
5
|
import { ShaderBlock } from "../blocks/shaderBlock.js";
|
|
6
|
-
import {
|
|
6
|
+
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
7
7
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
8
8
|
/**
|
|
9
9
|
* The shader bindings for the OptimizedShader block.
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
export declare class OptimizedShaderBinding extends
|
|
12
|
+
export declare class OptimizedShaderBinding extends ShaderBinding {
|
|
13
13
|
private _shaderBindings;
|
|
14
14
|
private _inputTextures;
|
|
15
15
|
/**
|
|
@@ -17,7 +17,7 @@ export declare class OptimizedShaderBinding extends Binding {
|
|
|
17
17
|
* @param shaderBindings - The list of shader bindings to process
|
|
18
18
|
* @param inputTextures - The list of input textures to bind
|
|
19
19
|
*/
|
|
20
|
-
constructor(shaderBindings:
|
|
20
|
+
constructor(shaderBindings: ShaderBinding[], inputTextures: {
|
|
21
21
|
[name: string]: RuntimeData<ConnectionPointType.Texture>;
|
|
22
22
|
});
|
|
23
23
|
/**
|
|
@@ -65,11 +65,11 @@ export declare class OptimizedShaderBlock extends ShaderBlock {
|
|
|
65
65
|
* Sets the list of shader bindings to use to render the block.
|
|
66
66
|
* @param shaderBindings - The list of shader bindings to use to render the block
|
|
67
67
|
*/
|
|
68
|
-
setShaderBindings(shaderBindings:
|
|
68
|
+
setShaderBindings(shaderBindings: ShaderBinding[]): void;
|
|
69
69
|
/**
|
|
70
70
|
* Get the class instance that binds all the required data to the shader (effect) when rendering.
|
|
71
71
|
* @returns The class instance that binds the data to the effect
|
|
72
72
|
*/
|
|
73
|
-
getShaderBinding():
|
|
73
|
+
getShaderBinding(): ShaderBinding;
|
|
74
74
|
}
|
|
75
75
|
//# sourceMappingURL=optimizedShaderBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizedShaderBlock.d.ts","sourceRoot":"","sources":["../../src/optimization/optimizedShaderBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"optimizedShaderBlock.d.ts","sourceRoot":"","sources":["../../src/optimization/optimizedShaderBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,aAAa;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAA+D;IAErF;;;;OAIG;gBAEC,cAAc,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;KAAE;IAQ/E;;;;;OAKG;IACa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAW5E;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACjD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,cAAc,CAAgB;IAEtC;;OAEG;IACH,OAAuB,SAAS,SAA0B;IAE1D;;OAEG;IACH,IAAoB,OAAO,IAAI,OAAO,CAErC;IAED;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAOlD;;;OAGG;IACa,gBAAgB,IAAI,aAAa;IAIjD;;;OAGG;IACI,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAI3D;;;OAGG;IACI,iBAAiB,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAI/D;;;OAGG;IACI,gBAAgB,IAAI,aAAa;CAmB3C"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ShaderBlock } from "../blocks/shaderBlock.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
3
3
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
4
|
/**
|
|
5
5
|
* The shader bindings for the OptimizedShader block.
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export class OptimizedShaderBinding extends
|
|
8
|
+
export class OptimizedShaderBinding extends ShaderBinding {
|
|
9
9
|
/**
|
|
10
10
|
* Creates a new shader binding instance for the OptimizedShader block.
|
|
11
11
|
* @param shaderBindings - The list of shader bindings to process
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizedShaderBlock.js","sourceRoot":"","sources":["../../src/optimization/optimizedShaderBlock.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"optimizedShaderBlock.js","sourceRoot":"","sources":["../../src/optimization/optimizedShaderBlock.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E;;;GAGG;AACH,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAIrD;;;;OAIG;IACH,YACI,cAA+B,EAC/B,aAA2E;QAE3E,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACa,IAAI,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc;QAC9D,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1C,wEAAwE;YACxE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAQ,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAUjD;;OAEG;IACH,IAAoB,OAAO;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,YAAY,WAAwB,EAAE,IAAY;QAC9C,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QArB3B,mBAAc,GAAiE,EAAE,CAAC;QAuBtF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,SAAgB,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACa,gBAAgB;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,aAA4B;QAChD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,cAA+B;QACpD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACnB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAExB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC7C;;;mBAGG;gBACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAuD,CAAC;YAC9F,CAAC;QACL,CAAC;QAED,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACjF,CAAC;;AAtED;;GAEG;AACoB,8BAAS,GAAG,sBAAsB,AAAzB,CAA0B"}
|