am c1e2bf95
: am 4b5af9bc
: Merge "[RenderScript] Update the java API about Allocation copyTo & From FieldPacker"
* commit 'c1e2bf95ab77127ea21ebd44b8615eca85338af1': [RenderScript] Update the java API about Allocation copyTo & From FieldPacker
This commit is contained in:
@ -797,6 +797,7 @@ public class Allocation extends BaseObj {
|
||||
copy1DRangeFromUnchecked(xoff, count, data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is only intended to be used by auto-generated code reflected from
|
||||
* the RenderScript script files.
|
||||
@ -809,20 +810,6 @@ public class Allocation extends BaseObj {
|
||||
setFromFieldPacker(xoff, 0, 0, component_number, fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* This is only intended to be used by auto-generated code reflected from
|
||||
* the RenderScript script files.
|
||||
*
|
||||
* @param xoff
|
||||
* @param yoff
|
||||
* @param component_number
|
||||
* @param fp
|
||||
*/
|
||||
public void setFromFieldPacker(int xoff, int yoff, int component_number, FieldPacker fp) {
|
||||
setFromFieldPacker(xoff, yoff, 0, component_number, fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* This is only intended to be used by auto-generated code reflected from
|
||||
@ -1427,35 +1414,8 @@ public class Allocation extends BaseObj {
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* Copy subelement from the Allocation into an object array.
|
||||
* This is intended to be used with user defined structs
|
||||
*
|
||||
* @param xoff
|
||||
* @param component_number
|
||||
* @param array
|
||||
*/
|
||||
public void copyElementTo(int xoff, int component_number, Object array) {
|
||||
copyElementTo(xoff, 0, 0, component_number, array);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* Copy subelement from the Allocation into an object array.
|
||||
* This is intended to be used with user defined structs
|
||||
*
|
||||
* @param xoff
|
||||
* @param yoff
|
||||
* @param component_number
|
||||
* @param array
|
||||
*/
|
||||
public void copyElementTo(int xoff, int yoff, int component_number, Object array) {
|
||||
copyElementTo(xoff, yoff, 0, component_number, array);
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* Copy subelement from the Allocation into an object array.
|
||||
* This is intended to be used with user defined structs
|
||||
* This is only intended to be used by auto-generated code reflected from
|
||||
* the RenderScript script files and should not be used by developers.
|
||||
*
|
||||
* @param xoff
|
||||
* @param yoff
|
||||
@ -1463,8 +1423,7 @@ public class Allocation extends BaseObj {
|
||||
* @param component_number
|
||||
* @param array
|
||||
*/
|
||||
public void copyElementTo(int xoff, int yoff, int zoff, int component_number, Object array) {
|
||||
Trace.traceBegin(RenderScript.TRACE_TAG, "copyElementTo");
|
||||
public void copyToFieldPacker(int xoff, int yoff, int zoff, int component_number, FieldPacker fp) {
|
||||
mRS.validate();
|
||||
if (component_number >= mType.mElement.mElements.length) {
|
||||
throw new RSIllegalArgumentException("Component_number " + component_number + " out of range.");
|
||||
@ -1479,19 +1438,18 @@ public class Allocation extends BaseObj {
|
||||
throw new RSIllegalArgumentException("Offset z must be >= 0.");
|
||||
}
|
||||
|
||||
Element.DataType dt = validateObjectIsPrimitiveArray(array, false);
|
||||
int array_size = java.lang.reflect.Array.getLength(array) * dt.mSize;
|
||||
final byte[] data = fp.getData();
|
||||
int data_length = fp.getPos();
|
||||
int eSize = mType.mElement.mElements[component_number].getBytesSize();
|
||||
eSize *= mType.mElement.mArraySizes[component_number];
|
||||
|
||||
if (array_size < eSize) {
|
||||
throw new RSIllegalArgumentException("Array Size (bytes)" + array_size +
|
||||
" is smaller than component size " + eSize + ".");
|
||||
if (data_length != eSize) {
|
||||
throw new RSIllegalArgumentException("Field packer sizelength " + data_length +
|
||||
" does not match component size " + eSize + ".");
|
||||
}
|
||||
|
||||
mRS.nAllocationElementRead(getIDSafe(), xoff, yoff, zoff, mSelectedLOD,
|
||||
component_number, array, eSize, dt);
|
||||
Trace.traceEnd(RenderScript.TRACE_TAG);
|
||||
component_number, data, data_length);
|
||||
}
|
||||
/**
|
||||
* Resize a 1D allocation. The contents of the allocation are preserved.
|
||||
|
@ -579,12 +579,11 @@ public class RenderScript {
|
||||
}
|
||||
|
||||
native void rsnAllocationElementRead(long con,long id, int xoff, int yoff, int zoff,
|
||||
int mip, int compIdx, Object d, int sizeBytes, int dt);
|
||||
int mip, int compIdx, byte[] d, int sizeBytes);
|
||||
synchronized void nAllocationElementRead(long id, int xoff, int yoff, int zoff,
|
||||
int mip, int compIdx, Object d, int sizeBytes,
|
||||
Element.DataType dt) {
|
||||
int mip, int compIdx, byte[] d, int sizeBytes) {
|
||||
validate();
|
||||
rsnAllocationElementRead(mContext, id, xoff, yoff, zoff, mip, compIdx, d, sizeBytes, dt.mID);
|
||||
rsnAllocationElementRead(mContext, id, xoff, yoff, zoff, mip, compIdx, d, sizeBytes);
|
||||
}
|
||||
|
||||
native void rsnAllocationRead2D(long con, long id, int xoff, int yoff, int mip, int face,
|
||||
|
@ -1302,19 +1302,21 @@ nAllocationRead1D(JNIEnv *_env, jobject _this, jlong con, jlong _alloc, jint off
|
||||
|
||||
// Copies from the Element in the Allocation pointed to by _alloc into the Java array data.
|
||||
static void
|
||||
nAllocationElementRead(JNIEnv *_env, jobject _this, jlong con, jlong _alloc,
|
||||
nAllocationElementRead(JNIEnv *_env, jobject _this, jlong con, jlong alloc,
|
||||
jint xoff, jint yoff, jint zoff,
|
||||
jint lod, jint compIdx, jobject data, jint sizeBytes, int dataType)
|
||||
jint lod, jint compIdx, jbyteArray data, jint sizeBytes)
|
||||
{
|
||||
RsAllocation *alloc = (RsAllocation *)_alloc;
|
||||
jint len = _env->GetArrayLength(data);
|
||||
if (kLogApi) {
|
||||
ALOGD("nAllocationElementRead, con(%p), alloc(%p), xoff(%i), yoff(%i), zoff(%i), comp(%i), "
|
||||
"sizeBytes(%i)", (RsContext)con, alloc, xoff, yoff, zoff, compIdx, sizeBytes);
|
||||
ALOGD("nAllocationElementRead, con(%p), alloc(%p), xoff(%i), yoff(%i), zoff(%i), comp(%i), len(%i), "
|
||||
"sizeBytes(%i)", (RsContext)con, (RsAllocation)alloc, xoff, yoff, zoff, compIdx, len,
|
||||
sizeBytes);
|
||||
}
|
||||
int mSize = sizeBytes;
|
||||
int count = 0;
|
||||
PER_ARRAY_TYPE(0, rsAllocationElementRead, false, (RsContext)con, alloc,
|
||||
xoff, yoff, zoff, lod, ptr, sizeBytes, compIdx);
|
||||
jbyte *ptr = _env->GetByteArrayElements(data, nullptr);
|
||||
rsAllocationElementRead((RsContext)con, (RsAllocation)alloc,
|
||||
xoff, yoff, zoff,
|
||||
lod, ptr, sizeBytes, compIdx);
|
||||
_env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
|
||||
}
|
||||
|
||||
// Copies from the Allocation pointed to by _alloc into the Java object data.
|
||||
@ -2377,7 +2379,7 @@ static JNINativeMethod methods[] = {
|
||||
{"rsnAllocationData3D", "(JJIIIIIIIJIIII)V", (void*)nAllocationData3D_alloc },
|
||||
{"rsnAllocationRead", "(JJLjava/lang/Object;IIZ)V", (void*)nAllocationRead },
|
||||
{"rsnAllocationRead1D", "(JJIIILjava/lang/Object;IIIZ)V", (void*)nAllocationRead1D },
|
||||
{"rsnAllocationElementRead", "(JJIIIIILjava/lang/Object;II)V", (void*)nAllocationElementRead },
|
||||
{"rsnAllocationElementRead", "(JJIIIII[BI)V", (void*)nAllocationElementRead },
|
||||
{"rsnAllocationRead2D", "(JJIIIIIILjava/lang/Object;IIIZ)V", (void*)nAllocationRead2D },
|
||||
{"rsnAllocationRead3D", "(JJIIIIIIILjava/lang/Object;IIIZ)V", (void*)nAllocationRead3D },
|
||||
{"rsnAllocationGetType", "(JJ)J", (void*)nAllocationGetType},
|
||||
|
Reference in New Issue
Block a user