Required 64bit changes for JNI/Java for RS compat lib.
Change-Id: I535e41c239ea536dd454646d8dbc03c4be212489
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/Allocation.java b/v8/renderscript/java/src/android/support/v8/renderscript/Allocation.java
index 7f87265..a33aeca 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/Allocation.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/Allocation.java
@@ -159,7 +159,7 @@
}
- private int getIDSafe() {
+ private long getIDSafe() {
if (mAdaptedAllocation != null) {
return mAdaptedAllocation.getID(mRS);
}
@@ -218,7 +218,7 @@
mBitmap = b;
}
- Allocation(int id, RenderScript rs, Type t, int usage) {
+ Allocation(long id, RenderScript rs, Type t, int usage) {
super(id, rs);
if ((usage & ~(USAGE_SCRIPT |
USAGE_GRAPHICS_TEXTURE |
@@ -262,6 +262,14 @@
super.finalize();
}
+ private void validateIsInt64() {
+ if ((mType.mElement.mType == Element.DataType.SIGNED_64) ||
+ (mType.mElement.mType == Element.DataType.UNSIGNED_64)) {
+ return;
+ }
+ throw new RSIllegalArgumentException(
+ "64 bit integer source does not match allocation type " + mType.mElement.mType);
+ }
private void validateIsInt32() {
if ((mType.mElement.mType == Element.DataType.SIGNED_32) ||
@@ -387,11 +395,20 @@
throw new RSIllegalArgumentException("Array size mismatch, allocation sizeX = " +
mCurrentCount + ", array length = " + d.length);
}
- int i[] = new int[d.length];
- for (int ct=0; ct < d.length; ct++) {
- i[ct] = d[ct].getID(mRS);
+
+ if (RenderScript.sPointerSize == 8) {
+ long i[] = new long[d.length * 4];
+ for (int ct=0; ct < d.length; ct++) {
+ i[ct * 4] = d[ct].getID(mRS);
+ }
+ copy1DRangeFromUnchecked(0, mCurrentCount, i);
+ } else {
+ int i[] = new int[d.length];
+ for (int ct=0; ct < d.length; ct++) {
+ i[ct] = (int)d[ct].getID(mRS);
+ }
+ copy1DRangeFromUnchecked(0, mCurrentCount, i);
}
- copy1DRangeFromUnchecked(0, mCurrentCount, i);
}
private void validateBitmapFormat(Bitmap b) {
@@ -723,6 +740,19 @@
* @param count The number of elements to be copied.
* @param d the source data array
*/
+ public void copy1DRangeFromUnchecked(int off, int count, long[] d) {
+ int dataSize = mType.mElement.getBytesSize() * count;
+ data1DChecks(off, count, d.length * 8, dataSize);
+ mRS.nAllocationData1D(getIDSafe(), off, mSelectedLOD, count, d, dataSize);
+ }
+ /**
+ * Copy an array into part of this Allocation. This method does not
+ * guarantee that the Allocation is compatible with the input buffer.
+ *
+ * @param off The offset of the first element to be copied.
+ * @param count The number of elements to be copied.
+ * @param d the source data array
+ */
public void copy1DRangeFromUnchecked(int off, int count, int[] d) {
int dataSize = mType.mElement.getBytesSize() * count;
data1DChecks(off, count, d.length * 4, dataSize);
@@ -777,6 +807,20 @@
* @param count The number of elements to be copied.
* @param d the source data array
*/
+ public void copy1DRangeFrom(int off, int count, long[] d) {
+ validateIsInt64();
+ copy1DRangeFromUnchecked(off, count, d);
+ }
+
+ /**
+ * Copy an array into part of this Allocation. This variant is type checked
+ * and will generate exceptions if the Allocation type is not a 32 bit
+ * integer type.
+ *
+ * @param off The offset of the first element to be copied.
+ * @param count The number of elements to be copied.
+ * @param d the source data array
+ */
public void copy1DRangeFrom(int off, int count, int[] d) {
validateIsInt32();
copy1DRangeFromUnchecked(off, count, d);
@@ -871,6 +915,13 @@
w, h, data, data.length * 2);
}
+ void copy2DRangeFromUnchecked(int xoff, int yoff, int w, int h, long[] data) {
+ mRS.validate();
+ validate2DRange(xoff, yoff, w, h);
+ mRS.nAllocationData2D(getIDSafe(), xoff, yoff, mSelectedLOD, mSelectedFace.mID,
+ w, h, data, data.length * 8);
+ }
+
void copy2DRangeFromUnchecked(int xoff, int yoff, int w, int h, int[] data) {
mRS.validate();
validate2DRange(xoff, yoff, w, h);
@@ -926,6 +977,21 @@
* @param h Height of the region to update
* @param data to be placed into the Allocation
*/
+ public void copy2DRangeFrom(int xoff, int yoff, int w, int h, long[] data) {
+ validateIsInt64();
+ copy2DRangeFromUnchecked(xoff, yoff, w, h, data);
+ }
+
+ /**
+ * Copy from an array into a rectangular region in this Allocation. The
+ * array is assumed to be tightly packed.
+ *
+ * @param xoff X offset of the region to update in this Allocation
+ * @param yoff Y offset of the region to update in this Allocation
+ * @param w Width of the region to update
+ * @param h Height of the region to update
+ * @param data to be placed into the Allocation
+ */
public void copy2DRangeFrom(int xoff, int yoff, int w, int h, int[] data) {
validateIsInt32();
copy2DRangeFromUnchecked(xoff, yoff, w, h, data);
@@ -1034,6 +1100,17 @@
* @hide
*
*/
+ void copy3DRangeFromUnchecked(int xoff, int yoff, int zoff, int w, int h, int d, long[] data) {
+ mRS.validate();
+ validate3DRange(xoff, yoff, zoff, w, h, d);
+ mRS.nAllocationData3D(getIDSafe(), xoff, yoff, zoff, mSelectedLOD,
+ w, h, d, data, data.length * 8);
+ }
+
+ /**
+ * @hide
+ *
+ */
void copy3DRangeFromUnchecked(int xoff, int yoff, int zoff, int w, int h, int d, int[] data) {
mRS.validate();
validate3DRange(xoff, yoff, zoff, w, h, d);
@@ -1084,6 +1161,15 @@
* @hide
*
*/
+ public void copy3DRangeFrom(int xoff, int yoff, int zoff, int w, int h, int d, long[] data) {
+ validateIsInt64();
+ copy3DRangeFromUnchecked(xoff, yoff, zoff, w, h, d, data);
+ }
+
+ /**
+ * @hide
+ *
+ */
public void copy3DRangeFrom(int xoff, int yoff, int zoff, int w, int h, int d, int[] data) {
validateIsInt32();
copy3DRangeFromUnchecked(xoff, yoff, zoff, w, h, d, data);
@@ -1170,6 +1256,19 @@
*
* @param d The array to be set from the Allocation.
*/
+ public void copyTo(long[] d) {
+ validateIsInt64();
+ mRS.validate();
+ mRS.nAllocationRead(getID(mRS), d);
+ }
+
+ /**
+ * Copy from the Allocation into a int array. The array must be at least as
+ * large as the Allocation. The allocation must be of an 32 bit integer
+ * {@link android.support.v8.renderscript.Element} type.
+ *
+ * @param d The array to be set from the Allocation.
+ */
public void copyTo(int[] d) {
validateIsInt32();
mRS.validate();
@@ -1216,7 +1315,7 @@
throw new RSRuntimeException("USAGE_IO not supported, Allocation creation failed.");
}
- int id = rs.nAllocationCreateTyped(type.getID(rs), mips.mID, usage, 0);
+ long id = rs.nAllocationCreateTyped(type.getID(rs), mips.mID, usage, 0);
if (id == 0) {
throw new RSRuntimeException("Allocation creation failed.");
}
@@ -1269,7 +1368,7 @@
b.setX(count);
Type t = b.create();
- int id = rs.nAllocationCreateTyped(t.getID(rs), MipmapControl.MIPMAP_NONE.mID, usage, 0);
+ long id = rs.nAllocationCreateTyped(t.getID(rs), MipmapControl.MIPMAP_NONE.mID, usage, 0);
if (id == 0) {
throw new RSRuntimeException("Allocation creation failed.");
}
@@ -1351,7 +1450,7 @@
if (mips == MipmapControl.MIPMAP_NONE &&
t.getElement().isCompatible(Element.RGBA_8888(rs)) &&
usage == (USAGE_SHARED | USAGE_SCRIPT | USAGE_GRAPHICS_TEXTURE)) {
- int id = rs.nAllocationCreateBitmapBackedAllocation(t.getID(rs), mips.mID, b, usage);
+ long id = rs.nAllocationCreateBitmapBackedAllocation(t.getID(rs), mips.mID, b, usage);
if (id == 0) {
throw new RSRuntimeException("Load failed.");
}
@@ -1363,7 +1462,7 @@
}
- int id = rs.nAllocationCreateFromBitmap(t.getID(rs), mips.mID, b, usage);
+ long id = rs.nAllocationCreateFromBitmap(t.getID(rs), mips.mID, b, usage);
if (id == 0) {
throw new RSRuntimeException("Load failed.");
}
@@ -1443,7 +1542,7 @@
tb.setMipmaps(mips == MipmapControl.MIPMAP_FULL);
Type t = tb.create();
- int id = rs.nAllocationCubeCreateFromBitmap(t.getID(rs), mips.mID, b, usage);
+ long id = rs.nAllocationCubeCreateFromBitmap(t.getID(rs), mips.mID, b, usage);
if(id == 0) {
throw new RSRuntimeException("Load failed for bitmap " + b + " element " + e);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
index e99a49c..bb49600 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/BaseObj.java
@@ -26,14 +26,14 @@
*
**/
public class BaseObj {
- BaseObj(int id, RenderScript rs) {
+ BaseObj(long id, RenderScript rs) {
rs.validate();
mRS = rs;
mID = id;
mDestroyed = false;
}
- void setID(int id) {
+ void setID(long id) {
if (mID != 0) {
throw new RSRuntimeException("Internal Error, reset of object ID.");
}
@@ -47,9 +47,9 @@
* @param rs Context to verify against internal context for
* match.
*
- * @return int
+ * @return long
*/
- int getID(RenderScript rs) {
+ long getID(RenderScript rs) {
mRS.validate();
if (mDestroyed) {
throw new RSInvalidStateException("using a destroyed object.");
@@ -73,7 +73,7 @@
}
}
- private int mID;
+ private long mID;
private boolean mDestroyed;
RenderScript mRS;
@@ -124,7 +124,7 @@
*/
@Override
public int hashCode() {
- return mID;
+ return (int)((mID & 0xfffffff) ^ (mID >> 32));
}
/**
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/Element.java b/v8/renderscript/java/src/android/support/v8/renderscript/Element.java
index 397f746..a483000 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/Element.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/Element.java
@@ -151,11 +151,11 @@
MATRIX_3X3 (17, 36),
MATRIX_2X2 (18, 16),
- RS_ELEMENT (1000, 4),
- RS_TYPE (1001, 4),
- RS_ALLOCATION (1002, 4),
- RS_SAMPLER (1003, 4),
- RS_SCRIPT (1004, 4);
+ RS_ELEMENT (1000),
+ RS_TYPE (1001),
+ RS_ALLOCATION (1002),
+ RS_SAMPLER (1003),
+ RS_SCRIPT (1004);
int mID;
int mSize;
@@ -163,6 +163,14 @@
mID = id;
mSize = size;
}
+
+ DataType(int id) {
+ mID = id;
+ mSize = 4;
+ if (RenderScript.sPointerSize == 8) {
+ mSize = 32;
+ }
+ }
}
/**
@@ -706,7 +714,7 @@
return rs.mElement_MATRIX_2X2;
}
- Element(int id, RenderScript rs, Element[] e, String[] n, int[] as) {
+ Element(long id, RenderScript rs, Element[] e, String[] n, int[] as) {
super(id, rs);
mSize = 0;
mVectorSize = 1;
@@ -723,7 +731,7 @@
updateVisibleSubElements();
}
- Element(int id, RenderScript rs, DataType dt, DataKind dk, boolean norm, int size) {
+ Element(long id, RenderScript rs, DataType dt, DataKind dk, boolean norm, int size) {
super(id, rs);
if ((dt != DataType.UNSIGNED_5_6_5) &&
(dt != DataType.UNSIGNED_4_4_4_4) &&
@@ -742,7 +750,7 @@
mVectorSize = size;
}
- Element(int id, RenderScript rs) {
+ Element(long id, RenderScript rs) {
super(id, rs);
}
@@ -758,7 +766,7 @@
DataKind dk = DataKind.USER;
boolean norm = false;
int vecSize = 1;
- int id = rs.nElementCreate(dt.mID, dk.mID, norm, vecSize);
+ long id = rs.nElementCreate(dt.mID, dk.mID, norm, vecSize);
return new Element(id, rs, dt, dk, norm, vecSize);
}
@@ -795,7 +803,7 @@
case BOOLEAN: {
DataKind dk = DataKind.USER;
boolean norm = false;
- int id = rs.nElementCreate(dt.mID, dk.mID, norm, size);
+ long id = rs.nElementCreate(dt.mID, dk.mID, norm, size);
return new Element(id, rs, dt, dk, norm, size);
}
@@ -863,7 +871,7 @@
}
boolean norm = true;
- int id = rs.nElementCreate(dt.mID, dk.mID, norm, size);
+ long id = rs.nElementCreate(dt.mID, dk.mID, norm, size);
return new Element(id, rs, dt, dk, norm, size);
}
@@ -992,12 +1000,12 @@
java.lang.System.arraycopy(mElementNames, 0, sin, 0, mCount);
java.lang.System.arraycopy(mArraySizes, 0, asin, 0, mCount);
- int[] ids = new int[ein.length];
+ long[] ids = new long[ein.length];
for (int ct = 0; ct < ein.length; ct++ ) {
ids[ct] = ein[ct].getID(mRS);
}
- int id = mRS.nElementCreate2(ids, sin, asin);
+ long id = mRS.nElementCreate2(ids, sin, asin);
return new Element(id, mRS, ein, sin, asin);
}
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
index 0973937..ee19875 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/FieldPacker.java
@@ -17,6 +17,7 @@
package android.support.v8.renderscript;
import android.support.v8.renderscript.RenderScript;
+import java.util.BitSet;
/**
* Utility class for packing arguments and structures from Android system objects to
@@ -32,6 +33,7 @@
mPos = 0;
mLen = len;
mData = new byte[len];
+ mAlignment = new BitSet();
}
public void align(int v) {
@@ -40,6 +42,7 @@
}
while ((mPos & (v - 1)) != 0) {
+ mAlignment.flip(mPos);
mData[mPos++] = 0;
}
}
@@ -147,9 +150,24 @@
public void addObj(BaseObj obj) {
if (obj != null) {
- addI32(obj.getID(null));
+ if (RenderScript.sPointerSize == 8) {
+ addI64(obj.getID(null));
+ addI64(0);
+ addI64(0);
+ addI64(0);
+ }
+ else {
+ addI32((int)obj.getID(null));
+ }
} else {
- addI32(0);
+ if (RenderScript.sPointerSize == 8) {
+ addI64(0);
+ addI64(0);
+ addI64(0);
+ addI64(0);
+ } else {
+ addI32(0);
+ }
}
}
@@ -346,7 +364,7 @@
private final byte mData[];
private int mPos;
private int mLen;
-
+ private BitSet mAlignment;
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
index 8cf9861..b42b097 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/RenderScript.java
@@ -66,19 +66,25 @@
// Non-threadsafe functions.
native boolean nLoadSO(boolean useNative);
native boolean nLoadIOSO();
- native int nDeviceCreate();
- native void nDeviceDestroy(int dev);
- native void nDeviceSetConfig(int dev, int param, int value);
- native int nContextGetUserMessage(int con, int[] data);
- native String nContextGetErrorMessage(int con);
- native int nContextPeekMessage(int con, int[] subID);
- native void nContextInitToClient(int con);
- native void nContextDeinitToClient(int con);
+ native long nDeviceCreate();
+ native void nDeviceDestroy(long dev);
+ native void nDeviceSetConfig(long dev, int param, int value);
+ native int nContextGetUserMessage(long con, int[] data);
+ native String nContextGetErrorMessage(long con);
+ native int nContextPeekMessage(long con, int[] subID);
+ native void nContextInitToClient(long con);
+ native void nContextDeinitToClient(long con);
static private int sNative = -1;
static private int sSdkVersion = -1;
static private boolean useIOlib = false;
+ /*
+ * Detect the bitness of the VM to allow FieldPacker to do the right thing.
+ */
+ static native int rsnSystemGetPointerSize();
+ static int sPointerSize;
+
/**
* Determines whether or not we should be thunking into the native
* RenderScript layer or actually using the compatibility library.
@@ -206,11 +212,11 @@
// Methods below are wrapped to protect the non-threadsafe
// lockless fifo.
- native int rsnContextCreate(int dev, int ver, int sdkVer, int contextType);
- synchronized int nContextCreate(int dev, int ver, int sdkVer, int contextType) {
+ native long rsnContextCreate(long dev, int ver, int sdkVer, int contextType);
+ synchronized long nContextCreate(long dev, int ver, int sdkVer, int contextType) {
return rsnContextCreate(dev, ver, sdkVer, contextType);
}
- native void rsnContextDestroy(int con);
+ native void rsnContextDestroy(long con);
synchronized void nContextDestroy() {
validate();
@@ -219,38 +225,38 @@
ReentrantReadWriteLock.WriteLock wlock = mRWLock.writeLock();
wlock.lock();
- int curCon = mContext;
+ long curCon = mContext;
// context is considered dead as of this point
mContext = 0;
wlock.unlock();
rsnContextDestroy(curCon);
}
- native void rsnContextSetPriority(int con, int p);
+ native void rsnContextSetPriority(long con, int p);
synchronized void nContextSetPriority(int p) {
validate();
rsnContextSetPriority(mContext, p);
}
- native void rsnContextDump(int con, int bits);
+ native void rsnContextDump(long con, int bits);
synchronized void nContextDump(int bits) {
validate();
rsnContextDump(mContext, bits);
}
- native void rsnContextFinish(int con);
+ native void rsnContextFinish(long con);
synchronized void nContextFinish() {
validate();
rsnContextFinish(mContext);
}
- native void rsnContextSendMessage(int con, int id, int[] data);
+ native void rsnContextSendMessage(long con, int id, int[] data);
synchronized void nContextSendMessage(int id, int[] data) {
validate();
rsnContextSendMessage(mContext, id, data);
}
// nObjDestroy is explicitly _not_ synchronous to prevent crashes in finalizers
- native void rsnObjDestroy(int con, int id);
- void nObjDestroy(int id) {
+ native void rsnObjDestroy(long con, long id);
+ void nObjDestroy(long id) {
// There is a race condition here. The calling code may be run
// by the gc while teardown is occuring. This protects againts
// deleting dead objects.
@@ -259,153 +265,158 @@
}
}
- native int rsnElementCreate(int con, int type, int kind, boolean norm, int vecSize);
- synchronized int nElementCreate(int type, int kind, boolean norm, int vecSize) {
+ native long rsnElementCreate(long con, long type, int kind, boolean norm, int vecSize);
+ synchronized long nElementCreate(long type, int kind, boolean norm, int vecSize) {
validate();
return rsnElementCreate(mContext, type, kind, norm, vecSize);
}
- native int rsnElementCreate2(int con, int[] elements, String[] names, int[] arraySizes);
- synchronized int nElementCreate2(int[] elements, String[] names, int[] arraySizes) {
+ native long rsnElementCreate2(long con, long[] elements, String[] names, int[] arraySizes);
+ synchronized long nElementCreate2(long[] elements, String[] names, int[] arraySizes) {
validate();
return rsnElementCreate2(mContext, elements, names, arraySizes);
}
- native void rsnElementGetNativeData(int con, int id, int[] elementData);
- synchronized void nElementGetNativeData(int id, int[] elementData) {
+ native void rsnElementGetNativeData(long con, long id, int[] elementData);
+ synchronized void nElementGetNativeData(long id, int[] elementData) {
validate();
rsnElementGetNativeData(mContext, id, elementData);
}
- native void rsnElementGetSubElements(int con, int id,
- int[] IDs, String[] names, int[] arraySizes);
- synchronized void nElementGetSubElements(int id, int[] IDs, String[] names, int[] arraySizes) {
+ native void rsnElementGetSubElements(long con, long id,
+ long[] IDs, String[] names, int[] arraySizes);
+ synchronized void nElementGetSubElements(long id, long[] IDs, String[] names, int[] arraySizes) {
validate();
rsnElementGetSubElements(mContext, id, IDs, names, arraySizes);
}
- native int rsnTypeCreate(int con, int eid, int x, int y, int z, boolean mips, boolean faces, int yuv);
- synchronized int nTypeCreate(int eid, int x, int y, int z, boolean mips, boolean faces, int yuv) {
+ native long rsnTypeCreate(long con, long eid, int x, int y, int z, boolean mips, boolean faces, int yuv);
+ synchronized long nTypeCreate(long eid, int x, int y, int z, boolean mips, boolean faces, int yuv) {
validate();
return rsnTypeCreate(mContext, eid, x, y, z, mips, faces, yuv);
}
- native void rsnTypeGetNativeData(int con, int id, int[] typeData);
- synchronized void nTypeGetNativeData(int id, int[] typeData) {
+
+ native void rsnTypeGetNativeData(long con, long id, long[] typeData);
+ synchronized void nTypeGetNativeData(long id, long[] typeData) {
validate();
rsnTypeGetNativeData(mContext, id, typeData);
}
- native int rsnAllocationCreateTyped(int con, int type, int mip, int usage, int pointer);
- synchronized int nAllocationCreateTyped(int type, int mip, int usage, int pointer) {
+ native long rsnAllocationCreateTyped(long con, long type, int mip, int usage, long pointer);
+ synchronized long nAllocationCreateTyped(long type, int mip, int usage, long pointer) {
validate();
return rsnAllocationCreateTyped(mContext, type, mip, usage, pointer);
}
- native int rsnAllocationCreateFromBitmap(int con, int type, int mip, Bitmap bmp, int usage);
- synchronized int nAllocationCreateFromBitmap(int type, int mip, Bitmap bmp, int usage) {
+ native long rsnAllocationCreateFromBitmap(long con, long type, int mip, Bitmap bmp, int usage);
+ synchronized long nAllocationCreateFromBitmap(long type, int mip, Bitmap bmp, int usage) {
validate();
return rsnAllocationCreateFromBitmap(mContext, type, mip, bmp, usage);
}
- native int rsnAllocationCreateBitmapBackedAllocation(int con, int type, int mip, Bitmap bmp, int usage);
- synchronized int nAllocationCreateBitmapBackedAllocation(int type, int mip, Bitmap bmp, int usage) {
+ native long rsnAllocationCreateBitmapBackedAllocation(long con, long type, int mip, Bitmap bmp, int usage);
+ synchronized long nAllocationCreateBitmapBackedAllocation(long type, int mip, Bitmap bmp, int usage) {
validate();
return rsnAllocationCreateBitmapBackedAllocation(mContext, type, mip, bmp, usage);
}
- native int rsnAllocationCubeCreateFromBitmap(int con, int type, int mip, Bitmap bmp, int usage);
- synchronized int nAllocationCubeCreateFromBitmap(int type, int mip, Bitmap bmp, int usage) {
+ native long rsnAllocationCubeCreateFromBitmap(long con, long type, int mip, Bitmap bmp, int usage);
+ synchronized long nAllocationCubeCreateFromBitmap(long type, int mip, Bitmap bmp, int usage) {
validate();
return rsnAllocationCubeCreateFromBitmap(mContext, type, mip, bmp, usage);
}
- native int rsnAllocationCreateBitmapRef(int con, int type, Bitmap bmp);
- synchronized int nAllocationCreateBitmapRef(int type, Bitmap bmp) {
+ native long rsnAllocationCreateBitmapRef(long con, long type, Bitmap bmp);
+ synchronized long nAllocationCreateBitmapRef(long type, Bitmap bmp) {
validate();
return rsnAllocationCreateBitmapRef(mContext, type, bmp);
}
- native int rsnAllocationCreateFromAssetStream(int con, int mips, int assetStream, int usage);
- synchronized int nAllocationCreateFromAssetStream(int mips, int assetStream, int usage) {
+ native long rsnAllocationCreateFromAssetStream(long con, int mips, int assetStream, int usage);
+ synchronized long nAllocationCreateFromAssetStream(int mips, int assetStream, int usage) {
validate();
return rsnAllocationCreateFromAssetStream(mContext, mips, assetStream, usage);
}
- native void rsnAllocationCopyToBitmap(int con, int alloc, Bitmap bmp);
- synchronized void nAllocationCopyToBitmap(int alloc, Bitmap bmp) {
+ native void rsnAllocationCopyToBitmap(long con, long alloc, Bitmap bmp);
+ synchronized void nAllocationCopyToBitmap(long alloc, Bitmap bmp) {
validate();
rsnAllocationCopyToBitmap(mContext, alloc, bmp);
}
- native void rsnAllocationSyncAll(int con, int alloc, int src);
- synchronized void nAllocationSyncAll(int alloc, int src) {
+ native void rsnAllocationSyncAll(long con, long alloc, int src);
+ synchronized void nAllocationSyncAll(long alloc, int src) {
validate();
rsnAllocationSyncAll(mContext, alloc, src);
}
- native void rsnAllocationSetSurface(int con, int alloc, Surface sur);
- synchronized void nAllocationSetSurface(int alloc, Surface sur) {
+ native void rsnAllocationSetSurface(long con, long alloc, Surface sur);
+ synchronized void nAllocationSetSurface(long alloc, Surface sur) {
validate();
rsnAllocationSetSurface(mContext, alloc, sur);
}
- native void rsnAllocationIoSend(int con, int alloc);
- synchronized void nAllocationIoSend(int alloc) {
+ native void rsnAllocationIoSend(long con, long alloc);
+ synchronized void nAllocationIoSend(long alloc) {
validate();
rsnAllocationIoSend(mContext, alloc);
}
- native void rsnAllocationIoReceive(int con, int alloc);
- synchronized void nAllocationIoReceive(int alloc) {
+ native void rsnAllocationIoReceive(long con, long alloc);
+ synchronized void nAllocationIoReceive(long alloc) {
validate();
rsnAllocationIoReceive(mContext, alloc);
}
- native void rsnAllocationGenerateMipmaps(int con, int alloc);
- synchronized void nAllocationGenerateMipmaps(int alloc) {
+ native void rsnAllocationGenerateMipmaps(long con, long alloc);
+ synchronized void nAllocationGenerateMipmaps(long alloc) {
validate();
rsnAllocationGenerateMipmaps(mContext, alloc);
}
- native void rsnAllocationCopyFromBitmap(int con, int alloc, Bitmap bmp);
- synchronized void nAllocationCopyFromBitmap(int alloc, Bitmap bmp) {
+ native void rsnAllocationCopyFromBitmap(long con, long alloc, Bitmap bmp);
+ synchronized void nAllocationCopyFromBitmap(long alloc, Bitmap bmp) {
validate();
rsnAllocationCopyFromBitmap(mContext, alloc, bmp);
}
-
- native void rsnAllocationData1D(int con, int id, int off, int mip, int count, int[] d, int sizeBytes);
- synchronized void nAllocationData1D(int id, int off, int mip, int count, int[] d, int sizeBytes) {
+ native void rsnAllocationData1D(long con, long id, int off, int mip, int count, long[] d, int sizeBytes);
+ synchronized void nAllocationData1D(long id, int off, int mip, int count, long[] d, int sizeBytes) {
validate();
rsnAllocationData1D(mContext, id, off, mip, count, d, sizeBytes);
}
- native void rsnAllocationData1D(int con, int id, int off, int mip, int count, short[] d, int sizeBytes);
- synchronized void nAllocationData1D(int id, int off, int mip, int count, short[] d, int sizeBytes) {
+ native void rsnAllocationData1D(long con, long id, int off, int mip, int count, int[] d, int sizeBytes);
+ synchronized void nAllocationData1D(long id, int off, int mip, int count, int[] d, int sizeBytes) {
validate();
rsnAllocationData1D(mContext, id, off, mip, count, d, sizeBytes);
}
- native void rsnAllocationData1D(int con, int id, int off, int mip, int count, byte[] d, int sizeBytes);
- synchronized void nAllocationData1D(int id, int off, int mip, int count, byte[] d, int sizeBytes) {
+ native void rsnAllocationData1D(long con, long id, int off, int mip, int count, short[] d, int sizeBytes);
+ synchronized void nAllocationData1D(long id, int off, int mip, int count, short[] d, int sizeBytes) {
validate();
rsnAllocationData1D(mContext, id, off, mip, count, d, sizeBytes);
}
- native void rsnAllocationData1D(int con, int id, int off, int mip, int count, float[] d, int sizeBytes);
- synchronized void nAllocationData1D(int id, int off, int mip, int count, float[] d, int sizeBytes) {
+ native void rsnAllocationData1D(long con, long id, int off, int mip, int count, byte[] d, int sizeBytes);
+ synchronized void nAllocationData1D(long id, int off, int mip, int count, byte[] d, int sizeBytes) {
+ validate();
+ rsnAllocationData1D(mContext, id, off, mip, count, d, sizeBytes);
+ }
+ native void rsnAllocationData1D(long con, long id, int off, int mip, int count, float[] d, int sizeBytes);
+ synchronized void nAllocationData1D(long id, int off, int mip, int count, float[] d, int sizeBytes) {
validate();
rsnAllocationData1D(mContext, id, off, mip, count, d, sizeBytes);
}
- native void rsnAllocationElementData1D(int con, int id, int xoff, int mip, int compIdx, byte[] d, int sizeBytes);
- synchronized void nAllocationElementData1D(int id, int xoff, int mip, int compIdx, byte[] d, int sizeBytes) {
+ native void rsnAllocationElementData1D(long con, long id, int xoff, int mip, int compIdx, byte[] d, int sizeBytes);
+ synchronized void nAllocationElementData1D(long id, int xoff, int mip, int compIdx, byte[] d, int sizeBytes) {
validate();
rsnAllocationElementData1D(mContext, id, xoff, mip, compIdx, d, sizeBytes);
}
- native void rsnAllocationData2D(int con,
- int dstAlloc, int dstXoff, int dstYoff,
+ native void rsnAllocationData2D(long con,
+ long dstAlloc, int dstXoff, int dstYoff,
int dstMip, int dstFace,
int width, int height,
- int srcAlloc, int srcXoff, int srcYoff,
+ long srcAlloc, int srcXoff, int srcYoff,
int srcMip, int srcFace);
- synchronized void nAllocationData2D(int dstAlloc, int dstXoff, int dstYoff,
+ synchronized void nAllocationData2D(long dstAlloc, int dstXoff, int dstYoff,
int dstMip, int dstFace,
int width, int height,
- int srcAlloc, int srcXoff, int srcYoff,
+ long srcAlloc, int srcXoff, int srcYoff,
int srcMip, int srcFace) {
validate();
rsnAllocationData2D(mContext,
@@ -416,42 +427,47 @@
srcMip, srcFace);
}
- native void rsnAllocationData2D(int con, int id, int xoff, int yoff, int mip, int face, int w, int h, byte[] d, int sizeBytes);
- synchronized void nAllocationData2D(int id, int xoff, int yoff, int mip, int face, int w, int h, byte[] d, int sizeBytes) {
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, int w, int h, byte[] d, int sizeBytes);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, int w, int h, byte[] d, int sizeBytes) {
validate();
rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, w, h, d, sizeBytes);
}
- native void rsnAllocationData2D(int con, int id, int xoff, int yoff, int mip, int face, int w, int h, short[] d, int sizeBytes);
- synchronized void nAllocationData2D(int id, int xoff, int yoff, int mip, int face, int w, int h, short[] d, int sizeBytes) {
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, int w, int h, short[] d, int sizeBytes);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, int w, int h, short[] d, int sizeBytes) {
validate();
rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, w, h, d, sizeBytes);
}
- native void rsnAllocationData2D(int con, int id, int xoff, int yoff, int mip, int face, int w, int h, int[] d, int sizeBytes);
- synchronized void nAllocationData2D(int id, int xoff, int yoff, int mip, int face, int w, int h, int[] d, int sizeBytes) {
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, int w, int h, long[] d, int sizeBytes);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, int w, int h, long[] d, int sizeBytes) {
validate();
rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, w, h, d, sizeBytes);
}
- native void rsnAllocationData2D(int con, int id, int xoff, int yoff, int mip, int face, int w, int h, float[] d, int sizeBytes);
- synchronized void nAllocationData2D(int id, int xoff, int yoff, int mip, int face, int w, int h, float[] d, int sizeBytes) {
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, int w, int h, int[] d, int sizeBytes);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, int w, int h, int[] d, int sizeBytes) {
validate();
rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, w, h, d, sizeBytes);
}
- native void rsnAllocationData2D(int con, int id, int xoff, int yoff, int mip, int face, Bitmap b);
- synchronized void nAllocationData2D(int id, int xoff, int yoff, int mip, int face, Bitmap b) {
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, int w, int h, float[] d, int sizeBytes);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, int w, int h, float[] d, int sizeBytes) {
+ validate();
+ rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, w, h, d, sizeBytes);
+ }
+ native void rsnAllocationData2D(long con, long id, int xoff, int yoff, int mip, int face, Bitmap b);
+ synchronized void nAllocationData2D(long id, int xoff, int yoff, int mip, int face, Bitmap b) {
validate();
rsnAllocationData2D(mContext, id, xoff, yoff, mip, face, b);
}
- native void rsnAllocationData3D(int con,
- int dstAlloc, int dstXoff, int dstYoff, int dstZoff,
+ native void rsnAllocationData3D(long con,
+ long dstAlloc, int dstXoff, int dstYoff, int dstZoff,
int dstMip,
int width, int height, int depth,
- int srcAlloc, int srcXoff, int srcYoff, int srcZoff,
+ long srcAlloc, int srcXoff, int srcYoff, int srcZoff,
int srcMip);
- synchronized void nAllocationData3D(int dstAlloc, int dstXoff, int dstYoff, int dstZoff,
+ synchronized void nAllocationData3D(long dstAlloc, int dstXoff, int dstYoff, int dstZoff,
int dstMip,
int width, int height, int depth,
- int srcAlloc, int srcXoff, int srcYoff, int srcZoff,
+ long srcAlloc, int srcXoff, int srcYoff, int srcZoff,
int srcMip) {
validate();
rsnAllocationData3D(mContext,
@@ -460,87 +476,97 @@
srcAlloc, srcXoff, srcYoff, srcZoff, srcMip);
}
- native void rsnAllocationData3D(int con, int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, byte[] d, int sizeBytes);
- synchronized void nAllocationData3D(int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, byte[] d, int sizeBytes) {
+ native void rsnAllocationData3D(long con, long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, byte[] d, int sizeBytes);
+ synchronized void nAllocationData3D(long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, byte[] d, int sizeBytes) {
validate();
rsnAllocationData3D(mContext, id, xoff, yoff, zoff, mip, w, h, depth, d, sizeBytes);
}
- native void rsnAllocationData3D(int con, int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, short[] d, int sizeBytes);
- synchronized void nAllocationData3D(int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, short[] d, int sizeBytes) {
+ native void rsnAllocationData3D(long con, long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, short[] d, int sizeBytes);
+ synchronized void nAllocationData3D(long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, short[] d, int sizeBytes) {
validate();
rsnAllocationData3D(mContext, id, xoff, yoff, zoff, mip, w, h, depth, d, sizeBytes);
}
- native void rsnAllocationData3D(int con, int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, int[] d, int sizeBytes);
- synchronized void nAllocationData3D(int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, int[] d, int sizeBytes) {
+ native void rsnAllocationData3D(long con, long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, long[] d, int sizeBytes);
+ synchronized void nAllocationData3D(long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, long[] d, int sizeBytes) {
validate();
rsnAllocationData3D(mContext, id, xoff, yoff, zoff, mip, w, h, depth, d, sizeBytes);
}
- native void rsnAllocationData3D(int con, int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, float[] d, int sizeBytes);
- synchronized void nAllocationData3D(int id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, float[] d, int sizeBytes) {
+ native void rsnAllocationData3D(long con, long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, int[] d, int sizeBytes);
+ synchronized void nAllocationData3D(long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, int[] d, int sizeBytes) {
+ validate();
+ rsnAllocationData3D(mContext, id, xoff, yoff, zoff, mip, w, h, depth, d, sizeBytes);
+ }
+ native void rsnAllocationData3D(long con, long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, float[] d, int sizeBytes);
+ synchronized void nAllocationData3D(long id, int xoff, int yoff, int zoff, int mip, int w, int h, int depth, float[] d, int sizeBytes) {
validate();
rsnAllocationData3D(mContext, id, xoff, yoff, zoff, mip, w, h, depth, d, sizeBytes);
}
- native void rsnAllocationRead(int con, int id, byte[] d);
- synchronized void nAllocationRead(int id, byte[] d) {
+ native void rsnAllocationRead(long con, long id, byte[] d);
+ synchronized void nAllocationRead(long id, byte[] d) {
validate();
rsnAllocationRead(mContext, id, d);
}
- native void rsnAllocationRead(int con, int id, short[] d);
- synchronized void nAllocationRead(int id, short[] d) {
+ native void rsnAllocationRead(long con, long id, short[] d);
+ synchronized void nAllocationRead(long id, short[] d) {
validate();
rsnAllocationRead(mContext, id, d);
}
- native void rsnAllocationRead(int con, int id, int[] d);
- synchronized void nAllocationRead(int id, int[] d) {
+ native void rsnAllocationRead(long con, long id, long[] d);
+ synchronized void nAllocationRead(long id, long[] d) {
validate();
rsnAllocationRead(mContext, id, d);
}
- native void rsnAllocationRead(int con, int id, float[] d);
- synchronized void nAllocationRead(int id, float[] d) {
+ native void rsnAllocationRead(long con, long id, int[] d);
+ synchronized void nAllocationRead(long id, int[] d) {
validate();
rsnAllocationRead(mContext, id, d);
}
- native int rsnAllocationGetType(int con, int id);
- synchronized int nAllocationGetType(int id) {
+ native void rsnAllocationRead(long con, long id, float[] d);
+ synchronized void nAllocationRead(long id, float[] d) {
+ validate();
+ rsnAllocationRead(mContext, id, d);
+ }
+ native long rsnAllocationGetType(long con, long id);
+ synchronized long nAllocationGetType(long id) {
validate();
return rsnAllocationGetType(mContext, id);
}
- native void rsnAllocationResize1D(int con, int id, int dimX);
- synchronized void nAllocationResize1D(int id, int dimX) {
+ native void rsnAllocationResize1D(long con, long id, int dimX);
+ synchronized void nAllocationResize1D(long id, int dimX) {
validate();
rsnAllocationResize1D(mContext, id, dimX);
}
- native void rsnAllocationResize2D(int con, int id, int dimX, int dimY);
- synchronized void nAllocationResize2D(int id, int dimX, int dimY) {
+ native void rsnAllocationResize2D(long con, long id, int dimX, int dimY);
+ synchronized void nAllocationResize2D(long id, int dimX, int dimY) {
validate();
rsnAllocationResize2D(mContext, id, dimX, dimY);
}
- native void rsnScriptBindAllocation(int con, int script, int alloc, int slot);
- synchronized void nScriptBindAllocation(int script, int alloc, int slot) {
+ native void rsnScriptBindAllocation(long con, long script, long alloc, int slot);
+ synchronized void nScriptBindAllocation(long script, long alloc, int slot) {
validate();
rsnScriptBindAllocation(mContext, script, alloc, slot);
}
- native void rsnScriptSetTimeZone(int con, int script, byte[] timeZone);
- synchronized void nScriptSetTimeZone(int script, byte[] timeZone) {
+ native void rsnScriptSetTimeZone(long con, long script, byte[] timeZone);
+ synchronized void nScriptSetTimeZone(long script, byte[] timeZone) {
validate();
rsnScriptSetTimeZone(mContext, script, timeZone);
}
- native void rsnScriptInvoke(int con, int id, int slot);
- synchronized void nScriptInvoke(int id, int slot) {
+ native void rsnScriptInvoke(long con, long id, int slot);
+ synchronized void nScriptInvoke(long id, int slot) {
validate();
rsnScriptInvoke(mContext, id, slot);
}
- native void rsnScriptForEach(int con, int id, int slot, int ain, int aout, byte[] params);
- native void rsnScriptForEach(int con, int id, int slot, int ain, int aout);
- native void rsnScriptForEachClipped(int con, int id, int slot, int ain, int aout, byte[] params,
+ native void rsnScriptForEach(long con, long id, int slot, long ain, long aout, byte[] params);
+ native void rsnScriptForEach(long con, long id, int slot, long ain, long aout);
+ native void rsnScriptForEachClipped(long con, long id, int slot, long ain, long aout, byte[] params,
int xstart, int xend, int ystart, int yend, int zstart, int zend);
- native void rsnScriptForEachClipped(int con, int id, int slot, int ain, int aout,
+ native void rsnScriptForEachClipped(long con, long id, int slot, long ain, long aout,
int xstart, int xend, int ystart, int yend, int zstart, int zend);
- synchronized void nScriptForEach(int id, int slot, int ain, int aout, byte[] params) {
+ synchronized void nScriptForEach(long id, int slot, long ain, long aout, byte[] params) {
validate();
if (params == null) {
rsnScriptForEach(mContext, id, slot, ain, aout);
@@ -549,7 +575,7 @@
}
}
- synchronized void nScriptForEachClipped(int id, int slot, int ain, int aout, byte[] params,
+ synchronized void nScriptForEachClipped(long id, int slot, long ain, long aout, byte[] params,
int xstart, int xend, int ystart, int yend, int zstart, int zend) {
validate();
if (params == null) {
@@ -559,101 +585,101 @@
}
}
- native void rsnScriptInvokeV(int con, int id, int slot, byte[] params);
- synchronized void nScriptInvokeV(int id, int slot, byte[] params) {
+ native void rsnScriptInvokeV(long con, long id, int slot, byte[] params);
+ synchronized void nScriptInvokeV(long id, int slot, byte[] params) {
validate();
rsnScriptInvokeV(mContext, id, slot, params);
}
- native void rsnScriptSetVarI(int con, int id, int slot, int val);
- synchronized void nScriptSetVarI(int id, int slot, int val) {
+ native void rsnScriptSetVarI(long con, long id, int slot, int val);
+ synchronized void nScriptSetVarI(long id, int slot, int val) {
validate();
rsnScriptSetVarI(mContext, id, slot, val);
}
- native void rsnScriptSetVarJ(int con, int id, int slot, long val);
- synchronized void nScriptSetVarJ(int id, int slot, long val) {
+ native void rsnScriptSetVarJ(long con, long id, int slot, long val);
+ synchronized void nScriptSetVarJ(long id, int slot, long val) {
validate();
rsnScriptSetVarJ(mContext, id, slot, val);
}
- native void rsnScriptSetVarF(int con, int id, int slot, float val);
- synchronized void nScriptSetVarF(int id, int slot, float val) {
+ native void rsnScriptSetVarF(long con, long id, int slot, float val);
+ synchronized void nScriptSetVarF(long id, int slot, float val) {
validate();
rsnScriptSetVarF(mContext, id, slot, val);
}
- native void rsnScriptSetVarD(int con, int id, int slot, double val);
- synchronized void nScriptSetVarD(int id, int slot, double val) {
+ native void rsnScriptSetVarD(long con, long id, int slot, double val);
+ synchronized void nScriptSetVarD(long id, int slot, double val) {
validate();
rsnScriptSetVarD(mContext, id, slot, val);
}
- native void rsnScriptSetVarV(int con, int id, int slot, byte[] val);
- synchronized void nScriptSetVarV(int id, int slot, byte[] val) {
+ native void rsnScriptSetVarV(long con, long id, int slot, byte[] val);
+ synchronized void nScriptSetVarV(long id, int slot, byte[] val) {
validate();
rsnScriptSetVarV(mContext, id, slot, val);
}
- native void rsnScriptSetVarVE(int con, int id, int slot, byte[] val,
- int e, int[] dims);
- synchronized void nScriptSetVarVE(int id, int slot, byte[] val,
- int e, int[] dims) {
+ native void rsnScriptSetVarVE(long con, long id, int slot, byte[] val,
+ long e, int[] dims);
+ synchronized void nScriptSetVarVE(long id, int slot, byte[] val,
+ long e, int[] dims) {
validate();
rsnScriptSetVarVE(mContext, id, slot, val, e, dims);
}
- native void rsnScriptSetVarObj(int con, int id, int slot, int val);
- synchronized void nScriptSetVarObj(int id, int slot, int val) {
+ native void rsnScriptSetVarObj(long con, long id, int slot, long val);
+ synchronized void nScriptSetVarObj(long id, int slot, long val) {
validate();
rsnScriptSetVarObj(mContext, id, slot, val);
}
- native int rsnScriptCCreate(int con, String resName, String cacheDir,
+ native long rsnScriptCCreate(long con, String resName, String cacheDir,
byte[] script, int length);
- synchronized int nScriptCCreate(String resName, String cacheDir, byte[] script, int length) {
+ synchronized long nScriptCCreate(String resName, String cacheDir, byte[] script, int length) {
validate();
return rsnScriptCCreate(mContext, resName, cacheDir, script, length);
}
- native int rsnScriptIntrinsicCreate(int con, int id, int eid);
- synchronized int nScriptIntrinsicCreate(int id, int eid) {
+ native long rsnScriptIntrinsicCreate(long con, int id, long eid);
+ synchronized long nScriptIntrinsicCreate(int id, long eid) {
validate();
return rsnScriptIntrinsicCreate(mContext, id, eid);
}
- native int rsnScriptKernelIDCreate(int con, int sid, int slot, int sig);
- synchronized int nScriptKernelIDCreate(int sid, int slot, int sig) {
+ native long rsnScriptKernelIDCreate(long con, long sid, int slot, int sig);
+ synchronized long nScriptKernelIDCreate(long sid, int slot, int sig) {
validate();
return rsnScriptKernelIDCreate(mContext, sid, slot, sig);
}
- native int rsnScriptFieldIDCreate(int con, int sid, int slot);
- synchronized int nScriptFieldIDCreate(int sid, int slot) {
+ native long rsnScriptFieldIDCreate(long con, long sid, int slot);
+ synchronized long nScriptFieldIDCreate(long sid, int slot) {
validate();
return rsnScriptFieldIDCreate(mContext, sid, slot);
}
- native int rsnScriptGroupCreate(int con, int[] kernels, int[] src, int[] dstk, int[] dstf, int[] types);
- synchronized int nScriptGroupCreate(int[] kernels, int[] src, int[] dstk, int[] dstf, int[] types) {
+ native long rsnScriptGroupCreate(long con, long[] kernels, long[] src, long[] dstk, long[] dstf, long[] types);
+ synchronized long nScriptGroupCreate(long[] kernels, long[] src, long[] dstk, long[] dstf, long[] types) {
validate();
return rsnScriptGroupCreate(mContext, kernels, src, dstk, dstf, types);
}
- native void rsnScriptGroupSetInput(int con, int group, int kernel, int alloc);
- synchronized void nScriptGroupSetInput(int group, int kernel, int alloc) {
+ native void rsnScriptGroupSetInput(long con, long group, long kernel, long alloc);
+ synchronized void nScriptGroupSetInput(long group, long kernel, long alloc) {
validate();
rsnScriptGroupSetInput(mContext, group, kernel, alloc);
}
- native void rsnScriptGroupSetOutput(int con, int group, int kernel, int alloc);
- synchronized void nScriptGroupSetOutput(int group, int kernel, int alloc) {
+ native void rsnScriptGroupSetOutput(long con, long group, long kernel, long alloc);
+ synchronized void nScriptGroupSetOutput(long group, long kernel, long alloc) {
validate();
rsnScriptGroupSetOutput(mContext, group, kernel, alloc);
}
- native void rsnScriptGroupExecute(int con, int group);
- synchronized void nScriptGroupExecute(int group) {
+ native void rsnScriptGroupExecute(long con, long group);
+ synchronized void nScriptGroupExecute(long group) {
validate();
rsnScriptGroupExecute(mContext, group);
}
- native int rsnSamplerCreate(int con, int magFilter, int minFilter,
+ native long rsnSamplerCreate(long con, int magFilter, int minFilter,
int wrapS, int wrapT, int wrapR, float aniso);
- synchronized int nSamplerCreate(int magFilter, int minFilter,
+ synchronized long nSamplerCreate(int magFilter, int minFilter,
int wrapS, int wrapT, int wrapR, float aniso) {
validate();
return rsnSamplerCreate(mContext, magFilter, minFilter, wrapS, wrapT, wrapR, aniso);
@@ -662,8 +688,8 @@
- int mDev;
- int mContext;
+ long mDev;
+ long mContext;
ReentrantReadWriteLock mRWLock;
@SuppressWarnings({"FieldCanBeLocal"})
MessageThread mMessageThread;
@@ -1001,6 +1027,7 @@
try {
System.loadLibrary("rsjni");
sInitialized = true;
+ sPointerSize = rsnSystemGetPointerSize();
} catch (UnsatisfiedLinkError e) {
Log.e(LOG_TAG, "Error loading RS jni library: " + e);
throw new RSRuntimeException("Error loading RS jni library: " + e);
@@ -1116,7 +1143,7 @@
return mContext != 0;
}
- int safeID(BaseObj o) {
+ long safeID(BaseObj o) {
if(o != null) {
return o.getID(this);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/Sampler.java b/v8/renderscript/java/src/android/support/v8/renderscript/Sampler.java
index dae7a79..7119e8c 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/Sampler.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/Sampler.java
@@ -62,7 +62,7 @@
Value mWrapR;
float mAniso;
- Sampler(int id, RenderScript rs) {
+ Sampler(long id, RenderScript rs) {
super(id, rs);
}
@@ -329,7 +329,7 @@
public Sampler create() {
mRS.validate();
- int id = mRS.nSamplerCreate(mMag.mID, mMin.mID,
+ long id = mRS.nSamplerCreate(mMag.mID, mMin.mID,
mWrapS.mID, mWrapT.mID, mWrapR.mID, mAniso);
Sampler sampler = new Sampler(id, mRS);
sampler.mMin = mMin;
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/Script.java b/v8/renderscript/java/src/android/support/v8/renderscript/Script.java
index 93e6ef6..d232574 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/Script.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/Script.java
@@ -36,7 +36,7 @@
Script mScript;
int mSlot;
int mSig;
- KernelID(int id, RenderScript rs, Script s, int slot, int sig) {
+ KernelID(long id, RenderScript rs, Script s, int slot, int sig) {
super(id, rs);
mScript = s;
mSlot = slot;
@@ -61,7 +61,7 @@
if (k != null) {
return k;
}
- int id = mRS.nScriptKernelIDCreate(getID(mRS), slot, sig);
+ long id = mRS.nScriptKernelIDCreate(getID(mRS), slot, sig);
if (id == 0) {
throw new RSDriverException("Failed to create KernelID");
}
@@ -84,7 +84,7 @@
android.renderscript.Script.FieldID mN;
Script mScript;
int mSlot;
- FieldID(int id, RenderScript rs, Script s, int slot) {
+ FieldID(long id, RenderScript rs, Script s, int slot) {
super(id, rs);
mScript = s;
mSlot = slot;
@@ -106,7 +106,7 @@
return f;
}
- int id = mRS.nScriptFieldIDCreate(getID(mRS), slot);
+ long id = mRS.nScriptFieldIDCreate(getID(mRS), slot);
if (id == 0) {
throw new RSDriverException("Failed to create FieldID");
}
@@ -178,11 +178,11 @@
throw new RSIllegalArgumentException(
"At least one of ain or aout is required to be non-null.");
}
- int in_id = 0;
+ long in_id = 0;
if (ain != null) {
in_id = ain.getID(mRS);
}
- int out_id = 0;
+ long out_id = 0;
if (aout != null) {
out_id = aout.getID(mRS);
}
@@ -212,11 +212,11 @@
forEach(slot, ain, aout, v);
return;
}
- int in_id = 0;
+ long in_id = 0;
if (ain != null) {
in_id = ain.getID(mRS);
}
- int out_id = 0;
+ long out_id = 0;
if (aout != null) {
out_id = aout.getID(mRS);
}
@@ -227,7 +227,7 @@
mRS.nScriptForEachClipped(getID(mRS), slot, in_id, out_id, params, sc.xstart, sc.xend, sc.ystart, sc.yend, sc.zstart, sc.zend);
}
- Script(int id, RenderScript rs) {
+ Script(long id, RenderScript rs) {
super(id, rs);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptC.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptC.java
index 1000860..28e9613 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptC.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptC.java
@@ -42,7 +42,7 @@
* @param id
* @param rs
*/
- protected ScriptC(int id, RenderScript rs) {
+ protected ScriptC(long id, RenderScript rs) {
super(id, rs);
}
@@ -56,15 +56,36 @@
*/
protected ScriptC(RenderScript rs, Resources resources, int resourceID) {
super(0, rs);
- int id = internalCreate(rs, resources, resourceID);
+ long id = internalCreate(rs, resources, resourceID);
if (id == 0) {
throw new RSRuntimeException("Loading of ScriptC script failed.");
}
setID(id);
}
+ /**
+ * Only intended for use by the generated derived classes.
+ *
+ * @param rs
+ * @param resName
+ * @param bitcode32
+ * @param bitcode64
+ */
+ protected ScriptC(RenderScript rs, String resName, byte[] bitcode32, byte[] bitcode64) {
+ super(0, rs);
+ long id = 0;
+ if (RenderScript.sPointerSize == 4) {
+ id = internalStringCreate(rs, resName, bitcode32);
+ } else {
+ id = internalStringCreate(rs, resName, bitcode64);
+ }
+ if (id == 0) {
+ throw new RSRuntimeException("Loading of ScriptC script failed.");
+ }
+ setID(id);
+ }
- private static synchronized int internalCreate(RenderScript rs, Resources resources, int resourceID) {
+ private static synchronized long internalCreate(RenderScript rs, Resources resources, int resourceID) {
byte[] pgm;
int pgmLength;
InputStream is = resources.openRawResource(resourceID);
@@ -100,4 +121,11 @@
//Log.v(TAG, " path = " + cachePath);
return rs.nScriptCCreate(resName, cachePath, pgm, pgmLength);
}
+
+ private static synchronized long internalStringCreate(RenderScript rs, String resName, byte[] bitcode) {
+ // Log.v(TAG, "Create script for resource = " + resName);
+ String cachePath = rs.getApplicationContext().getCacheDir().toString();
+ return rs.nScriptCCreate(resName, cachePath, bitcode, bitcode.length);
+ }
+
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptGroup.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptGroup.java
index c630630..9c38f33 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptGroup.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptGroup.java
@@ -90,7 +90,7 @@
}
- ScriptGroup(int id, RenderScript rs) {
+ ScriptGroup(long id, RenderScript rs) {
super(id, rs);
}
@@ -379,6 +379,7 @@
* @return ScriptGroup The new ScriptGroup
*/
public ScriptGroup create() {
+
if (mNodes.size() == 0) {
throw new RSInvalidStateException("Empty script groups are not allowed");
}
@@ -392,7 +393,7 @@
ArrayList<IO> inputs = new ArrayList<IO>();
ArrayList<IO> outputs = new ArrayList<IO>();
- int[] kernels = new int[mKernelCount];
+ long[] kernels = new long[mKernelCount];
int idx = 0;
for (int ct=0; ct < mNodes.size(); ct++) {
Node n = mNodes.get(ct);
@@ -425,10 +426,10 @@
throw new RSRuntimeException("Count mismatch, should not happen.");
}
- int[] src = new int[mLines.size()];
- int[] dstk = new int[mLines.size()];
- int[] dstf = new int[mLines.size()];
- int[] types = new int[mLines.size()];
+ long[] src = new long[mLines.size()];
+ long[] dstk = new long[mLines.size()];
+ long[] dstf = new long[mLines.size()];
+ long[] types = new long[mLines.size()];
for (int ct=0; ct < mLines.size(); ct++) {
ConnectLine cl = mLines.get(ct);
@@ -442,7 +443,7 @@
types[ct] = cl.mAllocationType.getID(mRS);
}
- int id = mRS.nScriptGroupCreate(kernels, src, dstk, dstf, types);
+ long id = mRS.nScriptGroupCreate(kernels, src, dstk, dstf, types);
if (id == 0) {
throw new RSRuntimeException("Object creation error, should not happen.");
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic.java
index c370017..fd71364 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic.java
@@ -25,7 +25,7 @@
* Not intended for direct use.
**/
public abstract class ScriptIntrinsic extends Script {
- ScriptIntrinsic(int id, RenderScript rs) {
+ ScriptIntrinsic(long id, RenderScript rs) {
super(id, rs);
}
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic3DLUT.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic3DLUT.java
index 1076f51..dad86fb 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic3DLUT.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsic3DLUT.java
@@ -31,7 +31,7 @@
private Allocation mLUT;
private Element mElement;
- protected ScriptIntrinsic3DLUT(int id, RenderScript rs, Element e) {
+ protected ScriptIntrinsic3DLUT(long id, RenderScript rs, Element e) {
super(id, rs);
mElement = e;
}
@@ -47,7 +47,7 @@
* @return ScriptIntrinsic3DLUT
*/
public static ScriptIntrinsic3DLUT create(RenderScript rs, Element e) {
- int id = rs.nScriptIntrinsicCreate(8, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(8, e.getID(rs));
if (!e.isCompatible(Element.U8_4(rs))) {
throw new RSIllegalArgumentException("Element must be compatible with uchar4.");
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlend.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlend.java
index 86bdcdb..f3facac 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlend.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlend.java
@@ -22,7 +22,7 @@
* {@link android.support.v8.renderscript.Allocation} objects.
**/
public class ScriptIntrinsicBlend extends ScriptIntrinsic {
- ScriptIntrinsicBlend(int id, RenderScript rs) {
+ ScriptIntrinsicBlend(long id, RenderScript rs) {
super(id, rs);
}
@@ -36,7 +36,7 @@
*/
public static ScriptIntrinsicBlend create(RenderScript rs, Element e) {
// 7 comes from RS_SCRIPT_INTRINSIC_ID_BLEND in rsDefines.h
- int id = rs.nScriptIntrinsicCreate(7, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(7, e.getID(rs));
return new ScriptIntrinsicBlend(id, rs);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlur.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlur.java
index d6137c5..b2378b3 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlur.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicBlur.java
@@ -30,7 +30,7 @@
private final float[] mValues = new float[9];
private Allocation mInput;
- protected ScriptIntrinsicBlur(int id, RenderScript rs) {
+ protected ScriptIntrinsicBlur(long id, RenderScript rs) {
super(id, rs);
}
@@ -49,7 +49,7 @@
if ((!e.isCompatible(Element.U8_4(rs))) && (!e.isCompatible(Element.U8(rs)))) {
throw new RSIllegalArgumentException("Unsuported element type.");
}
- int id = rs.nScriptIntrinsicCreate(5, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(5, e.getID(rs));
ScriptIntrinsicBlur sib = new ScriptIntrinsicBlur(id, rs);
sib.setRadius(5.f);
return sib;
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicColorMatrix.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicColorMatrix.java
index 6125539..52cdb1f 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicColorMatrix.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicColorMatrix.java
@@ -31,7 +31,7 @@
private final Matrix4f mMatrix = new Matrix4f();
private Allocation mInput;
- protected ScriptIntrinsicColorMatrix(int id, RenderScript rs) {
+ protected ScriptIntrinsicColorMatrix(long id, RenderScript rs) {
super(id, rs);
}
@@ -50,7 +50,7 @@
if (!e.isCompatible(Element.U8_4(rs))) {
throw new RSIllegalArgumentException("Unsuported element type.");
}
- int id = rs.nScriptIntrinsicCreate(2, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(2, e.getID(rs));
return new ScriptIntrinsicColorMatrix(id, rs);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve3x3.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve3x3.java
index 1446986..918f11a 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve3x3.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve3x3.java
@@ -26,7 +26,7 @@
private final float[] mValues = new float[9];
private Allocation mInput;
- ScriptIntrinsicConvolve3x3(int id, RenderScript rs) {
+ ScriptIntrinsicConvolve3x3(long id, RenderScript rs) {
super(id, rs);
}
@@ -51,7 +51,7 @@
if (!e.isCompatible(Element.U8_4(rs))) {
throw new RSIllegalArgumentException("Unsuported element type.");
}
- int id = rs.nScriptIntrinsicCreate(1, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(1, e.getID(rs));
ScriptIntrinsicConvolve3x3 si = new ScriptIntrinsicConvolve3x3(id, rs);
si.setCoefficients(f);
return si;
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve5x5.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve5x5.java
index b41e494..1d9fd8d 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve5x5.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicConvolve5x5.java
@@ -26,7 +26,7 @@
private final float[] mValues = new float[25];
private Allocation mInput;
- ScriptIntrinsicConvolve5x5(int id, RenderScript rs) {
+ ScriptIntrinsicConvolve5x5(long id, RenderScript rs) {
super(id, rs);
}
@@ -48,7 +48,7 @@
* @return ScriptIntrinsicConvolve5x5
*/
public static ScriptIntrinsicConvolve5x5 create(RenderScript rs, Element e) {
- int id = rs.nScriptIntrinsicCreate(4, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(4, e.getID(rs));
return new ScriptIntrinsicConvolve5x5(id, rs);
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicLUT.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicLUT.java
index eb89fb5..22f75ce 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicLUT.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicLUT.java
@@ -30,7 +30,7 @@
private final byte mCache[] = new byte[1024];
private boolean mDirty = true;
- protected ScriptIntrinsicLUT(int id, RenderScript rs) {
+ protected ScriptIntrinsicLUT(long id, RenderScript rs) {
super(id, rs);
}
@@ -45,7 +45,7 @@
* @return ScriptIntrinsicLUT
*/
public static ScriptIntrinsicLUT create(RenderScript rs, Element e) {
- int id = rs.nScriptIntrinsicCreate(3, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(3, e.getID(rs));
ScriptIntrinsicLUT si = new ScriptIntrinsicLUT(id, rs);
si.mTables = Allocation.createSized(rs, Element.U8(rs), 1024);
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicYuvToRGB.java b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicYuvToRGB.java
index 9e48713..1e1fae2 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicYuvToRGB.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/ScriptIntrinsicYuvToRGB.java
@@ -27,7 +27,7 @@
public class ScriptIntrinsicYuvToRGB extends ScriptIntrinsic {
private Allocation mInput;
- ScriptIntrinsicYuvToRGB(int id, RenderScript rs) {
+ ScriptIntrinsicYuvToRGB(long id, RenderScript rs) {
super(id, rs);
}
@@ -43,7 +43,7 @@
*/
public static ScriptIntrinsicYuvToRGB create(RenderScript rs, Element e) {
// 6 comes from RS_SCRIPT_INTRINSIC_YUV_TO_RGB in rsDefines.h
- int id = rs.nScriptIntrinsicCreate(6, e.getID(rs));
+ long id = rs.nScriptIntrinsicCreate(6, e.getID(rs));
ScriptIntrinsicYuvToRGB si = new ScriptIntrinsicYuvToRGB(id, rs);
return si;
}
diff --git a/v8/renderscript/java/src/android/support/v8/renderscript/Type.java b/v8/renderscript/java/src/android/support/v8/renderscript/Type.java
index b688523..556b189 100644
--- a/v8/renderscript/java/src/android/support/v8/renderscript/Type.java
+++ b/v8/renderscript/java/src/android/support/v8/renderscript/Type.java
@@ -187,7 +187,7 @@
}
- Type(int id, RenderScript rs) {
+ Type(long id, RenderScript rs) {
super(id, rs);
}
@@ -312,7 +312,7 @@
}
Type t;
- int id = mRS.nTypeCreate(mElement.getID(mRS),
+ long id = mRS.nTypeCreate(mElement.getID(mRS),
mDimX, mDimY, mDimZ, mDimMipmaps, mDimFaces, mYuv);
t = new Type(id, mRS);
diff --git a/v8/renderscript/jni/Android.mk b/v8/renderscript/jni/Android.mk
index 8c3e35e..85d5ec7 100644
--- a/v8/renderscript/jni/Android.mk
+++ b/v8/renderscript/jni/Android.mk
@@ -40,18 +40,17 @@
libcutils \
libRSDispatch
-
LOCAL_C_INCLUDES += \
$(JNI_H_INCLUDE) \
frameworks/rs \
frameworks/rs/cpp
-LOCAL_CFLAGS += -Wno-unused-parameter -U_FORTIFY_SOURCE
+LOCAL_CFLAGS += -Wno-unused-parameter -U_FORTIFY_SOURCE -std=c++11
LOCAL_MODULE:= librsjni
LOCAL_MODULE_TAGS := optional
LOCAL_REQUIRED_MODULES := libRSSupport
-LOCAL_32_BIT_ONLY := true
+#LOCAL_32_BIT_ONLY := true
LOCAL_LDFLAGS += -ldl
diff --git a/v8/renderscript/jni/android_renderscript_RenderScript.cpp b/v8/renderscript/jni/android_renderscript_RenderScript.cpp
index dd5fd9b..d2b76ea 100644
--- a/v8/renderscript/jni/android_renderscript_RenderScript.cpp
+++ b/v8/renderscript/jni/android_renderscript_RenderScript.cpp
@@ -129,10 +129,10 @@
// ---------------------------------------------------------------------------
static void
-nContextFinish(JNIEnv *_env, jobject _this, RsContext con)
+nContextFinish(JNIEnv *_env, jobject _this, jlong con)
{
- LOG_API("nContextFinish, con(%p)", con);
- dispatchTab.ContextFinish(con);
+ LOG_API("nContextFinish, con(%p)", (RsContext)con);
+ dispatchTab.ContextFinish((RsContext)con);
}
static jlong
@@ -216,61 +216,61 @@
}
static void
-nObjDestroy(JNIEnv *_env, jobject _this, RsContext con, jint obj)
+nObjDestroy(JNIEnv *_env, jobject _this, jlong con, jlong obj)
{
- LOG_API("nObjDestroy, con(%p) obj(%p)", con, (void *)obj);
- dispatchTab.ObjDestroy(con, (void *)obj);
+ LOG_API("nObjDestroy, con(%p) obj(%p)", (RsContext)con, (void *)obj);
+ dispatchTab.ObjDestroy((RsContext)con, (void *)obj);
}
// ---------------------------------------------------------------------------
-static jint
+static jlong
nDeviceCreate(JNIEnv *_env, jobject _this)
{
LOG_API("nDeviceCreate");
- return (jint)dispatchTab.DeviceCreate();
+ return (jlong)(uintptr_t)dispatchTab.DeviceCreate();
}
static void
-nDeviceDestroy(JNIEnv *_env, jobject _this, jint dev)
+nDeviceDestroy(JNIEnv *_env, jobject _this, jlong dev)
{
LOG_API("nDeviceDestroy");
return dispatchTab.DeviceDestroy((RsDevice)dev);
}
static void
-nDeviceSetConfig(JNIEnv *_env, jobject _this, jint dev, jint p, jint value)
+nDeviceSetConfig(JNIEnv *_env, jobject _this, jlong dev, jint p, jint value)
{
LOG_API("nDeviceSetConfig dev(%p), param(%i), value(%i)", (void *)dev, p, value);
return dispatchTab.DeviceSetConfig((RsDevice)dev, (RsDeviceParam)p, value);
}
-static jint
-nContextCreate(JNIEnv *_env, jobject _this, jint dev, jint ver, jint sdkVer, jint ct)
+static jlong
+nContextCreate(JNIEnv *_env, jobject _this, jlong dev, jint ver, jint sdkVer, jint ct)
{
LOG_API("nContextCreate");
- return (jint)dispatchTab.ContextCreate((RsDevice)dev, ver, sdkVer, (RsContextType)ct, 0);
+ return (jlong)(uintptr_t)dispatchTab.ContextCreate((RsDevice)dev, ver, sdkVer, (RsContextType)ct, 0);
}
static void
-nContextSetPriority(JNIEnv *_env, jobject _this, RsContext con, jint p)
+nContextSetPriority(JNIEnv *_env, jobject _this, jlong con, jint p)
{
- LOG_API("ContextSetPriority, con(%p), priority(%i)", con, p);
- dispatchTab.ContextSetPriority(con, p);
+ LOG_API("ContextSetPriority, con(%p), priority(%i)", (RsContext)con, p);
+ dispatchTab.ContextSetPriority((RsContext)con, p);
}
static void
-nContextDestroy(JNIEnv *_env, jobject _this, RsContext con)
+nContextDestroy(JNIEnv *_env, jobject _this, jlong con)
{
- LOG_API("nContextDestroy, con(%p)", con);
- dispatchTab.ContextDestroy(con);
+ LOG_API("nContextDestroy, con(%p)", (RsContext)con);
+ dispatchTab.ContextDestroy((RsContext)con);
}
static void
-nContextDump(JNIEnv *_env, jobject _this, RsContext con, jint bits)
+nContextDump(JNIEnv *_env, jobject _this, jlong con, jint bits)
{
LOG_API("nContextDump, con(%p) bits(%i)", (RsContext)con, bits);
dispatchTab.ContextDump((RsContext)con, bits);
@@ -278,14 +278,14 @@
static jstring
-nContextGetErrorMessage(JNIEnv *_env, jobject _this, RsContext con)
+nContextGetErrorMessage(JNIEnv *_env, jobject _this, jlong con)
{
- LOG_API("nContextGetErrorMessage, con(%p)", con);
+ LOG_API("nContextGetErrorMessage, con(%p)", (RsContext)con);
char buf[1024];
size_t receiveLen;
uint32_t subID;
- int id = dispatchTab.ContextGetMessage(con,
+ int id = dispatchTab.ContextGetMessage((RsContext)con,
buf, sizeof(buf),
&receiveLen, sizeof(receiveLen),
&subID, sizeof(subID));
@@ -297,14 +297,14 @@
}
static jint
-nContextGetUserMessage(JNIEnv *_env, jobject _this, RsContext con, jintArray data)
+nContextGetUserMessage(JNIEnv *_env, jobject _this, jlong con, jintArray data)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nContextGetMessage, con(%p), len(%i)", con, len);
+ LOG_API("nContextGetMessage, con(%p), len(%i)", (RsContext)con, len);
jint *ptr = _env->GetIntArrayElements(data, NULL);
size_t receiveLen;
uint32_t subID;
- int id = dispatchTab.ContextGetMessage(con,
+ int id = dispatchTab.ContextGetMessage((RsContext)con,
ptr, len * 4,
&receiveLen, sizeof(receiveLen),
&subID, sizeof(subID));
@@ -313,38 +313,38 @@
// "message receive buffer too small. %zu", receiveLen);
}
_env->ReleaseIntArrayElements(data, ptr, 0);
- return id;
+ return (jint)id;
}
static jint
-nContextPeekMessage(JNIEnv *_env, jobject _this, RsContext con, jintArray auxData)
+nContextPeekMessage(JNIEnv *_env, jobject _this, jlong con, jintArray auxData)
{
- LOG_API("nContextPeekMessage, con(%p)", con);
+ LOG_API("nContextPeekMessage, con(%p)", (RsContext)con);
jint *auxDataPtr = _env->GetIntArrayElements(auxData, NULL);
size_t receiveLen;
uint32_t subID;
- int id = dispatchTab.ContextPeekMessage(con, &receiveLen, sizeof(receiveLen),
+ int id = dispatchTab.ContextPeekMessage((RsContext)con, &receiveLen, sizeof(receiveLen),
&subID, sizeof(subID));
auxDataPtr[0] = (jint)subID;
auxDataPtr[1] = (jint)receiveLen;
_env->ReleaseIntArrayElements(auxData, auxDataPtr, 0);
- return id;
+ return (jint)id;
}
-static void nContextInitToClient(JNIEnv *_env, jobject _this, RsContext con)
+static void nContextInitToClient(JNIEnv *_env, jobject _this, jlong con)
{
- LOG_API("nContextInitToClient, con(%p)", con);
- dispatchTab.ContextInitToClient(con);
+ LOG_API("nContextInitToClient, con(%p)", (RsContext)con);
+ dispatchTab.ContextInitToClient((RsContext)con);
}
-static void nContextDeinitToClient(JNIEnv *_env, jobject _this, RsContext con)
+static void nContextDeinitToClient(JNIEnv *_env, jobject _this, jlong con)
{
- LOG_API("nContextDeinitToClient, con(%p)", con);
- dispatchTab.ContextDeinitToClient(con);
+ LOG_API("nContextDeinitToClient, con(%p)", (RsContext)con);
+ dispatchTab.ContextDeinitToClient((RsContext)con);
}
static void
-nContextSendMessage(JNIEnv *_env, jobject _this, RsContext con, jint id, jintArray data)
+nContextSendMessage(JNIEnv *_env, jobject _this, jlong con, jint id, jintArray data)
{
jint *ptr = NULL;
jint len = 0;
@@ -352,8 +352,8 @@
len = _env->GetArrayLength(data);
jint *ptr = _env->GetIntArrayElements(data, NULL);
}
- LOG_API("nContextSendMessage, con(%p), id(%i), len(%i)", con, id, len);
- dispatchTab.ContextSendMessage(con, id, (const uint8_t *)ptr, len * sizeof(int));
+ LOG_API("nContextSendMessage, con(%p), id(%i), len(%i)", (RsContext)con, id, len);
+ dispatchTab.ContextSendMessage((RsContext)con, id, (const uint8_t *)ptr, len * sizeof(int));
if (data) {
_env->ReleaseIntArrayElements(data, ptr, JNI_ABORT);
}
@@ -361,59 +361,75 @@
-static jint
-nElementCreate(JNIEnv *_env, jobject _this, RsContext con, jint type, jint kind, jboolean norm, jint size)
+static jlong
+nElementCreate(JNIEnv *_env, jobject _this, jlong con, jlong type, jint kind, jboolean norm, jint size)
{
- LOG_API("nElementCreate, con(%p), type(%i), kind(%i), norm(%i), size(%i)", con, type, kind, norm, size);
- return (jint)dispatchTab.ElementCreate(con, (RsDataType)type, (RsDataKind)kind, norm, size);
+ LOG_API("nElementCreate, con(%p), type(%i), kind(%i), norm(%i), size(%i)", (RsContext)con,
+ type, kind, norm, size);
+ return (jlong)(uintptr_t)dispatchTab.ElementCreate((RsContext)con, (RsDataType)type, (RsDataKind)kind,
+ norm, size);
}
-static jint
-nElementCreate2(JNIEnv *_env, jobject _this, RsContext con,
- jintArray _ids, jobjectArray _names, jintArray _arraySizes)
+static jlong
+nElementCreate2(JNIEnv *_env, jobject _this, jlong con,
+ jlongArray _ids, jobjectArray _names, jintArray _arraySizes)
{
int fieldCount = _env->GetArrayLength(_ids);
- LOG_API("nElementCreate2, con(%p)", con);
+ LOG_API("nElementCreate2, con(%p)", (RsContext)con);
- jint *ids = _env->GetIntArrayElements(_ids, NULL);
- jint *arraySizes = _env->GetIntArrayElements(_arraySizes, NULL);
+ jlong *jIds = _env->GetLongArrayElements(_ids, NULL);
+ jint *jArraySizes = _env->GetIntArrayElements(_arraySizes, NULL);
+
+ RsElement *ids = (RsElement*)malloc(fieldCount * sizeof(RsElement));
+ uint32_t *arraySizes = (uint32_t *)malloc(fieldCount * sizeof(uint32_t));
+
+ for(int i = 0; i < fieldCount; i ++) {
+ ids[i] = (RsElement)jIds[i];
+ arraySizes[i] = (uint32_t)jArraySizes[i];
+ }
AutoJavaStringArrayToUTF8 names(_env, _names, fieldCount);
const char **nameArray = names.c_str();
size_t *sizeArray = names.c_str_len();
- jint id = (jint)dispatchTab.ElementCreate2(con,
+ jlong id = (jlong)(uintptr_t)dispatchTab.ElementCreate2((RsContext)con,
(RsElement *)ids, fieldCount,
nameArray, fieldCount * sizeof(size_t), sizeArray,
(const uint32_t *)arraySizes, fieldCount);
- _env->ReleaseIntArrayElements(_ids, ids, JNI_ABORT);
- _env->ReleaseIntArrayElements(_arraySizes, arraySizes, JNI_ABORT);
- return (jint)id;
+ free(ids);
+ free(arraySizes);
+ _env->ReleaseLongArrayElements(_ids, jIds, JNI_ABORT);
+ _env->ReleaseIntArrayElements(_arraySizes, jArraySizes, JNI_ABORT);
+ return id;
}
+
static void
-nElementGetSubElements(JNIEnv *_env, jobject _this, RsContext con, jint id,
- jintArray _IDs,
+nElementGetSubElements(JNIEnv *_env, jobject _this, jlong con, jlong id,
+ jlongArray _IDs,
jobjectArray _names,
jintArray _arraySizes)
{
- int dataSize = _env->GetArrayLength(_IDs);
- LOG_API("nElementGetSubElements, con(%p)", con);
+ uint32_t dataSize = _env->GetArrayLength(_IDs);
+ LOG_API("nElementGetSubElements, con(%p)", (RsContext)con);
- uint32_t *ids = (uint32_t *)malloc((uint32_t)dataSize * sizeof(uint32_t));
+ uintptr_t *ids = (uintptr_t *)malloc(dataSize * sizeof(uintptr_t));
const char **names = (const char **)malloc((uint32_t)dataSize * sizeof(const char *));
uint32_t *arraySizes = (uint32_t *)malloc((uint32_t)dataSize * sizeof(uint32_t));
- dispatchTab.ElementGetSubElements(con, (RsElement)id, ids, names, arraySizes, (uint32_t)dataSize);
+ dispatchTab.ElementGetSubElements((RsContext)con, (RsElement)id, ids, names, arraySizes,
+ (uint32_t)dataSize);
- for(jint i = 0; i < dataSize; i++) {
+ for(uint32_t i = 0; i < dataSize; i++) {
+ const jlong id = (jlong)(uintptr_t)ids[i];
+ const jint arraySize = (jint)arraySizes[i];
_env->SetObjectArrayElement(_names, i, _env->NewStringUTF(names[i]));
- _env->SetIntArrayRegion(_IDs, i, 1, (const jint*)&ids[i]);
- _env->SetIntArrayRegion(_arraySizes, i, 1, (const jint*)&arraySizes[i]);
+ _env->SetLongArrayRegion(_IDs, i, 1, &id);
+ _env->SetIntArrayRegion(_arraySizes, i, 1, &arraySize);
}
free(ids);
@@ -423,50 +439,54 @@
// -----------------------------------
-static int
-nTypeCreate(JNIEnv *_env, jobject _this, RsContext con, RsElement eid,
+static jlong
+nTypeCreate(JNIEnv *_env, jobject _this, jlong con, jlong eid,
jint dimx, jint dimy, jint dimz, jboolean mips, jboolean faces, jint yuv)
{
LOG_API("nTypeCreate, con(%p) eid(%p), x(%i), y(%i), z(%i), mips(%i), faces(%i), yuv(%i)",
- con, eid, dimx, dimy, dimz, mips, faces, yuv);
+ (RsContext)con, eid, dimx, dimy, dimz, mips, faces, yuv);
- jint id = (jint)dispatchTab.TypeCreate(con, (RsElement)eid, dimx, dimy, dimz, mips, faces, yuv);
- return (jint)id;
+ return (jlong)(uintptr_t)dispatchTab.TypeCreate((RsContext)con, (RsElement)eid, dimx, dimy,
+ dimz, mips, faces, yuv);
}
// -----------------------------------
-static jint
-nAllocationCreateTyped(JNIEnv *_env, jobject _this, RsContext con, jint type, jint mips, jint usage, jint pointer)
+static jlong
+nAllocationCreateTyped(JNIEnv *_env, jobject _this, jlong con, jlong type, jint mips, jint usage,
+ jlong pointer)
{
- LOG_API("nAllocationCreateTyped, con(%p), type(%p), mip(%i), usage(%i), ptr(%p)", con, (RsElement)type, mips, usage, (void *)pointer);
- return (jint) dispatchTab.AllocationCreateTyped(con, (RsType)type, (RsAllocationMipmapControl)mips, (uint32_t)usage, (uint32_t)pointer);
+ LOG_API("nAllocationCreateTyped, con(%p), type(%p), mip(%i), usage(%i), ptr(%p)",
+ (RsContext)con, (RsElement)type, mips, usage, (void *)pointer);
+ return (jlong)(uintptr_t) dispatchTab.AllocationCreateTyped((RsContext)con, (RsType)type,
+ (RsAllocationMipmapControl)mips,
+ (uint32_t)usage, (uintptr_t)pointer);
}
static void
-nAllocationSyncAll(JNIEnv *_env, jobject _this, RsContext con, jint a, jint bits)
+nAllocationSyncAll(JNIEnv *_env, jobject _this, jlong con, jlong a, jint bits)
{
- LOG_API("nAllocationSyncAll, con(%p), a(%p), bits(0x%08x)", con, (RsAllocation)a, bits);
- dispatchTab.AllocationSyncAll(con, (RsAllocation)a, (RsAllocationUsageType)bits);
+ LOG_API("nAllocationSyncAll, con(%p), a(%p), bits(0x%08x)", (RsContext)con, (RsAllocation)a, bits);
+ dispatchTab.AllocationSyncAll((RsContext)con, (RsAllocation)a, (RsAllocationUsageType)bits);
}
static void
-nAllocationSetSurface(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jobject sur)
+nAllocationSetSurface(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobject sur)
{
- ioDispatch.sAllocationSetSurface(_env, _this, con, (RsAllocation)alloc, sur, dispatchTab);
+ ioDispatch.sAllocationSetSurface(_env, _this, (RsContext)con, (RsAllocation)alloc, sur, dispatchTab);
}
static void
-nAllocationIoSend(JNIEnv *_env, jobject _this, RsContext con, jint alloc)
+nAllocationIoSend(JNIEnv *_env, jobject _this, jlong con, jlong alloc)
{
- dispatchTab.AllocationIoSend(con, (RsAllocation)alloc);
+ dispatchTab.AllocationIoSend((RsContext)con, (RsAllocation)alloc);
}
static void
-nAllocationGenerateMipmaps(JNIEnv *_env, jobject _this, RsContext con, jint alloc)
+nAllocationGenerateMipmaps(JNIEnv *_env, jobject _this, jlong con, jlong alloc)
{
- LOG_API("nAllocationGenerateMipmaps, con(%p), a(%p)", con, (RsAllocation)alloc);
- dispatchTab.AllocationGenerateMipmaps(con, (RsAllocation)alloc);
+ LOG_API("nAllocationGenerateMipmaps, con(%p), a(%p)", (RsContext)con, (RsAllocation)alloc);
+ dispatchTab.AllocationGenerateMipmaps((RsContext)con, (RsAllocation)alloc);
}
static size_t GetBitmapSize(JNIEnv *env, jobject jbitmap) {
@@ -482,56 +502,67 @@
return s;
}
-static int
-nAllocationCreateFromBitmap(JNIEnv *_env, jobject _this, RsContext con, jint type, jint mip, jobject jbitmap, jint usage)
+static jlong
+nAllocationCreateFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong type, jint mip,
+ jobject jbitmap, jint usage)
{
- jint id = 0;
+ jlong id = 0;
void *pixels = NULL;
AndroidBitmap_lockPixels(_env, jbitmap, &pixels);
if (pixels != NULL) {
- id = (jint)dispatchTab.AllocationCreateFromBitmap(con,
- (RsType)type, (RsAllocationMipmapControl)mip,
- pixels, GetBitmapSize(_env, jbitmap), usage);
+ id = (jlong)(uintptr_t)dispatchTab.AllocationCreateFromBitmap((RsContext)con,
+ (RsType)type,
+ (RsAllocationMipmapControl)mip,
+ pixels,
+ GetBitmapSize(_env, jbitmap),
+ usage);
AndroidBitmap_unlockPixels(_env, jbitmap);
}
return id;
}
-static int
-nAllocationCreateBitmapBackedAllocation(JNIEnv *_env, jobject _this, RsContext con, jint type, jint mip, jobject jbitmap, jint usage)
+static jlong
+nAllocationCreateBitmapBackedAllocation(JNIEnv *_env, jobject _this, jlong con, jlong type,
+ jint mip, jobject jbitmap, jint usage)
{
- jint id = 0;
+ jlong id = 0;
void *pixels = NULL;
AndroidBitmap_lockPixels(_env, jbitmap, &pixels);
if (pixels != NULL) {
- id = (jint)dispatchTab.AllocationCreateTyped(con,
- (RsType)type, (RsAllocationMipmapControl)mip,
- (uint32_t)usage, (uintptr_t)pixels);
+ id = (jlong)(uintptr_t)dispatchTab.AllocationCreateTyped((RsContext)con,
+ (RsType)type,
+ (RsAllocationMipmapControl)mip,
+ (uint32_t)usage,
+ (uintptr_t)pixels);
AndroidBitmap_unlockPixels(_env, jbitmap);
}
return id;
}
-static int
-nAllocationCubeCreateFromBitmap(JNIEnv *_env, jobject _this, RsContext con, jint type, jint mip, jobject jbitmap, jint usage)
+static jlong
+nAllocationCubeCreateFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong type,
+ jint mip, jobject jbitmap, jint usage)
{
void *pixels = NULL;
AndroidBitmap_lockPixels(_env, jbitmap, &pixels);
- jint id = 0;
+ jlong id = 0;
if (pixels != NULL) {
- id = (jint)dispatchTab.AllocationCubeCreateFromBitmap(con,
- (RsType)type, (RsAllocationMipmapControl)mip,
- pixels, GetBitmapSize(_env, jbitmap), usage);
+ id = (jlong)(uintptr_t)dispatchTab.AllocationCubeCreateFromBitmap((RsContext)con,
+ (RsType)type,
+ (RsAllocationMipmapControl)mip,
+ pixels,
+ GetBitmapSize(_env, jbitmap),
+ usage);
AndroidBitmap_unlockPixels(_env, jbitmap);
}
return id;
}
static void
-nAllocationCopyFromBitmap(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jobject jbitmap)
+nAllocationCopyFromBitmap(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobject jbitmap)
{
AndroidBitmapInfo info;
memset(&info, 0, sizeof(info));
@@ -541,15 +572,15 @@
AndroidBitmap_lockPixels(_env, jbitmap, &pixels);
if (pixels != NULL) {
- dispatchTab.Allocation2DData(con, (RsAllocation)alloc, 0, 0,
- 0, RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X,
- info.width, info.height, pixels, GetBitmapSize(_env, jbitmap), 0);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, 0, 0, 0,
+ RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X, info.width,
+ info.height, pixels, GetBitmapSize(_env, jbitmap), 0);
AndroidBitmap_unlockPixels(_env, jbitmap);
}
}
static void
-nAllocationCopyToBitmap(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jobject jbitmap)
+nAllocationCopyToBitmap(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jobject jbitmap)
{
AndroidBitmapInfo info;
memset(&info, 0, sizeof(info));
@@ -559,7 +590,8 @@
AndroidBitmap_lockPixels(_env, jbitmap, &pixels);
if (pixels != NULL) {
- dispatchTab.AllocationCopyToBitmap(con, (RsAllocation)alloc, pixels, GetBitmapSize(_env, jbitmap));
+ dispatchTab.AllocationCopyToBitmap((RsContext)con, (RsAllocation)alloc, pixels,
+ GetBitmapSize(_env, jbitmap));
AndroidBitmap_unlockPixels(_env, jbitmap);
}
//bitmap.notifyPixelsChanged();
@@ -567,311 +599,409 @@
static void
-nAllocationData1D_i(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint offset, jint lod, jint count, jintArray data, int sizeBytes)
+nAllocationData1D_l(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint count, jlongArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation1DData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)", con, (RsAllocation)alloc, offset, count, len, sizeBytes);
+ LOG_API("nAllocation1DData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, count, len, sizeBytes);
+ jlong *ptr = _env->GetLongArrayElements(data, NULL);
+ dispatchTab.Allocation1DData((RsContext)con, (RsAllocation)alloc, offset, lod, count,
+ ptr, sizeBytes);
+ _env->ReleaseLongArrayElements(data, ptr, JNI_ABORT);
+}
+
+static void
+nAllocationData1D_i(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint count, jintArray data, int sizeBytes)
+{
+ jint len = _env->GetArrayLength(data);
+ LOG_API("nAllocation1DData_i, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, count, len, sizeBytes);
jint *ptr = _env->GetIntArrayElements(data, NULL);
- dispatchTab.Allocation1DData(con, (RsAllocation)alloc, offset, lod, count, ptr, sizeBytes);
+ dispatchTab.Allocation1DData((RsContext)con, (RsAllocation)alloc, offset, lod, count,
+ ptr, sizeBytes);
_env->ReleaseIntArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData1D_s(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint offset, jint lod, jint count, jshortArray data, int sizeBytes)
+nAllocationData1D_s(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint count, jshortArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation1DData_s, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)", con, (RsAllocation)alloc, offset, count, len, sizeBytes);
+ LOG_API("nAllocation1DData_s, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, count, len, sizeBytes);
jshort *ptr = _env->GetShortArrayElements(data, NULL);
- dispatchTab.Allocation1DData(con, (RsAllocation)alloc, offset, lod, count, ptr, sizeBytes);
+ dispatchTab.Allocation1DData((RsContext)con, (RsAllocation)alloc, offset, lod, count,
+ ptr, sizeBytes);
_env->ReleaseShortArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData1D_b(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint offset, jint lod, jint count, jbyteArray data, int sizeBytes)
+nAllocationData1D_b(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint count, jbyteArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation1DData_b, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)", con, (RsAllocation)alloc, offset, count, len, sizeBytes);
+ LOG_API("nAllocation1DData_b, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, count, len, sizeBytes);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.Allocation1DData(con, (RsAllocation)alloc, offset, lod, count, ptr, sizeBytes);
+ dispatchTab.Allocation1DData((RsContext)con, (RsAllocation)alloc, offset, lod, count,
+ ptr, sizeBytes);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData1D_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint offset, jint lod, jint count, jfloatArray data, int sizeBytes)
+nAllocationData1D_f(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint count, jfloatArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation1DData_f, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)", con, (RsAllocation)alloc, offset, count, len, sizeBytes);
+ LOG_API("nAllocation1DData_f, con(%p), adapter(%p), offset(%i), count(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, count, len, sizeBytes);
jfloat *ptr = _env->GetFloatArrayElements(data, NULL);
- dispatchTab.Allocation1DData(con, (RsAllocation)alloc, offset, lod, count, ptr, sizeBytes);
+ dispatchTab.Allocation1DData((RsContext)con, (RsAllocation)alloc, offset, lod, count,
+ ptr, sizeBytes);
_env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT);
}
static void
// native void rsnAllocationElementData1D(int con, int id, int xoff, int compIdx, byte[] d, int sizeBytes);
-nAllocationElementData1D(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint offset, jint lod, jint compIdx, jbyteArray data, int sizeBytes)
+nAllocationElementData1D(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint offset,
+ jint lod, jint compIdx, jbyteArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocationElementData1D, con(%p), alloc(%p), offset(%i), comp(%i), len(%i), sizeBytes(%i)", con, (RsAllocation)alloc, offset, compIdx, len, sizeBytes);
+ LOG_API("nAllocationElementData1D, con(%p), alloc(%p), offset(%i), comp(%i), len(%i), sizeBytes(%i)",
+ (RsContext)con, (RsAllocation)alloc, offset, compIdx, len, sizeBytes);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.Allocation1DElementData(con, (RsAllocation)alloc, offset, lod, ptr, sizeBytes, compIdx);
+ dispatchTab.Allocation1DElementData((RsContext)con, (RsAllocation)alloc, offset, lod,
+ ptr, sizeBytes, compIdx);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData2D_s(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint lod, jint face,
- jint w, jint h, jshortArray data, int sizeBytes)
+nAllocationData2D_s(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint lod, jint face, jint w, jint h, jshortArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation2DData_s, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len);
+ LOG_API("nAllocation2DData_s, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, w, h, len);
jshort *ptr = _env->GetShortArrayElements(data, NULL);
- dispatchTab.Allocation2DData(con, (RsAllocation)alloc, xoff, yoff, lod, (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, lod,
+ (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
_env->ReleaseShortArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData2D_b(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint lod, jint face,
- jint w, jint h, jbyteArray data, int sizeBytes)
+nAllocationData2D_b(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint lod, jint face, jint w, jint h, jbyteArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation2DData_b, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len);
+ LOG_API("nAllocation2DData_b, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, w, h, len);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.Allocation2DData(con, (RsAllocation)alloc, xoff, yoff, lod, (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, lod,
+ (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData2D_i(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint lod, jint face,
- jint w, jint h, jintArray data, int sizeBytes)
+nAllocationData2D_l(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint lod, jint face, jint w, jint h, jlongArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation2DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len);
+ LOG_API("nAllocation2DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, w, h, len);
+ jlong *ptr = _env->GetLongArrayElements(data, NULL);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, lod,
+ (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
+ _env->ReleaseLongArrayElements(data, ptr, JNI_ABORT);
+}
+
+static void
+nAllocationData2D_i(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint lod, jint face, jint w, jint h, jintArray data, int sizeBytes)
+{
+ jint len = _env->GetArrayLength(data);
+ LOG_API("nAllocation2DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, w, h, len);
jint *ptr = _env->GetIntArrayElements(data, NULL);
- dispatchTab.Allocation2DData(con, (RsAllocation)alloc, xoff, yoff, lod, (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, lod,
+ (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
_env->ReleaseIntArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData2D_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint lod, jint face,
- jint w, jint h, jfloatArray data, int sizeBytes)
+nAllocationData2D_f(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint lod, jint face, jint w, jint h, jfloatArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation2DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, w, h, len);
+ LOG_API("nAllocation2DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, w, h, len);
jfloat *ptr = _env->GetFloatArrayElements(data, NULL);
- dispatchTab.Allocation2DData(con, (RsAllocation)alloc, xoff, yoff, lod, (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
+ dispatchTab.Allocation2DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, lod,
+ (RsAllocationCubemapFace)face, w, h, ptr, sizeBytes, 0);
_env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData2D_alloc(JNIEnv *_env, jobject _this, RsContext con,
- jint dstAlloc, jint dstXoff, jint dstYoff,
+nAllocationData2D_alloc(JNIEnv *_env, jobject _this, jlong con,
+ jlong dstAlloc, jint dstXoff, jint dstYoff,
jint dstMip, jint dstFace,
jint width, jint height,
- jint srcAlloc, jint srcXoff, jint srcYoff,
+ jlong srcAlloc, jint srcXoff, jint srcYoff,
jint srcMip, jint srcFace)
{
LOG_API("nAllocation2DData_s, con(%p), dstAlloc(%p), dstXoff(%i), dstYoff(%i),"
" dstMip(%i), dstFace(%i), width(%i), height(%i),"
" srcAlloc(%p), srcXoff(%i), srcYoff(%i), srcMip(%i), srcFace(%i)",
- con, (RsAllocation)dstAlloc, dstXoff, dstYoff, dstMip, dstFace,
+ (RsContext)con, (RsAllocation)dstAlloc, dstXoff, dstYoff, dstMip, dstFace,
width, height, (RsAllocation)srcAlloc, srcXoff, srcYoff, srcMip, srcFace);
- dispatchTab.AllocationCopy2DRange(con,
- (RsAllocation)dstAlloc,
- dstXoff, dstYoff,
- dstMip, dstFace,
- width, height,
- (RsAllocation)srcAlloc,
- srcXoff, srcYoff,
- srcMip, srcFace);
+ dispatchTab.AllocationCopy2DRange((RsContext)con,
+ (RsAllocation)dstAlloc,
+ dstXoff, dstYoff,
+ dstMip, dstFace,
+ width, height,
+ (RsAllocation)srcAlloc,
+ srcXoff, srcYoff,
+ srcMip, srcFace);
}
static void
-nAllocationData3D_s(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint zoff, jint lod,
- jint w, jint h, jint d, jshortArray data, int sizeBytes)
+nAllocationData3D_s(JNIEnv *_env, jobject _this, jlong con, jlong alloc,
+ jint xoff, jint yoff, jint zoff,
+ jint lod, jint w, jint h, jint d, jshortArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation3DData_s, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
+ LOG_API("nAllocation3DData_s, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
jshort *ptr = _env->GetShortArrayElements(data, NULL);
- dispatchTab.Allocation3DData(con, (RsAllocation)alloc, xoff, yoff, zoff, lod, w, h, d, ptr, sizeBytes, 0);
+ dispatchTab.Allocation3DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff,
+ lod, w, h, d, ptr, sizeBytes, 0);
_env->ReleaseShortArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData3D_b(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint zoff, jint lod,
- jint w, jint h, jint d, jbyteArray data, int sizeBytes)
+nAllocationData3D_b(JNIEnv *_env, jobject _this, jlong con, jlong alloc,
+ jint xoff, jint yoff, jint zoff,
+ jint lod, jint w, jint h, jint d, jbyteArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation3DData_b, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
+ LOG_API("nAllocation3DData_b, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.Allocation3DData(con, (RsAllocation)alloc, xoff, yoff, zoff, lod, w, h, d, ptr, sizeBytes, 0);
+ dispatchTab.Allocation3DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff,
+ lod, w, h, d, ptr, sizeBytes, 0);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData3D_i(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint zoff, jint lod,
- jint w, jint h, jint d, jintArray data, int sizeBytes)
+nAllocationData3D_l(JNIEnv *_env, jobject _this, jlong con, jlong alloc,
+ jint xoff, jint yoff, jint zoff,
+ jint lod, jint w, jint h, jint d, jlongArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation3DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
+ LOG_API("nAllocation3DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
+ jlong *ptr = _env->GetLongArrayElements(data, NULL);
+ dispatchTab.Allocation3DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff,
+ lod, w, h, d, ptr, sizeBytes, 0);
+ _env->ReleaseLongArrayElements(data, ptr, JNI_ABORT);
+}
+
+static void
+nAllocationData3D_i(JNIEnv *_env, jobject _this, jlong con, jlong alloc,
+ jint xoff, jint yoff, jint zoff,
+ jint lod, jint w, jint h, jint d, jintArray data, int sizeBytes)
+{
+ jint len = _env->GetArrayLength(data);
+ LOG_API("nAllocation3DData_i, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
jint *ptr = _env->GetIntArrayElements(data, NULL);
- dispatchTab.Allocation3DData(con, (RsAllocation)alloc, xoff, yoff, zoff, lod, w, h, d, ptr, sizeBytes, 0);
+ dispatchTab.Allocation3DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff,
+ lod, w, h, d, ptr, sizeBytes, 0);
_env->ReleaseIntArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData3D_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint xoff, jint yoff, jint zoff, jint lod,
- jint w, jint h, jint d, jfloatArray data, int sizeBytes)
+nAllocationData3D_f(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint xoff, jint yoff,
+ jint zoff, jint lod, jint w, jint h, jint d, jfloatArray data, int sizeBytes)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocation3DData_f, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)", con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
+ LOG_API("nAllocation3DData_f, con(%p), adapter(%p), xoff(%i), yoff(%i), w(%i), h(%i), len(%i)",
+ (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, w, h, d, len);
jfloat *ptr = _env->GetFloatArrayElements(data, NULL);
- dispatchTab.Allocation3DData(con, (RsAllocation)alloc, xoff, yoff, zoff, lod, w, h, d, ptr, sizeBytes, 0);
+ dispatchTab.Allocation3DData((RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff,
+ lod, w, h, d, ptr, sizeBytes, 0);
_env->ReleaseFloatArrayElements(data, ptr, JNI_ABORT);
}
static void
-nAllocationData3D_alloc(JNIEnv *_env, jobject _this, RsContext con,
- jint dstAlloc, jint dstXoff, jint dstYoff, jint dstZoff,
+nAllocationData3D_alloc(JNIEnv *_env, jobject _this, jlong con,
+ jlong dstAlloc, jint dstXoff, jint dstYoff, jint dstZoff,
jint dstMip,
jint width, jint height, jint depth,
- jint srcAlloc, jint srcXoff, jint srcYoff, jint srcZoff,
+ jlong srcAlloc, jint srcXoff, jint srcYoff, jint srcZoff,
jint srcMip)
{
LOG_API("nAllocationData3D_alloc, con(%p), dstAlloc(%p), dstXoff(%i), dstYoff(%i),"
" dstMip(%i), width(%i), height(%i),"
" srcAlloc(%p), srcXoff(%i), srcYoff(%i), srcMip(%i)",
- con, (RsAllocation)dstAlloc, dstXoff, dstYoff, dstMip, dstFace,
+ (RsContext)con, (RsAllocation)dstAlloc, dstXoff, dstYoff, dstMip, dstFace,
width, height, (RsAllocation)srcAlloc, srcXoff, srcYoff, srcMip, srcFace);
- dispatchTab.AllocationCopy3DRange(con,
- (RsAllocation)dstAlloc,
- dstXoff, dstYoff, dstZoff, dstMip,
- width, height, depth,
- (RsAllocation)srcAlloc,
- srcXoff, srcYoff, srcZoff, srcMip);
+ dispatchTab.AllocationCopy3DRange((RsContext)con,
+ (RsAllocation)dstAlloc,
+ dstXoff, dstYoff, dstZoff, dstMip,
+ width, height, depth,
+ (RsAllocation)srcAlloc,
+ srcXoff, srcYoff, srcZoff, srcMip);
}
static void
-nAllocationRead_i(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jintArray data)
+nAllocationRead_l(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jlongArray data)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len);
+ LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", (RsContext)con,
+ (RsAllocation)alloc, len);
+ jlong *ptr = _env->GetLongArrayElements(data, NULL);
+ jsize length = _env->GetArrayLength(data);
+ dispatchTab.AllocationRead((RsContext)con, (RsAllocation)alloc, ptr, length * sizeof(int));
+ _env->ReleaseLongArrayElements(data, ptr, 0);
+}
+
+static void
+nAllocationRead_i(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jintArray data)
+{
+ jint len = _env->GetArrayLength(data);
+ LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", (RsContext)con,
+ (RsAllocation)alloc, len);
jint *ptr = _env->GetIntArrayElements(data, NULL);
jsize length = _env->GetArrayLength(data);
- dispatchTab.AllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(int));
+ dispatchTab.AllocationRead((RsContext)con, (RsAllocation)alloc, ptr, length * sizeof(int));
_env->ReleaseIntArrayElements(data, ptr, 0);
}
static void
-nAllocationRead_s(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jshortArray data)
+nAllocationRead_s(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jshortArray data)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len);
+ LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", (RsContext)con,
+ (RsAllocation)alloc, len);
jshort *ptr = _env->GetShortArrayElements(data, NULL);
jsize length = _env->GetArrayLength(data);
- dispatchTab.AllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(short));
+ dispatchTab.AllocationRead((RsContext)con, (RsAllocation)alloc, ptr, length * sizeof(short));
_env->ReleaseShortArrayElements(data, ptr, 0);
}
static void
-nAllocationRead_b(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jbyteArray data)
+nAllocationRead_b(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jbyteArray data)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len);
+ LOG_API("nAllocationRead_i, con(%p), alloc(%p), len(%i)", (RsContext)con,
+ (RsAllocation)alloc, len);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
jsize length = _env->GetArrayLength(data);
- dispatchTab.AllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(char));
+ dispatchTab.AllocationRead((RsContext)con, (RsAllocation)alloc, ptr, length * sizeof(char));
_env->ReleaseByteArrayElements(data, ptr, 0);
}
static void
-nAllocationRead_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jfloatArray data)
+nAllocationRead_f(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jfloatArray data)
{
jint len = _env->GetArrayLength(data);
- LOG_API("nAllocationRead_f, con(%p), alloc(%p), len(%i)", con, (RsAllocation)alloc, len);
+ LOG_API("nAllocationRead_f, con(%p), alloc(%p), len(%i)", (RsContext)con,
+ (RsAllocation)alloc, len);
jfloat *ptr = _env->GetFloatArrayElements(data, NULL);
jsize length = _env->GetArrayLength(data);
- dispatchTab.AllocationRead(con, (RsAllocation)alloc, ptr, length * sizeof(float));
+ dispatchTab.AllocationRead((RsContext)con, (RsAllocation)alloc, ptr, length * sizeof(float));
_env->ReleaseFloatArrayElements(data, ptr, 0);
}
-static jint
-nAllocationGetType(JNIEnv *_env, jobject _this, RsContext con, jint a)
+static jlong
+nAllocationGetType(JNIEnv *_env, jobject _this, jlong con, jlong a)
{
- LOG_API("nAllocationGetType, con(%p), a(%p)", con, (RsAllocation)a);
- return (jint) dispatchTab.AllocationGetType(con, (RsAllocation)a);
+ LOG_API("nAllocationGetType, con(%p), a(%p)", (RsContext)con, (RsAllocation)a);
+ return (jlong)(uintptr_t) dispatchTab.AllocationGetType((RsContext)con, (RsAllocation)a);
}
static void
-nAllocationResize1D(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jint dimX)
+nAllocationResize1D(JNIEnv *_env, jobject _this, jlong con, jlong alloc, jint dimX)
{
- LOG_API("nAllocationResize1D, con(%p), alloc(%p), sizeX(%i)", con, (RsAllocation)alloc, dimX);
- dispatchTab.AllocationResize1D(con, (RsAllocation)alloc, dimX);
+ LOG_API("nAllocationResize1D, con(%p), alloc(%p), sizeX(%i)", (RsContext)con,
+ (RsAllocation)alloc, dimX);
+ dispatchTab.AllocationResize1D((RsContext)con, (RsAllocation)alloc, dimX);
}
// -----------------------------------
static void
-nScriptBindAllocation(JNIEnv *_env, jobject _this, RsContext con, jint script, jint alloc, jint slot)
+nScriptBindAllocation(JNIEnv *_env, jobject _this, jlong con, jlong script, jlong alloc, jint slot)
{
- LOG_API("nScriptBindAllocation, con(%p), script(%p), alloc(%p), slot(%i)", con, (RsScript)script, (RsAllocation)alloc, slot);
- dispatchTab.ScriptBindAllocation(con, (RsScript)script, (RsAllocation)alloc, slot);
+ LOG_API("nScriptBindAllocation, con(%p), script(%p), alloc(%p), slot(%i)",
+ (RsContext)con, (RsScript)script, (RsAllocation)alloc, slot);
+ dispatchTab.ScriptBindAllocation((RsContext)con, (RsScript)script, (RsAllocation)alloc, slot);
}
static void
-nScriptSetVarI(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jint val)
+nScriptSetVarI(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jint val)
{
- LOG_API("nScriptSetVarI, con(%p), s(%p), slot(%i), val(%i)", con, (void *)script, slot, val);
- dispatchTab.ScriptSetVarI(con, (RsScript)script, slot, val);
+ LOG_API("nScriptSetVarI, con(%p), s(%p), slot(%i), val(%i)", (RsContext)con,
+ (void *)script, slot, val);
+ dispatchTab.ScriptSetVarI((RsContext)con, (RsScript)script, slot, val);
}
static void
-nScriptSetVarObj(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jint val)
+nScriptSetVarObj(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jlong val)
{
- LOG_API("nScriptSetVarObj, con(%p), s(%p), slot(%i), val(%i)", con, (void *)script, slot, val);
- dispatchTab.ScriptSetVarObj(con, (RsScript)script, slot, (RsObjectBase)val);
+ LOG_API("nScriptSetVarObj, con(%p), s(%p), slot(%i), val(%i)", (RsContext)con,
+ (void *)script, slot, val);
+ dispatchTab.ScriptSetVarObj((RsContext)con, (RsScript)script, slot, (RsObjectBase)val);
}
static void
-nScriptSetVarJ(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jlong val)
+nScriptSetVarJ(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jlong val)
{
- LOG_API("nScriptSetVarJ, con(%p), s(%p), slot(%i), val(%lli)", con, (void *)script, slot, val);
- dispatchTab.ScriptSetVarJ(con, (RsScript)script, slot, val);
+ LOG_API("nScriptSetVarJ, con(%p), s(%p), slot(%i), val(%lli)", (RsContext)con,
+ (void *)script, slot, val);
+ dispatchTab.ScriptSetVarJ((RsContext)con, (RsScript)script, slot, val);
}
static void
-nScriptSetVarF(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, float val)
+nScriptSetVarF(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, float val)
{
- LOG_API("nScriptSetVarF, con(%p), s(%p), slot(%i), val(%f)", con, (void *)script, slot, val);
- dispatchTab.ScriptSetVarF(con, (RsScript)script, slot, val);
+ LOG_API("nScriptSetVarF, con(%p), s(%p), slot(%i), val(%f)", (RsContext)con,
+ (void *)script, slot, val);
+ dispatchTab.ScriptSetVarF((RsContext)con, (RsScript)script, slot, val);
}
static void
-nScriptSetVarD(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, double val)
+nScriptSetVarD(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, double val)
{
- LOG_API("nScriptSetVarD, con(%p), s(%p), slot(%i), val(%lf)", con, (void *)script, slot, val);
- dispatchTab.ScriptSetVarD(con, (RsScript)script, slot, val);
+ LOG_API("nScriptSetVarD, con(%p), s(%p), slot(%i), val(%lf)", (RsContext)con,
+ (void *)script, slot, val);
+ dispatchTab.ScriptSetVarD((RsContext)con, (RsScript)script, slot, val);
}
static void
-nScriptSetVarV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data)
+nScriptSetVarV(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jbyteArray data)
{
- LOG_API("nScriptSetVarV, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptSetVarV, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
jint len = _env->GetArrayLength(data);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.ScriptSetVarV(con, (RsScript)script, slot, ptr, len);
+ dispatchTab.ScriptSetVarV((RsContext)con, (RsScript)script, slot, ptr, len);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nScriptSetVarVE(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data, jint elem, jintArray dims)
+nScriptSetVarVE(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jbyteArray data,
+ jlong elem, jintArray dims)
{
- LOG_API("nScriptSetVarVE, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptSetVarVE, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
jint len = _env->GetArrayLength(data);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
jint dimsLen = _env->GetArrayLength(dims) * sizeof(int);
jint *dimsPtr = _env->GetIntArrayElements(dims, NULL);
- dispatchTab.ScriptSetVarVE(con, (RsScript)script, slot, ptr, len, (RsElement)elem,
+ dispatchTab.ScriptSetVarVE((RsContext)con, (RsScript)script, slot, ptr, len, (RsElement)elem,
(const uint32_t *)dimsPtr, dimsLen);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
_env->ReleaseIntArrayElements(dims, dimsPtr, JNI_ABORT);
@@ -879,15 +1009,16 @@
static void
-nScriptSetTimeZone(JNIEnv *_env, jobject _this, RsContext con, jint script, jbyteArray timeZone)
+nScriptSetTimeZone(JNIEnv *_env, jobject _this, jlong con, jlong script, jbyteArray timeZone)
{
- LOG_API("nScriptCSetTimeZone, con(%p), s(%p), timeZone(%s)", con, (void *)script, (const char *)timeZone);
+ LOG_API("nScriptCSetTimeZone, con(%p), s(%p), timeZone(%s)", (RsContext)con,
+ (void *)script, (const char *)timeZone);
jint length = _env->GetArrayLength(timeZone);
jbyte* timeZone_ptr;
timeZone_ptr = (jbyte *) _env->GetPrimitiveArrayCritical(timeZone, (jboolean *)0);
- dispatchTab.ScriptSetTimeZone(con, (RsScript)script, (const char *)timeZone_ptr, length);
+ dispatchTab.ScriptSetTimeZone((RsContext)con, (RsScript)script, (const char *)timeZone_ptr, length);
if (timeZone_ptr) {
_env->ReleasePrimitiveArrayCritical(timeZone, timeZone_ptr, 0);
@@ -895,47 +1026,51 @@
}
static void
-nScriptInvoke(JNIEnv *_env, jobject _this, RsContext con, jint obj, jint slot)
+nScriptInvoke(JNIEnv *_env, jobject _this, jlong con, jlong obj, jint slot)
{
- LOG_API("nScriptInvoke, con(%p), script(%p)", con, (void *)obj);
- dispatchTab.ScriptInvoke(con, (RsScript)obj, slot);
+ LOG_API("nScriptInvoke, con(%p), script(%p)", (RsContext)con, (void *)obj);
+ dispatchTab.ScriptInvoke((RsContext)con, (RsScript)obj, slot);
}
static void
-nScriptInvokeV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data)
+nScriptInvokeV(JNIEnv *_env, jobject _this, jlong con, jlong script, jint slot, jbyteArray data)
{
- LOG_API("nScriptInvokeV, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptInvokeV, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
jint len = _env->GetArrayLength(data);
jbyte *ptr = _env->GetByteArrayElements(data, NULL);
- dispatchTab.ScriptInvokeV(con, (RsScript)script, slot, ptr, len);
+ dispatchTab.ScriptInvokeV((RsContext)con, (RsScript)script, slot, ptr, len);
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}
static void
-nScriptForEach(JNIEnv *_env, jobject _this, RsContext con,
- jint script, jint slot, jint ain, jint aout)
+nScriptForEach(JNIEnv *_env, jobject _this, jlong con,
+ jlong script, jint slot, jlong ain, jlong aout)
{
- LOG_API("nScriptForEach, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
- dispatchTab.ScriptForEach(con, (RsScript)script, slot, (RsAllocation)ain, (RsAllocation)aout, NULL, 0, NULL, 0);
+ LOG_API("nScriptForEach, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
+ dispatchTab.ScriptForEach((RsContext)con, (RsScript)script, slot,
+ (RsAllocation)ain, (RsAllocation)aout,
+ NULL, 0, NULL, 0);
}
static void
-nScriptForEachV(JNIEnv *_env, jobject _this, RsContext con,
- jint script, jint slot, jint ain, jint aout, jbyteArray params)
+nScriptForEachV(JNIEnv *_env, jobject _this, jlong con,
+ jlong script, jint slot, jlong ain, jlong aout, jbyteArray params)
{
- LOG_API("nScriptForEach, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptForEach, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
jint len = _env->GetArrayLength(params);
jbyte *ptr = _env->GetByteArrayElements(params, NULL);
- dispatchTab.ScriptForEach(con, (RsScript)script, slot, (RsAllocation)ain, (RsAllocation)aout, ptr, len, NULL, 0);
+ dispatchTab.ScriptForEach((RsContext)con, (RsScript)script, slot,
+ (RsAllocation)ain, (RsAllocation)aout,
+ ptr, len, NULL, 0);
_env->ReleaseByteArrayElements(params, ptr, JNI_ABORT);
}
static void
-nScriptForEachClipped(JNIEnv *_env, jobject _this, RsContext con,
- jint script, jint slot, jint ain, jint aout,
+nScriptForEachClipped(JNIEnv *_env, jobject _this, jlong con,
+ jlong script, jint slot, jlong ain, jlong aout,
jint xstart, jint xend,
jint ystart, jint yend, jint zstart, jint zend)
{
- LOG_API("nScriptForEachClipped, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptForEachClipped, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
RsScriptCall sc;
sc.xStart = xstart;
sc.xEnd = xend;
@@ -946,16 +1081,18 @@
sc.strategy = RS_FOR_EACH_STRATEGY_DONT_CARE;
sc.arrayStart = 0;
sc.arrayEnd = 0;
- dispatchTab.ScriptForEach(con, (RsScript)script, slot, (RsAllocation)ain, (RsAllocation)aout, NULL, 0, &sc, sizeof(sc));
+ dispatchTab.ScriptForEach((RsContext)con, (RsScript)script, slot,
+ (RsAllocation)ain, (RsAllocation)aout,
+ NULL, 0, &sc, sizeof(sc));
}
static void
-nScriptForEachClippedV(JNIEnv *_env, jobject _this, RsContext con,
- jint script, jint slot, jint ain, jint aout,
+nScriptForEachClippedV(JNIEnv *_env, jobject _this, jlong con,
+ jlong script, jint slot, jlong ain, jlong aout,
jbyteArray params, jint xstart, jint xend,
jint ystart, jint yend, jint zstart, jint zend)
{
- LOG_API("nScriptForEachClipped, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
+ LOG_API("nScriptForEachClipped, con(%p), s(%p), slot(%i)", (RsContext)con, (void *)script, slot);
jint len = _env->GetArrayLength(params);
jbyte *ptr = _env->GetByteArrayElements(params, NULL);
RsScriptCall sc;
@@ -968,22 +1105,24 @@
sc.strategy = RS_FOR_EACH_STRATEGY_DONT_CARE;
sc.arrayStart = 0;
sc.arrayEnd = 0;
- dispatchTab.ScriptForEach(con, (RsScript)script, slot, (RsAllocation)ain, (RsAllocation)aout, ptr, len, &sc, sizeof(sc));
+ dispatchTab.ScriptForEach((RsContext)con, (RsScript)script, slot,
+ (RsAllocation)ain, (RsAllocation)aout,
+ ptr, len, &sc, sizeof(sc));
_env->ReleaseByteArrayElements(params, ptr, JNI_ABORT);
}
// -----------------------------------
-static jint
-nScriptCCreate(JNIEnv *_env, jobject _this, RsContext con,
+static jlong
+nScriptCCreate(JNIEnv *_env, jobject _this, jlong con,
jstring resName, jstring cacheDir,
jbyteArray scriptRef, jint length)
{
- LOG_API("nScriptCCreate, con(%p)", con);
+ LOG_API("nScriptCCreate, con(%p)", (RsContext)con);
AutoJavaStringToUTF8 resNameUTF(_env, resName);
AutoJavaStringToUTF8 cacheDirUTF(_env, cacheDir);
- jint ret = 0;
+ jlong ret = 0;
jbyte* script_ptr = NULL;
jint _exception = 0;
jint remaining;
@@ -1009,10 +1148,10 @@
//rsScriptCSetText(con, (const char *)script_ptr, length);
- ret = (jint)dispatchTab.ScriptCCreate(con,
- resNameUTF.c_str(), resNameUTF.length(),
- cacheDirUTF.c_str(), cacheDirUTF.length(),
- (const char *)script_ptr, length);
+ ret = (jlong)(uintptr_t)dispatchTab.ScriptCCreate((RsContext)con,
+ resNameUTF.c_str(), resNameUTF.length(),
+ cacheDirUTF.c_str(), cacheDirUTF.length(),
+ (const char *)script_ptr, length);
exit:
if (script_ptr) {
@@ -1020,199 +1159,242 @@
_exception ? JNI_ABORT: 0);
}
- return ret;
+ return (jlong)(uintptr_t)ret;
}
-static jint
-nScriptIntrinsicCreate(JNIEnv *_env, jobject _this, RsContext con, jint id, jint eid)
+static jlong
+nScriptIntrinsicCreate(JNIEnv *_env, jobject _this, jlong con, jint id, jlong eid)
{
- LOG_API("nScriptIntrinsicCreate, con(%p) id(%i) element(%p)", con, id, (void *)eid);
- return (jint)dispatchTab.ScriptIntrinsicCreate(con, id, (RsElement)eid);
+ LOG_API("nScriptIntrinsicCreate, con(%p) id(%i) element(%p)", (RsContext)con, id, (void *)eid);
+ return (jlong)(uintptr_t)dispatchTab.ScriptIntrinsicCreate((RsContext)con, id, (RsElement)eid);
}
-static jint
-nScriptKernelIDCreate(JNIEnv *_env, jobject _this, RsContext con, jint sid, jint slot, jint sig)
+static jlong
+nScriptKernelIDCreate(JNIEnv *_env, jobject _this, jlong con, jlong sid, jint slot, jint sig)
{
- LOG_API("nScriptKernelIDCreate, con(%p) script(%p), slot(%i), sig(%i)", con, (void *)sid, slot, sig);
- return (jint)dispatchTab.ScriptKernelIDCreate(con, (RsScript)sid, slot, sig);
+ LOG_API("nScriptKernelIDCreate, con(%p) script(%p), slot(%i), sig(%i)", (RsContext)con,
+ (void *)sid, slot, sig);
+ return (jlong)(uintptr_t)dispatchTab.ScriptKernelIDCreate((RsContext)con, (RsScript)sid,
+ slot, sig);
}
-static jint
-nScriptFieldIDCreate(JNIEnv *_env, jobject _this, RsContext con, jint sid, jint slot)
+static jlong
+nScriptFieldIDCreate(JNIEnv *_env, jobject _this, jlong con, jlong sid, jint slot)
{
- LOG_API("nScriptFieldIDCreate, con(%p) script(%p), slot(%i)", con, (void *)sid, slot);
- return (jint)dispatchTab.ScriptFieldIDCreate(con, (RsScript)sid, slot);
+ LOG_API("nScriptFieldIDCreate, con(%p) script(%p), slot(%i)", (RsContext)con, (void *)sid, slot);
+ return (jlong)(uintptr_t)dispatchTab.ScriptFieldIDCreate((RsContext)con, (RsScript)sid, slot);
}
-static jint
-nScriptGroupCreate(JNIEnv *_env, jobject _this, RsContext con, jintArray _kernels, jintArray _src,
- jintArray _dstk, jintArray _dstf, jintArray _types)
+static jlong
+nScriptGroupCreate(JNIEnv *_env, jobject _this, jlong con, jlongArray _kernels, jlongArray _src,
+ jlongArray _dstk, jlongArray _dstf, jlongArray _types)
{
- LOG_API("nScriptGroupCreate, con(%p)", con);
+ LOG_API("nScriptGroupCreate, con(%p)", (RsContext)con);
- jint kernelsLen = _env->GetArrayLength(_kernels) * sizeof(int);
- jint *kernelsPtr = _env->GetIntArrayElements(_kernels, NULL);
- jint srcLen = _env->GetArrayLength(_src) * sizeof(int);
- jint *srcPtr = _env->GetIntArrayElements(_src, NULL);
- jint dstkLen = _env->GetArrayLength(_dstk) * sizeof(int);
- jint *dstkPtr = _env->GetIntArrayElements(_dstk, NULL);
- jint dstfLen = _env->GetArrayLength(_dstf) * sizeof(int);
- jint *dstfPtr = _env->GetIntArrayElements(_dstf, NULL);
- jint typesLen = _env->GetArrayLength(_types) * sizeof(int);
- jint *typesPtr = _env->GetIntArrayElements(_types, NULL);
+ jint kernelsLen = _env->GetArrayLength(_kernels);
+ jlong *jKernelsPtr = _env->GetLongArrayElements(_kernels, nullptr);
+ RsScriptKernelID* kernelsPtr = (RsScriptKernelID*) malloc(sizeof(RsScriptKernelID) * kernelsLen);
+ for(int i = 0; i < kernelsLen; ++i) {
+ kernelsPtr[i] = (RsScriptKernelID)jKernelsPtr[i];
+ }
- int id = (int)dispatchTab.ScriptGroupCreate(con,
- (RsScriptKernelID *)kernelsPtr, kernelsLen,
- (RsScriptKernelID *)srcPtr, srcLen,
- (RsScriptKernelID *)dstkPtr, dstkLen,
- (RsScriptFieldID *)dstfPtr, dstfLen,
- (RsType *)typesPtr, typesLen);
+ jint srcLen = _env->GetArrayLength(_src);
+ jlong *jSrcPtr = _env->GetLongArrayElements(_src, nullptr);
+ RsScriptKernelID* srcPtr = (RsScriptKernelID*) malloc(sizeof(RsScriptKernelID) * srcLen);
+ for(int i = 0; i < srcLen; ++i) {
+ srcPtr[i] = (RsScriptKernelID)jSrcPtr[i];
+ }
- _env->ReleaseIntArrayElements(_kernels, kernelsPtr, 0);
- _env->ReleaseIntArrayElements(_src, srcPtr, 0);
- _env->ReleaseIntArrayElements(_dstk, dstkPtr, 0);
- _env->ReleaseIntArrayElements(_dstf, dstfPtr, 0);
- _env->ReleaseIntArrayElements(_types, typesPtr, 0);
+ jint dstkLen = _env->GetArrayLength(_dstk);
+ jlong *jDstkPtr = _env->GetLongArrayElements(_dstk, nullptr);
+ RsScriptKernelID* dstkPtr = (RsScriptKernelID*) malloc(sizeof(RsScriptKernelID) * dstkLen);
+ for(int i = 0; i < dstkLen; ++i) {
+ dstkPtr[i] = (RsScriptKernelID)jDstkPtr[i];
+ }
+
+ jint dstfLen = _env->GetArrayLength(_dstf);
+ jlong *jDstfPtr = _env->GetLongArrayElements(_dstf, nullptr);
+ RsScriptKernelID* dstfPtr = (RsScriptKernelID*) malloc(sizeof(RsScriptKernelID) * dstfLen);
+ for(int i = 0; i < dstfLen; ++i) {
+ dstfPtr[i] = (RsScriptKernelID)jDstfPtr[i];
+ }
+
+ jint typesLen = _env->GetArrayLength(_types);
+ jlong *jTypesPtr = _env->GetLongArrayElements(_types, nullptr);
+ RsType* typesPtr = (RsType*) malloc(sizeof(RsType) * typesLen);
+ for(int i = 0; i < typesLen; ++i) {
+ typesPtr[i] = (RsType)jTypesPtr[i];
+ }
+
+ jlong id = (jlong)(uintptr_t) dispatchTab.ScriptGroupCreate((RsContext)con,
+ (RsScriptKernelID *)kernelsPtr, kernelsLen * sizeof(RsScriptKernelID),
+ (RsScriptKernelID *)srcPtr, srcLen * sizeof(RsScriptKernelID),
+ (RsScriptKernelID *)dstkPtr, dstkLen * sizeof(RsScriptKernelID),
+ (RsScriptFieldID *)dstfPtr, dstfLen * sizeof(RsScriptKernelID),
+ (RsType *)typesPtr, typesLen * sizeof(RsType));
+
+ free(kernelsPtr);
+ free(srcPtr);
+ free(dstkPtr);
+ free(dstfPtr);
+ free(typesPtr);
+ _env->ReleaseLongArrayElements(_kernels, jKernelsPtr, 0);
+ _env->ReleaseLongArrayElements(_src, jSrcPtr, 0);
+ _env->ReleaseLongArrayElements(_dstk, jDstkPtr, 0);
+ _env->ReleaseLongArrayElements(_dstf, jDstfPtr, 0);
+ _env->ReleaseLongArrayElements(_types, jTypesPtr, 0);
return id;
}
static void
-nScriptGroupSetInput(JNIEnv *_env, jobject _this, RsContext con, jint gid, jint kid, jint alloc)
+nScriptGroupSetInput(JNIEnv *_env, jobject _this, jlong con, jlong gid, jlong kid, jlong alloc)
{
- LOG_API("nScriptGroupSetInput, con(%p) group(%p), kernelId(%p), alloc(%p)", con,
- (void *)gid, (void *)kid, (void *)alloc);
- dispatchTab.ScriptGroupSetInput(con, (RsScriptGroup)gid, (RsScriptKernelID)kid, (RsAllocation)alloc);
+ LOG_API("nScriptGroupSetInput, con(%p) group(%p), kernelId(%p), alloc(%p)", (RsContext)con,
+ (void *)gid, (void *)kid, (void *)alloc);
+ dispatchTab.ScriptGroupSetInput((RsContext)con, (RsScriptGroup)gid, (RsScriptKernelID)kid,
+ (RsAllocation)alloc);
}
static void
-nScriptGroupSetOutput(JNIEnv *_env, jobject _this, RsContext con, jint gid, jint kid, jint alloc)
+nScriptGroupSetOutput(JNIEnv *_env, jobject _this, jlong con, jlong gid, jlong kid, jlong alloc)
{
- LOG_API("nScriptGroupSetOutput, con(%p) group(%p), kernelId(%p), alloc(%p)", con,
- (void *)gid, (void *)kid, (void *)alloc);
- dispatchTab.ScriptGroupSetOutput(con, (RsScriptGroup)gid, (RsScriptKernelID)kid, (RsAllocation)alloc);
+ LOG_API("nScriptGroupSetOutput, con(%p) group(%p), kernelId(%p), alloc(%p)", (RsContext)con,
+ (void *)gid, (void *)kid, (void *)alloc);
+ dispatchTab.ScriptGroupSetOutput((RsContext)con, (RsScriptGroup)gid, (RsScriptKernelID)kid,
+ (RsAllocation)alloc);
}
static void
-nScriptGroupExecute(JNIEnv *_env, jobject _this, RsContext con, jint gid)
+nScriptGroupExecute(JNIEnv *_env, jobject _this, jlong con, jlong gid)
{
- LOG_API("nScriptGroupSetOutput, con(%p) group(%p)", con, (void *)gid);
- dispatchTab.ScriptGroupExecute(con, (RsScriptGroup)gid);
+ LOG_API("nScriptGroupSetOutput, con(%p) group(%p)", (RsContext)con, (void *)gid);
+ dispatchTab.ScriptGroupExecute((RsContext)con, (RsScriptGroup)gid);
}
// ---------------------------------------------------------------------------
-static jint
-nSamplerCreate(JNIEnv *_env, jobject _this, RsContext con, jint magFilter, jint minFilter,
+static jlong
+nSamplerCreate(JNIEnv *_env, jobject _this, jlong con, jint magFilter, jint minFilter,
jint wrapS, jint wrapT, jint wrapR, jfloat aniso)
{
- LOG_API("nSamplerCreate, con(%p)", con);
- return (jint)dispatchTab.SamplerCreate(con,
- (RsSamplerValue)magFilter,
- (RsSamplerValue)minFilter,
- (RsSamplerValue)wrapS,
- (RsSamplerValue)wrapT,
- (RsSamplerValue)wrapR,
- aniso);
+ LOG_API("nSamplerCreate, con(%p)", (RsContext)con);
+ return (jlong)(uintptr_t)dispatchTab.SamplerCreate((RsContext)con,
+ (RsSamplerValue)magFilter,
+ (RsSamplerValue)minFilter,
+ (RsSamplerValue)wrapS,
+ (RsSamplerValue)wrapT,
+ (RsSamplerValue)wrapR,
+ aniso);
+}
+
+static jint
+nSystemGetPointerSize(JNIEnv *_env, jobject _this) {
+ return (jint)sizeof(void*);
}
// ---------------------------------------------------------------------------
+
static const char *classPathName = "android/support/v8/renderscript/RenderScript";
static JNINativeMethod methods[] = {
-{"nLoadSO", "(Z)Z", (bool*)nLoadSO },
+{"nLoadSO", "(Z)Z", (bool*)nLoadSO },
{"nLoadIOSO", "()Z", (bool*)nLoadIOSO },
-{"nDeviceCreate", "()I", (void*)nDeviceCreate },
-{"nDeviceDestroy", "(I)V", (void*)nDeviceDestroy },
-{"nDeviceSetConfig", "(III)V", (void*)nDeviceSetConfig },
-{"nContextGetUserMessage", "(I[I)I", (void*)nContextGetUserMessage },
-{"nContextGetErrorMessage", "(I)Ljava/lang/String;", (void*)nContextGetErrorMessage },
-{"nContextPeekMessage", "(I[I)I", (void*)nContextPeekMessage },
-
-{"nContextInitToClient", "(I)V", (void*)nContextInitToClient },
-{"nContextDeinitToClient", "(I)V", (void*)nContextDeinitToClient },
+{"nDeviceCreate", "()J", (void*)nDeviceCreate },
+{"nDeviceDestroy", "(J)V", (void*)nDeviceDestroy },
+{"nDeviceSetConfig", "(JII)V", (void*)nDeviceSetConfig },
+{"nContextGetUserMessage", "(J[I)I", (void*)nContextGetUserMessage },
+{"nContextGetErrorMessage", "(J)Ljava/lang/String;", (void*)nContextGetErrorMessage },
+{"nContextPeekMessage", "(J[I)I", (void*)nContextPeekMessage },
+{"nContextInitToClient", "(J)V", (void*)nContextInitToClient },
+{"nContextDeinitToClient", "(J)V", (void*)nContextDeinitToClient },
// All methods below are thread protected in java.
-{"rsnContextCreate", "(IIII)I", (void*)nContextCreate },
-{"rsnContextFinish", "(I)V", (void*)nContextFinish },
-{"rsnContextSetPriority", "(II)V", (void*)nContextSetPriority },
-{"rsnContextDestroy", "(I)V", (void*)nContextDestroy },
-{"rsnContextDump", "(II)V", (void*)nContextDump },
-{"rsnContextSendMessage", "(II[I)V", (void*)nContextSendMessage },
+{"rsnContextCreate", "(JIII)J", (void*)nContextCreate },
+{"rsnContextFinish", "(J)V", (void*)nContextFinish },
+{"rsnContextSetPriority", "(JI)V", (void*)nContextSetPriority },
+{"rsnContextDestroy", "(J)V", (void*)nContextDestroy },
+{"rsnContextDump", "(JI)V", (void*)nContextDump },
+{"rsnContextSendMessage", "(JI[I)V", (void*)nContextSendMessage },
//{"rsnClosureCreate", "(JJJ[J[J[I[J[J)J", (void*)nClosureCreate },
//{"rsnClosureSetArg", "(JJIJI)V", (void*)nClosureSetArg },
//{"rsnClosureSetGlobal", "(JJJJI)V", (void*)nClosureSetGlobal },
-{"rsnObjDestroy", "(II)V", (void*)nObjDestroy },
+{"rsnObjDestroy", "(JJ)V", (void*)nObjDestroy },
-{"rsnElementCreate", "(IIIZI)I", (void*)nElementCreate },
-{"rsnElementCreate2", "(I[I[Ljava/lang/String;[I)I", (void*)nElementCreate2 },
-{"rsnElementGetSubElements", "(II[I[Ljava/lang/String;[I)V", (void*)nElementGetSubElements },
+{"rsnElementCreate", "(JJIZI)J", (void*)nElementCreate },
+{"rsnElementCreate2", "(J[J[Ljava/lang/String;[I)J", (void*)nElementCreate2 },
+{"rsnElementGetSubElements", "(JJ[J[Ljava/lang/String;[I)V", (void*)nElementGetSubElements },
-{"rsnTypeCreate", "(IIIIIZZI)I", (void*)nTypeCreate },
+{"rsnTypeCreate", "(JJIIIZZI)J", (void*)nTypeCreate },
-{"rsnAllocationCreateTyped", "(IIIII)I", (void*)nAllocationCreateTyped },
-{"rsnAllocationCreateFromBitmap", "(IIILandroid/graphics/Bitmap;I)I", (void*)nAllocationCreateFromBitmap },
-{"rsnAllocationCreateBitmapBackedAllocation", "(IIILandroid/graphics/Bitmap;I)I", (void*)nAllocationCreateBitmapBackedAllocation },
-{"rsnAllocationCubeCreateFromBitmap","(IIILandroid/graphics/Bitmap;I)I", (void*)nAllocationCubeCreateFromBitmap },
+{"rsnAllocationCreateTyped", "(JJIIJ)J", (void*)nAllocationCreateTyped },
+{"rsnAllocationCreateFromBitmap", "(JJILandroid/graphics/Bitmap;I)J", (void*)nAllocationCreateFromBitmap },
+{"rsnAllocationCreateBitmapBackedAllocation", "(JJILandroid/graphics/Bitmap;I)J", (void*)nAllocationCreateBitmapBackedAllocation },
+{"rsnAllocationCubeCreateFromBitmap","(JJILandroid/graphics/Bitmap;I)J", (void*)nAllocationCubeCreateFromBitmap },
-{"rsnAllocationCopyFromBitmap", "(IILandroid/graphics/Bitmap;)V", (void*)nAllocationCopyFromBitmap },
-{"rsnAllocationCopyToBitmap", "(IILandroid/graphics/Bitmap;)V", (void*)nAllocationCopyToBitmap },
+{"rsnAllocationCopyFromBitmap", "(JJLandroid/graphics/Bitmap;)V", (void*)nAllocationCopyFromBitmap },
+{"rsnAllocationCopyToBitmap", "(JJLandroid/graphics/Bitmap;)V", (void*)nAllocationCopyToBitmap },
-{"rsnAllocationSyncAll", "(III)V", (void*)nAllocationSyncAll },
-{"rsnAllocationSetSurface", "(IILandroid/view/Surface;)V", (void*)nAllocationSetSurface },
-{"rsnAllocationIoSend", "(II)V", (void*)nAllocationIoSend },
-{"rsnAllocationData1D", "(IIIII[II)V", (void*)nAllocationData1D_i },
-{"rsnAllocationData1D", "(IIIII[SI)V", (void*)nAllocationData1D_s },
-{"rsnAllocationData1D", "(IIIII[BI)V", (void*)nAllocationData1D_b },
-{"rsnAllocationData1D", "(IIIII[FI)V", (void*)nAllocationData1D_f },
-{"rsnAllocationElementData1D", "(IIIII[BI)V", (void*)nAllocationElementData1D },
-{"rsnAllocationData2D", "(IIIIIIII[II)V", (void*)nAllocationData2D_i },
-{"rsnAllocationData2D", "(IIIIIIII[SI)V", (void*)nAllocationData2D_s },
-{"rsnAllocationData2D", "(IIIIIIII[BI)V", (void*)nAllocationData2D_b },
-{"rsnAllocationData2D", "(IIIIIIII[FI)V", (void*)nAllocationData2D_f },
-{"rsnAllocationData2D", "(IIIIIIIIIIIII)V", (void*)nAllocationData2D_alloc },
-{"rsnAllocationData3D", "(IIIIIIIII[II)V", (void*)nAllocationData3D_i },
-{"rsnAllocationData3D", "(IIIIIIIII[SI)V", (void*)nAllocationData3D_s },
-{"rsnAllocationData3D", "(IIIIIIIII[BI)V", (void*)nAllocationData3D_b },
-{"rsnAllocationData3D", "(IIIIIIIII[FI)V", (void*)nAllocationData3D_f },
-{"rsnAllocationData3D", "(IIIIIIIIIIIIII)V", (void*)nAllocationData3D_alloc },
-{"rsnAllocationRead", "(II[I)V", (void*)nAllocationRead_i },
-{"rsnAllocationRead", "(II[S)V", (void*)nAllocationRead_s },
-{"rsnAllocationRead", "(II[B)V", (void*)nAllocationRead_b },
-{"rsnAllocationRead", "(II[F)V", (void*)nAllocationRead_f },
-{"rsnAllocationGetType", "(II)I", (void*)nAllocationGetType},
-{"rsnAllocationResize1D", "(III)V", (void*)nAllocationResize1D },
-{"rsnAllocationGenerateMipmaps", "(II)V", (void*)nAllocationGenerateMipmaps },
+{"rsnAllocationSyncAll", "(JJI)V", (void*)nAllocationSyncAll },
+{"rsnAllocationSetSurface", "(JJLandroid/view/Surface;)V", (void*)nAllocationSetSurface },
+{"rsnAllocationIoSend", "(JJ)V", (void*)nAllocationIoSend },
+{"rsnAllocationData1D", "(JJIII[JI)V", (void*)nAllocationData1D_l },
+{"rsnAllocationData1D", "(JJIII[II)V", (void*)nAllocationData1D_i },
+{"rsnAllocationData1D", "(JJIII[SI)V", (void*)nAllocationData1D_s },
+{"rsnAllocationData1D", "(JJIII[BI)V", (void*)nAllocationData1D_b },
+{"rsnAllocationData1D", "(JJIII[FI)V", (void*)nAllocationData1D_f },
+{"rsnAllocationElementData1D", "(JJIII[BI)V", (void*)nAllocationElementData1D },
+{"rsnAllocationData2D", "(JJIIIIII[JI)V", (void*)nAllocationData2D_l },
+{"rsnAllocationData2D", "(JJIIIIII[II)V", (void*)nAllocationData2D_i },
+{"rsnAllocationData2D", "(JJIIIIII[SI)V", (void*)nAllocationData2D_s },
+{"rsnAllocationData2D", "(JJIIIIII[BI)V", (void*)nAllocationData2D_b },
+{"rsnAllocationData2D", "(JJIIIIII[FI)V", (void*)nAllocationData2D_f },
+{"rsnAllocationData2D", "(JJIIIIIIJIIII)V", (void*)nAllocationData2D_alloc },
+{"rsnAllocationData3D", "(JJIIIIIII[JI)V", (void*)nAllocationData3D_l },
+{"rsnAllocationData3D", "(JJIIIIIII[II)V", (void*)nAllocationData3D_i },
+{"rsnAllocationData3D", "(JJIIIIIII[SI)V", (void*)nAllocationData3D_s },
+{"rsnAllocationData3D", "(JJIIIIIII[BI)V", (void*)nAllocationData3D_b },
+{"rsnAllocationData3D", "(JJIIIIIII[FI)V", (void*)nAllocationData3D_f },
+{"rsnAllocationData3D", "(JJIIIIIIIJIIII)V", (void*)nAllocationData3D_alloc },
+{"rsnAllocationRead", "(JJ[I)V", (void*)nAllocationRead_i },
+{"rsnAllocationRead", "(JJ[S)V", (void*)nAllocationRead_s },
+{"rsnAllocationRead", "(JJ[B)V", (void*)nAllocationRead_b },
+{"rsnAllocationRead", "(JJ[F)V", (void*)nAllocationRead_f },
+{"rsnAllocationGetType", "(JJ)J", (void*)nAllocationGetType},
+{"rsnAllocationResize1D", "(JJI)V", (void*)nAllocationResize1D },
+{"rsnAllocationGenerateMipmaps", "(JJ)V", (void*)nAllocationGenerateMipmaps },
-{"rsnScriptBindAllocation", "(IIII)V", (void*)nScriptBindAllocation },
-{"rsnScriptSetTimeZone", "(II[B)V", (void*)nScriptSetTimeZone },
-{"rsnScriptInvoke", "(III)V", (void*)nScriptInvoke },
-{"rsnScriptInvokeV", "(III[B)V", (void*)nScriptInvokeV },
-{"rsnScriptForEach", "(IIIII)V", (void*)nScriptForEach },
-{"rsnScriptForEach", "(IIIII[B)V", (void*)nScriptForEachV },
-{"rsnScriptForEachClipped", "(IIIIIIIIIII)V", (void*)nScriptForEachClipped },
-{"rsnScriptForEachClipped", "(IIIII[BIIIIII)V", (void*)nScriptForEachClippedV },
-{"rsnScriptSetVarI", "(IIII)V", (void*)nScriptSetVarI },
-{"rsnScriptSetVarJ", "(IIIJ)V", (void*)nScriptSetVarJ },
-{"rsnScriptSetVarF", "(IIIF)V", (void*)nScriptSetVarF },
-{"rsnScriptSetVarD", "(IIID)V", (void*)nScriptSetVarD },
-{"rsnScriptSetVarV", "(III[B)V", (void*)nScriptSetVarV },
-{"rsnScriptSetVarVE", "(III[BI[I)V", (void*)nScriptSetVarVE },
-{"rsnScriptSetVarObj", "(IIII)V", (void*)nScriptSetVarObj },
+{"rsnScriptBindAllocation", "(JJJI)V", (void*)nScriptBindAllocation },
+{"rsnScriptSetTimeZone", "(JJ[B)V", (void*)nScriptSetTimeZone },
+{"rsnScriptInvoke", "(JJI)V", (void*)nScriptInvoke },
+{"rsnScriptInvokeV", "(JJI[B)V", (void*)nScriptInvokeV },
+{"rsnScriptForEach", "(JJIJJ)V", (void*)nScriptForEach },
+{"rsnScriptForEach", "(JJIJJ[B)V", (void*)nScriptForEachV },
+{"rsnScriptForEachClipped", "(JJIJJIIIIII)V", (void*)nScriptForEachClipped },
+{"rsnScriptForEachClipped", "(JJIJJ[BIIIIII)V", (void*)nScriptForEachClippedV },
+{"rsnScriptSetVarI", "(JJII)V", (void*)nScriptSetVarI },
+{"rsnScriptSetVarJ", "(JJIJ)V", (void*)nScriptSetVarJ },
+{"rsnScriptSetVarF", "(JJIF)V", (void*)nScriptSetVarF },
+{"rsnScriptSetVarD", "(JJID)V", (void*)nScriptSetVarD },
+{"rsnScriptSetVarV", "(JJI[B)V", (void*)nScriptSetVarV },
+{"rsnScriptSetVarVE", "(JJI[BJ[I)V", (void*)nScriptSetVarVE },
+{"rsnScriptSetVarObj", "(JJIJ)V", (void*)nScriptSetVarObj },
-{"rsnScriptCCreate", "(ILjava/lang/String;Ljava/lang/String;[BI)I", (void*)nScriptCCreate },
-{"rsnScriptIntrinsicCreate", "(III)I", (void*)nScriptIntrinsicCreate },
-{"rsnScriptKernelIDCreate", "(IIII)I", (void*)nScriptKernelIDCreate },
-{"rsnScriptFieldIDCreate", "(III)I", (void*)nScriptFieldIDCreate },
-{"rsnScriptGroupCreate", "(I[I[I[I[I[I)I", (void*)nScriptGroupCreate },
+{"rsnScriptCCreate", "(JLjava/lang/String;Ljava/lang/String;[BI)J", (void*)nScriptCCreate },
+{"rsnScriptIntrinsicCreate", "(JIJ)J", (void*)nScriptIntrinsicCreate },
+{"rsnScriptKernelIDCreate", "(JJII)J", (void*)nScriptKernelIDCreate },
+{"rsnScriptFieldIDCreate", "(JJI)J", (void*)nScriptFieldIDCreate },
+{"rsnScriptGroupCreate", "(J[J[J[J[J[J)J", (void*)nScriptGroupCreate },
//{"rsnScriptGroup2Create", "(J[J)J", (void*)nScriptGroup2Create },
-{"rsnScriptGroupSetInput", "(IIII)V", (void*)nScriptGroupSetInput },
-{"rsnScriptGroupSetOutput", "(IIII)V", (void*)nScriptGroupSetOutput },
-{"rsnScriptGroupExecute", "(II)V", (void*)nScriptGroupExecute },
-{"rsnSamplerCreate", "(IIIIIIF)I", (void*)nSamplerCreate },
+{"rsnScriptGroupSetInput", "(JJJJ)V", (void*)nScriptGroupSetInput },
+{"rsnScriptGroupSetOutput", "(JJJJ)V", (void*)nScriptGroupSetOutput },
+{"rsnScriptGroupExecute", "(JJ)V", (void*)nScriptGroupExecute },
+{"rsnSamplerCreate", "(JIIIIIF)J", (void*)nSamplerCreate },
+
+{"rsnSystemGetPointerSize", "()I", (void*)nSystemGetPointerSize },
};
// ---------------------------------------------------------------------------
diff --git a/v8/renderscript/rs_support/Android.mk b/v8/renderscript/rs_support/Android.mk
index 1cff15d..da9f3a4 100644
--- a/v8/renderscript/rs_support/Android.mk
+++ b/v8/renderscript/rs_support/Android.mk
@@ -41,8 +41,6 @@
LOCAL_MODULE := libRSSupport
LOCAL_SDK_VERSION := 8
-# TODO: remove this once we have 64-bit NDK libraries.
-LOCAL_32_BIT_ONLY := true
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
generated_sources_dir := $(call local-generated-sources-dir)