diff options
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/expression/binary/binary.ts')
-rw-r--r-- | dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/expression/binary/binary.ts | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/expression/binary/binary.ts b/dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/expression/binary/binary.ts new file mode 100644 index 0000000000..f0b01b839b --- /dev/null +++ b/dom/webgpu/tests/cts/checkout/src/webgpu/shader/execution/expression/binary/binary.ts @@ -0,0 +1,21 @@ +import { + ShaderBuilder, + basicExpressionBuilder, + compoundAssignmentBuilder, + abstractFloatShaderBuilder, +} from '../expression.js'; + +/* @returns a ShaderBuilder that evaluates a binary operation */ +export function binary(op: string): ShaderBuilder { + return basicExpressionBuilder(values => `(${values.map(v => `(${v})`).join(op)})`); +} + +/* @returns a ShaderBuilder that evaluates a compound binary operation */ +export function compoundBinary(op: string): ShaderBuilder { + return compoundAssignmentBuilder(op); +} + +/* @returns a ShaderBuilder that evaluates a binary operation that returns AbstractFloats */ +export function abstractBinary(op: string): ShaderBuilder { + return abstractFloatShaderBuilder(values => `(${values.map(v => `(${v})`).join(op)})`); +} |