molstar
Version:
A comprehensive macromolecular library.
33 lines (32 loc) • 1.39 kB
TypeScript
/**
* Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ShaderCode, DefineValues } from '../shader-code';
import { WebGLState } from './state';
import { WebGLExtensions } from './extensions';
import { UniformsList } from './uniform';
import { AttributeBuffers } from './buffer';
import { Textures } from './texture';
import { RenderableSchema } from '../renderable/schema';
import { GLRenderingContext } from './compat';
import { ShaderType, Shader } from './shader';
export interface Program {
readonly id: number;
use: () => void;
setUniforms: (uniformValues: UniformsList) => void;
bindAttributes: (attribueBuffers: AttributeBuffers) => void;
bindTextures: (textures: Textures, startingTargetUnit: number) => void;
reset: () => void;
destroy: () => void;
}
export interface ProgramProps {
defineValues: DefineValues;
shaderCode: ShaderCode;
schema: RenderableSchema;
}
export declare function getProgram(gl: GLRenderingContext): WebGLProgram;
declare type ShaderGetter = (type: ShaderType, source: string) => Shader;
export declare function createProgram(gl: GLRenderingContext, state: WebGLState, extensions: WebGLExtensions, getShader: ShaderGetter, props: ProgramProps): Program;
export {};