Merge "Remove functions for reflecting dalvik classes to rs types."

This commit is contained in:
Jason Sams
2010-09-01 14:36:47 -07:00
committed by Android (Google) Code Review
4 changed files with 0 additions and 201 deletions

View File

@@ -162,7 +162,6 @@ public class Allocation extends BaseObj {
}
public void subData2D(int xoff, int yoff, int w, int h, int[] d) {
mRS.validate();
mRS.nAllocationSubData2D(mID, xoff, yoff, w, h, d, d.length * 4);
@@ -183,20 +182,6 @@ public class Allocation extends BaseObj {
mRS.nAllocationRead(mID, d);
}
public void data(Object o) {
mRS.validate();
mRS.nAllocationSubDataFromObject(mID, mType, 0, o);
}
public void read(Object o) {
mRS.validate();
mRS.nAllocationSubReadFromObject(mID, mType, 0, o);
}
public void subData(int offset, Object o) {
mRS.validate();
mRS.nAllocationSubDataFromObject(mID, mType, offset, o);
}
public class Adapter1D extends BaseObj {
Adapter1D(int id, RenderScript rs) {

View File

@@ -177,14 +177,6 @@ public class RenderScript {
synchronized int nTypeCreate() {
return rsnTypeCreate(mContext);
}
native void rsnTypeFinalDestroy(int con, Type t);
synchronized void nTypeFinalDestroy(Type t) {
rsnTypeFinalDestroy(mContext, t);
}
native void rsnTypeSetupFields(int con, Type t, int[] types, int[] bits, Field[] IDs);
synchronized void nTypeSetupFields(Type t, int[] types, int[] bits, Field[] IDs) {
rsnTypeSetupFields(mContext, t, types, bits, IDs);
}
native void rsnTypeGetNativeData(int con, int id, int[] typeData);
synchronized void nTypeGetNativeData(int id, int[] typeData) {
rsnTypeGetNativeData(mContext, id, typeData);
@@ -257,14 +249,6 @@ public class RenderScript {
synchronized void nAllocationRead(int id, float[] d) {
rsnAllocationRead(mContext, id, d);
}
native void rsnAllocationSubDataFromObject(int con, int id, Type t, int offset, Object o);
synchronized void nAllocationSubDataFromObject(int id, Type t, int offset, Object o) {
rsnAllocationSubDataFromObject(mContext, id, t, offset, o);
}
native void rsnAllocationSubReadFromObject(int con, int id, Type t, int offset, Object o);
synchronized void nAllocationSubReadFromObject(int id, Type t, int offset, Object o) {
rsnAllocationSubReadFromObject(mContext, id, t, offset, o);
}
native int rsnAllocationGetType(int con, int id);
synchronized int nAllocationGetType(int id) {
return rsnAllocationGetType(mContext, id);

View File

@@ -33,7 +33,6 @@ public class Type extends BaseObj {
int mElementCount;
Element mElement;
private int mNativeCache;
Class mJavaClass;
public Element getElement() {
@@ -98,14 +97,9 @@ public class Type extends BaseObj {
Type(int id, RenderScript rs) {
super(id, rs);
mNativeCache = 0;
}
protected void finalize() throws Throwable {
if(mNativeCache != 0) {
mRS.nTypeFinalDestroy(this);
mNativeCache = 0;
}
super.finalize();
}

View File

@@ -70,9 +70,6 @@ static void _nInit(JNIEnv *_env, jclass _this)
jclass bitmapClass = _env->FindClass("android/graphics/Bitmap");
gNativeBitmapID = _env->GetFieldID(bitmapClass, "mNativeBitmap", "I");
jclass typeClass = _env->FindClass("android/renderscript/Type");
gTypeNativeCache = _env->GetFieldID(typeClass, "mNativeCache", "I");
}
static void nInitElements(JNIEnv *_env, jobject _this, jint a8, jint rgba4444, jint rgba8888, jint rgb565)
@@ -360,124 +357,6 @@ nTypeGetNativeData(JNIEnv *_env, jobject _this, RsContext con, jint id, jintArra
}
}
static void * SF_LoadInt(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
((int32_t *)buffer)[0] = _env->GetIntField(_obj, _field);
return ((uint8_t *)buffer) + 4;
}
static void * SF_LoadShort(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
((int16_t *)buffer)[0] = _env->GetShortField(_obj, _field);
return ((uint8_t *)buffer) + 2;
}
static void * SF_LoadByte(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
((int8_t *)buffer)[0] = _env->GetByteField(_obj, _field);
return ((uint8_t *)buffer) + 1;
}
static void * SF_LoadFloat(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
((float *)buffer)[0] = _env->GetFloatField(_obj, _field);
return ((uint8_t *)buffer) + 4;
}
static void * SF_SaveInt(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
_env->SetIntField(_obj, _field, ((int32_t *)buffer)[0]);
return ((uint8_t *)buffer) + 4;
}
static void * SF_SaveShort(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
_env->SetShortField(_obj, _field, ((int16_t *)buffer)[0]);
return ((uint8_t *)buffer) + 2;
}
static void * SF_SaveByte(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
_env->SetByteField(_obj, _field, ((int8_t *)buffer)[0]);
return ((uint8_t *)buffer) + 1;
}
static void * SF_SaveFloat(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer)
{
_env->SetFloatField(_obj, _field, ((float *)buffer)[0]);
return ((uint8_t *)buffer) + 4;
}
struct TypeFieldCache {
jfieldID field;
int bits;
void * (*ptr)(JNIEnv *, jobject, jfieldID, void *buffer);
void * (*readPtr)(JNIEnv *, jobject, jfieldID, void *buffer);
};
struct TypeCache {
int fieldCount;
int size;
TypeFieldCache fields[1];
};
//{"nTypeFinalDestroy", "(Landroid/renderscript/Type;)V", (void*)nTypeFinalDestroy },
static void
nTypeFinalDestroy(JNIEnv *_env, jobject _this, RsContext con, jobject _type)
{
TypeCache *tc = (TypeCache *)_env->GetIntField(_type, gTypeNativeCache);
free(tc);
}
// native void nTypeSetupFields(Type t, int[] types, int[] bits, Field[] IDs);
static void
nTypeSetupFields(JNIEnv *_env, jobject _this, RsContext con, jobject _type, jintArray _types, jintArray _bits, jobjectArray _IDs)
{
int fieldCount = _env->GetArrayLength(_types);
size_t structSize = sizeof(TypeCache) + (sizeof(TypeFieldCache) * (fieldCount-1));
TypeCache *tc = (TypeCache *)malloc(structSize);
memset(tc, 0, structSize);
TypeFieldCache *tfc = &tc->fields[0];
tc->fieldCount = fieldCount;
_env->SetIntField(_type, gTypeNativeCache, (jint)tc);
jint *fType = _env->GetIntArrayElements(_types, NULL);
jint *fBits = _env->GetIntArrayElements(_bits, NULL);
for (int ct=0; ct < fieldCount; ct++) {
jobject field = _env->GetObjectArrayElement(_IDs, ct);
tfc[ct].field = _env->FromReflectedField(field);
tfc[ct].bits = fBits[ct];
switch(fType[ct]) {
case RS_TYPE_FLOAT_32:
tfc[ct].ptr = SF_LoadFloat;
tfc[ct].readPtr = SF_SaveFloat;
break;
case RS_TYPE_UNSIGNED_32:
case RS_TYPE_SIGNED_32:
tfc[ct].ptr = SF_LoadInt;
tfc[ct].readPtr = SF_SaveInt;
break;
case RS_TYPE_UNSIGNED_16:
case RS_TYPE_SIGNED_16:
tfc[ct].ptr = SF_LoadShort;
tfc[ct].readPtr = SF_SaveShort;
break;
case RS_TYPE_UNSIGNED_8:
case RS_TYPE_SIGNED_8:
tfc[ct].ptr = SF_LoadByte;
tfc[ct].readPtr = SF_SaveByte;
break;
}
tc->size += 4;
}
_env->ReleaseIntArrayElements(_types, fType, JNI_ABORT);
_env->ReleaseIntArrayElements(_bits, fBits, JNI_ABORT);
}
// -----------------------------------
static jint
@@ -699,45 +578,6 @@ nAllocationRead_f(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jfloat
_env->ReleaseFloatArrayElements(data, ptr, 0);
}
//{"nAllocationDataFromObject", "(ILandroid/renderscript/Type;Ljava/lang/Object;)V", (void*)nAllocationDataFromObject },
static void
nAllocationSubDataFromObject(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jobject _type, jint offset, jobject _o)
{
LOG_API("nAllocationDataFromObject con(%p), alloc(%p)", con, (RsAllocation)alloc);
const TypeCache *tc = (TypeCache *)_env->GetIntField(_type, gTypeNativeCache);
void * bufAlloc = malloc(tc->size);
void * buf = bufAlloc;
for (int ct=0; ct < tc->fieldCount; ct++) {
const TypeFieldCache *tfc = &tc->fields[ct];
buf = tfc->ptr(_env, _o, tfc->field, buf);
}
rsAllocation1DSubData(con, (RsAllocation)alloc, offset, 1, bufAlloc, tc->size);
free(bufAlloc);
}
static void
nAllocationSubReadFromObject(JNIEnv *_env, jobject _this, RsContext con, jint alloc, jobject _type, jint offset, jobject _o)
{
LOG_API("nAllocationReadFromObject con(%p), alloc(%p)", con, (RsAllocation)alloc);
assert(offset == 0);
const TypeCache *tc = (TypeCache *)_env->GetIntField(_type, gTypeNativeCache);
void * bufAlloc = malloc(tc->size);
void * buf = bufAlloc;
rsAllocationRead(con, (RsAllocation)alloc, bufAlloc);
for (int ct=0; ct < tc->fieldCount; ct++) {
const TypeFieldCache *tfc = &tc->fields[ct];
buf = tfc->readPtr(_env, _o, tfc->field, buf);
}
free(bufAlloc);
}
static jint
nAllocationGetType(JNIEnv *_env, jobject _this, RsContext con, jint a)
{
@@ -1397,8 +1237,6 @@ static JNINativeMethod methods[] = {
{"rsnTypeBegin", "(II)V", (void*)nTypeBegin },
{"rsnTypeAdd", "(III)V", (void*)nTypeAdd },
{"rsnTypeCreate", "(I)I", (void*)nTypeCreate },
{"rsnTypeFinalDestroy", "(ILandroid/renderscript/Type;)V", (void*)nTypeFinalDestroy },
{"rsnTypeSetupFields", "(ILandroid/renderscript/Type;[I[I[Ljava/lang/reflect/Field;)V", (void*)nTypeSetupFields },
{"rsnTypeGetNativeData", "(II[I)V", (void*)nTypeGetNativeData },
{"rsnAllocationCreateTyped", "(II)I", (void*)nAllocationCreateTyped },
@@ -1417,8 +1255,6 @@ static JNINativeMethod methods[] = {
{"rsnAllocationSubData2D", "(IIIIII[FI)V", (void*)nAllocationSubData2D_f },
{"rsnAllocationRead", "(II[I)V", (void*)nAllocationRead_i },
{"rsnAllocationRead", "(II[F)V", (void*)nAllocationRead_f },
{"rsnAllocationSubDataFromObject", "(IILandroid/renderscript/Type;ILjava/lang/Object;)V", (void*)nAllocationSubDataFromObject },
{"rsnAllocationSubReadFromObject", "(IILandroid/renderscript/Type;ILjava/lang/Object;)V", (void*)nAllocationSubReadFromObject },
{"rsnAllocationGetType", "(II)I", (void*)nAllocationGetType},
{"rsnAdapter1DBindAllocation", "(III)V", (void*)nAdapter1DBindAllocation },