molstar
Version:
A comprehensive macromolecular library.
40 lines (39 loc) • 1.67 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 { Program } from './webgl/program';
import { RenderableValues, Values, RenderableSchema, BaseValues } from './renderable/schema';
import { GraphicsRenderItem, ComputeRenderItem, GraphicsRenderVariant } from './webgl/render-item';
import { Textures } from './webgl/texture';
export declare type RenderableState = {
disposed: boolean;
visible: boolean;
alphaFactor: number;
pickable: boolean;
colorOnly: boolean;
opaque: boolean;
writeDepth: boolean;
noClip: boolean;
};
export interface Renderable<T extends RenderableValues> {
readonly id: number;
readonly materialId: number;
readonly values: T;
readonly state: RenderableState;
render: (variant: GraphicsRenderVariant, sharedTexturesList?: Textures) => void;
getProgram: (variant: GraphicsRenderVariant) => Program;
update: () => void;
dispose: () => void;
}
export declare function createRenderable<T extends Values<RenderableSchema>>(renderItem: GraphicsRenderItem, values: T, state: RenderableState): Renderable<T>;
export declare type GraphicsRenderable = Renderable<RenderableValues & BaseValues>;
export interface ComputeRenderable<T extends RenderableValues> {
readonly id: number;
readonly values: T;
render: () => void;
update: () => void;
dispose: () => void;
}
export declare function createComputeRenderable<T extends Values<RenderableSchema>>(renderItem: ComputeRenderItem, values: T): ComputeRenderable<T>;