nanogl-pbr
Version:
pbr material for nanogl
29 lines (28 loc) • 1.01 kB
TypeScript
import Program from 'nanogl/program';
import ChunksTree from './ChunkCollection';
import ChunksSlots from './ChunksSlots';
export default abstract class Chunk {
private _lists;
protected _hasCode: boolean;
protected _hasSetup: boolean;
protected _invalid: boolean;
protected _ref: this | null;
protected _children: Chunk[];
constructor(hasCode?: boolean, hasSetup?: boolean);
collectChunks(all: Set<Chunk>, actives: Set<Chunk>): void;
detectCyclicDependency(chunk: Chunk): boolean;
addChild<T extends Chunk>(child: T): T;
removeChild(child: Chunk): void;
genCode(slots: ChunksSlots): void;
get hasCode(): boolean;
get hasSetup(): boolean;
get isInvalid(): boolean;
protected abstract _genCode(slots: ChunksSlots): void;
setup(prg: Program): void;
addList(list: ChunksTree): void;
removeList(list: ChunksTree): void;
invalidateList(): void;
invalidateCode(): void;
proxy(ref?: this | null): void;
createProxy(): Chunk;
}