diff options
author | Jason Sams <rjsams@android.com> | 2009-08-18 14:14:24 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-18 14:20:07 -0700 |
commit | 7ce033d797e5df5e2131e2ed459fba181eaf4658 (patch) | |
tree | c4bf9fd7d74260b800b75786a2adbca04d2f71be | |
parent | 48134b78d53eca2a0a71799b0901aba5997f2eba (diff) | |
download | frameworks_base-7ce033d797e5df5e2131e2ed459fba181eaf4658.zip frameworks_base-7ce033d797e5df5e2131e2ed459fba181eaf4658.tar.gz frameworks_base-7ce033d797e5df5e2131e2ed459fba181eaf4658.tar.bz2 |
Cleanup of object destruction. No need to have a per-class destruction function. This was a legacy of the distant past when the classes did not have a common base.
25 files changed, 47 insertions, 346 deletions
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java index 50d39b7..81848b9 100644 --- a/graphics/java/android/renderscript/Allocation.java +++ b/graphics/java/android/renderscript/Allocation.java @@ -47,14 +47,6 @@ public class Allocation extends BaseObj { mRS.nAllocationUploadToTexture(mID, baseMipLevel); } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nAllocationDestroy(mID); - } - public void data(int[] d) { mRS.nAllocationData(mID, d); } @@ -98,11 +90,6 @@ public class Allocation extends BaseObj { mID = id; } - public void destroy() { - mRS.nAdapter1DDestroy(mID); - mID = 0; - } - public void setConstraint(Dimension dim, int value) { mRS.nAdapter1DSetConstraint(mID, dim.mID, value); } @@ -139,11 +126,6 @@ public class Allocation extends BaseObj { mID = id; } - public void destroy() { - mRS.nAdapter2DDestroy(mID); - mID = 0; - } - public void setConstraint(Dimension dim, int value) { mRS.nAdapter2DSetConstraint(mID, dim.mID, value); } @@ -251,7 +233,7 @@ public class Allocation extends BaseObj { Allocation alloc = createTyped(rs, t); t.destroy(); return alloc; - } + } */ } diff --git a/graphics/java/android/renderscript/BaseObj.java b/graphics/java/android/renderscript/BaseObj.java index f760035..eaeb401 100644 --- a/graphics/java/android/renderscript/BaseObj.java +++ b/graphics/java/android/renderscript/BaseObj.java @@ -61,9 +61,18 @@ class BaseObj { { if (!mDestroyed) { Log.v(RenderScript.LOG_TAG, - "Element finalized without having released the RS reference."); + getClass() + " finalized without having released the RS reference."); } super.finalize(); } + + public void destroy() { + if(mDestroyed) { + throw new IllegalStateException("Object already destroyed."); + } + mDestroyed = true; + mRS.nObjDestroy(mID); + } + } diff --git a/graphics/java/android/renderscript/Element.java b/graphics/java/android/renderscript/Element.java index cf181b7..3f75069 100644 --- a/graphics/java/android/renderscript/Element.java +++ b/graphics/java/android/renderscript/Element.java @@ -138,11 +138,7 @@ public class Element extends BaseObj { if(mIsPredefined) { throw new IllegalStateException("Attempting to destroy a predefined Element."); } - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nElementDestroy(mID); + super.destroy(); } public static Element createFromClass(RenderScript rs, Class c) { diff --git a/graphics/java/android/renderscript/Light.java b/graphics/java/android/renderscript/Light.java index 8067f19..115ae03 100644 --- a/graphics/java/android/renderscript/Light.java +++ b/graphics/java/android/renderscript/Light.java @@ -29,11 +29,6 @@ public class Light extends BaseObj { mID = id; } - public void destroy() { - mRS.nLightDestroy(mID); - mID = 0; - } - public void setColor(float r, float g, float b) { mRS.nLightSetColor(mID, r, g, b); } diff --git a/graphics/java/android/renderscript/ProgramFragment.java b/graphics/java/android/renderscript/ProgramFragment.java index 09c4d9a..aad09f6 100644 --- a/graphics/java/android/renderscript/ProgramFragment.java +++ b/graphics/java/android/renderscript/ProgramFragment.java @@ -45,14 +45,6 @@ public class ProgramFragment extends BaseObj { mID = id; } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nProgramFragmentStoreDestroy(mID); - } - public void bindTexture(Allocation va, int slot) throws IllegalArgumentException { if((slot < 0) || (slot >= MAX_SLOT)) { diff --git a/graphics/java/android/renderscript/ProgramStore.java b/graphics/java/android/renderscript/ProgramStore.java index f8b59bd..b7d987e 100644 --- a/graphics/java/android/renderscript/ProgramStore.java +++ b/graphics/java/android/renderscript/ProgramStore.java @@ -80,14 +80,6 @@ public class ProgramStore extends BaseObj { mID = id; } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nProgramFragmentStoreDestroy(mID); - } - public static class Builder { diff --git a/graphics/java/android/renderscript/ProgramVertex.java b/graphics/java/android/renderscript/ProgramVertex.java index 74c005f..2a11bfb 100644 --- a/graphics/java/android/renderscript/ProgramVertex.java +++ b/graphics/java/android/renderscript/ProgramVertex.java @@ -33,14 +33,6 @@ public class ProgramVertex extends BaseObj { mID = id; } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nProgramVertexDestroy(mID); - } - public void bindAllocation(MatrixAllocation va) { mRS.nProgramVertexBindAllocation(mID, va.mAlloc.mID); } diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index ab263ed..08418c6 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -74,6 +74,7 @@ public class RenderScript { native void nContextAddDefineF(String name, float value); native void nAssignName(int obj, byte[] name); + native void nObjDestroy(int id); native int nFileOpen(byte[] name); native void nElementBegin(); @@ -81,12 +82,10 @@ public class RenderScript { native void nElementAdd(int kind, int type, int norm, int bits, String s); native int nElementCreate(); native int nElementGetPredefined(int predef); - native void nElementDestroy(int obj); native void nTypeBegin(int elementID); native void nTypeAdd(int dim, int val); native int nTypeCreate(); - native void nTypeDestroy(int id); native void nTypeFinalDestroy(Type t); native void nTypeSetupFields(Type t, int[] types, int[] bits, Field[] IDs); @@ -97,7 +96,6 @@ public class RenderScript { native int nAllocationCreateFromBitmapBoxed(int dstFmt, boolean genMips, Bitmap bmp); native void nAllocationUploadToTexture(int alloc, int baseMioLevel); - native void nAllocationDestroy(int alloc); native void nAllocationData(int id, int[] d); native void nAllocationData(int id, float[] d); native void nAllocationSubData1D(int id, int off, int count, int[] d); @@ -108,7 +106,6 @@ public class RenderScript { native void nAllocationRead(int id, float[] d); native void nAllocationDataFromObject(int id, Type t, Object o); - native void nTriangleMeshDestroy(int id); native void nTriangleMeshBegin(int vertex, int index); native void nTriangleMeshAddVertex_XY (float x, float y); native void nTriangleMeshAddVertex_XYZ (float x, float y, float z); @@ -118,7 +115,6 @@ public class RenderScript { native void nTriangleMeshAddTriangle(int i1, int i2, int i3); native int nTriangleMeshCreate(); - native void nAdapter1DDestroy(int id); native void nAdapter1DBindAllocation(int ad, int alloc); native void nAdapter1DSetConstraint(int ad, int dim, int value); native void nAdapter1DData(int ad, int[] d); @@ -127,7 +123,6 @@ public class RenderScript { native void nAdapter1DSubData(int ad, int off, int count, float[] d); native int nAdapter1DCreate(); - native void nAdapter2DDestroy(int id); native void nAdapter2DBindAllocation(int ad, int alloc); native void nAdapter2DSetConstraint(int ad, int dim, int value); native void nAdapter2DData(int ad, int[] d); @@ -136,7 +131,6 @@ public class RenderScript { native void nAdapter2DSubData(int ad, int xoff, int yoff, int w, int h, float[] d); native int nAdapter2DCreate(); - native void nScriptDestroy(int script); native void nScriptBindAllocation(int script, int alloc, int slot); native void nScriptSetClearColor(int script, float r, float g, float b, float a); native void nScriptSetClearDepth(int script, float depth); @@ -151,7 +145,6 @@ public class RenderScript { native void nScriptCAddDefineI32(String name, int value); native void nScriptCAddDefineF(String name, float value); - native void nSamplerDestroy(int sampler); native void nSamplerBegin(); native void nSamplerSet(int param, int value); native int nSamplerCreate(); @@ -163,7 +156,6 @@ public class RenderScript { native void nProgramFragmentStoreBlendFunc(int src, int dst); native void nProgramFragmentStoreDither(boolean enable); native int nProgramFragmentStoreCreate(); - native void nProgramFragmentStoreDestroy(int pgm); native void nProgramFragmentBegin(int in, int out); native void nProgramFragmentBindTexture(int vpf, int slot, int a); @@ -172,9 +164,7 @@ public class RenderScript { native void nProgramFragmentSetEnvMode(int slot, int env); native void nProgramFragmentSetTexEnable(int slot, boolean enable); native int nProgramFragmentCreate(); - native void nProgramFragmentDestroy(int pgm); - native void nProgramVertexDestroy(int pv); native void nProgramVertexBindAllocation(int pv, int mID); native void nProgramVertexBegin(int inID, int outID); native void nProgramVertexSetTextureMatrixEnable(boolean enable); @@ -185,16 +175,13 @@ public class RenderScript { native void nLightSetIsMono(boolean isMono); native void nLightSetIsLocal(boolean isLocal); native int nLightCreate(); - native void nLightDestroy(int l); native void nLightSetColor(int l, float r, float g, float b); native void nLightSetPosition(int l, float x, float y, float z); - native void nSimpleMeshDestroy(int id); native int nSimpleMeshCreate(int batchID, int idxID, int[] vtxID, int prim); native void nSimpleMeshBindVertex(int id, int alloc, int slot); native void nSimpleMeshBindIndex(int id, int alloc); - native void nAnimationDestroy(int id); native void nAnimationBegin(int attribCount, int keyframeCount); native void nAnimationAdd(float time, float[] attribs); native int nAnimationCreate(); @@ -229,11 +216,6 @@ public class RenderScript { super(RenderScript.this); mID = id; } - - public void destroy() { - nTriangleMeshDestroy(mID); - mID = 0; - } } public void triangleMeshBegin(Element vertex, Element index) { @@ -278,11 +260,6 @@ public class RenderScript { super(RenderScript.this); mID = id; } - - public void destroy() { - //nLightDestroy(mID); - mID = 0; - } } public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException diff --git a/graphics/java/android/renderscript/Sampler.java b/graphics/java/android/renderscript/Sampler.java index dfeac81..5e0b110 100644 --- a/graphics/java/android/renderscript/Sampler.java +++ b/graphics/java/android/renderscript/Sampler.java @@ -51,11 +51,6 @@ public class Sampler extends BaseObj { mID = id; } - public void destroy() { - mRS.nSamplerDestroy(mID); - mID = 0; - } - public static class Builder { RenderScript mRS; Value mMin; diff --git a/graphics/java/android/renderscript/Script.java b/graphics/java/android/renderscript/Script.java index 5b9eb55..a402471 100644 --- a/graphics/java/android/renderscript/Script.java +++ b/graphics/java/android/renderscript/Script.java @@ -31,14 +31,6 @@ public class Script extends BaseObj { mID = id; } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nScriptDestroy(mID); - } - public void bindAllocation(Allocation va, int slot) { mRS.nScriptBindAllocation(mID, va.mID, slot); } diff --git a/graphics/java/android/renderscript/SimpleMesh.java b/graphics/java/android/renderscript/SimpleMesh.java index 484849b..d80551e 100644 --- a/graphics/java/android/renderscript/SimpleMesh.java +++ b/graphics/java/android/renderscript/SimpleMesh.java @@ -34,14 +34,6 @@ public class SimpleMesh extends BaseObj { mID = id; } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nSimpleMeshDestroy(mID); - } - public void bindVertexAllocation(Allocation a, int slot) { mRS.nSimpleMeshBindVertex(mID, a.mID, slot); } diff --git a/graphics/java/android/renderscript/Type.java b/graphics/java/android/renderscript/Type.java index afb0e60..30b952d 100644 --- a/graphics/java/android/renderscript/Type.java +++ b/graphics/java/android/renderscript/Type.java @@ -48,14 +48,6 @@ public class Type extends BaseObj { super.finalize(); } - public void destroy() { - if(mDestroyed) { - throw new IllegalStateException("Object already destroyed."); - } - mDestroyed = true; - mRS.nTypeDestroy(mID); - } - public static Type createFromClass(RenderScript rs, Class c, int size) { Element e = Element.createFromClass(rs, c); Builder b = new Builder(rs, e); diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index ff997e7..2d48165 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -78,6 +78,14 @@ nAssignName(JNIEnv *_env, jobject _this, jint obj, jbyteArray str) _env->ReleasePrimitiveArrayCritical(str, cptr, JNI_ABORT); } +static void +nObjDestroy(JNIEnv *_env, jobject _this, jint obj) +{ + RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); + LOG_API("nObjDestroy, con(%p) obj(%p)", con, (void *)obj); + rsObjDestroy(con, (void *)obj); +} + static jint nFileOpen(JNIEnv *_env, jobject _this, jbyteArray str) @@ -183,14 +191,6 @@ nElementGetPredefined(JNIEnv *_env, jobject _this, jint predef) return (jint)rsElementGetPredefined(con, (RsElementPredefined)predef); } -static void -nElementDestroy(JNIEnv *_env, jobject _this, jint e) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nElementDestroy, con(%p) e(%p)", con, (RsElement)e); - rsElementDestroy(con, (RsElement)e); -} - // ----------------------------------- static void @@ -217,14 +217,6 @@ nTypeCreate(JNIEnv *_env, jobject _this) return (jint)rsTypeCreate(con); } -static void -nTypeDestroy(JNIEnv *_env, jobject _this, jint eID) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nTypeDestroy, con(%p), t(%p)", con, (RsType)eID); - rsTypeDestroy(con, (RsType)eID); -} - static void * SF_LoadInt(JNIEnv *_env, jobject _obj, jfieldID _field, void *buffer) { ((int32_t *)buffer)[0] = _env->GetIntField(_obj, _field); @@ -412,14 +404,6 @@ nAllocationCreateFromBitmapBoxed(JNIEnv *_env, jobject _this, jint dstFmt, jbool static void -nAllocationDestroy(JNIEnv *_env, jobject _this, jint a) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nAllocationDestroy, con(%p), a(%p)", con, (RsAllocation)a); - rsAllocationDestroy(con, (RsAllocation)a); -} - -static void nAllocationData_i(JNIEnv *_env, jobject _this, jint alloc, jintArray data) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -531,14 +515,6 @@ nAllocationDataFromObject(JNIEnv *_env, jobject _this, jint alloc, jobject _type // ----------------------------------- static void -nTriangleMeshDestroy(JNIEnv *_env, jobject _this, jint tm) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nTriangleMeshDestroy, con(%p), tm(%p)", con, (RsAllocation)tm); - rsTriangleMeshDestroy(con, (RsTriangleMesh)tm); -} - -static void nTriangleMeshBegin(JNIEnv *_env, jobject _this, jint v, jint i) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -610,14 +586,6 @@ nTriangleMeshCreate(JNIEnv *_env, jobject _this) // ----------------------------------- static void -nAdapter1DDestroy(JNIEnv *_env, jobject _this, jint adapter) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nAdapter1DDestroy, con(%p), adapter(%p)", con, (RsAdapter1D)adapter); - rsAdapter1DDestroy(con, (RsAdapter1D)adapter); -} - -static void nAdapter1DBindAllocation(JNIEnv *_env, jobject _this, jint adapter, jint alloc) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -688,14 +656,6 @@ nAdapter1DCreate(JNIEnv *_env, jobject _this) // ----------------------------------- static void -nAdapter2DDestroy(JNIEnv *_env, jobject _this, jint adapter) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nAdapter2DDestroy, con(%p), adapter(%p)", con, (RsAdapter2D)adapter); - rsAdapter2DDestroy(con, (RsAdapter2D)adapter); -} - -static void nAdapter2DBindAllocation(JNIEnv *_env, jobject _this, jint adapter, jint alloc) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -768,14 +728,6 @@ nAdapter2DCreate(JNIEnv *_env, jobject _this) // ----------------------------------- static void -nScriptDestroy(JNIEnv *_env, jobject _this, jint script) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nScriptDestroy, con(%p), script(%p)", con, (RsScript)script); - rsScriptDestroy(con, (RsScript)script); -} - -static void nScriptBindAllocation(JNIEnv *_env, jobject _this, jint script, jint alloc, jint slot) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -988,14 +940,6 @@ nProgramFragmentStoreCreate(JNIEnv *_env, jobject _this) return (jint)rsProgramFragmentStoreCreate(con); } -static void -nProgramFragmentStoreDestroy(JNIEnv *_env, jobject _this, jint pgm) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentStoreDestroy, con(%p), pgm(%i)", con, pgm); - rsProgramFragmentStoreDestroy(con, (RsProgramFragmentStore)pgm); -} - // --------------------------------------------------------------------------- static void @@ -1054,14 +998,6 @@ nProgramFragmentCreate(JNIEnv *_env, jobject _this, jint slot, jboolean enable) return (jint)rsProgramFragmentCreate(con); } -static void -nProgramFragmentDestroy(JNIEnv *_env, jobject _this, jint pgm) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentDestroy, con(%p), pgm(%i)", con, pgm); - rsProgramFragmentDestroy(con, (RsProgramFragment)pgm); -} - // --------------------------------------------------------------------------- static void @@ -1104,15 +1040,6 @@ nProgramVertexCreate(JNIEnv *_env, jobject _this) return (jint)rsProgramVertexCreate(con); } -static void -nProgramVertexDestroy(JNIEnv *_env, jobject _this, jint pgm) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nProgramFragmentDestroy, con(%p), pgm(%i)", con, pgm); - rsProgramFragmentDestroy(con, (RsProgramFragment)pgm); -} - - // --------------------------------------------------------------------------- @@ -1173,14 +1100,6 @@ nContextAddDefineF(JNIEnv *_env, jobject _this, jstring name, jfloat value) // --------------------------------------------------------------------------- static void -nSamplerDestroy(JNIEnv *_env, jobject _this, jint s) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nSamplerDestroy, con(%p), sampler(%p)", con, (RsSampler)s); - rsSamplerDestroy(con, (RsSampler)s); -} - -static void nSamplerBegin(JNIEnv *_env, jobject _this) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -1239,14 +1158,6 @@ nLightCreate(JNIEnv *_env, jobject _this) } static void -nLightDestroy(JNIEnv *_env, jobject _this, jint light) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nLightDestroy, con(%p), light(%p)", con, (RsLight)light); - rsLightDestroy(con, (RsLight)light); -} - -static void nLightSetColor(JNIEnv *_env, jobject _this, jint light, float r, float g, float b) { RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); @@ -1264,14 +1175,6 @@ nLightSetPosition(JNIEnv *_env, jobject _this, jint light, float x, float y, flo // --------------------------------------------------------------------------- -static void -nSimpleMeshDestroy(JNIEnv *_env, jobject _this, jint s) -{ - RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); - LOG_API("nSimpleMeshDestroy, con(%p), SimpleMesh(%p)", con, (RsSimpleMesh)s); - rsSimpleMeshDestroy(con, (RsSimpleMesh)s); -} - static jint nSimpleMeshCreate(JNIEnv *_env, jobject _this, jint batchID, jint indexID, jintArray vtxIDs, jint primID) { @@ -1313,6 +1216,7 @@ static JNINativeMethod methods[] = { {"nContextCreate", "(ILandroid/view/Surface;I)I", (void*)nContextCreate }, {"nContextDestroy", "(I)V", (void*)nContextDestroy }, {"nAssignName", "(I[B)V", (void*)nAssignName }, +{"nObjDestroy", "(I)V", (void*)nObjDestroy }, {"nFileOpen", "([B)I", (void*)nFileOpen }, @@ -1321,12 +1225,10 @@ static JNINativeMethod methods[] = { {"nElementAdd", "(IIIILjava/lang/String;)V", (void*)nElementAdd }, {"nElementCreate", "()I", (void*)nElementCreate }, {"nElementGetPredefined", "(I)I", (void*)nElementGetPredefined }, -{"nElementDestroy", "(I)V", (void*)nElementDestroy }, {"nTypeBegin", "(I)V", (void*)nTypeBegin }, {"nTypeAdd", "(II)V", (void*)nTypeAdd }, {"nTypeCreate", "()I", (void*)nTypeCreate }, -{"nTypeDestroy", "(I)V", (void*)nTypeDestroy }, {"nTypeFinalDestroy", "(Landroid/renderscript/Type;)V", (void*)nTypeFinalDestroy }, {"nTypeSetupFields", "(Landroid/renderscript/Type;[I[I[Ljava/lang/reflect/Field;)V", (void*)nTypeSetupFields }, @@ -1336,7 +1238,6 @@ static JNINativeMethod methods[] = { {"nAllocationCreateFromBitmap", "(IZLandroid/graphics/Bitmap;)I", (void*)nAllocationCreateFromBitmap }, {"nAllocationCreateFromBitmapBoxed","(IZLandroid/graphics/Bitmap;)I", (void*)nAllocationCreateFromBitmapBoxed }, {"nAllocationUploadToTexture", "(II)V", (void*)nAllocationUploadToTexture }, -{"nAllocationDestroy", "(I)V", (void*)nAllocationDestroy }, {"nAllocationData", "(I[I)V", (void*)nAllocationData_i }, {"nAllocationData", "(I[F)V", (void*)nAllocationData_f }, {"nAllocationSubData1D", "(III[I)V", (void*)nAllocationSubData1D_i }, @@ -1347,7 +1248,6 @@ static JNINativeMethod methods[] = { {"nAllocationRead", "(I[F)V", (void*)nAllocationRead_f }, {"nAllocationDataFromObject", "(ILandroid/renderscript/Type;Ljava/lang/Object;)V", (void*)nAllocationDataFromObject }, -{"nTriangleMeshDestroy", "(I)V", (void*)nTriangleMeshDestroy }, {"nTriangleMeshBegin", "(II)V", (void*)nTriangleMeshBegin }, {"nTriangleMeshAddVertex_XY", "(FF)V", (void*)nTriangleMeshAddVertex_XY }, {"nTriangleMeshAddVertex_XYZ", "(FFF)V", (void*)nTriangleMeshAddVertex_XYZ }, @@ -1357,7 +1257,6 @@ static JNINativeMethod methods[] = { {"nTriangleMeshAddTriangle", "(III)V", (void*)nTriangleMeshAddTriangle }, {"nTriangleMeshCreate", "()I", (void*)nTriangleMeshCreate }, -{"nAdapter1DDestroy", "(I)V", (void*)nAdapter1DDestroy }, {"nAdapter1DBindAllocation", "(II)V", (void*)nAdapter1DBindAllocation }, {"nAdapter1DSetConstraint", "(III)V", (void*)nAdapter1DSetConstraint }, {"nAdapter1DData", "(I[I)V", (void*)nAdapter1DData_i }, @@ -1366,7 +1265,6 @@ static JNINativeMethod methods[] = { {"nAdapter1DSubData", "(III[F)V", (void*)nAdapter1DSubData_f }, {"nAdapter1DCreate", "()I", (void*)nAdapter1DCreate }, -{"nAdapter2DDestroy", "(I)V", (void*)nAdapter2DDestroy }, {"nAdapter2DBindAllocation", "(II)V", (void*)nAdapter2DBindAllocation }, {"nAdapter2DSetConstraint", "(III)V", (void*)nAdapter2DSetConstraint }, {"nAdapter2DData", "(I[I)V", (void*)nAdapter2DData_i }, @@ -1375,7 +1273,6 @@ static JNINativeMethod methods[] = { {"nAdapter2DSubData", "(IIIII[F)V", (void*)nAdapter2DSubData_f }, {"nAdapter2DCreate", "()I", (void*)nAdapter2DCreate }, -{"nScriptDestroy", "(I)V", (void*)nScriptDestroy }, {"nScriptBindAllocation", "(III)V", (void*)nScriptBindAllocation }, {"nScriptSetClearColor", "(IFFFF)V", (void*)nScriptSetClearColor }, {"nScriptSetClearDepth", "(IF)V", (void*)nScriptSetClearDepth }, @@ -1397,7 +1294,6 @@ static JNINativeMethod methods[] = { {"nProgramFragmentStoreBlendFunc", "(II)V", (void*)nProgramFragmentStoreBlendFunc }, {"nProgramFragmentStoreDither", "(Z)V", (void*)nProgramFragmentStoreDither }, {"nProgramFragmentStoreCreate", "()I", (void*)nProgramFragmentStoreCreate }, -{"nProgramFragmentStoreDestroy", "(I)V", (void*)nProgramFragmentStoreDestroy }, {"nProgramFragmentBegin", "(II)V", (void*)nProgramFragmentBegin }, {"nProgramFragmentBindTexture", "(III)V", (void*)nProgramFragmentBindTexture }, @@ -1406,9 +1302,7 @@ static JNINativeMethod methods[] = { {"nProgramFragmentSetEnvMode", "(II)V", (void*)nProgramFragmentSetEnvMode }, {"nProgramFragmentSetTexEnable", "(IZ)V", (void*)nProgramFragmentSetTexEnable }, {"nProgramFragmentCreate", "()I", (void*)nProgramFragmentCreate }, -{"nProgramFragmentDestroy", "(I)V", (void*)nProgramFragmentDestroy }, -{"nProgramVertexDestroy", "(I)V", (void*)nProgramVertexDestroy }, {"nProgramVertexBindAllocation", "(II)V", (void*)nProgramVertexBindAllocation }, {"nProgramVertexBegin", "(II)V", (void*)nProgramVertexBegin }, {"nProgramVertexSetTextureMatrixEnable", "(Z)V", (void*)nProgramVertexSetTextureMatrixEnable }, @@ -1419,7 +1313,6 @@ static JNINativeMethod methods[] = { {"nLightSetIsMono", "(Z)V", (void*)nLightSetIsMono }, {"nLightSetIsLocal", "(Z)V", (void*)nLightSetIsLocal }, {"nLightCreate", "()I", (void*)nLightCreate }, -{"nLightDestroy", "(I)V", (void*)nLightDestroy }, {"nLightSetColor", "(IFFF)V", (void*)nLightSetColor }, {"nLightSetPosition", "(IFFF)V", (void*)nLightSetPosition }, @@ -1428,12 +1321,10 @@ static JNINativeMethod methods[] = { {"nContextBindProgramFragment", "(I)V", (void*)nContextBindProgramFragment }, {"nContextBindProgramVertex", "(I)V", (void*)nContextBindProgramVertex }, -{"nSamplerDestroy", "(I)V", (void*)nSamplerDestroy }, {"nSamplerBegin", "()V", (void*)nSamplerBegin }, {"nSamplerSet", "(II)V", (void*)nSamplerSet }, {"nSamplerCreate", "()I", (void*)nSamplerCreate }, -{"nSimpleMeshDestroy", "(I)V", (void*)nSimpleMeshDestroy }, {"nSimpleMeshCreate", "(II[II)I", (void*)nSimpleMeshCreate }, {"nSimpleMeshBindVertex", "(III)V", (void*)nSimpleMeshBindVertex }, {"nSimpleMeshBindIndex", "(II)V", (void*)nSimpleMeshBindIndex }, diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec index 0df237f..1a81021 100644 --- a/libs/rs/rs.spec +++ b/libs/rs/rs.spec @@ -32,6 +32,10 @@ AssignName { param size_t len } +ObjDestroy { + param void *obj + } + ElementBegin { } @@ -56,10 +60,6 @@ ElementGetPredefined { ret RsElement } -ElementDestroy { - param RsElement ve - } - TypeBegin { param RsElement type } @@ -73,10 +73,6 @@ TypeCreate { ret RsType } -TypeDestroy { - param RsType p - } - AllocationCreateTyped { param RsType type ret RsAllocation @@ -130,10 +126,6 @@ AllocationUploadToBufferObject { param RsAllocation alloc } -AllocationDestroy { - param RsAllocation alloc - } - AllocationData { param RsAllocation va @@ -170,10 +162,6 @@ Adapter1DBindAllocation { param RsAllocation alloc } -Adapter1DDestroy { - param RsAdapter1D adapter - } - Adapter1DSetConstraint { param RsAdapter1D adapter param RsDimension dim @@ -201,10 +189,6 @@ Adapter2DBindAllocation { param RsAllocation alloc } -Adapter2DDestroy { - param RsAdapter2D adapter - } - Adapter2DSetConstraint { param RsAdapter2D adapter param RsDimension dim @@ -237,9 +221,6 @@ SamplerCreate { ret RsSampler } -SamplerDestroy { - param RsSampler s - } TriangleMeshBegin { param RsElement vertex @@ -260,9 +241,6 @@ TriangleMeshCreate { ret RsTriangleMesh } -TriangleMeshDestroy { - param RsTriangleMesh mesh - } TriangleMeshRender { param RsTriangleMesh vtm @@ -274,9 +252,6 @@ TriangleMeshRenderRange { param uint32_t count } -ScriptDestroy { - param RsScript script - } ScriptBindAllocation { param RsScript vtm @@ -381,9 +356,6 @@ ProgramFragmentStoreCreate { ret RsProgramFragmentStore } -ProgramFragmentStoreDestroy { - param RsProgramFragmentStore pfs - } ProgramFragmentBegin { @@ -422,10 +394,6 @@ ProgramFragmentCreate { ret RsProgramFragment } -ProgramFragmentDestroy { - param RsProgramFragment pf - } - ProgramVertexBegin { param RsElement in @@ -464,9 +432,6 @@ LightCreate { ret RsLight light } -LightDestroy { - param RsLight light - } LightSetPosition { param RsLight light @@ -498,9 +463,6 @@ SimpleMeshCreate { param uint32_t primType } -SimpleMeshDestroy { - param RsSimpleMesh mesh - } SimpleMeshBindIndex { param RsSimpleMesh mesh diff --git a/libs/rs/rsAdapter.cpp b/libs/rs/rsAdapter.cpp index 25f3340..3242e11 100644 --- a/libs/rs/rsAdapter.cpp +++ b/libs/rs/rsAdapter.cpp @@ -76,12 +76,6 @@ RsAdapter1D rsi_Adapter1DCreate(Context *rsc) return a; } -void rsi_Adapter1DDestroy(Context *rsc, RsAdapter1D va) -{ - Adapter1D * a = static_cast<Adapter1D *>(va); - a->decRef(); -} - void rsi_Adapter1DBindAllocation(Context *rsc, RsAdapter1D va, RsAllocation valloc) { Adapter1D * a = static_cast<Adapter1D *>(va); @@ -195,12 +189,6 @@ RsAdapter2D rsi_Adapter2DCreate(Context *rsc) return a; } -void rsi_Adapter2DDestroy(Context *rsc, RsAdapter2D va) -{ - Adapter2D * a = static_cast<Adapter2D *>(va); - a->decRef(); -} - void rsi_Adapter2DBindAllocation(Context *rsc, RsAdapter2D va, RsAllocation valloc) { Adapter2D * a = static_cast<Adapter2D *>(va); diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp index ad9c739..3cb76bc 100644 --- a/libs/rs/rsAllocation.cpp +++ b/libs/rs/rsAllocation.cpp @@ -201,10 +201,6 @@ void rsi_AllocationUploadToBufferObject(Context *rsc, RsAllocation va) alloc->uploadToBufferObject(); } -void rsi_AllocationDestroy(Context *rsc, RsAllocation) -{ -} - static void mip565(const Adapter2D &out, const Adapter2D &in) { uint32_t w = out.getDimX(); diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index 52389ea..bc0cf12 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -395,6 +395,13 @@ void rsi_AssignName(Context *rsc, void * obj, const char *name, uint32_t len) rsc->assignName(ob, name, len); } +void rsi_ObjDestroy(Context *rsc, void *obj) +{ + ObjectBase *ob = static_cast<ObjectBase *>(obj); + rsc->removeName(ob); + ob->decRef(); +} + void rsi_ContextSetDefineF(Context *rsc, const char* name, float value) { rsc->addInt32Define(name, value); diff --git a/libs/rs/rsElement.cpp b/libs/rs/rsElement.cpp index 97b18c0..389b2c0 100644 --- a/libs/rs/rsElement.cpp +++ b/libs/rs/rsElement.cpp @@ -416,12 +416,6 @@ RsElement rsi_ElementCreate(Context *rsc) return se; } -void rsi_ElementDestroy(Context *rsc, RsElement vse) -{ - Element * se = static_cast<Element *>(vse); - se->decRef(); -} - } } diff --git a/libs/rs/rsLight.cpp b/libs/rs/rsLight.cpp index 24b58b6..f780e52 100644 --- a/libs/rs/rsLight.cpp +++ b/libs/rs/rsLight.cpp @@ -82,7 +82,7 @@ void LightState::clear() //////////////////////////////////////////////////// -// +// namespace android { namespace renderscript { @@ -110,12 +110,6 @@ RsLight rsi_LightCreate(Context *rsc) return l; } -void rsi_LightDestroy(Context *rsc, RsLight vl) -{ - Light *l = static_cast<Light *>(vl); - l->decRef(); -} - void rsi_LightSetColor(Context *rsc, RsLight vl, float r, float g, float b) { Light *l = static_cast<Light *>(vl); diff --git a/libs/rs/rsProgramFragment.cpp b/libs/rs/rsProgramFragment.cpp index a315658..9df07bf 100644 --- a/libs/rs/rsProgramFragment.cpp +++ b/libs/rs/rsProgramFragment.cpp @@ -236,15 +236,6 @@ RsProgramFragment rsi_ProgramFragmentCreate(Context *rsc) return pf; } -void rsi_ProgramFragmentDestroy(Context *rsc, RsProgramFragment vpf) -{ - ProgramFragment *pf = (ProgramFragment *)vpf; - if (pf->getName()) { - rsc->removeName(pf); - } - pf->decRef(); -} - } } diff --git a/libs/rs/rsProgramFragmentStore.cpp b/libs/rs/rsProgramFragmentStore.cpp index 27f4015..99eed16 100644 --- a/libs/rs/rsProgramFragmentStore.cpp +++ b/libs/rs/rsProgramFragmentStore.cpp @@ -261,17 +261,6 @@ void rsi_ProgramFragmentStoreDither(Context *rsc, bool enable) rsc->mStateFragmentStore.mPFS->setDitherEnable(enable); } -void rsi_ProgramFragmentStoreDestroy(Context *rsc, RsProgramFragmentStore vpfs) -{ - ProgramFragmentStore *pfs = (ProgramFragmentStore *)vpfs; - if (pfs->getName()) { - rsc->removeName(pfs); - } - pfs->decRef(); -} - - - } } diff --git a/libs/rs/rsSampler.cpp b/libs/rs/rsSampler.cpp index 418f127..c14c371 100644 --- a/libs/rs/rsSampler.cpp +++ b/libs/rs/rsSampler.cpp @@ -138,20 +138,13 @@ RsSampler rsi_SamplerCreate(Context *rsc) SamplerState * ss = &rsc->mStateSampler; - Sampler * s = new Sampler(ss->mMagFilter, - ss->mMinFilter, - ss->mWrapS, + Sampler * s = new Sampler(ss->mMagFilter, + ss->mMinFilter, + ss->mWrapS, ss->mWrapT, ss->mWrapR); return s; } -void rsi_SamplerDestroy(Context *rsc, RsSampler vs) -{ - Sampler * s = static_cast<Sampler *>(vs); - s->decRef(); - -} - }} diff --git a/libs/rs/rsScript.cpp b/libs/rs/rsScript.cpp index 6bcb8f2..fde31a1 100644 --- a/libs/rs/rsScript.cpp +++ b/libs/rs/rsScript.cpp @@ -37,12 +37,6 @@ namespace android { namespace renderscript { -void rsi_ScriptDestroy(Context * rsc, RsScript vs) -{ - Script *s = static_cast<Script *>(vs); - s->decRef(); -} - void rsi_ScriptBindAllocation(Context * rsc, RsScript vs, RsAllocation va, uint32_t slot) { Script *s = static_cast<Script *>(vs); diff --git a/libs/rs/rsSimpleMesh.cpp b/libs/rs/rsSimpleMesh.cpp index 08e36ac..0b745eb 100644 --- a/libs/rs/rsSimpleMesh.cpp +++ b/libs/rs/rsSimpleMesh.cpp @@ -135,12 +135,6 @@ void rsi_SimpleMeshBindPrimitive(Context *rsc, RsSimpleMesh mv, RsAllocation va) sm->mPrimitiveBuffer.set((Allocation *)va); } -void rsi_SimpleMeshDestroy(Context *rsc, RsSimpleMesh vtm) -{ - SimpleMesh * tm = static_cast<SimpleMesh *>(vtm); - tm->decRef(); -} - diff --git a/libs/rs/rsType.cpp b/libs/rs/rsType.cpp index 43c3bda..a40a152 100644 --- a/libs/rs/rsType.cpp +++ b/libs/rs/rsType.cpp @@ -177,9 +177,16 @@ void Type::makeGLComponents() mGL.mColor.size = 3; break; case Component::ALPHA: - rsAssert(mGL.mColor.size == 3); - rsAssert(mGL.mColor.type == c->getGLType()); - mGL.mColor.size = 4; + // Can be RGBA or A at this point + if (mGL.mColor.size > 0) { + rsAssert(mGL.mColor.size == 3); + rsAssert(mGL.mColor.type == c->getGLType()); + mGL.mColor.size = 4; + } else { + mGL.mColor.size = 1; + mGL.mColor.offset = mElement->getComponentOffsetBytes(ct); + mGL.mColor.type = c->getGLType(); + } break; case Component::NX: @@ -352,11 +359,6 @@ RsType rsi_TypeCreate(Context *rsc) return st; } -void rsi_TypeDestroy(Context *rsc, RsType vst) -{ - Type * st = static_cast<Type *>(vst); - st->decRef(); -} } } |