@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
124 lines • 3.21 kB
TypeScript
/**
* 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