UNPKG

molstar

Version:

A comprehensive macromolecular library.

53 lines (52 loc) 2.55 kB
/** * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { Textures } from './texture'; import { WebGLContext } from './context'; import { ShaderCode } from '../shader-code'; import { Program } from './program'; import { RenderableSchema, RenderableValues } from '../renderable/schema'; export declare type DrawMode = 'points' | 'lines' | 'line-strip' | 'line-loop' | 'triangles' | 'triangle-strip' | 'triangle-fan'; export declare function getDrawMode(ctx: WebGLContext, drawMode: DrawMode): number; export interface RenderItem<T extends string> { readonly id: number; readonly materialId: number; getProgram: (variant: T) => Program; render: (variant: T, sharedTexturesList?: Textures) => void; update: () => Readonly<ValueChanges>; destroy: () => void; } declare const GraphicsRenderVariant: { colorBlended: string; colorWboit: string; pickObject: string; pickInstance: string; pickGroup: string; depth: string; markingDepth: string; markingMask: string; }; export declare type GraphicsRenderVariant = keyof typeof GraphicsRenderVariant; declare const ComputeRenderVariant: { compute: string; }; export declare type ComputeRenderVariant = keyof typeof ComputeRenderVariant; interface ValueChanges { attributes: boolean; defines: boolean; elements: boolean; textures: boolean; } export declare type GraphicsRenderItem = RenderItem<GraphicsRenderVariant>; export declare function createGraphicsRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId: number): RenderItem<"depth" | "colorBlended" | "colorWboit" | "pickObject" | "pickInstance" | "pickGroup" | "markingDepth" | "markingMask">; export declare type ComputeRenderItem = RenderItem<ComputeRenderVariant>; export declare function createComputeRenderItem(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId?: number): RenderItem<"compute">; /** * Creates a render item * * - assumes that `values.drawCount` and `values.instanceCount` exist */ export declare function createRenderItem<T extends string>(ctx: WebGLContext, drawMode: DrawMode, shaderCode: ShaderCode, schema: RenderableSchema, values: RenderableValues, materialId: number, renderVariants: T[]): RenderItem<T>; export {};