import ByteArray from "openfl/utils/ByteArray"; import Context3D from "openfl/display3D/Context3D"; declare namespace starling.rendering { /** * A Program represents a pair of a fragment- and vertex-shader. * * * *

This class is a convenient replacement for Stage3Ds "Program3D" class. Its main * * advantage is that it survives a context loss; furthermore, it makes it simple to * * create a program from AGAL source without having to deal with the assembler.

* * * *

It is recommended to store programs in Starling's "Painter" instance via the methods * * registerProgram and getProgram. That way, your programs may * * be shared among different display objects or even Starling instances.

* * * * @see Painter * */ export class Program { /** * Creates a program from the given AGAL (Adobe Graphics Assembly Language) bytecode. */ constructor(vertexShader: ByteArray, fragmentShader: ByteArray); /** * Creates a new Program instance from AGAL assembly language. */ static fromSource(vertexShader: string, fragmentShader: string, agalVersion?: number, ignoreLimits?: boolean): Program; /** * Disposes the internal Program3D instance. */ dispose(): void; /** * Activates the program on the given context. If you don't pass a context, the current * * Starling context will be used. */ activate(context?: Context3D): void; } } export default starling.rendering.Program;