onnxruntime
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4import { getGlChannels } from '../utils';5
6export function getVecChannels(name: string, rank: number): string[] {7return getGlChannels(rank).map((d) => `${name}.${d}`);8}
9
10export function getChannels(name: string, rank: number): string[] {11if (rank === 1) {12return [name];13}14return getVecChannels(name, rank);15}
16
17export function unpackFromChannel(): string {18return `19float getChannel(vec4 frag, int dim) {
20int modCoord = imod(dim, 2);
21return modCoord == 0 ? frag.r : frag.g;
22}
23
24float getChannel(vec4 frag, vec2 innerDims) {
25vec2 modCoord = mod(innerDims, 2.);
26return modCoord.x == 0. ?
27(modCoord.y == 0. ? frag.r : frag.g) :
28(modCoord.y == 0. ? frag.b : frag.a);
29}
30`;31}
32