Unhiding J API's for Renderscript.

Change-Id: I8c2d43ccca94549bc6ca1a914106567ccc125503
This commit is contained in:
Alex Sakhartchouk
2012-04-11 14:04:23 -07:00
parent 5713c9cfa9
commit 918e840628
12 changed files with 141 additions and 112 deletions

View File

@@ -17994,15 +17994,24 @@ package android.renderscript {
method public static android.renderscript.Allocation createTyped(android.renderscript.RenderScript, android.renderscript.Type, int);
method public static android.renderscript.Allocation createTyped(android.renderscript.RenderScript, android.renderscript.Type);
method public void generateMipmaps();
method public int getBytesSize();
method public android.renderscript.Element getElement();
method public android.view.Surface getSurface();
method public android.renderscript.Type getType();
method public int getUsage();
method public void ioReceive();
method public void ioSend();
method public synchronized void resize(int);
method public void setFromFieldPacker(int, android.renderscript.FieldPacker);
method public void setFromFieldPacker(int, int, android.renderscript.FieldPacker);
method public void setSurface(android.view.Surface);
method public void syncAll(int);
field public static final int USAGE_GRAPHICS_CONSTANTS = 8; // 0x8
field public static final int USAGE_GRAPHICS_RENDER_TARGET = 16; // 0x10
field public static final int USAGE_GRAPHICS_TEXTURE = 2; // 0x2
field public static final int USAGE_GRAPHICS_VERTEX = 4; // 0x4
field public static final int USAGE_IO_INPUT = 32; // 0x20
field public static final int USAGE_IO_OUTPUT = 64; // 0x40
field public static final int USAGE_SCRIPT = 1; // 0x1
}
@@ -18141,6 +18150,15 @@ package android.renderscript {
method public static android.renderscript.Element U8_4(android.renderscript.RenderScript);
method public static android.renderscript.Element createPixel(android.renderscript.RenderScript, android.renderscript.Element.DataType, android.renderscript.Element.DataKind);
method public static android.renderscript.Element createVector(android.renderscript.RenderScript, android.renderscript.Element.DataType, int);
method public int getBytesSize();
method public android.renderscript.Element.DataKind getDataKind();
method public android.renderscript.Element.DataType getDataType();
method public android.renderscript.Element getSubElement(int);
method public int getSubElementArraySize(int);
method public int getSubElementCount();
method public java.lang.String getSubElementName(int);
method public int getSubElementOffsetBytes(int);
method public int getVectorSize();
method public boolean isCompatible(android.renderscript.Element);
method public boolean isComplex();
}
@@ -18173,6 +18191,7 @@ package android.renderscript {
enum_constant public static final android.renderscript.Element.DataType MATRIX_2X2;
enum_constant public static final android.renderscript.Element.DataType MATRIX_3X3;
enum_constant public static final android.renderscript.Element.DataType MATRIX_4X4;
enum_constant public static final android.renderscript.Element.DataType NONE;
enum_constant public static final android.renderscript.Element.DataType RS_ALLOCATION;
enum_constant public static final android.renderscript.Element.DataType RS_ELEMENT;
enum_constant public static final android.renderscript.Element.DataType RS_MESH;
@@ -18487,12 +18506,18 @@ package android.renderscript {
method public void bindConstants(android.renderscript.Allocation, int);
method public void bindSampler(android.renderscript.Sampler, int) throws java.lang.IllegalArgumentException;
method public void bindTexture(android.renderscript.Allocation, int) throws java.lang.IllegalArgumentException;
method public android.renderscript.Type getConstant(int);
method public int getConstantCount();
method public int getTextureCount();
method public java.lang.String getTextureName(int);
method public android.renderscript.Program.TextureType getTextureType(int);
}
public static class Program.BaseProgramBuilder {
ctor protected Program.BaseProgramBuilder(android.renderscript.RenderScript);
method public android.renderscript.Program.BaseProgramBuilder addConstant(android.renderscript.Type) throws java.lang.IllegalStateException;
method public android.renderscript.Program.BaseProgramBuilder addTexture(android.renderscript.Program.TextureType) throws java.lang.IllegalArgumentException;
method public android.renderscript.Program.BaseProgramBuilder addTexture(android.renderscript.Program.TextureType, java.lang.String) throws java.lang.IllegalArgumentException;
method public int getCurrentConstantIndex();
method public int getCurrentTextureIndex();
method protected void initProgram(android.renderscript.Program);
@@ -18548,6 +18573,8 @@ package android.renderscript {
method public static android.renderscript.ProgramRaster CULL_BACK(android.renderscript.RenderScript);
method public static android.renderscript.ProgramRaster CULL_FRONT(android.renderscript.RenderScript);
method public static android.renderscript.ProgramRaster CULL_NONE(android.renderscript.RenderScript);
method public android.renderscript.ProgramRaster.CullMode getCullMode();
method public boolean isPointSpriteEnabled();
}
public static class ProgramRaster.Builder {
@@ -18570,6 +18597,15 @@ package android.renderscript {
method public static android.renderscript.ProgramStore BLEND_ALPHA_DEPTH_TEST(android.renderscript.RenderScript);
method public static android.renderscript.ProgramStore BLEND_NONE_DEPTH_NONE(android.renderscript.RenderScript);
method public static android.renderscript.ProgramStore BLEND_NONE_DEPTH_TEST(android.renderscript.RenderScript);
method public android.renderscript.ProgramStore.BlendDstFunc getBlendDstFunc();
method public android.renderscript.ProgramStore.BlendSrcFunc getBlendSrcFunc();
method public android.renderscript.ProgramStore.DepthFunc getDepthFunc();
method public boolean isColorMaskAlphaEnabled();
method public boolean isColorMaskBlueEnabled();
method public boolean isColorMaskGreenEnabled();
method public boolean isColorMaskRedEnabled();
method public boolean isDepthMaskEnabled();
method public boolean isDitherEnabled();
}
public static final class ProgramStore.BlendDstFunc extends java.lang.Enum {
@@ -18622,6 +18658,8 @@ package android.renderscript {
}
public class ProgramVertex extends android.renderscript.Program {
method public android.renderscript.Element getInput(int);
method public int getInputCount();
}
public static class ProgramVertex.Builder extends android.renderscript.Program.BaseProgramBuilder {
@@ -18759,6 +18797,11 @@ package android.renderscript {
method public static android.renderscript.Sampler WRAP_LINEAR(android.renderscript.RenderScript);
method public static android.renderscript.Sampler WRAP_LINEAR_MIP_LINEAR(android.renderscript.RenderScript);
method public static android.renderscript.Sampler WRAP_NEAREST(android.renderscript.RenderScript);
method public float getAnisotropy();
method public android.renderscript.Sampler.Value getMagnification();
method public android.renderscript.Sampler.Value getMinification();
method public android.renderscript.Sampler.Value getWrapS();
method public android.renderscript.Sampler.Value getWrapT();
}
public static class Sampler.Builder {

View File

@@ -136,7 +136,6 @@ public class Allocation extends BaseObj {
* consumer. This usage will cause the allocation to be created
* read only.
*
* @hide
*/
public static final int USAGE_IO_INPUT = 0x0020;
@@ -145,7 +144,6 @@ public class Allocation extends BaseObj {
* SurfaceTexture producer. The dimensions and format of the
* SurfaceTexture will be forced to those of the allocation.
*
* @hide
*/
public static final int USAGE_IO_OUTPUT = 0x0040;
@@ -193,8 +191,8 @@ public class Allocation extends BaseObj {
/**
* Get the element of the type of the Allocation.
*
* @hide
* @return Element
* @return Element that describes the structure of data in the
* allocation
*
*/
public Element getElement() {
@@ -204,8 +202,8 @@ public class Allocation extends BaseObj {
/**
* Get the usage flags of the Allocation.
*
* @hide
* @return usage
* @return usage flags associated with the allocation. e.g.
* script, texture, etc.
*
*/
public int getUsage() {
@@ -215,12 +213,11 @@ public class Allocation extends BaseObj {
/**
* Get the size of the Allocation in bytes.
*
* @hide
* @return sizeInBytes
* @return size of the Allocation in bytes.
*
*/
public int getSizeBytes() {
return mType.getCount() * mType.getElement().getSizeBytes();
public int getBytesSize() {
return mType.getCount() * mType.getElement().getBytesSize();
}
private void updateCacheInfo(Type t) {
@@ -362,8 +359,6 @@ public class Allocation extends BaseObj {
* Send a buffer to the output stream. The contents of the
* Allocation will be undefined after this operation.
*
* @hide
*
*/
public void ioSend() {
if ((mUsage & USAGE_IO_OUTPUT) == 0) {
@@ -385,8 +380,6 @@ public class Allocation extends BaseObj {
/**
* Receive the latest input into the Allocation.
*
* @hide
*
*/
public void ioReceive() {
if ((mUsage & USAGE_IO_INPUT) == 0) {
@@ -424,37 +417,37 @@ public class Allocation extends BaseObj {
throw new RSIllegalArgumentException("Allocation kind is " +
mType.getElement().mKind + ", type " +
mType.getElement().mType +
" of " + mType.getElement().getSizeBytes() +
" of " + mType.getElement().getBytesSize() +
" bytes, passed bitmap was " + bc);
}
break;
case ARGB_8888:
if ((mType.getElement().mKind != Element.DataKind.PIXEL_RGBA) ||
(mType.getElement().getSizeBytes() != 4)) {
(mType.getElement().getBytesSize() != 4)) {
throw new RSIllegalArgumentException("Allocation kind is " +
mType.getElement().mKind + ", type " +
mType.getElement().mType +
" of " + mType.getElement().getSizeBytes() +
" of " + mType.getElement().getBytesSize() +
" bytes, passed bitmap was " + bc);
}
break;
case RGB_565:
if ((mType.getElement().mKind != Element.DataKind.PIXEL_RGB) ||
(mType.getElement().getSizeBytes() != 2)) {
(mType.getElement().getBytesSize() != 2)) {
throw new RSIllegalArgumentException("Allocation kind is " +
mType.getElement().mKind + ", type " +
mType.getElement().mType +
" of " + mType.getElement().getSizeBytes() +
" of " + mType.getElement().getBytesSize() +
" bytes, passed bitmap was " + bc);
}
break;
case ARGB_4444:
if ((mType.getElement().mKind != Element.DataKind.PIXEL_RGBA) ||
(mType.getElement().getSizeBytes() != 2)) {
(mType.getElement().getBytesSize() != 2)) {
throw new RSIllegalArgumentException("Allocation kind is " +
mType.getElement().mKind + ", type " +
mType.getElement().mType +
" of " + mType.getElement().getSizeBytes() +
" of " + mType.getElement().getBytesSize() +
" bytes, passed bitmap was " + bc);
}
break;
@@ -583,7 +576,7 @@ public class Allocation extends BaseObj {
*/
public void setFromFieldPacker(int xoff, FieldPacker fp) {
mRS.validate();
int eSize = mType.mElement.getSizeBytes();
int eSize = mType.mElement.getBytesSize();
final byte[] data = fp.getData();
int count = data.length / eSize;
@@ -612,7 +605,7 @@ public class Allocation extends BaseObj {
}
final byte[] data = fp.getData();
int eSize = mType.mElement.mElements[component_number].getSizeBytes();
int eSize = mType.mElement.mElements[component_number].getBytesSize();
eSize *= mType.mElement.mArraySizes[component_number];
if (data.length != eSize) {
@@ -665,7 +658,7 @@ public class Allocation extends BaseObj {
* @param d the source data array
*/
public void copy1DRangeFromUnchecked(int off, int count, int[] d) {
int dataSize = mType.mElement.getSizeBytes() * count;
int dataSize = mType.mElement.getBytesSize() * count;
data1DChecks(off, count, d.length * 4, dataSize);
mRS.nAllocationData1D(getIDSafe(), off, mSelectedLOD, count, d, dataSize);
}
@@ -679,7 +672,7 @@ public class Allocation extends BaseObj {
* @param d the source data array
*/
public void copy1DRangeFromUnchecked(int off, int count, short[] d) {
int dataSize = mType.mElement.getSizeBytes() * count;
int dataSize = mType.mElement.getBytesSize() * count;
data1DChecks(off, count, d.length * 2, dataSize);
mRS.nAllocationData1D(getIDSafe(), off, mSelectedLOD, count, d, dataSize);
}
@@ -693,7 +686,7 @@ public class Allocation extends BaseObj {
* @param d the source data array
*/
public void copy1DRangeFromUnchecked(int off, int count, byte[] d) {
int dataSize = mType.mElement.getSizeBytes() * count;
int dataSize = mType.mElement.getBytesSize() * count;
data1DChecks(off, count, d.length, dataSize);
mRS.nAllocationData1D(getIDSafe(), off, mSelectedLOD, count, d, dataSize);
}
@@ -707,7 +700,7 @@ public class Allocation extends BaseObj {
* @param d the source data array
*/
public void copy1DRangeFromUnchecked(int off, int count, float[] d) {
int dataSize = mType.mElement.getSizeBytes() * count;
int dataSize = mType.mElement.getBytesSize() * count;
data1DChecks(off, count, d.length * 4, dataSize);
mRS.nAllocationData1D(getIDSafe(), off, mSelectedLOD, count, d, dataSize);
}
@@ -1029,30 +1022,6 @@ public class Allocation extends BaseObj {
return new Allocation(id, rs, type, usage);
}
/**
* @hide
* This API is hidden and only intended to be used for
* transitional purposes.
*
* @param type renderscript type describing data layout
* @param mips specifies desired mipmap behaviour for the
* allocation
* @param usage bit field specifying how the allocation is
* utilized
*/
static public Allocation createTyped(RenderScript rs, Type type, MipmapControl mips,
int usage, int pointer) {
rs.validate();
if (type.getID(rs) == 0) {
throw new RSInvalidStateException("Bad Type");
}
int id = rs.nAllocationCreateTyped(type.getID(rs), mips.mID, usage, pointer);
if (id == 0) {
throw new RSRuntimeException("Allocation creation failed.");
}
return new Allocation(id, rs, type, usage);
}
/**
* Creates a renderscript allocation with the size specified by
* the type and no mipmaps generated by default
@@ -1194,8 +1163,11 @@ public class Allocation extends BaseObj {
}
/**
* For allocations used with io operations, returns the handle
* onto a raw buffer that is being managed by the screen
* compositor.
*
* @hide
* @return Surface object associated with allocation
*
*/
public Surface getSurface() {
@@ -1203,7 +1175,9 @@ public class Allocation extends BaseObj {
}
/**
* @hide
* Associate a surface for io output with this allocation
*
* @param sur Surface to associate with allocation
*/
public void setSurface(Surface sur) {
mRS.validate();

View File

@@ -85,13 +85,13 @@ public class Element extends BaseObj {
}
/**
* @hide
* @return element size in bytes
*/
public int getSizeBytes() {return mSize;}
public int getBytesSize() {return mSize;}
/**
* @hide
* Returns the number of vector components. 2 for float2, 4 for
* float4, etc.
* @return element vector size
*/
public int getVectorSize() {return mVectorSize;}
@@ -114,10 +114,6 @@ public class Element extends BaseObj {
* RS_* objects. 32 bit opaque handles.
*/
public enum DataType {
/**
* @hide
* new enum
*/
NONE (0, 0),
//FLOAT_16 (1, 2),
FLOAT_32 (2, 4),
@@ -201,7 +197,10 @@ public class Element extends BaseObj {
}
/**
* @hide
* Elements could be simple, such as an int or a float, or a
* structure with multiple sub elements, such as a collection of
* floats, float2, float4. This function returns zero for simple
* elements or the number of sub-elements otherwise.
* @return number of sub-elements in this element
*/
public int getSubElementCount() {
@@ -212,7 +211,8 @@ public class Element extends BaseObj {
}
/**
* @hide
* For complex elements, this function will return the
* sub-element at index
* @param index index of the sub-element to return
* @return sub-element in this element at given index
*/
@@ -227,7 +227,8 @@ public class Element extends BaseObj {
}
/**
* @hide
* For complex elements, this function will return the
* sub-element name at index
* @param index index of the sub-element
* @return sub-element in this element at given index
*/
@@ -242,7 +243,9 @@ public class Element extends BaseObj {
}
/**
* @hide
* For complex elements, some sub-elements could be statically
* sized arrays. This function will return the array size for
* sub-element at index
* @param index index of the sub-element
* @return array size of sub-element in this element at given index
*/
@@ -257,7 +260,8 @@ public class Element extends BaseObj {
}
/**
* @hide
* This function specifies the location of a sub-element within
* the element
* @param index index of the sub-element
* @return offset in bytes of sub-element in this element at given index
*/
@@ -272,7 +276,6 @@ public class Element extends BaseObj {
}
/**
* @hide
* @return element data type
*/
public DataType getDataType() {
@@ -280,7 +283,6 @@ public class Element extends BaseObj {
}
/**
* @hide
* @return element data kind
*/
public DataKind getDataKind() {

View File

@@ -78,14 +78,20 @@ public class Program extends BaseObj {
}
/**
* @hide
* Program object can have zero or more constant allocations
* associated with it. This method returns the total count.
* @return number of constant input types
*/
public int getConstantCount() {
return mConstants != null ? mConstants.length : 0;
}
/**
* @hide
* Returns the type of the constant buffer used in the program
* object. It could be used to query internal elements or create
* an allocation to store constant data.
* @param slot index of the constant input type to return
* @return constant input type
*/
public Type getConstant(int slot) {
if (slot < 0 || slot >= mConstants.length) {
@@ -95,14 +101,17 @@ public class Program extends BaseObj {
}
/**
* @hide
* Returns the number of textures used in this program object
* @return number of texture inputs
*/
public int getTextureCount() {
return mTextureCount;
}
/**
* @hide
* Returns the type of texture at a given slot. e.g. 2D or Cube
* @param slot index of the texture input
* @return texture input type
*/
public TextureType getTextureType(int slot) {
if ((slot < 0) || (slot >= mTextureCount)) {
@@ -112,7 +121,10 @@ public class Program extends BaseObj {
}
/**
* @hide
* Returns the name of the texture input at a given slot. e.g.
* tex0, diffuse, spec
* @param slot index of the texture input
* @return texture input name
*/
public String getTextureName(int slot) {
if ((slot < 0) || (slot >= mTextureCount)) {
@@ -318,7 +330,6 @@ public class Program extends BaseObj {
}
/**
* @hide
* Adds a texture input to the Program
*
* @param texType describes that the texture to append it (2D,

View File

@@ -48,15 +48,16 @@ public class ProgramRaster extends BaseObj {
}
/**
* @hide
* Specifies whether vertices are rendered as screen aligned
* elements of a specified size
* @return whether point sprites are enabled
*/
public boolean getPointSpriteEnabled() {
public boolean isPointSpriteEnabled() {
return mPointSprite;
}
/**
* @hide
* Specifies how triangles are culled based on their orientation
* @return cull mode
*/
public CullMode getCullMode() {

View File

@@ -150,7 +150,8 @@ public class ProgramStore extends BaseObj {
}
/**
* @hide
* Returns the function used to test writing into the depth
* buffer
* @return depth function
*/
public DepthFunc getDepthFunc() {
@@ -158,47 +159,47 @@ public class ProgramStore extends BaseObj {
}
/**
* @hide
* @return whether depth writes are enabled
* Queries whether writes are enabled into the depth buffer
* @return depth mask
*/
public boolean getDepthMaskEnabled() {
public boolean isDepthMaskEnabled() {
return mDepthMask;
}
/**
* @hide
* Queries whether red channel is written
* @return red color channel mask
*/
public boolean getColorMaskREnabled() {
public boolean isColorMaskRedEnabled() {
return mColorMaskR;
}
/**
* @hide
* Queries whether green channel is written
* @return green color channel mask
*/
public boolean getColorMaskGEnabled() {
public boolean isColorMaskGreenEnabled() {
return mColorMaskG;
}
/**
* @hide
* Queries whether blue channel is written
* @return blue color channel mask
*/
public boolean getColorMaskBEnabled() {
public boolean isColorMaskBlueEnabled() {
return mColorMaskB;
}
/**
* @hide
* Queries whether alpha channel is written
* @return alpha channel mask
*/
public boolean getColorMaskAEnabled() {
public boolean isColorMaskAlphaEnabled() {
return mColorMaskA;
}
/**
* @hide
* Specifies how the source blending factor is computed
* @return source blend function
*/
public BlendSrcFunc getBlendSrcFunc() {
@@ -206,7 +207,7 @@ public class ProgramStore extends BaseObj {
}
/**
* @hide
* Specifies how the destination blending factor is computed
* @return destination blend function
*/
public BlendDstFunc getBlendDstFunc() {
@@ -214,10 +215,11 @@ public class ProgramStore extends BaseObj {
}
/**
* @hide
* Specifies whether colors are dithered before writing into the
* framebuffer
* @return whether dither is enabled
*/
public boolean getDitherEnabled() {
public boolean isDitherEnabled() {
return mDither;
}

View File

@@ -55,14 +55,15 @@ public class ProgramVertex extends Program {
}
/**
* @hide
* @return number of input attribute elements
*/
public int getInputCount() {
return mInputs != null ? mInputs.length : 0;
}
/**
* @hide
* @param slot location of the input to return
* @return input attribute element
*/
public Element getInput(int slot) {
if (slot < 0 || slot >= mInputs.length) {

View File

@@ -204,7 +204,7 @@ public class ProgramVertexFixedFunction extends ProgramVertex {
public Constants(RenderScript rs) {
Type constInputType = ProgramVertexFixedFunction.Builder.getConstantInputType(rs);
mAlloc = Allocation.createTyped(rs, constInputType);
int bufferSize = constInputType.getElement().getSizeBytes()*
int bufferSize = constInputType.getElement().getBytesSize()*
constInputType.getCount();
mIOBuffer = new FieldPacker(bufferSize);
mModel = new Matrix4f();

View File

@@ -59,7 +59,6 @@ public class Sampler extends BaseObj {
}
/**
* @hide
* @return minification setting for the sampler
*/
public Value getMinification() {
@@ -67,7 +66,6 @@ public class Sampler extends BaseObj {
}
/**
* @hide
* @return magnification setting for the sampler
*/
public Value getMagnification() {
@@ -75,7 +73,6 @@ public class Sampler extends BaseObj {
}
/**
* @hide
* @return S wrapping mode for the sampler
*/
public Value getWrapS() {
@@ -83,7 +80,6 @@ public class Sampler extends BaseObj {
}
/**
* @hide
* @return T wrapping mode for the sampler
*/
public Value getWrapT() {
@@ -91,7 +87,6 @@ public class Sampler extends BaseObj {
}
/**
* @hide
* @return anisotropy setting for the sampler
*/
public float getAnisotropy() {
@@ -288,7 +283,7 @@ public class Sampler extends BaseObj {
public Sampler create() {
mRS.validate();
int id = mRS.nSamplerCreate(mMag.mID, mMin.mID,
int id = mRS.nSamplerCreate(mMag.mID, mMin.mID,
mWrapS.mID, mWrapT.mID, mWrapR.mID, mAniso);
Sampler sampler = new Sampler(id, mRS);
sampler.mMin = mMin;

View File

@@ -108,7 +108,7 @@ public class UT_element extends UnitTest {
_RS_ASSERT("complexElemsimpleElem.getDataType() == NONE",
complexElem.getDataType() == DataType.NONE);
_RS_ASSERT("complexElem.getSizeBytes() == ScriptField_ComplexStruct.Item.sizeof",
complexElem.getSizeBytes() == ScriptField_ComplexStruct.Item.sizeof);
complexElem.getBytesSize() == ScriptField_ComplexStruct.Item.sizeof);
for (int i = 0; i < subElemCount; i ++) {
_RS_ASSERT("complexElem.getSubElement(i) != null",

View File

@@ -60,13 +60,13 @@ public class UT_program_raster extends UnitTest {
}
private void testJavaSide(RenderScript RS) {
_RS_ASSERT("pointSpriteEnabled.getPointSpriteEnabled() == true",
pointSpriteEnabled.getPointSpriteEnabled() == true);
_RS_ASSERT("pointSpriteEnabled.isPointSpriteEnabled() == true",
pointSpriteEnabled.isPointSpriteEnabled() == true);
_RS_ASSERT("pointSpriteEnabled.getCullMode() == ProgramRaster.CullMode.BACK",
pointSpriteEnabled.getCullMode() == ProgramRaster.CullMode.BACK);
_RS_ASSERT("cullMode.getPointSpriteEnabled() == false",
cullMode.getPointSpriteEnabled() == false);
_RS_ASSERT("cullMode.isPointSpriteEnabled() == false",
cullMode.isPointSpriteEnabled() == false);
_RS_ASSERT("cullMode.getCullMode() == ProgramRaster.CullMode.FRONT",
cullMode.getCullMode() == ProgramRaster.CullMode.FRONT);
}

View File

@@ -112,15 +112,15 @@ public class UT_program_store extends UnitTest {
boolean B,
boolean A,
boolean dither) {
_RS_ASSERT("ps.getDepthMaskEnabled() == depthMask", ps.getDepthMaskEnabled() == depthMask);
_RS_ASSERT("ps.isDepthMaskEnabled() == depthMask", ps.isDepthMaskEnabled() == depthMask);
_RS_ASSERT("ps.getDepthFunc() == df", ps.getDepthFunc() == df);
_RS_ASSERT("ps.getBlendSrcFunc() == bsf", ps.getBlendSrcFunc() == bsf);
_RS_ASSERT("ps.getBlendDstFunc() == bdf", ps.getBlendDstFunc() == bdf);
_RS_ASSERT("ps.getColorMaskREnabled() == R", ps.getColorMaskREnabled() == R);
_RS_ASSERT("ps.getColorMaskGEnabled() == G", ps.getColorMaskGEnabled() == G);
_RS_ASSERT("ps.getColorMaskBEnabled() == B", ps.getColorMaskBEnabled() == B);
_RS_ASSERT("ps.getColorMaskAEnabled() == A", ps.getColorMaskAEnabled() == A);
_RS_ASSERT("ps.getDitherEnabled() == dither", ps.getDitherEnabled() == dither);
_RS_ASSERT("ps.isColorMaskRedEnabled() == R", ps.isColorMaskRedEnabled() == R);
_RS_ASSERT("ps.isColorMaskGreenEnabled() == G", ps.isColorMaskGreenEnabled() == G);
_RS_ASSERT("ps.isColorMaskBlueEnabled () == B", ps.isColorMaskBlueEnabled () == B);
_RS_ASSERT("ps.isColorMaskAlphaEnabled() == A", ps.isColorMaskAlphaEnabled() == A);
_RS_ASSERT("ps.isDitherEnabled() == dither", ps.isDitherEnabled() == dither);
}
void varyBuilderColorAndDither(ProgramStore.Builder pb,