UNPKG

three

Version:

JavaScript 3D library

41 lines (22 loc) 732 B
import Node from '../core/Node.js'; import { nodeProxy } from '../tsl/TSLCore.js'; class BarrierNode extends Node { constructor( scope ) { super(); this.scope = scope; } generate( builder ) { const { scope } = this; const { renderer } = builder; if ( renderer.backend.isWebGLBackend === true ) { builder.addFlowCode( `\t// ${scope}Barrier \n` ); } else { builder.addLineFlowCode( `${scope}Barrier()`, this ); } } } export default BarrierNode; const barrier = nodeProxy( BarrierNode ); export const workgroupBarrier = () => barrier( 'workgroup' ).append(); export const storageBarrier = () => barrier( 'storage' ).append(); export const textureBarrier = () => barrier( 'texture' ).append();