@aislamov/onnxruntime-web64
Version:
A Javascript library for running ONNX models on browsers
46 lines (43 loc) • 1.39 kB
text/typescript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import {GlslContext, GlslLib, GlslLibRoutine} from './glsl-definitions';
import {getGlsl} from './glsl-source';
/**
* This GLSL library handles routines around reading a texlet and writing to it
* Reading and writing could be more than just dealing with one channel
* It may require encoding/decoding to/from 4 channels into one
*/
export class FragColorGlslLib extends GlslLib {
constructor(context: GlslContext) {
super(context);
}
getFunctions(): {[name: string]: GlslLibRoutine} {
return {...this.setFragColor(), ...this.getColorAsFloat()};
}
getCustomTypes(): {[name: string]: string} {
return {};
}
protected setFragColor(): {[name: string]: GlslLibRoutine} {
const glsl = getGlsl(this.context.glContext.version);
return {
setFragColor: new GlslLibRoutine(
`
void setFragColor(float value) {
${glsl.output} = encode(value);
}
`,
['encoding.encode'])
};
}
protected getColorAsFloat(): {[name: string]: GlslLibRoutine} {
return {
getColorAsFloat: new GlslLibRoutine(
`
float getColorAsFloat(vec4 color) {
return decode(color);
}
`,
['encoding.decode'])
};
}
}