Composed
A container class that knows how to apply a sequence of filters to an input image.
Extends
BaseFilter
<"Composed"
,ComposedOwnProps
,ComposedSerializedProps
>
Constructors
new Composed()
new Composed(
options
):Composed
Parameters
• options: object
& Record
<string
, any
> = {}
Returns
Overrides
Defined in
Properties
subFilters
subFilters:
BaseFilter
<string
,object
,object
>[]
A non sparse array of filters to apply
Defined in
defaults
static
defaults:Record
<string
,unknown
>
Inherited from
Defined in
type
static
type:string
='Composed'
The class type. Used to identify which class this is.
This is used for serialization purposes and internally it can be used
to identify classes. As a developer you could use instance of Class
but to avoid importing all the code and blocking tree shaking we try
to avoid doing that.
Overrides
Defined in
uniformLocations
static
uniformLocations:string
[] =[]
Contains the uniform locations for the fragment shader. uStepW and uStepH are handled by the BaseFilter, each filter class needs to specify all the one that are needed
Inherited from
Defined in
Accessors
type
get
type():Name
Filter type
Default
Returns
Name
Inherited from
Defined in
Methods
_setupFrameBuffer()
_setupFrameBuffer(
options
):void
Parameters
• options: TWebGLPipelineState
Returns
void
Inherited from
Defined in
_swapTextures()
_swapTextures(
options
):void
Parameters
• options: TWebGLPipelineState
Returns
void
Inherited from
Defined in
applyTo()
applyTo(
options
):void
Apply this container’s filters to the input image provided.
Parameters
• options: TWebGLPipelineState
| T2DPipelineState
Returns
void
Overrides
Defined in
applyTo2d()
applyTo2d(
_options
):void
Parameters
• _options: T2DPipelineState
Returns
void
Inherited from
Defined in
applyToWebGL()
applyToWebGL(
options
):void
Apply this filter using webgl.
Parameters
• options: TWebGLPipelineState
Returns
void
Inherited from
Defined in
bindAdditionalTexture()
bindAdditionalTexture(
gl
,texture
,textureUnit
):void
Parameters
• gl: WebGLRenderingContext
• texture: WebGLTexture
• textureUnit: number
Returns
void
Inherited from
BaseFilter
.bindAdditionalTexture
Defined in
createHelpLayer()
createHelpLayer(
options
):void
If needed by a 2d filter, this functions can create an helper canvas to be used remember that options.targetCanvas is available for use till end of chain.
Parameters
• options: T2DPipelineState
Returns
void
Inherited from
Defined in
createProgram()
createProgram(
gl
,fragmentSource
,vertexSource
):object
Compile this filter’s shader program.
Parameters
• gl: WebGLRenderingContext
The GL canvas context to use for shader compilation.
• fragmentSource: string
= ...
fragmentShader source for compilation
• vertexSource: string
= ...
vertexShader source for compilation
Returns
object
attributeLocations
attributeLocations:
TWebGLAttributeLocationMap
program
program:
WebGLProgram
uniformLocations
uniformLocations:
TWebGLUniformLocationMap
Inherited from
Defined in
getAttributeLocations()
getAttributeLocations(
gl
,program
):TWebGLAttributeLocationMap
Return a map of attribute names to WebGLAttributeLocation objects.
Parameters
• gl: WebGLRenderingContext
The canvas context used to compile the shader program.
• program: WebGLProgram
The shader program from which to take attribute locations.
Returns
A map of attribute names to attribute locations.
Inherited from
BaseFilter
.getAttributeLocations
Defined in
getCacheKey()
getCacheKey():
string
Returns a string that represent the current selected shader code for the filter. Used to force recompilation when parameters change or to retrieve the shader from cache
Returns
string
Inherited from
Defined in
getUniformLocations()
getUniformLocations(
gl
,program
):TWebGLUniformLocationMap
Return a map of uniform names to WebGLUniformLocation objects.
Parameters
• gl: WebGLRenderingContext
The canvas context used to compile the shader program.
• program: WebGLProgram
The shader program from which to take uniform locations.
Returns
A map of uniform names to uniform locations.
Inherited from
BaseFilter
.getUniformLocations
Defined in
getVertexSource()
getVertexSource():
string
Returns
string
Inherited from
Defined in
isNeutralState()
isNeutralState():
boolean
Generic isNeutral implementation for one parameter based filters. Used only in image applyFilters to discard filters that will not have an effect on the image Other filters may need their own version ( ColorMatrix, HueRotation, gamma, ComposedFilter )
Returns
boolean
Overrides
Defined in
retrieveShader()
retrieveShader(
options
):TWebGLProgramCacheItem
Retrieves the cached shader.
Parameters
• options: TWebGLPipelineState
Returns
the compiled program shader
Inherited from
Defined in
sendAttributeData()
sendAttributeData(
gl
,attributeLocations
,aPositionData
):void
Send attribute data from this filter to its shader program on the GPU.
Parameters
• gl: WebGLRenderingContext
The canvas context used to compile the shader program.
• attributeLocations: Record
<string
, number
>
A map of shader attribute names to their locations.
• aPositionData: Float32Array
Returns
void
Inherited from
Defined in
sendUniformData()
sendUniformData(
_gl
,_uniformLocations
):void
Send uniform data from this filter to its shader program on the GPU.
Intended to be overridden by subclasses.
Parameters
• _gl: WebGLRenderingContext
The canvas context used to compile the shader program.
• _uniformLocations: TWebGLUniformLocationMap
A map of shader uniform names to their locations.
Returns
void
Inherited from
Defined in
toJSON()
toJSON():
object
&ComposedSerializedProps
Returns a JSON representation of an instance
Returns
object
& ComposedSerializedProps
JSON
Inherited from
Defined in
toObject()
toObject():
object
Serialize this filter into JSON.
Returns
object
A JSON representation of this filter.
subFilters
subFilters:
object
&object
[]
type
type:
"Composed"
Overrides
Defined in
unbindAdditionalTexture()
unbindAdditionalTexture(
gl
,textureUnit
):void
Parameters
• gl: WebGLRenderingContext
• textureUnit: number
Returns
void
Inherited from
BaseFilter
.unbindAdditionalTexture
Defined in
fromObject()
static
fromObject(object
,options
?):Promise
<Composed
>
Deserialize a JSON definition of a ComposedFilter into a concrete instance.
Parameters
• object: Record
<string
, any
>
Object to create an instance from
• options?
• options.signal?: AbortSignal
handle aborting BlendImage
filter loading, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal
Returns
Promise
<Composed
>