The ColorMatrixFilter class lets you apply a 4x5 matrix transformation to the color and alpha values of every pixel in the input image to produce a result with a new set of color and alpha values. This allows saturation changes, hue rotation, luminance to alpha, and various other effects.

The class contains several convenience methods for frequently used color adjustments. All those methods change the current matrix, which means you can easily combine them in one filter:

    						// create an inverted filter with 50% saturation and 180° hue rotation
    						filter:ColorMatrixFilter = new ColorMatrixFilter();
    						filter.invert();
    						filter.adjustSaturation(-0.5);
    					filter.adjustHue(1.0);

If you want to gradually animate one of the predefined color adjustments, either reset the matrix after each step, or use an identical adjustment value for each step; the changes will add up.

### Hierarchy

- FragmentFilter
  - ColorMatrixFilter

## Index

### Constructors

- constructor

### Properties

- alwaysDrawToBackBuffer
- antiAliasing
- colorEffect
- isCached
- maintainResolutionAcrossPasses
- matrix
- padding
- resolution
- textureFormat
- textureSmoothing

### Methods

- addEventListener
- adjustBrightness
- adjustContrast
- adjustHue
- adjustSaturation
- cache
- clearCache
- concat
- concatValues
- dispatchEvent
- dispatchEventWith
- dispose
- get_alwaysDrawToBackBuffer
- get_antiAliasing
- get_colorEffect
- get_isCached
- get_maintainResolutionAcrossPasses
- get_matrix
- get_padding
- get_resolution
- get_textureFormat
- get_textureSmoothing
- hasEventListener
- invert
- process
- removeEventListener
- removeEventListeners
- render
- reset
- set_alwaysDrawToBackBuffer
- set_antiAliasing
- set_maintainResolutionAcrossPasses
- set_matrix
- set_padding
- set_resolution
- set_textureFormat
- set_textureSmoothing
- tint

## Constructors

### constructor

- new ColorMatrixFilter(matrix?: Vector<number>): ColorMatrixFilter

- Overrides FragmentFilter.constructor

  - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:30

  Creates a new ColorMatrixFilter instance with the specified matrix. @param matrix a vector of 20 items arranged as a 4x5 matrix.

  #### Parameters

  - ##### Optional matrix: Vector<number>

  #### Returns ColorMatrixFilter

## Properties

### alwaysDrawToBackBuffer

alwaysDrawToBackBuffer: boolean

Inherited from FragmentFilter.alwaysDrawToBackBuffer

- Defined in lib/starling/filters/FragmentFilter.d.ts:214

Indicates if the last filter pass is always drawn directly to the back buffer.

Per default, the filter tries to automatically render in a smart way: objects that are currently moving are rendered to the back buffer, objects that are static are rendered into a texture first, which allows the filter to be drawn directly from the render cache in the next frame (in case the object remains static).

However, this fails when filters are added to an object that does not support the render cache, or to a container with such a child (e.g. a Sprite3D object or a masked display object). In such a case, enable this property for maximum performance.

@default false

### antiAliasing

antiAliasing: number

Inherited from FragmentFilter.antiAliasing

- Defined in lib/starling/filters/FragmentFilter.d.ts:187

The anti-aliasing level. This is only used for rendering the target object into a texture, not for the filter passes. 0 - none, 4 - maximum. @default 0

### colorEffect

colorEffect: ColorMatrixEffect

- Defined in lib/starling/filters/ColorMatrixFilter.d.ts:83

### isCached

isCached: boolean

Inherited from FragmentFilter.isCached

- Defined in lib/starling/filters/FragmentFilter.d.ts:158

Indicates if the filter is cached (via the `cache` method).

### Protected maintainResolutionAcrossPasses

maintainResolutionAcrossPasses: boolean

Inherited from FragmentFilter.maintainResolutionAcrossPasses

- Defined in lib/starling/filters/FragmentFilter.d.ts:181

Indicates if the filter requires all passes to be processed with the exact same resolution.

Some filters must use the same resolution for input and output; e.g. the blur filter is very sensitive to changes of pixel / texel sizes. When the filter is used as part of a filter chain, or if its last pass is drawn directly to the back buffer, such a filter produces artifacts. In that case, the filter author must set this property to `true`.

@default false

### matrix

matrix: Vector<number>

- Defined in lib/starling/filters/ColorMatrixFilter.d.ts:79

A vector of 20 items arranged as a 4x5 matrix.

### padding

padding: Padding

Inherited from FragmentFilter.padding

- Defined in lib/starling/filters/FragmentFilter.d.ts:152

Padding can extend the size of the filter texture in all directions. That's useful when the filter "grows" the bounds of the object in any direction.

### resolution

resolution: number

Inherited from FragmentFilter.resolution

- Defined in lib/starling/filters/FragmentFilter.d.ts:166

The resolution of the filter texture. "1" means stage resolution, "0.5" half the stage resolution. A lower resolution saves memory and execution time, but results in a lower output quality. Values greater than 1 are allowed; such values might make sense for a cached filter when it is scaled up. @default 1

### textureFormat

textureFormat: string

Inherited from FragmentFilter.textureFormat

- Defined in lib/starling/filters/FragmentFilter.d.ts:197

The format of the filter texture. @default BGRA

### textureSmoothing

textureSmoothing: string

Inherited from FragmentFilter.textureSmoothing

- Defined in lib/starling/filters/FragmentFilter.d.ts:192

The smoothing mode of the filter texture. @default bilinear

## Methods

### Protected addEventListener

- addEventListener(type: string, listener: Function): void

- Inherited from FragmentFilter.addEventListener

  Overrides EventDispatcher.addEventListener

  - Defined in lib/starling/filters/FragmentFilter.d.ts:143

  #### Parameters

  - ##### type: string

  - ##### listener: Function

  #### Returns void

### adjustBrightness

- adjustBrightness(value: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:52

  Changes the brightness. Typical values are in the range (-1, 1). Values above zero will make the image brighter, values below zero will make it darker.

  #### Parameters

  - ##### value: number

  #### Returns void

### adjustContrast

- adjustContrast(value: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:48

  Changes the contrast. Typical values are in the range (-1, 1). Values above zero will raise, values below zero will reduce the contrast.

  #### Parameters

  - ##### value: number

  #### Returns void

### adjustHue

- adjustHue(value: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:55

  Changes the hue of the image. Typical values are in the range (-1, 1).

  #### Parameters

  - ##### value: number

  #### Returns void

### adjustSaturation

- adjustSaturation(sat: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:44

  Changes the saturation. Typical values are in the range (-1, 1). Values above zero will raise, values below zero will reduce the saturation. '-1' will produce a grayscale image.

  #### Parameters

  - ##### sat: number

  #### Returns void

### cache

- cache(): void

- Inherited from FragmentFilter.cache

  - Defined in lib/starling/filters/FragmentFilter.d.ts:134

  Caches the filter output into a texture.

  An uncached filter is rendered every frame (except if it can be rendered from the global render cache, which happens if the target object does not change its appearance or location relative to the stage). A cached filter is only rendered once; the output stays unchanged until you call `cache` again or change the filter settings.

  Beware: you cannot cache filters on 3D objects; if the object the filter is attached to is a Sprite3D or has a Sprite3D as (grand-) parent, the request will be silently ignored. However, you can cache a 2D object that has 3D children!

  #### Returns void

### clearCache

- clearCache(): void

- Inherited from FragmentFilter.clearCache

  - Defined in lib/starling/filters/FragmentFilter.d.ts:138

  Clears the cached output of the filter. After calling this method, the filter will be processed once per frame again.

  #### Returns void

### concat

- concat(matrix: Vector<number>): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:70

  Concatenates the current matrix with another one.

  #### Parameters

  - ##### matrix: Vector<number>

  #### Returns void

### concatValues

- concatValues(m0: number, m1: number, m2: number, m3: number, m4: number, m5: number, m6: number, m7: number, m8: number, m9: number, m10: number, m11: number, m12: number, m13: number, m14: number, m15: number, m16: number, m17: number, m18: number, m19: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:73

  Concatenates the current matrix with another one, passing its contents directly.

  #### Parameters

  - ##### m0: number

  - ##### m1: number

  - ##### m2: number

  - ##### m3: number

  - ##### m4: number

  - ##### m5: number

  - ##### m6: number

  - ##### m7: number

  - ##### m8: number

  - ##### m9: number

  - ##### m10: number

  - ##### m11: number

  - ##### m12: number

  - ##### m13: number

  - ##### m14: number

  - ##### m15: number

  - ##### m16: number

  - ##### m17: number

  - ##### m18: number

  - ##### m19: number

  #### Returns void

### dispatchEvent

- dispatchEvent(event: Event): void

- Inherited from EventDispatcher.dispatchEvent

  - Defined in lib/starling/events/EventDispatcher.d.ts:45

  Dispatches an event to all objects that have registered listeners for its type. If an event with enabled 'bubble' property is dispatched to a display object, it will travel up along the line of parents, until it either hits the root object or someone stops its propagation manually.

  #### Parameters

  - ##### event: Event

  #### Returns void

### dispatchEventWith

- dispatchEventWith(type: string, bubbles?: boolean, data?: any): void

- Inherited from EventDispatcher.dispatchEventWith

  - Defined in lib/starling/events/EventDispatcher.d.ts:50

  Dispatches an event with the given parameters to all objects that have registered listeners for the given type. The method uses an internal pool of event objects to avoid allocations.

  #### Parameters

  - ##### type: string

  - ##### Optional bubbles: boolean

  - ##### Optional data: any

  #### Returns void

### dispose

- dispose(): void

- Inherited from FragmentFilter.dispose

  - Defined in lib/starling/filters/FragmentFilter.d.ts:94

  Disposes all resources that have been created by the filter.

  #### Returns void

### Protected get_alwaysDrawToBackBuffer

- get_alwaysDrawToBackBuffer(): boolean

- Inherited from FragmentFilter.get_alwaysDrawToBackBuffer

  - Defined in lib/starling/filters/FragmentFilter.d.ts:215

  #### Returns boolean

### Protected get_antiAliasing

- get_antiAliasing(): number

- Inherited from FragmentFilter.get_antiAliasing

  - Defined in lib/starling/filters/FragmentFilter.d.ts:188

  #### Returns number

### Protected get_colorEffect

- get_colorEffect(): ColorMatrixEffect

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:84

  #### Returns ColorMatrixEffect

### Protected get_isCached

- get_isCached(): boolean

- Inherited from FragmentFilter.get_isCached

  - Defined in lib/starling/filters/FragmentFilter.d.ts:159

  #### Returns boolean

### Protected get_maintainResolutionAcrossPasses

- get_maintainResolutionAcrossPasses(): boolean

- Inherited from FragmentFilter.get_maintainResolutionAcrossPasses

  - Defined in lib/starling/filters/FragmentFilter.d.ts:182

  #### Returns boolean

### Protected get_matrix

- get_matrix(): Vector<number>

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:80

  #### Returns Vector<number>

### Protected get_padding

- get_padding(): Padding

- Inherited from FragmentFilter.get_padding

  - Defined in lib/starling/filters/FragmentFilter.d.ts:153

  #### Returns Padding

### Protected get_resolution

- get_resolution(): number

- Inherited from FragmentFilter.get_resolution

  - Defined in lib/starling/filters/FragmentFilter.d.ts:167

  #### Returns number

### Protected get_textureFormat

- get_textureFormat(): string

- Inherited from FragmentFilter.get_textureFormat

  - Defined in lib/starling/filters/FragmentFilter.d.ts:198

  #### Returns string

### Protected get_textureSmoothing

- get_textureSmoothing(): string

- Inherited from FragmentFilter.get_textureSmoothing

  - Defined in lib/starling/filters/FragmentFilter.d.ts:193

  #### Returns string

### hasEventListener

- hasEventListener(type: string, listener?: any): boolean

- Inherited from EventDispatcher.hasEventListener

  - Defined in lib/starling/events/EventDispatcher.d.ts:55

  If called with one argument, figures out if there are any listeners registered for the given event type. If called with two arguments, also determines if a specific listener is registered.

  #### Parameters

  - ##### type: string

  - ##### Optional listener: any

  #### Returns boolean

### invert

- invert(): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:39

  Inverts the colors of the filtered object.

  #### Returns void

### process

- process(painter: Painter, helper: IFilterHelper, input0?: Texture, input1?: Texture, input2?: Texture, input3?: Texture): Texture

- Inherited from FragmentFilter.process

  - Defined in lib/starling/filters/FragmentFilter.d.ts:118

  Does the actual filter processing. This method will be called with up to four input textures and must return a new texture (acquired from the `helper`) that contains the filtered output. To to do this, it configures the FilterEffect (provided via `createEffect`) and calls its `render` method.

  In a standard filter, only `input0` will contain a texture; that's the object the filter was applied to, rendered into an appropriately sized texture. However, filters may also accept multiple textures; that's useful when you need to combine the output of several filters into one. For example, the DropShadowFilter uses a BlurFilter to create the shadow and then feeds both input and shadow texture into a CompositeFilter.

  Never create or dispose any textures manually within this method; instead, get new textures from the provided helper object, and pass them to the helper when you do not need them any longer. Ownership of both input textures and returned texture lies at the caller; only temporary textures should be put into the helper.

  #### Parameters

  - ##### painter: Painter

  - ##### helper: IFilterHelper

  - ##### Optional input0: Texture

  - ##### Optional input1: Texture

  - ##### Optional input2: Texture

  - ##### Optional input3: Texture

  #### Returns Texture

### Protected removeEventListener

- removeEventListener(type: string, listener: Function): void

- Inherited from FragmentFilter.removeEventListener

  Overrides EventDispatcher.removeEventListener

  - Defined in lib/starling/filters/FragmentFilter.d.ts:146

  #### Parameters

  - ##### type: string

  - ##### listener: Function

  #### Returns void

### removeEventListeners

- removeEventListeners(type?: string): void

- Inherited from EventDispatcher.removeEventListeners

  - Defined in lib/starling/events/EventDispatcher.d.ts:39

  Removes all event listeners with a certain type, or all of them if type is null. Be careful when removing all event listeners: you never know who else was listening.

  #### Parameters

  - ##### Optional type: string

  #### Returns void

### render

- render(painter: Painter): void

- Inherited from FragmentFilter.render

  - Defined in lib/starling/filters/FragmentFilter.d.ts:99

  Renders the filtered target object. Most users will never have to call this manually; it's executed automatically in the rendering process of the filtered display object.

  #### Parameters

  - ##### painter: Painter

  #### Returns void

### reset

- reset(): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:67

  Changes the filter matrix back to the identity matrix.

  #### Returns void

### Protected set_alwaysDrawToBackBuffer

- set_alwaysDrawToBackBuffer(value: boolean): boolean

- Inherited from FragmentFilter.set_alwaysDrawToBackBuffer

  - Defined in lib/starling/filters/FragmentFilter.d.ts:216

  #### Parameters

  - ##### value: boolean

  #### Returns boolean

### Protected set_antiAliasing

- set_antiAliasing(value: number): number

- Inherited from FragmentFilter.set_antiAliasing

  - Defined in lib/starling/filters/FragmentFilter.d.ts:189

  #### Parameters

  - ##### value: number

  #### Returns number

### Protected set_maintainResolutionAcrossPasses

- set_maintainResolutionAcrossPasses(value: boolean): boolean

- Inherited from FragmentFilter.set_maintainResolutionAcrossPasses

  - Defined in lib/starling/filters/FragmentFilter.d.ts:183

  #### Parameters

  - ##### value: boolean

  #### Returns boolean

### Protected set_matrix

- set_matrix(value: Vector<number>): Vector<number>

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:81

  #### Parameters

  - ##### value: Vector<number>

  #### Returns Vector<number>

### Protected set_padding

- set_padding(value: Padding): Padding

- Inherited from FragmentFilter.set_padding

  - Defined in lib/starling/filters/FragmentFilter.d.ts:155

  #### Parameters

  - ##### value: Padding

  #### Returns Padding

### Protected set_resolution

- set_resolution(value: number): number

- Inherited from FragmentFilter.set_resolution

  - Defined in lib/starling/filters/FragmentFilter.d.ts:168

  #### Parameters

  - ##### value: number

  #### Returns number

### Protected set_textureFormat

- set_textureFormat(value: string): string

- Inherited from FragmentFilter.set_textureFormat

  - Defined in lib/starling/filters/FragmentFilter.d.ts:199

  #### Parameters

  - ##### value: string

  #### Returns string

### Protected set_textureSmoothing

- set_textureSmoothing(value: string): string

- Inherited from FragmentFilter.set_textureSmoothing

  - Defined in lib/starling/filters/FragmentFilter.d.ts:194

  #### Parameters

  - ##### value: string

  #### Returns string

### tint

- tint(color: number, amount?: number): void

- - Defined in lib/starling/filters/ColorMatrixFilter.d.ts:62

  Tints the image in a certain color, analog to what can be done in Adobe Animate.

  @param color the RGB color with which the image should be tinted. @param amount the intensity with which tinting should be applied. Range (0, 1).

  #### Parameters

  - ##### color: number

  - ##### Optional amount: number

  #### Returns void

Generated using TypeDoc