UNPKG

excalibur

Version:

Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.

36 lines (35 loc) 1.28 kB
import { VertexLayout } from '../Context/vertex-layout'; import { Shader } from '../Context/shader'; /** * PostProcessors can be used to apply a shader to the entire screen. It is recommended * you use the {@apilink ScreenShader} to build your post processor shader. * * The screen texture comes through as this uniform * * `uniform sampler2D u_image` * * Post processor shaders get some default uniforms passed to them * * `uniform float u_time_ms` - total playback time in milliseconds * `uniform float u_elapsed_ms` - the elapsed time from the last frame in milliseconds * `uniform vec2 u_resolution` - the resolution of the canvas (in pixels) * * Custom uniforms can be updated in the {@apilink PostProcessor.onUpdate} */ export interface PostProcessor { initialize(gl: WebGL2RenderingContext): void; getShader(): Shader; getLayout(): VertexLayout; /** * Use the onUpdate hook to update any uniforms in the postprocessors shader * * The shader has already been bound so there is no need to call shader.use(); * @param elapsed */ onUpdate?(elapsed: number): void; /** * Use the onDraw hook to upload any textures or command that need to run right before draw * @param elapsed */ onDraw?(): void; }