RenderEffect  |  API reference  |  Android Developers


public final class RenderEffect
extends Object



Intermediate rendering step used to render drawing commands with a corresponding visual effect. A RenderEffect can be configured on a RenderNode through RenderNode.setRenderEffect(RenderEffect) and will be applied when drawn through Canvas.drawRenderNode(RenderNode). Additionally a RenderEffect can be applied to a View's backing RenderNode through android.view.View.setRenderEffect(RenderEffect)

Summary

Public methods

static RenderEffect createBitmapEffect(Bitmap bitmap)

Create a RenderEffect that renders the contents of the input Bitmap.

static RenderEffect createBitmapEffect(Bitmap bitmap, Rect src, Rect dst)

Create a RenderEffect that renders the contents of the input Bitmap.

static RenderEffect createBlendModeEffect(RenderEffect dst, RenderEffect src, BlendMode blendMode)

Create a RenderEffect that is a composition of 2 other RenderEffect instances combined by the specified BlendMode

static RenderEffect createBlurEffect(float radiusX, float radiusY, Shader.TileMode edgeTreatment)

Create a RenderEffect that blurs the contents of the RenderNode that this RenderEffect is installed on with the specified radius along the x and y axis.

static RenderEffect createBlurEffect(float radiusX, float radiusY, RenderEffect inputEffect, Shader.TileMode edgeTreatment)

Create a RenderEffect that blurs the contents of the optional input RenderEffect with the specified radius along the x and y axis.

static RenderEffect createChainEffect(RenderEffect outer, RenderEffect inner)

Create a RenderEffect that composes 'inner' with 'outer', such that the results of 'inner' are treated as the source bitmap passed to 'outer', i.e.

static RenderEffect createColorFilterEffect(ColorFilter colorFilter, RenderEffect renderEffect)

Create a RenderEffect that applies the color filter to the provided RenderEffect

static RenderEffect createColorFilterEffect(ColorFilter colorFilter)

Create a RenderEffect that applies the color filter to the contents of the RenderNode that this RenderEffect is installed on

static RenderEffect createOffsetEffect(float offsetX, float offsetY, RenderEffect input)

Create a RenderEffect instance with the provided x and y offset

static RenderEffect createOffsetEffect(float offsetX, float offsetY)

Create a RenderEffect instance that will offset the drawing content by the provided x and y offset.

static RenderEffect createRuntimeShaderEffect(RuntimeShader shader, String uniformShaderName)

Create a RenderEffect that executes the provided RuntimeShader and passes the contents of the RenderNode that this RenderEffect is installed on as an input to the shader.

static RenderEffect createShaderEffect(Shader shader)

Create a RenderEffect that renders the contents of the input Shader.

Inherited methods

From class java.lang.Object

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Public methods

createBlendModeEffect

public static RenderEffect createBlendModeEffect (RenderEffect dst, 
                RenderEffect src, 
                BlendMode blendMode)

Create a RenderEffect that is a composition of 2 other RenderEffect instances combined by the specified BlendMode

Parameters
dst RenderEffect: The Dst pixels used in blending.
This value cannot be null.
src RenderEffect: The Src pixels used in blending.
This value cannot be null.
blendMode BlendMode: The BlendMode to be used to combine colors from the two RenderEffects.
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createBlurEffect

public static RenderEffect createBlurEffect (float radiusX, 
                float radiusY, 
                Shader.TileMode edgeTreatment)

Create a RenderEffect that blurs the contents of the RenderNode that this RenderEffect is installed on with the specified radius along the x and y axis.

Parameters
radiusX float: Radius of blur along the X axis
radiusY float: Radius of blur along the Y axis
edgeTreatment Shader.TileMode: Policy for how to blur content near edges of the blur kernel.
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createBlurEffect

public static RenderEffect createBlurEffect (float radiusX, 
                float radiusY, 
                RenderEffect inputEffect, 
                Shader.TileMode edgeTreatment)

Create a RenderEffect that blurs the contents of the optional input RenderEffect with the specified radius along the x and y axis. If no input RenderEffect is provided then all drawing commands issued with a RenderNode that this RenderEffect is installed in will be blurred

Parameters
radiusX float: Radius of blur along the X axis
radiusY float: Radius of blur along the Y axis
inputEffect RenderEffect: Input RenderEffect that provides the content to be blurred, can be null to indicate that the drawing commands on the RenderNode are to be blurred instead of the input RenderEffect
edgeTreatment Shader.TileMode: Policy for how to blur content near edges of the blur kernel.
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createChainEffect

public static RenderEffect createChainEffect (RenderEffect outer, 
                RenderEffect inner)

Create a RenderEffect that composes 'inner' with 'outer', such that the results of 'inner' are treated as the source bitmap passed to 'outer', i.e.

 result = outer(inner(source))
 
 

Consumers should favor explicit chaining of RenderEffect instances at creation time rather than using chain effect. Chain effects are useful for situations where the input or output are provided from elsewhere and the input or output RenderEffect need to be changed.

Parameters
outer RenderEffect: RenderEffect that consumes the output of inner as its input.
This value cannot be null.
inner RenderEffect: RenderEffect that is consumed as input by outer
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createColorFilterEffect

public static RenderEffect createColorFilterEffect (ColorFilter colorFilter, 
                RenderEffect renderEffect)

Create a RenderEffect that applies the color filter to the provided RenderEffect

Parameters
colorFilter ColorFilter: ColorFilter applied to the content in the input RenderEffect.
This value cannot be null.
renderEffect RenderEffect: Source to be transformed by the specified ColorFilter
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createColorFilterEffect

public static RenderEffect createColorFilterEffect (ColorFilter colorFilter)

Create a RenderEffect that applies the color filter to the contents of the RenderNode that this RenderEffect is installed on

Parameters
colorFilter ColorFilter: ColorFilter applied to the content in the input RenderEffect.
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createOffsetEffect

public static RenderEffect createOffsetEffect (float offsetX, 
                float offsetY, 
                RenderEffect input)

Create a RenderEffect instance with the provided x and y offset

Parameters
offsetX float: offset along the x axis in pixels
offsetY float: offset along the y axis in pixels
input RenderEffect: target RenderEffect used to render in the offset coordinates.
This value cannot be null.
Returns
RenderEffect This value cannot be null.

createOffsetEffect

public static RenderEffect createOffsetEffect (float offsetX, 
                float offsetY)

Create a RenderEffect instance that will offset the drawing content by the provided x and y offset.

Parameters
offsetX float: offset along the x axis in pixels
offsetY float: offset along the y axis in pixels
Returns
RenderEffect This value cannot be null.

createRuntimeShaderEffect

public static RenderEffect createRuntimeShaderEffect (RuntimeShader shader, 
                String uniformShaderName)

Create a RenderEffect that executes the provided RuntimeShader and passes the contents of the RenderNode that this RenderEffect is installed on as an input to the shader.

Parameters
shader RuntimeShader: the runtime shader that will bind the inputShaderName to the RenderEffect input.
This value cannot be null.
uniformShaderName String: the uniform name defined in the RuntimeShader's program to which the contents of the RenderNode will be bound.
This value cannot be null.
Returns
RenderEffect This value cannot be null.