Skip to content

Commit 98992f7

Browse files
committed
TSL: Introduce after and before
1 parent 677d83f commit 98992f7

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/nodes/Nodes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export { default as VaryingNode, varying } from './core/VaryingNode.js';
3535
export { default as OutputStructNode, outputStruct } from './core/OutputStructNode.js';
3636
export { default as MRTNode, mrt } from './core/MRTNode.js';
3737
export { default as NodeHandler } from './core/NodeHandler.js';
38+
export { default as AfterNode, after, before } from './utils/AfterNode.js';
3839

3940
import * as NodeUtils from './core/NodeUtils.js';
4041
export { NodeUtils };

src/nodes/utils/AfterNode.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import Node from '../core/Node.js';
2+
import { nodeProxy, addNodeElement } from '../shadernode/ShaderNode.js';
3+
4+
class AfterNode extends Node {
5+
6+
constructor( node, afterNode ) {
7+
8+
super( 'void' );
9+
10+
this.node = node;
11+
this.afterNode = afterNode;
12+
13+
}
14+
15+
getNodeType( builder ) {
16+
17+
return this.afterNode.getNodeType( builder );
18+
19+
}
20+
21+
setup( builder ) {
22+
23+
this.node.build( builder );
24+
25+
return this.afterNode;
26+
27+
}
28+
29+
}
30+
31+
export const after = nodeProxy( AfterNode );
32+
export const before = ( node, afterNode ) => after( afterNode, node );
33+
34+
addNodeElement( 'after', after );
35+
addNodeElement( 'before', before );
36+
37+
export default AfterNode;
38+

0 commit comments

Comments
 (0)