UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

124 lines 3.21 kB
/** * Based on the Frostbite's GDC paper "FrameGraph: Extensible Rendering Architecture in Frostbite" by Yuriy O'Donnell * @see https://github.com/skaarj1989/FrameGraph */ export class RenderGraph { /** * * @param {string} name */ constructor(name?: string); /** * Human-readable name, used for debugging and UI primarily. * There is no uniqueness guarantee * @type {string} */ name: string; /** * * @type {RenderPassNode[]} * @private */ private __pass_nodes; /** * * @type {ResourceNode[]} * @private */ private __resource_nodes; /** * * @type {ResourceEntry[]} * @private */ private __resource_registry; /** * * @param {number} id Resource Node ID * @returns {ResourceEntry} */ getResourceEntry(id: number): ResourceEntry<any>; /** * * @param {number} id * @returns {ResourceNode} */ getResourceNode(id: number): ResourceNode<any>; /** * @template T * @param {number} id resource ID * @returns {T} */ getDescriptor<T>(id: number): T; /** * @template T * @param {string} name * @param {T} descriptor */ create_resource<T>(name: string, descriptor: T): number; /** * @template T * @param {T} descriptor * @return {ResourceEntry} * @private */ private _createResourceEntry; /** * * @param {string} name * @param {number} resource_id * @return {ResourceNode} * @private */ private _createResourceNode; /** * * @param {number} res * @returns {number} */ clone_resource(res: number): number; /** * @template T * @param {string} name * @param {ResourceDescriptor<T>} description * @param {T} resource * @returns {number} */ import_resource<T>(name: string, description: ResourceDescriptor<T>, resource: T): number; /** * @returns {boolean} * @param id */ is_valid_resource(id: any): boolean; /** * @template T * @param {string} name * @param {T} data * @param {function(data:T, resources: RenderPassResources, context:IRenderContext):void} execute * @returns {RenderGraphBuilder} */ add<T>(name: string, data: T, execute: any): RenderGraphBuilder; /** * Perform validation, useful for debugging * Typically done before compilation * @param {function(problem:string):*} problem_consumer * @param {*} [problem_consumer_context] thisArg for `problem_consumer` * @returns {boolean} */ validate(problem_consumer: any, problem_consumer_context?: any): boolean; compile(): void; /** * * @param {IRenderContext} context */ execute(context: IRenderContext): void; /** * @see https://en.wikipedia.org/wiki/DOT_(graph_description_language) * @return {string} */ exportToDot(): string; } import { ResourceEntry } from "./ResourceEntry.js"; import { ResourceNode } from "./ResourceNode.js"; import { RenderGraphBuilder } from "./RenderGraphBuilder.js"; //# sourceMappingURL=RenderGraph.d.ts.map