@babylonjs/smart-filters 0.3.2-alpha → 0.3.4-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/inputBlock.d.ts +19 -0
- package/dist/blocks/inputBlock.d.ts.map +1 -1
- package/dist/blocks/inputBlock.deserializer.d.ts +1 -3
- package/dist/blocks/inputBlock.deserializer.d.ts.map +1 -1
- package/dist/blocks/inputBlock.deserializer.js +14 -13
- package/dist/blocks/inputBlock.deserializer.js.map +1 -1
- package/dist/blocks/inputBlock.js.map +1 -1
- package/dist/blocks/inputBlock.serialization.types.d.ts +13 -0
- package/dist/blocks/inputBlock.serialization.types.d.ts.map +1 -1
- package/dist/blocks/inputBlock.serializer.d.ts.map +1 -1
- package/dist/blocks/inputBlock.serializer.js +12 -4
- package/dist/blocks/inputBlock.serializer.js.map +1 -1
- package/dist/blocks/outputBlock.d.ts +7 -0
- package/dist/blocks/outputBlock.d.ts.map +1 -1
- package/dist/blocks/outputBlock.js +7 -4
- package/dist/blocks/outputBlock.js.map +1 -1
- package/dist/blocks/shaderBlock.d.ts.map +1 -1
- package/dist/blocks/shaderBlock.js +5 -8
- package/dist/blocks/shaderBlock.js.map +1 -1
- package/dist/runtime/renderTargetGenerator.d.ts +3 -2
- package/dist/runtime/renderTargetGenerator.d.ts.map +1 -1
- package/dist/runtime/renderTargetGenerator.js +25 -14
- package/dist/runtime/renderTargetGenerator.js.map +1 -1
- package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -1
- package/dist/serialization/smartFilterDeserializer.js +12 -5
- package/dist/serialization/smartFilterDeserializer.js.map +1 -1
- package/dist/serialization/smartFilterSerializer.js +4 -4
- package/dist/serialization/smartFilterSerializer.js.map +1 -1
- package/dist/serialization/v1/serialization.types.d.ts +4 -4
- package/dist/serialization/v1/serialization.types.d.ts.map +1 -1
- package/dist/smartFilter.d.ts +4 -1
- package/dist/smartFilter.d.ts.map +1 -1
- package/dist/smartFilter.js +7 -7
- package/dist/smartFilter.js.map +1 -1
- package/dist/utils/buildTools/buildShaders.d.ts +8 -0
- package/dist/utils/buildTools/buildShaders.d.ts.map +1 -0
- package/dist/utils/buildTools/buildShaders.js +12 -0
- package/dist/utils/buildTools/buildShaders.js.map +1 -0
- package/dist/utils/buildTools/shaderConverter.d.ts +12 -1
- package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
- package/dist/utils/buildTools/shaderConverter.js +4 -8
- package/dist/utils/buildTools/shaderConverter.js.map +1 -1
- package/dist/utils/buildTools/watchShaders.d.ts +8 -0
- package/dist/utils/buildTools/watchShaders.d.ts.map +1 -0
- package/dist/utils/buildTools/watchShaders.js +36 -0
- package/dist/utils/buildTools/watchShaders.js.map +1 -0
- package/dist/utils/renderTargetUtils.d.ts +24 -0
- package/dist/utils/renderTargetUtils.d.ts.map +1 -0
- package/dist/utils/renderTargetUtils.js +38 -0
- package/dist/utils/renderTargetUtils.js.map +1 -0
- package/package.json +5 -3
- package/src/blocks/inputBlock.deserializer.ts +20 -21
- package/src/blocks/inputBlock.serialization.types.ts +16 -0
- package/src/blocks/inputBlock.serializer.ts +10 -1
- package/src/blocks/inputBlock.ts +25 -1
- package/src/blocks/outputBlock.ts +10 -6
- package/src/blocks/shaderBlock.ts +11 -10
- package/src/runtime/renderTargetGenerator.ts +31 -14
- package/src/serialization/smartFilterDeserializer.ts +17 -6
- package/src/serialization/smartFilterSerializer.ts +4 -4
- package/src/serialization/v1/serialization.types.ts +4 -4
- package/src/smartFilter.ts +12 -9
- package/src/utils/buildTools/buildShaders.ts +13 -0
- package/src/utils/buildTools/shaderConverter.ts +4 -9
- package/src/utils/buildTools/watchShaders.ts +40 -0
- package/src/utils/renderTargetUtils.ts +56 -0
|
@@ -52,9 +52,9 @@ export class SmartFilterSerializer {
|
|
|
52
52
|
const connectedTo = input.connectedTo;
|
|
53
53
|
if (connectedTo) {
|
|
54
54
|
const newConnection = {
|
|
55
|
-
inputBlock: block.
|
|
55
|
+
inputBlock: block.uniqueId,
|
|
56
56
|
inputConnectionPoint: input.name,
|
|
57
|
-
outputBlock: connectedTo.ownerBlock.
|
|
57
|
+
outputBlock: connectedTo.ownerBlock.uniqueId,
|
|
58
58
|
outputConnectionPoint: connectedTo.name,
|
|
59
59
|
};
|
|
60
60
|
if (!connections.find((other) => serializedConnectionPointsEqual(newConnection, other))) {
|
|
@@ -66,9 +66,9 @@ export class SmartFilterSerializer {
|
|
|
66
66
|
block.outputs.forEach((output) => {
|
|
67
67
|
output.endpoints.forEach((input) => {
|
|
68
68
|
const newConnection = {
|
|
69
|
-
inputBlock: input.ownerBlock.
|
|
69
|
+
inputBlock: input.ownerBlock.uniqueId,
|
|
70
70
|
inputConnectionPoint: input.name,
|
|
71
|
-
outputBlock: block.
|
|
71
|
+
outputBlock: block.uniqueId,
|
|
72
72
|
outputConnectionPoint: output.name,
|
|
73
73
|
};
|
|
74
74
|
if (!connections.find((other) => serializedConnectionPointsEqual(newConnection, other))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartFilterSerializer.js","sourceRoot":"","sources":["../../src/serialization/smartFilterSerializer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AASvD;;;;;GAKG;AACH,SAAS,+BAA+B,CAAC,CAA0B,EAAE,CAA0B;IAC3F,OAAO,CACH,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;QAC7B,CAAC,CAAC,oBAAoB,KAAK,CAAC,CAAC,oBAAoB;QACjD,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,qBAAqB,KAAK,CAAC,CAAC,qBAAqB,CACtD,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAG9B;;;;OAIG;IACH,YAAmB,+BAAyC,EAAE,0BAAgD;QAP7F,sBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;QAQ1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC3F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAC1E,+BAA+B,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,0BAA0B,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CACzE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,WAAwB;QACrC,MAAM,WAAW,GAA8B,EAAE,CAAC;QAElD,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAgB,EAAE,EAAE;YAC/D,6BAA6B;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM,eAAe,GAAuB,WAAW,CAAC,KAAK,CAAC,CAAC;YAE/D,0CAA0C;YAC1C,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAsB,EAAE,EAAE;gBAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACtC,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,aAAa,GAA4B;wBAC3C,UAAU,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"smartFilterSerializer.js","sourceRoot":"","sources":["../../src/serialization/smartFilterSerializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,12 +44,12 @@ export interface ISerializedBlockV1 {
|
|
|
44
44
|
* V1 Serialized Connection
|
|
45
45
|
*/
|
|
46
46
|
export interface ISerializedConnectionV1 {
|
|
47
|
-
/** The
|
|
48
|
-
outputBlock:
|
|
47
|
+
/** The uniqueId of the block that the connection is to */
|
|
48
|
+
outputBlock: number;
|
|
49
49
|
/** The name of the connectionPoint on the outputBlock */
|
|
50
50
|
outputConnectionPoint: string;
|
|
51
|
-
/** The
|
|
52
|
-
inputBlock:
|
|
51
|
+
/** The uniqueId of the block that the connection is from */
|
|
52
|
+
inputBlock: number;
|
|
53
53
|
/** The name of the connectionPoint on the inputBlock */
|
|
54
54
|
inputConnectionPoint: string;
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.types.d.ts","sourceRoot":"","sources":["../../../src/serialization/v1/serialization.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gFAAgF,CAAC;AAElH;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,yCAAyC;IACzC,OAAO,EAAE,CAAC,CAAC;IAEX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAElC,4BAA4B;IAC5B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B,iCAAiC;IACjC,WAAW,EAAE,uBAAuB,EAAE,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,qGAAqG;IACrG,QAAQ,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3B,qCAAqC;IACrC,IAAI,EAAE,GAAG,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,
|
|
1
|
+
{"version":3,"file":"serialization.types.d.ts","sourceRoot":"","sources":["../../../src/serialization/v1/serialization.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gFAAgF,CAAC;AAElH;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,yCAAyC;IACzC,OAAO,EAAE,CAAC,CAAC;IAEX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3B,0CAA0C;IAC1C,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAElC,4BAA4B;IAC5B,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B,iCAAiC;IACjC,WAAW,EAAE,uBAAuB,EAAE,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,qGAAqG;IACrG,QAAQ,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE3B,qCAAqC;IACrC,IAAI,EAAE,GAAG,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IAEpB,yDAAyD;IACzD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,kBAAkB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,SAAS,EAAE,gBAAgB,CAAC;CAC/B;AAED;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC7B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,UAAU,KACjB,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/smartFilter.d.ts
CHANGED
|
@@ -45,6 +45,10 @@ export declare class SmartFilter {
|
|
|
45
45
|
* This is where the smart filter final block should be connected to in order to be visible on screen.
|
|
46
46
|
*/
|
|
47
47
|
readonly output: ConnectionPoint<ConnectionPointType.Texture>;
|
|
48
|
+
/**
|
|
49
|
+
* The output block of the smart filter.
|
|
50
|
+
*/
|
|
51
|
+
readonly outputBlock: OutputBlock;
|
|
48
52
|
/**
|
|
49
53
|
* User defined comments to describe the current smart filter.
|
|
50
54
|
*/
|
|
@@ -54,7 +58,6 @@ export declare class SmartFilter {
|
|
|
54
58
|
*/
|
|
55
59
|
editorData: Nullable<IEditorData>;
|
|
56
60
|
private readonly _attachedBlocks;
|
|
57
|
-
private readonly _outputBlock;
|
|
58
61
|
/**
|
|
59
62
|
* Creates a new instance of a @see SmartFilter.
|
|
60
63
|
* @param name - The friendly name of the smart filter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartFilter.d.ts","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6EAA6E,CAAC;AAO/G;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,SAAgB,MAAM,EAAE,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAErE;;OAEG;IACI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAEzC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAQ;IAEhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD
|
|
1
|
+
{"version":3,"file":"smartFilter.d.ts","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6EAA6E,CAAC;AAO/G;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,SAAgB,MAAM,EAAE,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAErE;;OAEG;IACH,SAAgB,WAAW,EAAE,WAAW,CAAC;IAEzC;;OAEG;IACI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAEzC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAQ;IAEhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD;;;OAGG;gBACS,IAAI,EAAE,MAAM;IAQxB;;OAEG;IACH,IAAW,cAAc,IAAI,aAAa,CAAC,SAAS,CAAC,CAEpD;IAED;;OAEG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAe5C;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAc1C,OAAO,CAAC,sCAAsC;IAwB9C;;;;;OAKG;IACU,kBAAkB,CAC3B,MAAM,EAAE,UAAU,EAClB,qBAAqB,CAAC,EAAE,qBAAqB,GAC9C,OAAO,CAAC,kBAAkB,CAAC;IAiC9B;;;;OAIG;IACI,2BAA2B,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAoB7D"}
|
package/dist/smartFilter.js
CHANGED
|
@@ -29,8 +29,8 @@ export class SmartFilter {
|
|
|
29
29
|
this.editorData = null;
|
|
30
30
|
this.name = name;
|
|
31
31
|
this._attachedBlocks = new Array();
|
|
32
|
-
this.
|
|
33
|
-
this.output = this.
|
|
32
|
+
this.outputBlock = new OutputBlock(this);
|
|
33
|
+
this.output = this.outputBlock.input;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* @returns the list of blocks attached to the smart filter.
|
|
@@ -80,7 +80,7 @@ export class SmartFilter {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
_generateCommandsAndGatherInitPromises(initializationData) {
|
|
83
|
-
const outputBlock = this.
|
|
83
|
+
const outputBlock = this.outputBlock;
|
|
84
84
|
outputBlock.visit(initializationData, (block, initializationData) => {
|
|
85
85
|
var _a, _b;
|
|
86
86
|
// If the block is the output block,
|
|
@@ -108,14 +108,14 @@ export class SmartFilter {
|
|
|
108
108
|
const runtime = new InternalSmartFilterRuntime(engine);
|
|
109
109
|
const initializationData = {
|
|
110
110
|
runtime,
|
|
111
|
-
outputBlock: this.
|
|
111
|
+
outputBlock: this.outputBlock,
|
|
112
112
|
initializationPromises: [],
|
|
113
113
|
};
|
|
114
114
|
this._workWithAggregateFreeGraph(() => {
|
|
115
|
-
this.
|
|
115
|
+
this.outputBlock.prepareForRuntime();
|
|
116
116
|
renderTargetGenerator = renderTargetGenerator !== null && renderTargetGenerator !== void 0 ? renderTargetGenerator : new RenderTargetGenerator(false);
|
|
117
117
|
renderTargetGenerator.setOutputTextures(this, initializationData);
|
|
118
|
-
this.
|
|
118
|
+
this.outputBlock.propagateRuntimeData();
|
|
119
119
|
this._generateCommandsAndGatherInitPromises(initializationData);
|
|
120
120
|
});
|
|
121
121
|
// Wait for all the blocks to be initialized
|
|
@@ -137,7 +137,7 @@ export class SmartFilter {
|
|
|
137
137
|
_workWithAggregateFreeGraph(work) {
|
|
138
138
|
const mergedAggregateBlocks = [];
|
|
139
139
|
// Merge all aggregate blocks
|
|
140
|
-
this.
|
|
140
|
+
this.outputBlock.visit({}, (block, _extraData) => {
|
|
141
141
|
if (block instanceof AggregateBlock) {
|
|
142
142
|
block._mergeIntoSmartFilter(mergedAggregateBlocks);
|
|
143
143
|
}
|
package/dist/smartFilter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D;;GAEG;AACH,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAsBpC;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds all .glsl files under <shaderPath>.
|
|
3
|
+
* @param shaderPath - The path to the shaders to watch
|
|
4
|
+
* @param importPath - The path to import the converted shaders
|
|
5
|
+
* @example node buildShaders.js <shaderPath> <importPath>
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=buildShaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildShaders.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/buildShaders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds all .glsl files under <shaderPath>.
|
|
3
|
+
* @param shaderPath - The path to the shaders to watch
|
|
4
|
+
* @param importPath - The path to import the converted shaders
|
|
5
|
+
* @example node buildShaders.js <shaderPath> <importPath>
|
|
6
|
+
*/
|
|
7
|
+
import { convertShaders } from "./shaderConverter.js";
|
|
8
|
+
const externalArguments = process.argv.slice(2);
|
|
9
|
+
if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
|
|
10
|
+
convertShaders(externalArguments[0], externalArguments[1]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=buildShaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/buildShaders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Converts a single shader
|
|
3
|
+
* @param fragmentShaderPath - The path to the fragment file for the shader
|
|
4
|
+
* @param importPath - The path to import the ShaderProgram type from
|
|
5
|
+
*/
|
|
6
|
+
export declare function convertShader(fragmentShaderPath: string, importPath: string): void;
|
|
7
|
+
/**
|
|
8
|
+
* Converts .fragment.glsl and vertex.glsl file pairs into .shader.ts files which export a ShaderProgram object.
|
|
9
|
+
* @param shaderPath - The path to the .glsl files to convert.
|
|
10
|
+
* @param importPath - The path to import the ShaderProgram type from.
|
|
11
|
+
*/
|
|
12
|
+
export declare function convertShaders(shaderPath: string, importPath: string): void;
|
|
2
13
|
//# sourceMappingURL=shaderConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaderConverter.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"shaderConverter.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"AA4DA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CA2DlF;AAyPD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAapE"}
|
|
@@ -55,7 +55,7 @@ const GetFunctionNamesRegEx = /\S*\w+\s+(\w+)\s*\(/g;
|
|
|
55
55
|
* @param fragmentShaderPath - The path to the fragment file for the shader
|
|
56
56
|
* @param importPath - The path to import the ShaderProgram type from
|
|
57
57
|
*/
|
|
58
|
-
function convertShader(fragmentShaderPath, importPath) {
|
|
58
|
+
export function convertShader(fragmentShaderPath, importPath) {
|
|
59
59
|
console.log(`Processing fragment shader: ${fragmentShaderPath}`);
|
|
60
60
|
// See if there is a corresponding vertex shader
|
|
61
61
|
let vertexShader = undefined;
|
|
@@ -119,8 +119,8 @@ function processFragmentShaderV1(fragmentShader) {
|
|
|
119
119
|
const symbolsToDecorate = [...uniforms, ...consts, ...functionNames];
|
|
120
120
|
let fragmentShaderWithRenamedSymbols = fragmentShader;
|
|
121
121
|
for (const symbol of symbolsToDecorate) {
|
|
122
|
-
const regex = new RegExp(`(
|
|
123
|
-
fragmentShaderWithRenamedSymbols = fragmentShaderWithRenamedSymbols.replace(regex,
|
|
122
|
+
const regex = new RegExp(`(?<=\\W+)${symbol}(?=\\W+)`, "gs");
|
|
123
|
+
fragmentShaderWithRenamedSymbols = fragmentShaderWithRenamedSymbols.replace(regex, `_${symbol}_`);
|
|
124
124
|
}
|
|
125
125
|
console.log(`${symbolsToDecorate.length} symbol(s) renamed`);
|
|
126
126
|
const uniformNames = uniforms.map((uniform) => `${uniform}: "${uniform}",`);
|
|
@@ -259,7 +259,7 @@ function removeFunctionBodies(input) {
|
|
|
259
259
|
* @param shaderPath - The path to the .glsl files to convert.
|
|
260
260
|
* @param importPath - The path to import the ShaderProgram type from.
|
|
261
261
|
*/
|
|
262
|
-
function convertShaders(shaderPath, importPath) {
|
|
262
|
+
export function convertShaders(shaderPath, importPath) {
|
|
263
263
|
// Get all files in the path
|
|
264
264
|
const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
|
|
265
265
|
// Find all fragment shaders (excluding the template)
|
|
@@ -269,9 +269,5 @@ function convertShaders(shaderPath, importPath) {
|
|
|
269
269
|
convertShader(path.join(fragmentShaderFile.path, fragmentShaderFile.name), importPath);
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
|
-
const externalArguments = process.argv.slice(2);
|
|
273
|
-
if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
|
|
274
|
-
convertShaders(externalArguments[0], externalArguments[1]);
|
|
275
|
-
}
|
|
276
272
|
// TODO: simple copy from shader file to .ts, get it to build (including import trick)
|
|
277
273
|
//# sourceMappingURL=shaderConverter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaderConverter.js","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAC9C,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAC9B,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAC5C,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC,MAAM,cAAc,GAAG;mBACJ,YAAY,KAAK,CAAC;AAErC,MAAM,gBAAgB,GAAG;;yBAEA,aAAa;;EAEpC,aAAa;;eAEA,CAAC;AAEhB,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,MAAM,cAAc,GAAG,uCAAuC,gBAAgB;;;;;;cAMhE,aAAa;;qBAEN,QAAQ;yCACY,eAAe;6BAC3B,eAAe;6BACf,kBAAkB;sBACzB,SAAS;;;;;;;;;;EAU7B,aAAa;;CAEd,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"shaderConverter.js","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watches all .glsl files under <shaderPath> and rebuilds them when changed.
|
|
3
|
+
* @param shaderPath - The path to the shaders to watch
|
|
4
|
+
* @param importPath - The path to import the converted shaders
|
|
5
|
+
* @example node watchShaders.js <shaderPath> <importPath>
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=watchShaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchShaders.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/watchShaders.ts"],"names":[],"mappings":"AACA;;;;;GAKG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
/**
|
|
3
|
+
* Watches all .glsl files under <shaderPath> and rebuilds them when changed.
|
|
4
|
+
* @param shaderPath - The path to the shaders to watch
|
|
5
|
+
* @param importPath - The path to import the converted shaders
|
|
6
|
+
* @example node watchShaders.js <shaderPath> <importPath>
|
|
7
|
+
*/
|
|
8
|
+
import { convertShader } from "./shaderConverter.js";
|
|
9
|
+
import { watch } from "chokidar";
|
|
10
|
+
import { extname } from "path";
|
|
11
|
+
const externalArguments = process.argv.slice(2);
|
|
12
|
+
if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
|
|
13
|
+
const shaderPath = externalArguments[0];
|
|
14
|
+
const importPath = externalArguments[1];
|
|
15
|
+
watch(shaderPath).on("all", (event, file) => {
|
|
16
|
+
// Only process file changes and added files
|
|
17
|
+
if (event !== "change" && event !== "add") {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// Only process .glsl files
|
|
21
|
+
if (extname(file) !== ".glsl") {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Wrap in try-catch to prevent the watcher from crashing
|
|
25
|
+
// if the new shader changes are invalid
|
|
26
|
+
try {
|
|
27
|
+
convertShader(file, importPath);
|
|
28
|
+
console.log(`Successfully updated shader ${file}`);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error(`Failed to convert shader ${file}: ${error}`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
console.log(`Watching for shader changes in ${shaderPath}`);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=watchShaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/watchShaders.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAExC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACxC,4CAA4C;QAC5C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,yDAAyD;QACzD,wCAAwC;QACxC,IAAI,CAAC;YACD,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWrapper";
|
|
2
|
+
import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture";
|
|
3
|
+
import type { Nullable } from "@babylonjs/core/types";
|
|
4
|
+
import type { BaseBlock } from "../blocks/baseBlock";
|
|
5
|
+
import type { ShaderRuntime } from "../runtime/shaderRuntime";
|
|
6
|
+
import type { InternalSmartFilterRuntime } from "../runtime/smartFilterRuntime";
|
|
7
|
+
/**
|
|
8
|
+
* Tries to get a renderTarget from a renderTargetTexture, throws an error if it fails.
|
|
9
|
+
* @param renderTargetTexture - The renderTargetTexture to get the renderTarget from.
|
|
10
|
+
* @param callerName - The name of the component calling this one, used for a more descriptive error message.
|
|
11
|
+
* @returns - The renderTarget or throws an Error if it fails.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getRenderTarget(renderTargetTexture: Nullable<ThinRenderTargetTexture>, callerName: string): RenderTargetWrapper;
|
|
14
|
+
/**
|
|
15
|
+
* Registers the final command of the command queue - the one that draws to either the canvas or
|
|
16
|
+
* renderTargetTexture.
|
|
17
|
+
* @param renderTargetTexture - If non-null, the render target texture to render to, otherwise the command will
|
|
18
|
+
* render to the canvas.
|
|
19
|
+
* @param runtime - The smart filter runtime to use.
|
|
20
|
+
* @param commandOwner - The owner of the command.
|
|
21
|
+
* @param shaderBlockRuntime - The shader block runtime to use.
|
|
22
|
+
*/
|
|
23
|
+
export declare function registerFinalRenderCommand(renderTargetTexture: Nullable<ThinRenderTargetTexture>, runtime: InternalSmartFilterRuntime, commandOwner: BaseBlock, shaderBlockRuntime: ShaderRuntime): void;
|
|
24
|
+
//# sourceMappingURL=renderTargetUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTargetUtils.d.ts","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AAC1G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACtD,UAAU,EAAE,MAAM,GACnB,mBAAmB,CAMrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACtD,OAAO,EAAE,0BAA0B,EACnC,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,aAAa,GAClC,IAAI,CAgBN"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createCommand } from "../command/command.js";
|
|
2
|
+
/**
|
|
3
|
+
* Tries to get a renderTarget from a renderTargetTexture, throws an error if it fails.
|
|
4
|
+
* @param renderTargetTexture - The renderTargetTexture to get the renderTarget from.
|
|
5
|
+
* @param callerName - The name of the component calling this one, used for a more descriptive error message.
|
|
6
|
+
* @returns - The renderTarget or throws an Error if it fails.
|
|
7
|
+
*/
|
|
8
|
+
export function getRenderTarget(renderTargetTexture, callerName) {
|
|
9
|
+
const renderTarget = renderTargetTexture === null || renderTargetTexture === void 0 ? void 0 : renderTargetTexture.renderTarget;
|
|
10
|
+
if (!renderTarget) {
|
|
11
|
+
throw new Error(`${callerName} could not get a renderTarget it needed.`);
|
|
12
|
+
}
|
|
13
|
+
return renderTarget;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Registers the final command of the command queue - the one that draws to either the canvas or
|
|
17
|
+
* renderTargetTexture.
|
|
18
|
+
* @param renderTargetTexture - If non-null, the render target texture to render to, otherwise the command will
|
|
19
|
+
* render to the canvas.
|
|
20
|
+
* @param runtime - The smart filter runtime to use.
|
|
21
|
+
* @param commandOwner - The owner of the command.
|
|
22
|
+
* @param shaderBlockRuntime - The shader block runtime to use.
|
|
23
|
+
*/
|
|
24
|
+
export function registerFinalRenderCommand(renderTargetTexture, runtime, commandOwner, shaderBlockRuntime) {
|
|
25
|
+
const commandOwnerClassName = commandOwner.getClassName();
|
|
26
|
+
if (renderTargetTexture) {
|
|
27
|
+
const renderTarget = getRenderTarget(renderTargetTexture, commandOwnerClassName);
|
|
28
|
+
runtime.registerCommand(createCommand(`${commandOwnerClassName}.renderToFinalTexture`, commandOwner, () => {
|
|
29
|
+
shaderBlockRuntime.renderToTexture(renderTarget);
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
runtime.registerCommand(createCommand(`${commandOwnerClassName}.renderToCanvas`, commandOwner, () => {
|
|
34
|
+
shaderBlockRuntime.renderToCanvas();
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=renderTargetUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderTargetUtils.js","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC3B,mBAAsD,EACtD,UAAkB;IAElB,MAAM,YAAY,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,YAAY,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACtC,mBAAsD,EACtD,OAAmC,EACnC,YAAuB,EACvB,kBAAiC;IAEjC,MAAM,qBAAqB,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;IAC1D,IAAI,mBAAmB,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,eAAe,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;QACjF,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,uBAAuB,EAAE,YAAY,EAAE,GAAG,EAAE;YAC9E,kBAAkB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CACL,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE;YACxE,kBAAkB,CAAC,cAAc,EAAE,CAAC;QACxC,CAAC,CAAC,CACL,CAAC;IACN,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjs/smart-filters",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4-alpha",
|
|
4
4
|
"description": "Babylon.js Smart Filter core",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Sebastien VANDENBERGHE"
|
|
@@ -43,8 +43,10 @@
|
|
|
43
43
|
"build": "npm run build:buildTools && npm run build:runTools && npm run build:core",
|
|
44
44
|
"build:core": "tsc -p ./tsconfig.build.json",
|
|
45
45
|
"build:buildTools": "tsc -p ./tsconfig.buildTools.build.json",
|
|
46
|
-
"build:runTools": "node buildTools/
|
|
47
|
-
"watch": "
|
|
46
|
+
"build:runTools": "node buildTools/buildShaders.js ./src/blocks ../utils/shaderCodeUtils",
|
|
47
|
+
"watch": "concurrently \"npm run watch:core\" \"npm run watch:shaders\"",
|
|
48
|
+
"watch:core": "tsc -p ./tsconfig.build.json --watch",
|
|
49
|
+
"watch:shaders": "node buildTools/watchShaders.js ./src/blocks ../utils/shaderCodeUtils",
|
|
48
50
|
"test": "echo \"Error: run test from the root of the monorepo\" && exit 1"
|
|
49
51
|
},
|
|
50
52
|
"peerDependencies": {
|
|
@@ -3,47 +3,46 @@ import type { SerializedInputBlockData } from "./inputBlock.serialization.types.
|
|
|
3
3
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
4
|
import type { SmartFilter } from "../smartFilter.js";
|
|
5
5
|
import type { ISerializedBlockV1 } from "../serialization/v1/serialization.types.js";
|
|
6
|
-
|
|
7
|
-
import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine.js";
|
|
8
|
-
import type { Nullable } from "@babylonjs/core/types.js";
|
|
9
|
-
import type { ThinTexture } from "@babylonjs/core/Materials/Textures/thinTexture.js";
|
|
6
|
+
|
|
10
7
|
/**
|
|
11
8
|
* V1 Input Block Deserializer
|
|
12
9
|
* @param smartFilter - The SmartFilter to deserialize the block into
|
|
13
10
|
* @param serializedBlock - The serialized block data
|
|
14
|
-
* @param engine - The ThinEngine to use for loading textures
|
|
15
11
|
* @returns A deserialized InputBlock
|
|
16
12
|
*/
|
|
17
|
-
export function inputBlockDeserializer(
|
|
18
|
-
smartFilter: SmartFilter,
|
|
19
|
-
serializedBlock: ISerializedBlockV1,
|
|
20
|
-
engine: ThinEngine
|
|
21
|
-
) {
|
|
13
|
+
export function inputBlockDeserializer(smartFilter: SmartFilter, serializedBlock: ISerializedBlockV1) {
|
|
22
14
|
const blockData = serializedBlock.data as SerializedInputBlockData;
|
|
23
15
|
|
|
24
16
|
switch (blockData.inputType) {
|
|
25
17
|
case ConnectionPointType.Boolean:
|
|
26
18
|
return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Boolean, blockData.value);
|
|
27
|
-
case ConnectionPointType.Float:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
|
|
19
|
+
case ConnectionPointType.Float: {
|
|
20
|
+
const inputBlock = new InputBlock(
|
|
21
|
+
smartFilter,
|
|
22
|
+
serializedBlock.name,
|
|
23
|
+
ConnectionPointType.Float,
|
|
24
|
+
blockData.value
|
|
25
|
+
);
|
|
26
|
+
if (blockData.animationType) {
|
|
27
|
+
inputBlock.editorData = {
|
|
28
|
+
animationType: blockData.animationType,
|
|
29
|
+
valueDeltaPerMs: blockData.valueDeltaPerMs,
|
|
30
|
+
};
|
|
36
31
|
}
|
|
37
|
-
|
|
32
|
+
return inputBlock;
|
|
33
|
+
}
|
|
34
|
+
case ConnectionPointType.Texture: {
|
|
38
35
|
// Create the input block
|
|
39
|
-
const inputBlock = new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Texture,
|
|
36
|
+
const inputBlock = new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Texture, null);
|
|
40
37
|
|
|
41
38
|
// If editor data was serialized, set it on the deserialized block
|
|
42
39
|
inputBlock.editorData = {
|
|
43
40
|
url: blockData.url,
|
|
41
|
+
urlTypeHint: blockData.urlTypeHint,
|
|
44
42
|
anisotropicFilteringLevel: blockData.anisotropicFilteringLevel,
|
|
45
43
|
flipY: blockData.flipY,
|
|
46
44
|
forcedExtension: blockData.forcedExtension,
|
|
45
|
+
dispose: null,
|
|
47
46
|
};
|
|
48
47
|
|
|
49
48
|
return inputBlock;
|
|
@@ -12,6 +12,12 @@ export type TextureInputBlockData = {
|
|
|
12
12
|
/** The URL, if available, of the texture */
|
|
13
13
|
url: Nullable<string>;
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* If supplied, gives a hint as to which type of texture the URL points to.
|
|
17
|
+
* Default is assumed to be "image"
|
|
18
|
+
*/
|
|
19
|
+
urlTypeHint: Nullable<"image" | "video">;
|
|
20
|
+
|
|
15
21
|
/**
|
|
16
22
|
* Defines the anisotropic level to use, or default if null
|
|
17
23
|
*/
|
|
@@ -48,6 +54,16 @@ export type FloatInputBlockData = {
|
|
|
48
54
|
|
|
49
55
|
/** The value of the input block */
|
|
50
56
|
value: number;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* If supplied, how this should be animated by the editor. Will not affect runtime behavior.
|
|
60
|
+
*/
|
|
61
|
+
animationType: Nullable<"time">;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* If supplied, the amount to change the value per millisecond when animating.
|
|
65
|
+
*/
|
|
66
|
+
valueDeltaPerMs: Nullable<number>;
|
|
51
67
|
};
|
|
52
68
|
|
|
53
69
|
/**
|
|
@@ -43,9 +43,16 @@ function serializeInputBlockData(inputBlock: InputBlockBase): SerializedInputBlo
|
|
|
43
43
|
function serializeTextureInputBlock(inputBlock: InputBlock<ConnectionPointType.Texture>): TextureInputBlockData {
|
|
44
44
|
const internalTexture = inputBlock.runtimeValue.value?.getInternalTexture();
|
|
45
45
|
const forcedExtension = internalTexture?._extension ?? null;
|
|
46
|
+
|
|
47
|
+
let url = internalTexture?.url ?? null;
|
|
48
|
+
if (url === "" || !url) {
|
|
49
|
+
url = inputBlock.editorData?.url ?? null;
|
|
50
|
+
}
|
|
51
|
+
|
|
46
52
|
return {
|
|
47
53
|
inputType: ConnectionPointType.Texture,
|
|
48
|
-
url
|
|
54
|
+
url,
|
|
55
|
+
urlTypeHint: inputBlock.editorData?.urlTypeHint ?? null,
|
|
49
56
|
flipY: internalTexture?.invertY ?? null,
|
|
50
57
|
anisotropicFilteringLevel: internalTexture?.anisotropicFilteringLevel ?? null,
|
|
51
58
|
forcedExtension: forcedExtension !== "" ? forcedExtension : null,
|
|
@@ -73,6 +80,8 @@ function serializeFloatInputBlock(inputBlock: InputBlock<ConnectionPointType.Flo
|
|
|
73
80
|
return {
|
|
74
81
|
inputType: ConnectionPointType.Float,
|
|
75
82
|
value: inputBlock.runtimeValue.value,
|
|
83
|
+
animationType: inputBlock.editorData?.animationType ?? null,
|
|
84
|
+
valueDeltaPerMs: inputBlock.editorData?.valueDeltaPerMs ?? null,
|
|
76
85
|
};
|
|
77
86
|
}
|
|
78
87
|
|
package/src/blocks/inputBlock.ts
CHANGED
|
@@ -63,6 +63,12 @@ export type InputBlockEditorData<T extends ConnectionPointType> = T extends Conn
|
|
|
63
63
|
*/
|
|
64
64
|
url: Nullable<string>;
|
|
65
65
|
|
|
66
|
+
/**
|
|
67
|
+
* If supplied, gives a hint as to which type of texture the URL points to.
|
|
68
|
+
* Default is assumed to be "image"
|
|
69
|
+
*/
|
|
70
|
+
urlTypeHint: Nullable<"image" | "video">;
|
|
71
|
+
|
|
66
72
|
/**
|
|
67
73
|
* The anisotropic filtering level of the texture, or default if null.
|
|
68
74
|
*/
|
|
@@ -77,8 +83,26 @@ export type InputBlockEditorData<T extends ConnectionPointType> = T extends Conn
|
|
|
77
83
|
* The file extension to use, or default if null.
|
|
78
84
|
*/
|
|
79
85
|
forcedExtension: Nullable<string>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Method to call to dispose of the texture - used in Editor scenarios when changing the texture.
|
|
89
|
+
* Not to be represented in serialized smart filters.
|
|
90
|
+
*/
|
|
91
|
+
dispose: Nullable<() => void>;
|
|
80
92
|
}
|
|
81
|
-
:
|
|
93
|
+
: T extends ConnectionPointType.Float
|
|
94
|
+
? {
|
|
95
|
+
/**
|
|
96
|
+
* If supplied, how this should be animated by the editor. Will not affect runtime behavior.
|
|
97
|
+
*/
|
|
98
|
+
animationType: Nullable<"time">;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* If supplied, the amount to change the value per millisecond when animating.
|
|
102
|
+
*/
|
|
103
|
+
valueDeltaPerMs: Nullable<number>;
|
|
104
|
+
}
|
|
105
|
+
: {};
|
|
82
106
|
|
|
83
107
|
/**
|
|
84
108
|
* This represents any inputs used in the graph.
|