RuntimeXfermode
public
class
RuntimeXfermode
extends Xfermode
java.lang.Object | ||
↳ | android.graphics.Xfermode | |
↳ | android.graphics.RuntimeXfermode |
A RuntimeXfermode
calculates a per-pixel color based on the output of a user
* defined Android Graphics Shading Language (AGSL) function.
This AGSL function takes in two input colors to be operated on. These colors are in sRGB * and the output is also interpreted as sRGB. The AGSL function signature expects a single input * of color (packed as a half4 or float4 or vec4).
vec4 main(half4 src, half4 dst);
Summary
Public constructors | |
---|---|
RuntimeXfermode(String agsl)
Creates a new RuntimeBlender. |
Public methods | |
---|---|
void
|
setColorUniform(String uniformName, int color)
Sets the uniform color value corresponding to this color filter. |
void
|
setColorUniform(String uniformName, long color)
Sets the uniform color value corresponding to this color filter. |
void
|
setColorUniform(String uniformName, Color color)
Sets the uniform color value corresponding to this color filter. |
void
|
setFloatUniform(String uniformName, float[] values)
Sets the uniform value corresponding to this color filter. |
void
|
setFloatUniform(String uniformName, float value)
Sets the uniform value corresponding to this color filter. |
void
|
setFloatUniform(String uniformName, float value1, float value2, float value3, float value4)
Sets the uniform value corresponding to this color filter. |
void
|
setFloatUniform(String uniformName, float value1, float value2)
Sets the uniform value corresponding to this color filter. |
void
|
setFloatUniform(String uniformName, float value1, float value2, float value3)
Sets the uniform value corresponding to this color filter. |
void
|
setInputColorFilter(String filterName, ColorFilter colorFilter)
Assigns the uniform color filter to the provided color filter parameter. |
void
|
setInputShader(String shaderName, Shader shader)
Assigns the uniform shader to the provided shader parameter. |
void
|
setInputXfermode(String xfermodeName, RuntimeXfermode xfermode)
Assigns the uniform xfermode to the provided xfermode parameter. |
void
|
setIntUniform(String uniformName, int value)
Sets the uniform value corresponding to this color filter. |
void
|
setIntUniform(String uniformName, int value1, int value2, int value3)
Sets the uniform value corresponding to this color filter. |
void
|
setIntUniform(String uniformName, int value1, int value2, int value3, int value4)
Sets the uniform value corresponding to this color filter. |
void
|
setIntUniform(String uniformName, int[] values)
Sets the uniform value corresponding to this color filter. |
void
|
setIntUniform(String uniformName, int value1, int value2)
Sets the uniform value corresponding to this color filter. |
Inherited methods | |
---|---|
Public constructors
RuntimeXfermode
public RuntimeXfermode (String agsl)
Creates a new RuntimeBlender.
Parameters | |
---|---|
agsl |
String : The text of AGSL color filter program to run.
This value cannot be null . |
Public methods
setColorUniform
public void setColorUniform (String uniformName, int color)
Sets the uniform color value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than vec3 or vec4 and corresponding layout(color) annotation then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the color uniform declared in the AGSL program
This value cannot be null . |
color |
int : the provided sRGB color |
setColorUniform
public void setColorUniform (String uniformName, long color)
Sets the uniform color value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than vec3 or vec4 and corresponding layout(color) annotation then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the color uniform declared in the AGSL program
This value cannot be null . |
color |
long : the provided sRGB color |
setColorUniform
public void setColorUniform (String uniformName, Color color)
Sets the uniform color value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than vec3 or vec4 and corresponding layout(color) annotation then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the color uniform declared in the AGSL program
This value cannot be null . |
color |
Color : the provided sRGB color
This value cannot be null . |
setFloatUniform
public void setFloatUniform (String uniformName, float[] values)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than a float (for N=1), vecN, or float[N] where N is the length of the values param then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
values |
float : This value cannot be null . |
setFloatUniform
public void setFloatUniform (String uniformName, float value)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than a float or float[1] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value |
float |
setFloatUniform
public void setFloatUniform (String uniformName, float value1, float value2, float value3, float value4)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than a vec4 or float[4] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
float |
value2 |
float |
value3 |
float |
value4 |
float |
setFloatUniform
public void setFloatUniform (String uniformName, float value1, float value2)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than a vec2 or float[2] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
float |
value2 |
float |
setFloatUniform
public void setFloatUniform (String uniformName, float value1, float value2, float value3)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than a vec3 or float[3] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
float |
value2 |
float |
value3 |
float |
setInputColorFilter
public void setInputColorFilter (String filterName, ColorFilter colorFilter)
Assigns the uniform color filter to the provided color filter parameter. If the shader program does not have a uniform color filter with that name then an IllegalArgumentException is thrown.
Parameters | |
---|---|
filterName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
colorFilter |
ColorFilter : filter passed into the AGSL program for sampling
This value cannot be null . |
setInputShader
public void setInputShader (String shaderName, Shader shader)
Assigns the uniform shader to the provided shader parameter. If the shader program does not have a uniform shader with that name then an IllegalArgumentException is thrown.
Parameters | |
---|---|
shaderName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
shader |
Shader : shader passed into the AGSL program for sampling
This value cannot be null . |
setInputXfermode
public void setInputXfermode (String xfermodeName, RuntimeXfermode xfermode)
Assigns the uniform xfermode to the provided xfermode parameter. If the shader program does not have a uniform xfermode with that name then an IllegalArgumentException is thrown.
Parameters | |
---|---|
xfermodeName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
xfermode |
RuntimeXfermode : xfermode function passed into the AGSL program for sampling
This value cannot be null . |
setIntUniform
public void setIntUniform (String uniformName, int value)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than an int or int[1] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value |
int |
setIntUniform
public void setIntUniform (String uniformName, int value1, int value2, int value3)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than an ivec3 or int[3] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
int |
value2 |
int |
value3 |
int |
setIntUniform
public void setIntUniform (String uniformName, int value1, int value2, int value3, int value4)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than an ivec4 or int[4] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
int |
value2 |
int |
value3 |
int |
value4 |
int |
setIntUniform
public void setIntUniform (String uniformName, int[] values)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than an int (for N=1), ivecN, or int[N] where N is the length of the values param then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
values |
int : This value cannot be null . |
setIntUniform
public void setIntUniform (String uniformName, int value1, int value2)
Sets the uniform value corresponding to this color filter. If the effect does not have a uniform with that name or if the uniform is declared with a type other than an ivec2 or int[2] then an IllegalArgumentException is thrown.
Parameters | |
---|---|
uniformName |
String : name matching the uniform declared in the AGSL program
This value cannot be null . |
value1 |
int |
value2 |
int |