diff options
Diffstat (limited to 'rs/java/android/renderscript')
-rw-r--r-- | rs/java/android/renderscript/Allocation.java | 2 | ||||
-rw-r--r-- | rs/java/android/renderscript/RenderScript.java | 28 | ||||
-rw-r--r-- | rs/java/android/renderscript/Script.java | 30 | ||||
-rw-r--r-- | rs/java/android/renderscript/ScriptIntrinsicBlend.java | 2 |
4 files changed, 59 insertions, 3 deletions
diff --git a/rs/java/android/renderscript/Allocation.java b/rs/java/android/renderscript/Allocation.java index 0a5059390449..a4876b92fadf 100644 --- a/rs/java/android/renderscript/Allocation.java +++ b/rs/java/android/renderscript/Allocation.java @@ -1505,7 +1505,7 @@ public class Allocation extends BaseObj { } final byte[] data = fp.getData(); - int data_length = fp.getPos(); + int data_length = data.length; int eSize = mType.mElement.mElements[component_number].getBytesSize(); eSize *= mType.mElement.mArraySizes[component_number]; diff --git a/rs/java/android/renderscript/RenderScript.java b/rs/java/android/renderscript/RenderScript.java index 8b1a0324956a..a2967e8a2c47 100644 --- a/rs/java/android/renderscript/RenderScript.java +++ b/rs/java/android/renderscript/RenderScript.java @@ -30,6 +30,8 @@ import android.os.SystemProperties; import android.os.Trace; import java.util.ArrayList; +// TODO: Clean up the whitespace that separates methods in this class. + /** * This class provides access to a RenderScript context, which controls RenderScript * initialization, resource management, and teardown. An instance of the RenderScript @@ -88,6 +90,21 @@ public class RenderScript { */ public static final int CREATE_FLAG_LOW_POWER = 0x0004; + /** + * @hide + * Context creation flag which instructs the implementation to wait for + * a debugger to be attached before continuing execution. + */ + public static final int CREATE_FLAG_WAIT_FOR_ATTACH = 0x0008; + + /** + * @hide + * Context creation flag which specifies that optimization level 0 is + * passed to the device compiler upon execution of the RenderScript kernel. + * The default optimization level is 3. + */ + public static final int CREATE_FLAG_OPT_LEVEL_0 = 0x0010; + /* * Detect the bitness of the VM to allow FieldPacker to do the right thing. */ @@ -726,6 +743,14 @@ public class RenderScript { rsnScriptForEach(mContext, id, slot, ains, aout, params, limits); } + native void rsnScriptReduce(long con, long id, int slot, long ain, + long aout, int[] limits); + synchronized void nScriptReduce(long id, int slot, long ain, long aout, + int[] limits) { + validate(); + rsnScriptReduce(mContext, id, slot, ain, aout, limits); + } + native void rsnScriptInvokeV(long con, long id, int slot, byte[] params); synchronized void nScriptInvokeV(long id, int slot, byte[] params) { validate(); @@ -1356,7 +1381,8 @@ public class RenderScript { return null; } - if ((flags & ~(CREATE_FLAG_LOW_LATENCY | CREATE_FLAG_LOW_POWER)) != 0) { + if ((flags & ~(CREATE_FLAG_LOW_LATENCY | CREATE_FLAG_LOW_POWER | + CREATE_FLAG_WAIT_FOR_ATTACH | CREATE_FLAG_OPT_LEVEL_0)) != 0) { throw new RSIllegalArgumentException("Invalid flags passed."); } diff --git a/rs/java/android/renderscript/Script.java b/rs/java/android/renderscript/Script.java index 7cd6d09e2812..ed4c6c7be8d4 100644 --- a/rs/java/android/renderscript/Script.java +++ b/rs/java/android/renderscript/Script.java @@ -283,6 +283,35 @@ public class Script extends BaseObj { mRS.nScriptForEach(getID(mRS), slot, in_ids, out_id, params, limits); } + /** + * Only intended for use by generated reflected code. + * + * @hide + */ + protected void reduce(int slot, Allocation ain, Allocation aout, LaunchOptions sc) { + mRS.validate(); + mRS.validateObject(ain); + mRS.validateObject(aout); + + if (ain == null || aout == null) { + throw new RSIllegalArgumentException( + "Both ain and aout are required to be non-null."); + } + + long in_id = ain.getID(mRS); + long out_id = aout.getID(mRS); + + int[] limits = null; + if (sc != null) { + limits = new int[2]; + + limits[0] = sc.xstart; + limits[1] = sc.xend; + } + + mRS.nScriptReduce(getID(mRS), slot, in_id, out_id, limits); + } + long[] mInIdsBuffer; Script(long id, RenderScript rs) { @@ -291,7 +320,6 @@ public class Script extends BaseObj { mInIdsBuffer = new long[1]; } - /** * Only intended for use by generated reflected code. * diff --git a/rs/java/android/renderscript/ScriptIntrinsicBlend.java b/rs/java/android/renderscript/ScriptIntrinsicBlend.java index 6b09bb7a7741..fdcd61b04eca 100644 --- a/rs/java/android/renderscript/ScriptIntrinsicBlend.java +++ b/rs/java/android/renderscript/ScriptIntrinsicBlend.java @@ -406,6 +406,8 @@ public class ScriptIntrinsicBlend extends ScriptIntrinsic { /** * Sets dst = {src.r ^ dst.r, src.g ^ dst.g, src.b ^ dst.b, src.a ^ dst.a} * + * <b>Note:</b> this is NOT the Porter/Duff XOR mode; this is a bitwise xor. + * * @param ain The source buffer * @param aout The destination buffer * @param opt LaunchOptions for clipping |