@babylonjs/smart-filters 0.6.2-alpha → 0.7.0-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/aggregateBlock.d.ts +5 -3
- package/dist/blocks/aggregateBlock.d.ts.map +1 -1
- package/dist/blocks/aggregateBlock.js +23 -11
- package/dist/blocks/aggregateBlock.js.map +1 -1
- package/dist/blocks/customAggregateBlock.d.ts +31 -0
- package/dist/blocks/customAggregateBlock.d.ts.map +1 -0
- package/dist/blocks/customAggregateBlock.js +55 -0
- package/dist/blocks/customAggregateBlock.js.map +1 -0
- package/dist/blocks/customShaderBlock.d.ts +3 -2
- package/dist/blocks/customShaderBlock.d.ts.map +1 -1
- package/dist/blocks/customShaderBlock.js +46 -10
- package/dist/blocks/customShaderBlock.js.map +1 -1
- package/dist/connection/connectionPoint.js +1 -1
- package/dist/connection/connectionPoint.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/serialization/importCustomBlockDefinition.d.ts +15 -0
- package/dist/serialization/importCustomBlockDefinition.d.ts.map +1 -0
- package/dist/serialization/{importCustomShaderBlockDefinition.js → importCustomBlockDefinition.js} +25 -13
- package/dist/serialization/importCustomBlockDefinition.js.map +1 -0
- package/dist/serialization/index.d.ts +1 -0
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/index.js +1 -0
- package/dist/serialization/index.js.map +1 -1
- package/dist/serialization/serializedBlockDefinition.d.ts +9 -4
- package/dist/serialization/serializedBlockDefinition.d.ts.map +1 -1
- package/dist/serialization/serializedShaderBlockDefinition.d.ts +7 -0
- package/dist/serialization/serializedShaderBlockDefinition.d.ts.map +1 -0
- package/dist/serialization/serializedShaderBlockDefinition.js +2 -0
- package/dist/serialization/serializedShaderBlockDefinition.js.map +1 -0
- package/dist/serialization/smartFilterDeserializer.d.ts +1 -1
- package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -1
- package/dist/serialization/smartFilterDeserializer.js +1 -1
- package/dist/serialization/smartFilterDeserializer.js.map +1 -1
- package/dist/serialization/smartFilterSerializer.d.ts.map +1 -1
- package/dist/serialization/smartFilterSerializer.js +4 -1
- package/dist/serialization/smartFilterSerializer.js.map +1 -1
- package/dist/serialization/v1/{blockSerialization.types.d.ts → shaderBlockSerialization.types.d.ts} +15 -3
- package/dist/serialization/v1/shaderBlockSerialization.types.d.ts.map +1 -0
- package/dist/serialization/v1/{blockSerialization.types.js → shaderBlockSerialization.types.js} +1 -1
- package/dist/serialization/v1/shaderBlockSerialization.types.js.map +1 -0
- package/dist/serialization/v1/smartFilterSerialization.types.d.ts +4 -1
- package/dist/serialization/v1/smartFilterSerialization.types.d.ts.map +1 -1
- package/dist/utils/buildTools/shaderConverter.d.ts +5 -0
- package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
- package/dist/utils/buildTools/shaderConverter.js.map +1 -1
- package/package.json +1 -1
- package/src/blocks/aggregateBlock.ts +27 -13
- package/src/blocks/customAggregateBlock.ts +85 -0
- package/src/blocks/customShaderBlock.ts +84 -19
- package/src/connection/connectionPoint.ts +1 -1
- package/src/index.ts +2 -1
- package/src/serialization/{importCustomShaderBlockDefinition.ts → importCustomBlockDefinition.ts} +26 -12
- package/src/serialization/index.ts +1 -0
- package/src/serialization/serializedBlockDefinition.ts +9 -4
- package/src/serialization/serializedShaderBlockDefinition.ts +7 -0
- package/src/serialization/smartFilterDeserializer.ts +3 -2
- package/src/serialization/smartFilterSerializer.ts +4 -1
- package/src/serialization/v1/{blockSerialization.types.ts → shaderBlockSerialization.types.ts} +17 -2
- package/src/serialization/v1/smartFilterSerialization.types.ts +6 -1
- package/src/utils/buildTools/shaderConverter.ts +6 -0
- package/dist/serialization/importCustomShaderBlockDefinition.d.ts +0 -11
- package/dist/serialization/importCustomShaderBlockDefinition.d.ts.map +0 -1
- package/dist/serialization/importCustomShaderBlockDefinition.js.map +0 -1
- package/dist/serialization/v1/blockSerialization.types.d.ts.map +0 -1
- package/dist/serialization/v1/blockSerialization.types.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Nullable } from "@babylonjs/core/types";
|
|
2
|
+
import type { ConnectionPoint, RuntimeData } from "../connection/connectionPoint";
|
|
2
3
|
import type { ConnectionPointType } from "../connection/connectionPointType";
|
|
3
4
|
import { BaseBlock } from "../blocks/baseBlock.js";
|
|
4
5
|
/**
|
|
@@ -39,10 +40,11 @@ export declare abstract class AggregateBlock extends BaseBlock {
|
|
|
39
40
|
/**
|
|
40
41
|
* Registers an input connection from the internal graph as an input of the aggregated graph.
|
|
41
42
|
* @param name - The name of the exposed input connection point
|
|
42
|
-
* @param
|
|
43
|
+
* @param internalConnectionPoints - The input connection points in the inner graph to wire up to the new subfilter input
|
|
44
|
+
* @param defaultValue - The default value to use for the input connection point
|
|
43
45
|
* @returns the connection point referencing the input block
|
|
44
46
|
*/
|
|
45
|
-
protected _registerSubfilterInput<U extends ConnectionPointType>(name: string,
|
|
47
|
+
protected _registerSubfilterInput<U extends ConnectionPointType>(name: string, internalConnectionPoints: ConnectionPoint<U>[], defaultValue?: Nullable<RuntimeData<U>>): ConnectionPoint<U>;
|
|
46
48
|
/**
|
|
47
49
|
* Registers an output connection point from the internal graph as an output of the aggregated graph.
|
|
48
50
|
* @param name - The name of the exposed output connection point
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"aggregateBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;GAOG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,OAAuB,SAAS,SAAoB;IAEpD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAE/E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;IAEhF;;OAEG;IACa,iBAAiB,IAAI,KAAK;IAI1C;;;OAGG;IACI,qBAAqB,CAAC,qBAAqB,EAAE,cAAc,EAAE,GAAG,IAAI;IAoC3E;;;OAGG;IACI,uBAAuB,IAAI,IAAI;IAsBtC;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,EAC3D,IAAI,EAAE,MAAM,EACZ,wBAAwB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAC9C,YAAY,GAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAQ,GAC9C,eAAe,CAAC,CAAC,CAAC;IAYrB;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,CAAC,CAAC,SAAS,mBAAmB,EAC5D,IAAI,EAAE,MAAM,EACZ,uBAAuB,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5C,eAAe,CAAC,CAAC,CAAC;CAMxB"}
|
|
@@ -39,11 +39,13 @@ export class AggregateBlock extends BaseBlock {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
// Rewire input connections
|
|
42
|
-
for (const [
|
|
42
|
+
for (const [internalConnectionPoints, externalConnectionPoint] of this._aggregatedInputs) {
|
|
43
43
|
const connectedToExternalConnectionPoint = externalConnectionPoint.connectedTo;
|
|
44
44
|
if (connectedToExternalConnectionPoint) {
|
|
45
45
|
connectedToExternalConnectionPoint.disconnectFrom(externalConnectionPoint);
|
|
46
|
-
|
|
46
|
+
for (const internalConnectionPoint of internalConnectionPoints) {
|
|
47
|
+
connectedToExternalConnectionPoint.connectTo(internalConnectionPoint);
|
|
48
|
+
}
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
// Tell any internal aggregate blocks to merge
|
|
@@ -71,23 +73,33 @@ export class AggregateBlock extends BaseBlock {
|
|
|
71
73
|
externalConnectionPoint.connectTo(endpoint);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
|
-
for (const [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
connectedToInternalConnectionPoint
|
|
78
|
-
|
|
76
|
+
for (const [internalConnectionPoints, externalConnectionPoint] of this._aggregatedInputs) {
|
|
77
|
+
if (internalConnectionPoints[0]) {
|
|
78
|
+
const connectedToInternalConnectionPoint = internalConnectionPoints[0].connectedTo;
|
|
79
|
+
if (connectedToInternalConnectionPoint) {
|
|
80
|
+
for (const internalConnectionPoint of internalConnectionPoints) {
|
|
81
|
+
connectedToInternalConnectionPoint.disconnectFrom(internalConnectionPoint);
|
|
82
|
+
}
|
|
83
|
+
connectedToInternalConnectionPoint.connectTo(externalConnectionPoint);
|
|
84
|
+
}
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
88
|
/**
|
|
83
89
|
* Registers an input connection from the internal graph as an input of the aggregated graph.
|
|
84
90
|
* @param name - The name of the exposed input connection point
|
|
85
|
-
* @param
|
|
91
|
+
* @param internalConnectionPoints - The input connection points in the inner graph to wire up to the new subfilter input
|
|
92
|
+
* @param defaultValue - The default value to use for the input connection point
|
|
86
93
|
* @returns the connection point referencing the input block
|
|
87
94
|
*/
|
|
88
|
-
_registerSubfilterInput(name,
|
|
89
|
-
|
|
90
|
-
|
|
95
|
+
_registerSubfilterInput(name, internalConnectionPoints, defaultValue = null) {
|
|
96
|
+
var _a;
|
|
97
|
+
const type = (_a = internalConnectionPoints[0]) === null || _a === void 0 ? void 0 : _a.type;
|
|
98
|
+
if (type === undefined) {
|
|
99
|
+
throw new Error("Cannot register an input connection point with no internal connection points");
|
|
100
|
+
}
|
|
101
|
+
const externalInputConnectionPoint = this._registerInput(name, type, defaultValue);
|
|
102
|
+
this._aggregatedInputs.push([internalConnectionPoints, externalInputConnectionPoint]);
|
|
91
103
|
return externalInputConnectionPoint;
|
|
92
104
|
}
|
|
93
105
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateBlock.js","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregateBlock.js","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine.js";
|
|
2
|
+
import type { SmartFilterDeserializer, SerializedBlockDefinition } from "../serialization/index.js";
|
|
3
|
+
import type { SmartFilter } from "../smartFilter.js";
|
|
4
|
+
import { AggregateBlock } from "./aggregateBlock.js";
|
|
5
|
+
import type { BaseBlock } from "./baseBlock.js";
|
|
6
|
+
/**
|
|
7
|
+
* Loads a serialized SmartFilter into a block which can be used in another SmartFilter.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CustomAggregateBlock extends AggregateBlock {
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new CustomAggregateBlock
|
|
12
|
+
* @param smartFilter - The SmartFilter to create the block for
|
|
13
|
+
* @param engine - The ThinEngine to use
|
|
14
|
+
* @param name - The friendly name of the block
|
|
15
|
+
* @param serializedSmartFilter - The serialized SmartFilter to load into the block
|
|
16
|
+
* @param smartFilterDeserializer - The deserializer to use
|
|
17
|
+
* @returns A promise that resolves to the new CustomAggregateBlock
|
|
18
|
+
*/
|
|
19
|
+
static Create(smartFilter: SmartFilter, engine: ThinEngine, name: string, serializedSmartFilter: SerializedBlockDefinition, smartFilterDeserializer: SmartFilterDeserializer): Promise<BaseBlock>;
|
|
20
|
+
/**
|
|
21
|
+
* The class name of the block.
|
|
22
|
+
*/
|
|
23
|
+
static ClassName: string;
|
|
24
|
+
private readonly _blockType;
|
|
25
|
+
/**
|
|
26
|
+
* The type of the block - used when serializing / deserializing the block, and in the editor.
|
|
27
|
+
*/
|
|
28
|
+
get blockType(): string;
|
|
29
|
+
private constructor();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=customAggregateBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customAggregateBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/customAggregateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACpD;;;;;;;;OAQG;WACiB,MAAM,CACtB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,qBAAqB,EAAE,yBAAyB,EAChD,uBAAuB,EAAE,uBAAuB,GACjD,OAAO,CAAC,SAAS,CAAC;IAKrB;;OAEG;IACH,OAAuB,SAAS,SAA0B;IAE1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED,OAAO;CAwCV"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AggregateBlock } from "./aggregateBlock.js";
|
|
2
|
+
/**
|
|
3
|
+
* Loads a serialized SmartFilter into a block which can be used in another SmartFilter.
|
|
4
|
+
*/
|
|
5
|
+
export class CustomAggregateBlock extends AggregateBlock {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new CustomAggregateBlock
|
|
8
|
+
* @param smartFilter - The SmartFilter to create the block for
|
|
9
|
+
* @param engine - The ThinEngine to use
|
|
10
|
+
* @param name - The friendly name of the block
|
|
11
|
+
* @param serializedSmartFilter - The serialized SmartFilter to load into the block
|
|
12
|
+
* @param smartFilterDeserializer - The deserializer to use
|
|
13
|
+
* @returns A promise that resolves to the new CustomAggregateBlock
|
|
14
|
+
*/
|
|
15
|
+
static async Create(smartFilter, engine, name, serializedSmartFilter, smartFilterDeserializer) {
|
|
16
|
+
const innerSmartFilter = await smartFilterDeserializer.deserialize(engine, serializedSmartFilter);
|
|
17
|
+
return new CustomAggregateBlock(smartFilter, name, serializedSmartFilter.blockType, innerSmartFilter, false);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The type of the block - used when serializing / deserializing the block, and in the editor.
|
|
21
|
+
*/
|
|
22
|
+
get blockType() {
|
|
23
|
+
return this._blockType;
|
|
24
|
+
}
|
|
25
|
+
constructor(smartFilter, name, blockType, innerSmartFilter, disableOptimization) {
|
|
26
|
+
var _a;
|
|
27
|
+
super(smartFilter, name, disableOptimization);
|
|
28
|
+
this._blockType = blockType;
|
|
29
|
+
const attachedBlocks = innerSmartFilter.attachedBlocks;
|
|
30
|
+
for (let index = 0; index < attachedBlocks.length; index++) {
|
|
31
|
+
const block = attachedBlocks[index];
|
|
32
|
+
if (block && block.isInput && block.outputs[0]) {
|
|
33
|
+
// If this input block is connected to anything (has any endpoints), create an input connection point for it
|
|
34
|
+
if (block.outputs[0].endpoints.length > 0) {
|
|
35
|
+
this._registerSubfilterInput(block.name, block.outputs[0].endpoints.slice(), (_a = block.outputs[0].runtimeData) !== null && _a !== void 0 ? _a : null);
|
|
36
|
+
}
|
|
37
|
+
// Remove this input block from the smart filter graph - this will reset the runtimeData to the
|
|
38
|
+
// default for that connection point (which may be null)
|
|
39
|
+
innerSmartFilter.removeBlock(block);
|
|
40
|
+
index--;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (!innerSmartFilter.output.connectedTo) {
|
|
44
|
+
throw new Error("The inner smart filter must have an output connected to something");
|
|
45
|
+
}
|
|
46
|
+
this._registerSubfilterOutput("output", innerSmartFilter.output.connectedTo);
|
|
47
|
+
// Disconnect the inner smart filter output from the inner smart filter
|
|
48
|
+
innerSmartFilter.output.connectedTo.disconnectFrom(innerSmartFilter.output);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The class name of the block.
|
|
53
|
+
*/
|
|
54
|
+
CustomAggregateBlock.ClassName = "CustomAggregateBlock";
|
|
55
|
+
//# sourceMappingURL=customAggregateBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customAggregateBlock.js","sourceRoot":"","sources":["../../src/blocks/customAggregateBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACpD;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CACtB,WAAwB,EACxB,MAAkB,EAClB,IAAY,EACZ,qBAAgD,EAChD,uBAAgD;QAEhD,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAClG,OAAO,IAAI,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACjH,CAAC;IASD;;OAEG;IACH,IAAoB,SAAS;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,YACI,WAAwB,EACxB,IAAY,EACZ,SAAiB,EACjB,gBAA6B,EAC7B,mBAA4B;;QAE5B,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAE9C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,MAAM,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC;QACvD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,4GAA4G;gBAC5G,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,uBAAuB,CACxB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAClC,MAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,mCAAI,IAAI,CACvC,CAAC;gBACN,CAAC;gBAED,+FAA+F;gBAC/F,wDAAwD;gBACxD,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpC,KAAK,EAAE,CAAC;YACZ,CAAC;QACL,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE7E,uEAAuE;QACvE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAChF,CAAC;;AArDD;;GAEG;AACoB,8BAAS,GAAG,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SerializedShaderBlockDefinition } from "../serialization/serializedShaderBlockDefinition.js";
|
|
3
3
|
import type { SmartFilter } from "../smartFilter";
|
|
4
4
|
import type { ShaderProgram } from "../utils/shaderCodeUtils";
|
|
5
5
|
import { ShaderBlock } from "./shaderBlock.js";
|
|
@@ -14,13 +14,14 @@ export declare class CustomShaderBlock extends ShaderBlock {
|
|
|
14
14
|
* @param blockDefinition - The serialized block definition
|
|
15
15
|
* @returns The deserialized CustomShaderBlock instance
|
|
16
16
|
*/
|
|
17
|
-
static Create(smartFilter: SmartFilter, name: string, blockDefinition:
|
|
17
|
+
static Create(smartFilter: SmartFilter, name: string, blockDefinition: SerializedShaderBlockDefinition): CustomShaderBlock;
|
|
18
18
|
/**
|
|
19
19
|
* The class name of the block.
|
|
20
20
|
*/
|
|
21
21
|
static ClassName: string;
|
|
22
22
|
private readonly _shaderProgram;
|
|
23
23
|
private readonly _blockType;
|
|
24
|
+
private _autoBoundInputs;
|
|
24
25
|
/**
|
|
25
26
|
* The type of the block - used when serializing / deserializing the block, and in the editor.
|
|
26
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"customShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AAE3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwE/C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;;;;;OAMG;WACW,MAAM,CAChB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,+BAA+B,GACjD,iBAAiB;IAapB;;OAEG;IACH,OAAuB,SAAS,SAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,gBAAgB,CAAsD;IAE9E;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED;;;;;;;;OAQG;IACH,OAAO;IAkBP;;;OAGG;IACa,gBAAgB;IAIhC;;;;OAIG;IACH,OAAO,CAAC,yCAAyC;IAuBjD;;;OAGG;IACa,gBAAgB,IAAI,aAAa;CAiCpD"}
|
|
@@ -41,9 +41,16 @@ class CustomShaderBlockBinding extends ShaderBinding {
|
|
|
41
41
|
});
|
|
42
42
|
break;
|
|
43
43
|
case ConnectionPointType.Vector2:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
if (input.autoBind === "outputResolution") {
|
|
45
|
+
this._bindSteps.push((effect, width, height) => {
|
|
46
|
+
effect.setFloat2(this.getRemappedName(input.name), width, height);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._bindSteps.push((effect) => {
|
|
51
|
+
effect.setVector2(this.getRemappedName(input.name), input.runtimeData.value);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
47
54
|
break;
|
|
48
55
|
}
|
|
49
56
|
}
|
|
@@ -51,10 +58,12 @@ class CustomShaderBlockBinding extends ShaderBinding {
|
|
|
51
58
|
/**
|
|
52
59
|
* Binds all the required data to the shader when rendering.
|
|
53
60
|
* @param effect - The effect to bind the data to
|
|
61
|
+
* @param width - defines the width of the output
|
|
62
|
+
* @param height - defines the height of the output
|
|
54
63
|
*/
|
|
55
|
-
bind(effect) {
|
|
64
|
+
bind(effect, width, height) {
|
|
56
65
|
for (let i = 0; i < this._bindSteps.length; i++) {
|
|
57
|
-
this._bindSteps[i](effect);
|
|
66
|
+
this._bindSteps[i](effect, width, height);
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
}
|
|
@@ -90,6 +99,7 @@ export class CustomShaderBlock extends ShaderBlock {
|
|
|
90
99
|
*/
|
|
91
100
|
constructor(smartFilter, name, disableOptimization, blockType, inputConnectionPoints, shaderProgram) {
|
|
92
101
|
super(smartFilter, name, disableOptimization);
|
|
102
|
+
this._autoBoundInputs = null;
|
|
93
103
|
this._blockType = blockType;
|
|
94
104
|
for (const input of inputConnectionPoints) {
|
|
95
105
|
this._registerSerializedInputConnectionPointV1(input);
|
|
@@ -109,11 +119,21 @@ export class CustomShaderBlock extends ShaderBlock {
|
|
|
109
119
|
* @param connectionPoint - The input connection point to register
|
|
110
120
|
*/
|
|
111
121
|
_registerSerializedInputConnectionPointV1(connectionPoint) {
|
|
112
|
-
if (connectionPoint.
|
|
113
|
-
|
|
122
|
+
if (connectionPoint.autoBind) {
|
|
123
|
+
// Auto bound inputs are not registered as input connection points
|
|
124
|
+
if (this._autoBoundInputs === null) {
|
|
125
|
+
this._autoBoundInputs = [];
|
|
126
|
+
}
|
|
127
|
+
this._autoBoundInputs.push(connectionPoint);
|
|
114
128
|
}
|
|
115
129
|
else {
|
|
116
|
-
|
|
130
|
+
// If not auto bound, register as an input connection point
|
|
131
|
+
if (connectionPoint.defaultValue !== undefined) {
|
|
132
|
+
this._registerOptionalInput(connectionPoint.name, connectionPoint.type, createStrongRef(connectionPoint.defaultValue));
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this._registerInput(connectionPoint.name, connectionPoint.type);
|
|
136
|
+
}
|
|
117
137
|
}
|
|
118
138
|
}
|
|
119
139
|
/**
|
|
@@ -122,14 +142,30 @@ export class CustomShaderBlock extends ShaderBlock {
|
|
|
122
142
|
*/
|
|
123
143
|
getShaderBinding() {
|
|
124
144
|
const inputs = this.inputs;
|
|
125
|
-
const
|
|
145
|
+
const inputsToBind = inputs.map((input) => {
|
|
126
146
|
return {
|
|
127
147
|
name: input.name,
|
|
128
148
|
type: input.type,
|
|
129
149
|
runtimeData: this._confirmRuntimeDataSupplied(input),
|
|
150
|
+
autoBind: undefined,
|
|
130
151
|
};
|
|
131
152
|
});
|
|
132
|
-
|
|
153
|
+
if (this._autoBoundInputs) {
|
|
154
|
+
for (const autoBoundInput of this._autoBoundInputs) {
|
|
155
|
+
if (autoBoundInput.autoBind === "outputResolution" &&
|
|
156
|
+
autoBoundInput.type == ConnectionPointType.Vector2) {
|
|
157
|
+
inputsToBind.push({
|
|
158
|
+
name: autoBoundInput.name,
|
|
159
|
+
type: autoBoundInput.type,
|
|
160
|
+
autoBind: autoBoundInput.autoBind,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
throw new Error(`Auto bound input ${autoBoundInput.name} has an unsupported type or auto bind value`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return new CustomShaderBlockBinding(inputsToBind);
|
|
133
169
|
}
|
|
134
170
|
}
|
|
135
171
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customShaderBlock.js","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"customShaderBlock.js","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,7 +127,7 @@ export class ConnectionPoint {
|
|
|
127
127
|
this._endpoints.splice(index, 1);
|
|
128
128
|
// Connections are double-linked - remove the reference back to this connection point from the one we just disconnected from
|
|
129
129
|
endpoint._connectedTo = null;
|
|
130
|
-
endpoint.runtimeData =
|
|
130
|
+
endpoint.runtimeData = endpoint.defaultRuntimeData;
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* Disconnects this point from all its endpoints.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionPoint.js","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connectionPoint.js","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ 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
17
|
export { CustomShaderBlock } from "./blocks/customShaderBlock.js";
|
|
18
|
+
export { CustomAggregateBlock } from "./blocks/customAggregateBlock.js";
|
|
18
19
|
export { DisableableShaderBlock, BlockDisableStrategy as DisableStrategy } from "./blocks/disableableShaderBlock.js";
|
|
19
20
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
20
21
|
export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
@@ -28,5 +29,5 @@ export { SmartFilterOptimizer } from "./optimization/smartFilterOptimizer.js";
|
|
|
28
29
|
export * from "./utils/textureLoaders.js";
|
|
29
30
|
export * from "./serialization/index.js";
|
|
30
31
|
export * from "./editorUtils/editableInPropertyPage.js";
|
|
31
|
-
export * from "./serialization/
|
|
32
|
+
export * from "./serialization/importCustomBlockDefinition.js";
|
|
32
33
|
//# 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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,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;AACxD,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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,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;AACxD,cAAc,gDAAgD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { InputBlock } from "./blocks/inputBlock.js";
|
|
|
15
15
|
export {} from "./blocks/inputBlock.js";
|
|
16
16
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
17
17
|
export { CustomShaderBlock } from "./blocks/customShaderBlock.js";
|
|
18
|
+
export { CustomAggregateBlock } from "./blocks/customAggregateBlock.js";
|
|
18
19
|
export { DisableableShaderBlock, BlockDisableStrategy as DisableStrategy } from "./blocks/disableableShaderBlock.js";
|
|
19
20
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
20
21
|
export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
@@ -28,5 +29,5 @@ export { SmartFilterOptimizer } from "./optimization/smartFilterOptimizer.js";
|
|
|
28
29
|
export * from "./utils/textureLoaders.js";
|
|
29
30
|
export * from "./serialization/index.js";
|
|
30
31
|
export * from "./editorUtils/editableInPropertyPage.js";
|
|
31
|
-
export * from "./serialization/
|
|
32
|
+
export * from "./serialization/importCustomBlockDefinition.js";
|
|
32
33
|
//# 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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,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;AACxD,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,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,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;AACxD,cAAc,gDAAgD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SerializedBlockDefinition } from "./serializedBlockDefinition.js";
|
|
2
|
+
/**
|
|
3
|
+
* Imports a serialized custom block definition. Supports either serialized CustomShaderBlock definitions or
|
|
4
|
+
* CustomAggregateBlock definitions.
|
|
5
|
+
*
|
|
6
|
+
* CustomShaderBlock definitions can be supplied either as serialized SerializedBlockDefinition object
|
|
7
|
+
* or a glsl shader with the required annotations (see readme.md for details).
|
|
8
|
+
*
|
|
9
|
+
* CustomAggregateBlock definitions must be supplied as serialized SerializedBlockDefinition object.
|
|
10
|
+
*
|
|
11
|
+
* @param serializedData - The serialized data
|
|
12
|
+
* @returns The serialized block definition
|
|
13
|
+
*/
|
|
14
|
+
export declare function importCustomBlockDefinition(serializedData: string): SerializedBlockDefinition;
|
|
15
|
+
//# sourceMappingURL=importCustomBlockDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importCustomBlockDefinition.d.ts","sourceRoot":"","sources":["../../src/serialization/importCustomBlockDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAIhF;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,yBAAyB,CAc7F"}
|
package/dist/serialization/{importCustomShaderBlockDefinition.js → importCustomBlockDefinition.js}
RENAMED
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
2
2
|
import { hasGlslHeader, parseFragmentShader } from "../utils/buildTools/shaderConverter.js";
|
|
3
3
|
/**
|
|
4
|
-
* Imports a serialized custom
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Imports a serialized custom block definition. Supports either serialized CustomShaderBlock definitions or
|
|
5
|
+
* CustomAggregateBlock definitions.
|
|
6
|
+
*
|
|
7
|
+
* CustomShaderBlock definitions can be supplied either as serialized SerializedBlockDefinition object
|
|
8
|
+
* or a glsl shader with the required annotations (see readme.md for details).
|
|
9
|
+
*
|
|
10
|
+
* CustomAggregateBlock definitions must be supplied as serialized SerializedBlockDefinition object.
|
|
11
|
+
*
|
|
12
|
+
* @param serializedData - The serialized data
|
|
9
13
|
* @returns The serialized block definition
|
|
10
14
|
*/
|
|
11
|
-
export function
|
|
12
|
-
if (hasGlslHeader(
|
|
13
|
-
return importAnnotatedGlsl(
|
|
15
|
+
export function importCustomBlockDefinition(serializedData) {
|
|
16
|
+
if (hasGlslHeader(serializedData)) {
|
|
17
|
+
return importAnnotatedGlsl(serializedData);
|
|
14
18
|
}
|
|
15
19
|
else {
|
|
16
|
-
// Assume this is a serialized
|
|
17
|
-
|
|
20
|
+
// Assume this is a serialized JSON object
|
|
21
|
+
const blockDefinition = JSON.parse(serializedData);
|
|
22
|
+
// SmartFilters can be serialized without a blockType
|
|
23
|
+
// By convention, we use the SmartFilter name as the blockType when importing them as SerializedBlockDefinitions
|
|
24
|
+
if (blockDefinition.format === "smartFilter" && blockDefinition.name && !blockDefinition.blockType) {
|
|
25
|
+
blockDefinition.blockType = blockDefinition.name;
|
|
26
|
+
}
|
|
27
|
+
return blockDefinition;
|
|
18
28
|
}
|
|
19
29
|
}
|
|
20
30
|
/**
|
|
@@ -25,7 +35,7 @@ export function importCustomShaderBlockDefinition(serializedBlockDefinition) {
|
|
|
25
35
|
* @returns The serialized block definition
|
|
26
36
|
*/
|
|
27
37
|
function importAnnotatedGlsl(fragmentShader) {
|
|
28
|
-
var _a;
|
|
38
|
+
var _a, _b;
|
|
29
39
|
const fragmentShaderInfo = parseFragmentShader(fragmentShader);
|
|
30
40
|
if (!fragmentShaderInfo.blockType) {
|
|
31
41
|
throw new Error("blockType must be defined");
|
|
@@ -61,13 +71,15 @@ function importAnnotatedGlsl(fragmentShader) {
|
|
|
61
71
|
const inputConnectionPoint = {
|
|
62
72
|
name: uniform.name,
|
|
63
73
|
type,
|
|
74
|
+
autoBind: (_a = uniform.properties) === null || _a === void 0 ? void 0 : _a.autoBind,
|
|
64
75
|
};
|
|
65
|
-
if (inputConnectionPoint.type !== ConnectionPointType.Texture && ((
|
|
76
|
+
if (inputConnectionPoint.type !== ConnectionPointType.Texture && ((_b = uniform.properties) === null || _b === void 0 ? void 0 : _b.default) !== undefined) {
|
|
66
77
|
inputConnectionPoint.defaultValue = uniform.properties.default;
|
|
67
78
|
}
|
|
68
79
|
inputConnectionPoints.push(inputConnectionPoint);
|
|
69
80
|
}
|
|
70
81
|
return {
|
|
82
|
+
format: "shaderBlockDefinition",
|
|
71
83
|
formatVersion: 1,
|
|
72
84
|
blockType: fragmentShaderInfo.blockType,
|
|
73
85
|
shaderProgram: {
|
|
@@ -77,4 +89,4 @@ function importAnnotatedGlsl(fragmentShader) {
|
|
|
77
89
|
disableOptimization: !!fragmentShaderInfo.disableOptimization,
|
|
78
90
|
};
|
|
79
91
|
}
|
|
80
|
-
//# sourceMappingURL=
|
|
92
|
+
//# sourceMappingURL=importCustomBlockDefinition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importCustomBlockDefinition.js","sourceRoot":"","sources":["../../src/serialization/importCustomBlockDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAK5F;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CAAC,cAAsB;IAC9D,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACJ,0CAA0C;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,qDAAqD;QACrD,gHAAgH;QAChH,IAAI,eAAe,CAAC,MAAM,KAAK,aAAa,IAAI,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;YACjG,eAAe,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC;QACrD,CAAC;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,cAAsB;;IAC/C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAE/D,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IAED,wCAAwC;IACxC,MAAM,qBAAqB,GAAuC,EAAE,CAAC;IACrE,KAAK,MAAM,OAAO,IAAI,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAChD,iCAAiC;QACjC,IAAI,IAAyB,CAAC;QAC9B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO;gBACR,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC;gBACjC,MAAM;YACV,KAAK,WAAW;gBACZ,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBACnC,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAClC,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAClC,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBACnC,MAAM;YACV,KAAK,MAAM;gBACP,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;gBACnC,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,qCAAqC;QACrC,MAAM,oBAAoB,GAAqC;YAC3D,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,QAAQ,EAAE,MAAA,OAAO,CAAC,UAAU,0CAAE,QAA2B;SAC5D,CAAC;QACF,IAAI,oBAAoB,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,IAAI,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,OAAO,MAAK,SAAS,EAAE,CAAC;YACzG,oBAAoB,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QACnE,CAAC;QACD,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACH,MAAM,EAAE,uBAAuB;QAC/B,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,kBAAkB,CAAC,SAAS;QACvC,aAAa,EAAE;YACX,QAAQ,EAAE,kBAAkB,CAAC,UAAU;SAC1C;QACD,qBAAqB;QACrB,mBAAmB,EAAE,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;KAChE,CAAC;AACN,CAAC"}
|
|
@@ -2,5 +2,6 @@ export * from "./v1/index.js";
|
|
|
2
2
|
export * from "./serializedSmartFilter.js";
|
|
3
3
|
export * from "./smartFilterDeserializer.js";
|
|
4
4
|
export * from "./smartFilterSerializer.js";
|
|
5
|
+
export * from "./serializedShaderBlockDefinition.js";
|
|
5
6
|
export * from "./serializedBlockDefinition.js";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC"}
|
|
@@ -2,5 +2,6 @@ export * from "./v1/index.js";
|
|
|
2
2
|
export * from "./serializedSmartFilter.js";
|
|
3
3
|
export * from "./smartFilterDeserializer.js";
|
|
4
4
|
export * from "./smartFilterSerializer.js";
|
|
5
|
+
export * from "./serializedShaderBlockDefinition.js";
|
|
5
6
|
export * from "./serializedBlockDefinition.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serialization/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SerializedShaderBlockDefinition } from "./serializedShaderBlockDefinition";
|
|
2
|
+
import type { SerializedSmartFilter } from "./serializedSmartFilter";
|
|
2
3
|
/**
|
|
3
|
-
* Type
|
|
4
|
-
* A block definition is an object which is used to create a CustomShaderBlock instance.
|
|
4
|
+
* Type that represents any type of serialized block definition - shader or aggregate.
|
|
5
5
|
*/
|
|
6
|
-
export type SerializedBlockDefinition =
|
|
6
|
+
export type SerializedBlockDefinition = (SerializedShaderBlockDefinition | SerializedSmartFilter) & {
|
|
7
|
+
/**
|
|
8
|
+
* The type of block this is.
|
|
9
|
+
*/
|
|
10
|
+
blockType: string;
|
|
11
|
+
};
|
|
7
12
|
//# sourceMappingURL=serializedBlockDefinition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializedBlockDefinition.d.ts","sourceRoot":"","sources":["../../src/serialization/serializedBlockDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"serializedBlockDefinition.d.ts","sourceRoot":"","sources":["../../src/serialization/serializedBlockDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,+BAA+B,GAAG,qBAAqB,CAAC,GAAG;IAChG;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SerializedShaderBlockDefinitionV1 } from "./v1/shaderBlockSerialization.types";
|
|
2
|
+
/**
|
|
3
|
+
* Type union of all versions of serialized SmartFilter block definitions
|
|
4
|
+
* A block definition is an object which is used to create a CustomShaderBlock instance.
|
|
5
|
+
*/
|
|
6
|
+
export type SerializedShaderBlockDefinition = SerializedShaderBlockDefinitionV1;
|
|
7
|
+
//# sourceMappingURL=serializedShaderBlockDefinition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializedShaderBlockDefinition.d.ts","sourceRoot":"","sources":["../../src/serialization/serializedShaderBlockDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAE7F;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializedShaderBlockDefinition.js","sourceRoot":"","sources":["../../src/serialization/serializedShaderBlockDefinition.ts"],"names":[],"mappings":""}
|