diff options
Diffstat (limited to 'graphics/java')
5 files changed, 43 insertions, 10 deletions
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index b6cce7e..09c041f 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -26,6 +26,7 @@ import android.graphics.ColorFilter; import android.graphics.PixelFormat; import android.graphics.Rect; import android.util.AttributeSet; +import android.util.Slog; import android.view.View; import java.io.IOException; @@ -49,6 +50,7 @@ import java.io.IOException; public class LayerDrawable extends Drawable implements Drawable.Callback { LayerState mLayerState; + private int mOpacityOverride = PixelFormat.UNKNOWN; private int[] mPaddingL; private int[] mPaddingT; private int[] mPaddingR; @@ -113,6 +115,13 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { int type; + TypedArray a = r.obtainAttributes(attrs, com.android.internal.R.styleable.LayerDrawable); + + mOpacityOverride = a.getInt(com.android.internal.R.styleable.LayerDrawable_opacity, + PixelFormat.UNKNOWN); + + a.recycle(); + final int innerDepth = parser.getDepth() + 1; int depth; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT @@ -125,7 +134,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { continue; } - TypedArray a = r.obtainAttributes(attrs, + a = r.obtainAttributes(attrs, com.android.internal.R.styleable.LayerDrawableItem); int left = a.getDimensionPixelOffset( @@ -391,9 +400,28 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { array[i].mDrawable.setColorFilter(cf); } } + + /** + * Sets the opacity of this drawable directly, instead of collecting the states from + * the layers + * + * @param opacity The opacity to use, or {@link PixelFormat#UNKNOWN PixelFormat.UNKNOWN} + * for the default behavior + * + * @see PixelFormat#UNKNOWN + * @see PixelFormat#TRANSLUCENT + * @see PixelFormat#TRANSPARENT + * @see PixelFormat#OPAQUE + */ + public void setOpacity(int opacity) { + mOpacityOverride = opacity; + } @Override public int getOpacity() { + if (mOpacityOverride != PixelFormat.UNKNOWN) { + return mOpacityOverride; + } return mLayerState.getOpacity(); } diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java index 9dc291b..0de53f2 100644 --- a/graphics/java/android/renderscript/Allocation.java +++ b/graphics/java/android/renderscript/Allocation.java @@ -352,7 +352,7 @@ public class Allocation extends BaseObj { if (bc == Bitmap.Config.RGB_565) { return Element.RGB_565(rs); } - throw new RSInvalidStateException("Bad bitmap type."); + throw new RSInvalidStateException("Bad bitmap type: " + bc); } static private Type typeFromBitmap(RenderScript rs, Bitmap b) { diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index df03e13..dcf86e3 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -389,6 +389,10 @@ public class RenderScript { synchronized void nScriptSetVarV(int id, int slot, byte[] val) { rsnScriptSetVarV(mContext, id, slot, val); } + native void rsnScriptSetVarObj(int con, int id, int slot, int val); + synchronized void nScriptSetVarObj(int id, int slot, int val) { + rsnScriptSetVarObj(mContext, id, slot, val); + } native void rsnScriptCBegin(int con); synchronized void nScriptCBegin() { @@ -398,9 +402,9 @@ public class RenderScript { synchronized void nScriptCSetScript(byte[] script, int offset, int length) { rsnScriptCSetScript(mContext, script, offset, length); } - native int rsnScriptCCreate(int con); - synchronized int nScriptCCreate() { - return rsnScriptCCreate(mContext); + native int rsnScriptCCreate(int con, String val); + synchronized int nScriptCCreate(String val) { + return rsnScriptCCreate(mContext, val); } native void rsnSamplerBegin(int con); @@ -810,6 +814,3 @@ public class RenderScript { return 0; } } - - - diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java index 7d7dd6d..ea616c6 100644 --- a/graphics/java/android/renderscript/Script.java +++ b/graphics/java/android/renderscript/Script.java @@ -88,6 +88,10 @@ public class Script extends BaseObj { mRS.nScriptSetVarI(getID(), index, v ? 1 : 0); } + public void setVar(int index, BaseObj o) { + mRS.nScriptSetVarObj(getID(), index, (o == null) ? 0 : o.getID()); + } + public void setVar(int index, FieldPacker v) { mRS.nScriptSetVarV(getID(), index, v.getData()); } diff --git a/graphics/java/android/renderscript/ScriptC.java b/graphics/java/android/renderscript/ScriptC.java index 44fc5fd..64ed75b 100644 --- a/graphics/java/android/renderscript/ScriptC.java +++ b/graphics/java/android/renderscript/ScriptC.java @@ -75,7 +75,7 @@ public class ScriptC extends Script { rs.nScriptCBegin(); rs.nScriptCSetScript(pgm, 0, pgmLength); - return rs.nScriptCCreate(); + Log.v(TAG, "Create script for resource = " + resources.getResourceName(resourceID)); + return rs.nScriptCCreate(resources.getResourceName(resourceID)); } } - |