DiscardNode.js 800 B

12345678910111213141516171819202122232425262728
  1. import CondNode from '../math/CondNode.js';
  2. import { expression } from '../code/ExpressionNode.js';
  3. import { addNodeClass } from '../core/Node.js';
  4. import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
  5. let discardExpression;
  6. class DiscardNode extends CondNode {
  7. constructor( condNode ) {
  8. discardExpression = discardExpression || expression( 'discard' );
  9. super( condNode, discardExpression );
  10. }
  11. }
  12. export default DiscardNode;
  13. export const inlineDiscard = nodeProxy( DiscardNode );
  14. export const discard = ( condNode ) => inlineDiscard( condNode ).append();
  15. export const Return = () => expression( 'return' ).append();
  16. addNodeElement( 'discard', discard ); // @TODO: Check... this cause a little confusing using in chaining
  17. addNodeClass( 'DiscardNode', DiscardNode );