UNPKG

molstar

Version:

A comprehensive macromolecular library.

33 lines (32 loc) 1.39 kB
/** * 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 {};