Class: FilterSystem

PIXI.FilterSystem

System plugin to the renderer to manage filters.

Pipeline

The FilterSystem executes the filtering pipeline by rendering the display-object into a texture, applying its filters in series, and the last filter outputs into the final render-target.

The filter-frame is the rectangle in world space being filtered, and those contents are mapped into (0, 0, filterFrame.width, filterFrame.height) into the filter render-texture. The filter-frame is also called the source-frame, as it is used to bind the filter render-textures. The last filter outputs to the filterFrame in the final render-target.

Usage

PIXI.Container#renderAdvanced is an example of how to use the filter system. It is a 3 step process:

  • push: Use PIXI.FilterSystem#push to push the set of filters to be applied on a filter-target.
  • render: Render the contents to be filtered using the renderer. The filter-system will only capture the contents inside the bounds of the filter-target. NOTE: Using PIXI.Renderer#render is illegal during an existing render cycle, and it may reset the filter system.
  • pop: Use PIXI.FilterSystem#pop to pop & execute the filters you initially pushed. It will apply them serially and output to the bounds of the filter-target.

new PIXI.FilterSystem (renderer) overrides

Name Type Description
renderer PIXI.Renderer

The renderer this System works for.

Extends

Members

activeState object

Active state

defaultFilterStack Array<Object>

List of filters for the FilterSystem

forceClear boolean

Whether to clear output renderTexture in AUTO/BLIT mode. See PIXI.CLEAR_MODES

globalUniforms PIXI.UniformGroup

This uniform group is attached to filter uniforms when used

Properties:
Name Type Description
filterArea Float32Array
filterClamp Fload32Array
inputClamp Float32Array
inputPixel Float32Array
inputSize Float32Array
outputFrame PIXI.Rectangle
resolution Number

quad PIXI.Quad

A very simple geometry used when drawing a filter effect to the screen

quadUv PIXI.QuadUv

Quad UVs

statePool Array<Object>

a pool for storing filter states, save us creating new ones each tick

tempRect PIXI.Rectangle

Temporary rect for maths

texturePool Object

stores a bunch of PO2 textures used for filtering

useMaxPadding boolean

Old padding behavior is to use the max amount instead of sum padding. Use this flag if you need the old behavior.

Default Value:
  • false

Methods

PIXI.FilterSystem.calculateNormalizedScreenSpaceMatrix (outputMatrix) PIXI.Matrix Deprecated`` : since 5.0.0 static

Name Type Description
outputMatrix PIXI.Matrix

The matrix to output to.

Returns:
Type Description
PIXI.Matrix The mapped matrix.

PIXI.FilterSystem.calculateScreenSpaceMatrix (outputMatrix) PIXI.Matrix Deprecated`` : since 5.0.0 static

Name Type Description
outputMatrix PIXI.Matrix

the matrix to output to.

Returns:
Type Description
PIXI.Matrix The mapped matrix.

applyFilter (filter, input, output, clearMode) void

Draws a filter.

Name Type Attributes Description
filter PIXI.Filter

The filter to draw.

input PIXI.RenderTexture

The input render target.

output PIXI.RenderTexture

The target to output to.

clearMode PIXI.CLEAR_MODES <optional>

Should the output be cleared before rendering to it

bindAndClear (filterTexture, clearMode) void

Binds a renderTexture with corresponding filterFrame, clears it if mode corresponds.

Name Type Attributes Description
filterTexture PIXI.RenderTexture

renderTexture to bind, should belong to filter pool or filter stack

clearMode PIXI.CLEAR_MODES <optional>

clearMode, by default its CLEAR/YES. See PIXI.CLEAR_MODES

calculateSpriteMatrix (outputMatrix, sprite) PIXI.Matrix

Multiply input normalized coordinates to this matrix to get sprite texture normalized coordinates.

Use outputMatrix * vTextureCoord in the shader.

Name Type Description
outputMatrix PIXI.Matrix

The matrix to output to.

sprite PIXI.Sprite

The sprite to map to.

Returns:
Type Description
PIXI.Matrix The mapped matrix.

destroy () void overrides

Destroys this Filter System.

emptyPool () void

Empties the texture pool.

getFilterTexture (input, resolution) PIXI.RenderTexture

Gets extra render texture to use inside current filter To be compliant with older filters, you can use params in any order

Name Type Attributes Description
input PIXI.RenderTexture <optional>

renderTexture from which size and resolution will be copied

resolution number <optional>

override resolution of the renderTexture

Returns:
Type Description
PIXI.RenderTexture

pop () void

Pops off a set of the filters and applies them. This should be called once you've rendered everything to be filtered.

push (target, filters) void

Pushes a set of filters to be applied later to the system. This will redirect further rendering into an input render-texture for the rest of the filtering pipeline.

Name Type Description
target PIXI.DisplayObject

The target of the filter to render.

filters Array<PIXI.Filter>

The filters to apply.

resize () void

calls texturePool.resize(), affects fullScreen renderTextures

returnFilterTexture (renderTexture) void

Frees a render texture back into the pool.

Name Type Description
renderTexture PIXI.RenderTexture

The renderTarget to free

getOptimalFilterTexture (minWidth, minHeight, resolution) PIXI.RenderTexture protected

Gets a Power-of-Two render texture or fullScreen texture

Name Type Attributes Default Description
minWidth number

The minimum width of the render texture in real pixels.

minHeight number

The minimum height of the render texture in real pixels.

resolution number <optional>
1

The resolution of the render texture.

Returns:
Type Description
PIXI.RenderTexture The new render texture.

Inherited Properties

From class PIXI.System

The renderer this manager works for.