Loading graphics/java/android/renderscript/RenderScript.java +3 −11 Original line number Diff line number Diff line Loading @@ -178,17 +178,9 @@ public class RenderScript { rsnElementGetSubElements(mContext, id, IDs, names); } native void rsnTypeBegin(int con, int elementID); synchronized void nTypeBegin(int elementID) { rsnTypeBegin(mContext, elementID); } native void rsnTypeAdd(int con, int dim, int val); synchronized void nTypeAdd(int dim, int val) { rsnTypeAdd(mContext, dim, val); } native int rsnTypeCreate(int con); synchronized int nTypeCreate() { return rsnTypeCreate(mContext); native int rsnTypeCreate(int con, int eid, int[] dims, int[] vals); synchronized int nTypeCreate(int eid, int[] dims, int[] vals) { return rsnTypeCreate(mContext, eid, dims, vals); } native void rsnTypeGetNativeData(int con, int id, int[] typeData); synchronized void nTypeGetNativeData(int id, int[] typeData) { Loading graphics/java/android/renderscript/Type.java +30 −29 Original line number Diff line number Diff line Loading @@ -132,7 +132,8 @@ public class Type extends BaseObj { public static class Builder { RenderScript mRS; Entry[] mEntries; Dimension[] mDimensions; int[] mDimensionValues; int mEntryCount; Element mElement; Loading @@ -147,7 +148,8 @@ public class Type extends BaseObj { } mRS = rs; mEntries = new Entry[4]; mDimensions = new Dimension[4]; mDimensionValues = new int[4]; mElement = e; } Loading @@ -155,46 +157,45 @@ public class Type extends BaseObj { if(value < 1) { throw new IllegalArgumentException("Values of less than 1 for Dimensions are not valid."); } if(mEntries.length >= mEntryCount) { Entry[] en = new Entry[mEntryCount + 8]; System.arraycopy(mEntries, 0, en, 0, mEntries.length); mEntries = en; if(mDimensions.length >= mEntryCount) { Dimension[] dn = new Dimension[mEntryCount + 8]; System.arraycopy(mDimensions, 0, dn, 0, mEntryCount); mDimensions = dn; int[] in = new int[mEntryCount + 8]; System.arraycopy(mDimensionValues, 0, in, 0, mEntryCount); mDimensionValues = in; } mEntries[mEntryCount] = new Entry(); mEntries[mEntryCount].mDim = d; mEntries[mEntryCount].mValue = value; mDimensions[mEntryCount] = d; mDimensionValues[mEntryCount] = value; mEntryCount++; } static synchronized Type internalCreate(RenderScript rs, Builder b) { rs.nTypeBegin(b.mElement.mID); for (int ct=0; ct < b.mEntryCount; ct++) { Entry en = b.mEntries[ct]; rs.nTypeAdd(en.mDim.mID, en.mValue); } int id = rs.nTypeCreate(); return new Type(id, rs); public Type create() { int dims[] = new int[mEntryCount]; for (int ct=0; ct < mEntryCount; ct++) { dims[ct] = mDimensions[ct].mID; } public Type create() { Type t = internalCreate(mRS, this); int id = mRS.nTypeCreate(mElement.getID(), dims, mDimensionValues); Type t = new Type(id, mRS); t.mElement = mElement; for(int ct=0; ct < mEntryCount; ct++) { if(mEntries[ct].mDim == Dimension.X) { t.mDimX = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.X) { t.mDimX = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.Y) { t.mDimY = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.Y) { t.mDimY = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.Z) { t.mDimZ = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.Z) { t.mDimZ = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.LOD) { t.mDimLOD = mEntries[ct].mValue != 0; if(mDimensions[ct] == Dimension.LOD) { t.mDimLOD = mDimensionValues[ct] != 0; } if(mEntries[ct].mDim == Dimension.FACE) { t.mDimFaces = mEntries[ct].mValue != 0; if(mDimensions[ct] == Dimension.FACE) { t.mDimFaces = mDimensionValues[ct] != 0; } } t.calcElementCount(); Loading graphics/jni/android_renderscript_RenderScript.cpp +14 −20 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ static void nObjDestroy(JNIEnv *_env, jobject _this, RsContext con, jint obj) { LOG_API("nObjDestroy, con(%p) obj(%p)", con, (void *)obj); rsObjDestroy(con, (void *)obj); rsObjDestroy(con, (uint32_t)obj); } Loading Loading @@ -336,25 +336,21 @@ nElementGetSubElements(JNIEnv *_env, jobject _this, RsContext con, jint id, jint // ----------------------------------- static void nTypeBegin(JNIEnv *_env, jobject _this, RsContext con, jint eID) static int nTypeCreate(JNIEnv *_env, jobject _this, RsContext con, RsElement eid, jintArray _dims, jintArray _dimValues) { LOG_API("nTypeBegin, con(%p) e(%p)", con, (RsElement)eID); rsTypeBegin(con, (RsElement)eID); } int count = _env->GetArrayLength(_dims); LOG_API("nTypeCreate, con(%p)", con); static void nTypeAdd(JNIEnv *_env, jobject _this, RsContext con, jint dim, jint val) { LOG_API("nTypeAdd, con(%p) dim(%i), val(%i)", con, dim, val); rsTypeAdd(con, (RsDimension)dim, val); } jint *dimPtr = _env->GetIntArrayElements(_dims, NULL); jint *dimValPtr = _env->GetIntArrayElements(_dimValues, NULL); static jint nTypeCreate(JNIEnv *_env, jobject _this, RsContext con) { LOG_API("nTypeCreate, con(%p)", con); return (jint)rsTypeCreate(con); jint id = (jint)rsaTypeCreate(con, (RsElement)eid, count, (RsDimension *)dimPtr, (uint32_t *)dimValPtr); _env->ReleaseIntArrayElements(_dims, dimPtr, JNI_ABORT); _env->ReleaseIntArrayElements(_dimValues, dimValPtr, JNI_ABORT); return (jint)id; } static void Loading Loading @@ -1261,9 +1257,7 @@ static JNINativeMethod methods[] = { {"rsnElementGetNativeData", "(II[I)V", (void*)nElementGetNativeData }, {"rsnElementGetSubElements", "(II[I[Ljava/lang/String;)V", (void*)nElementGetSubElements }, {"rsnTypeBegin", "(II)V", (void*)nTypeBegin }, {"rsnTypeAdd", "(III)V", (void*)nTypeAdd }, {"rsnTypeCreate", "(I)I", (void*)nTypeCreate }, {"rsnTypeCreate", "(II[I[I)I", (void*)nTypeCreate }, {"rsnTypeGetNativeData", "(II[I)V", (void*)nTypeGetNativeData }, {"rsnAllocationCreateTyped", "(II)I", (void*)nAllocationCreateTyped }, Loading libs/rs/RenderScript.h +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ extern "C" { ////////////////////////////////////////////////////// // typedef void * RsAsyncVoidPtr; typedef void * RsAdapter1D; typedef void * RsAdapter2D; typedef void * RsAllocation; Loading Loading @@ -285,6 +287,11 @@ typedef struct { } RsScriptCall; // Async commands for returning new IDS void * rsaTypeCreate(RsContext, RsElement, uint32_t dimCount, const RsDimension *dims, const uint32_t *vals); #ifndef NO_RS_FUNCS #include "rsgApiFuncDecl.h" #endif Loading libs/rs/rs.spec +3 −15 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ GetName { } ObjDestroy { param void *obj param RsAsyncVoidPtr objPtr } ElementCreate { Loading Loading @@ -97,18 +97,6 @@ ElementGetSubElements { param uint32_t dataSize } TypeBegin { param RsElement type } TypeAdd { param RsDimension dim param size_t value } TypeCreate { ret RsType } TypeGetNativeData { param RsType type Loading @@ -135,8 +123,8 @@ AllocationUpdateFromBitmap { AllocationCreateBitmapRef { param RsType type param void * bmpPtr param void * callbackData param RsAsyncVoidPtr bmpPtr param RsAsyncVoidPtr callbackData param RsBitmapCallback_t callback ret RsAllocation } Loading Loading
graphics/java/android/renderscript/RenderScript.java +3 −11 Original line number Diff line number Diff line Loading @@ -178,17 +178,9 @@ public class RenderScript { rsnElementGetSubElements(mContext, id, IDs, names); } native void rsnTypeBegin(int con, int elementID); synchronized void nTypeBegin(int elementID) { rsnTypeBegin(mContext, elementID); } native void rsnTypeAdd(int con, int dim, int val); synchronized void nTypeAdd(int dim, int val) { rsnTypeAdd(mContext, dim, val); } native int rsnTypeCreate(int con); synchronized int nTypeCreate() { return rsnTypeCreate(mContext); native int rsnTypeCreate(int con, int eid, int[] dims, int[] vals); synchronized int nTypeCreate(int eid, int[] dims, int[] vals) { return rsnTypeCreate(mContext, eid, dims, vals); } native void rsnTypeGetNativeData(int con, int id, int[] typeData); synchronized void nTypeGetNativeData(int id, int[] typeData) { Loading
graphics/java/android/renderscript/Type.java +30 −29 Original line number Diff line number Diff line Loading @@ -132,7 +132,8 @@ public class Type extends BaseObj { public static class Builder { RenderScript mRS; Entry[] mEntries; Dimension[] mDimensions; int[] mDimensionValues; int mEntryCount; Element mElement; Loading @@ -147,7 +148,8 @@ public class Type extends BaseObj { } mRS = rs; mEntries = new Entry[4]; mDimensions = new Dimension[4]; mDimensionValues = new int[4]; mElement = e; } Loading @@ -155,46 +157,45 @@ public class Type extends BaseObj { if(value < 1) { throw new IllegalArgumentException("Values of less than 1 for Dimensions are not valid."); } if(mEntries.length >= mEntryCount) { Entry[] en = new Entry[mEntryCount + 8]; System.arraycopy(mEntries, 0, en, 0, mEntries.length); mEntries = en; if(mDimensions.length >= mEntryCount) { Dimension[] dn = new Dimension[mEntryCount + 8]; System.arraycopy(mDimensions, 0, dn, 0, mEntryCount); mDimensions = dn; int[] in = new int[mEntryCount + 8]; System.arraycopy(mDimensionValues, 0, in, 0, mEntryCount); mDimensionValues = in; } mEntries[mEntryCount] = new Entry(); mEntries[mEntryCount].mDim = d; mEntries[mEntryCount].mValue = value; mDimensions[mEntryCount] = d; mDimensionValues[mEntryCount] = value; mEntryCount++; } static synchronized Type internalCreate(RenderScript rs, Builder b) { rs.nTypeBegin(b.mElement.mID); for (int ct=0; ct < b.mEntryCount; ct++) { Entry en = b.mEntries[ct]; rs.nTypeAdd(en.mDim.mID, en.mValue); } int id = rs.nTypeCreate(); return new Type(id, rs); public Type create() { int dims[] = new int[mEntryCount]; for (int ct=0; ct < mEntryCount; ct++) { dims[ct] = mDimensions[ct].mID; } public Type create() { Type t = internalCreate(mRS, this); int id = mRS.nTypeCreate(mElement.getID(), dims, mDimensionValues); Type t = new Type(id, mRS); t.mElement = mElement; for(int ct=0; ct < mEntryCount; ct++) { if(mEntries[ct].mDim == Dimension.X) { t.mDimX = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.X) { t.mDimX = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.Y) { t.mDimY = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.Y) { t.mDimY = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.Z) { t.mDimZ = mEntries[ct].mValue; if(mDimensions[ct] == Dimension.Z) { t.mDimZ = mDimensionValues[ct]; } if(mEntries[ct].mDim == Dimension.LOD) { t.mDimLOD = mEntries[ct].mValue != 0; if(mDimensions[ct] == Dimension.LOD) { t.mDimLOD = mDimensionValues[ct] != 0; } if(mEntries[ct].mDim == Dimension.FACE) { t.mDimFaces = mEntries[ct].mValue != 0; if(mDimensions[ct] == Dimension.FACE) { t.mDimFaces = mDimensionValues[ct] != 0; } } t.calcElementCount(); Loading
graphics/jni/android_renderscript_RenderScript.cpp +14 −20 Original line number Diff line number Diff line Loading @@ -112,7 +112,7 @@ static void nObjDestroy(JNIEnv *_env, jobject _this, RsContext con, jint obj) { LOG_API("nObjDestroy, con(%p) obj(%p)", con, (void *)obj); rsObjDestroy(con, (void *)obj); rsObjDestroy(con, (uint32_t)obj); } Loading Loading @@ -336,25 +336,21 @@ nElementGetSubElements(JNIEnv *_env, jobject _this, RsContext con, jint id, jint // ----------------------------------- static void nTypeBegin(JNIEnv *_env, jobject _this, RsContext con, jint eID) static int nTypeCreate(JNIEnv *_env, jobject _this, RsContext con, RsElement eid, jintArray _dims, jintArray _dimValues) { LOG_API("nTypeBegin, con(%p) e(%p)", con, (RsElement)eID); rsTypeBegin(con, (RsElement)eID); } int count = _env->GetArrayLength(_dims); LOG_API("nTypeCreate, con(%p)", con); static void nTypeAdd(JNIEnv *_env, jobject _this, RsContext con, jint dim, jint val) { LOG_API("nTypeAdd, con(%p) dim(%i), val(%i)", con, dim, val); rsTypeAdd(con, (RsDimension)dim, val); } jint *dimPtr = _env->GetIntArrayElements(_dims, NULL); jint *dimValPtr = _env->GetIntArrayElements(_dimValues, NULL); static jint nTypeCreate(JNIEnv *_env, jobject _this, RsContext con) { LOG_API("nTypeCreate, con(%p)", con); return (jint)rsTypeCreate(con); jint id = (jint)rsaTypeCreate(con, (RsElement)eid, count, (RsDimension *)dimPtr, (uint32_t *)dimValPtr); _env->ReleaseIntArrayElements(_dims, dimPtr, JNI_ABORT); _env->ReleaseIntArrayElements(_dimValues, dimValPtr, JNI_ABORT); return (jint)id; } static void Loading Loading @@ -1261,9 +1257,7 @@ static JNINativeMethod methods[] = { {"rsnElementGetNativeData", "(II[I)V", (void*)nElementGetNativeData }, {"rsnElementGetSubElements", "(II[I[Ljava/lang/String;)V", (void*)nElementGetSubElements }, {"rsnTypeBegin", "(II)V", (void*)nTypeBegin }, {"rsnTypeAdd", "(III)V", (void*)nTypeAdd }, {"rsnTypeCreate", "(I)I", (void*)nTypeCreate }, {"rsnTypeCreate", "(II[I[I)I", (void*)nTypeCreate }, {"rsnTypeGetNativeData", "(II[I)V", (void*)nTypeGetNativeData }, {"rsnAllocationCreateTyped", "(II)I", (void*)nAllocationCreateTyped }, Loading
libs/rs/RenderScript.h +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ extern "C" { ////////////////////////////////////////////////////// // typedef void * RsAsyncVoidPtr; typedef void * RsAdapter1D; typedef void * RsAdapter2D; typedef void * RsAllocation; Loading Loading @@ -285,6 +287,11 @@ typedef struct { } RsScriptCall; // Async commands for returning new IDS void * rsaTypeCreate(RsContext, RsElement, uint32_t dimCount, const RsDimension *dims, const uint32_t *vals); #ifndef NO_RS_FUNCS #include "rsgApiFuncDecl.h" #endif Loading
libs/rs/rs.spec +3 −15 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ GetName { } ObjDestroy { param void *obj param RsAsyncVoidPtr objPtr } ElementCreate { Loading Loading @@ -97,18 +97,6 @@ ElementGetSubElements { param uint32_t dataSize } TypeBegin { param RsElement type } TypeAdd { param RsDimension dim param size_t value } TypeCreate { ret RsType } TypeGetNativeData { param RsType type Loading @@ -135,8 +123,8 @@ AllocationUpdateFromBitmap { AllocationCreateBitmapRef { param RsType type param void * bmpPtr param void * callbackData param RsAsyncVoidPtr bmpPtr param RsAsyncVoidPtr callbackData param RsBitmapCallback_t callback ret RsAllocation } Loading