molstar
Version:
A comprehensive macromolecular library.
46 lines (45 loc) • 1.76 kB
TypeScript
/**
* Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { Mat3, Mat4, Vec2, Vec3, Vec4 } from '../../mol-math/linear-algebra';
import { ValueCell } from '../../mol-util';
import { GLRenderingContext } from './compat';
import { RenderableSchema } from '../../mol-gl/renderable/schema';
import { ValueOf } from '../../mol-util/type-helpers';
export declare type UniformKindValue = {
'b': boolean;
'b[]': boolean[];
'f': number;
'f[]': number[];
'i': number;
'i[]': number[];
'v2': Vec2;
'v2[]': number[];
'v3': Vec3;
'v3[]': number[];
'v4': Vec4;
'v4[]': number[];
'm3': Mat3;
'm3[]': number[];
'm4': Mat4;
'm4[]': number[];
't': number;
't[]': number[];
};
export declare type UniformKind = keyof UniformKindValue;
export declare type UniformType = ValueOf<UniformKindValue>;
export declare type UniformValues = {
[k: string]: ValueCell<UniformType>;
};
export declare type UniformsList = [string, ValueCell<UniformType>][];
export declare function getUniformType(gl: GLRenderingContext, kind: UniformKind): number | undefined;
export declare type UniformSetter = (gl: GLRenderingContext, location: number, value: any) => void;
export declare type UniformSetters = {
[k: string]: UniformSetter;
};
export declare function getUniformSetters(schema: RenderableSchema): UniformSetters;
export declare function getUniformGlslType(kind: UniformKind): string;
export declare function isUniformValueScalar(kind: UniformKind): boolean;
export declare function cloneUniformValues(uniformValues: UniformValues): UniformValues;