diff --git a/v8/renderscript/jni/Android.mk b/v8/renderscript/jni/Android.mk index 4ee8a25e3030..3c921bb7f59c 100644 --- a/v8/renderscript/jni/Android.mk +++ b/v8/renderscript/jni/Android.mk @@ -11,7 +11,8 @@ LOCAL_SHARED_LIBRARIES := \ libjnigraphics LOCAL_STATIC_LIBRARIES := \ - libcutils + libcutils \ + libRSDispatch rs_generated_include_dir := $(call generated-sources-dir-for,SHARED_LIBRARIES,libRSSupport,,) diff --git a/v8/renderscript/jni/android_renderscript_RenderScript.cpp b/v8/renderscript/jni/android_renderscript_RenderScript.cpp index 593cdfe6684d..068e8eb26aca 100644 --- a/v8/renderscript/jni/android_renderscript_RenderScript.cpp +++ b/v8/renderscript/jni/android_renderscript_RenderScript.cpp @@ -92,346 +92,8 @@ class AutoJavaStringArrayToUTF8 { // --------------------------------------------------------------------------- - static dispatchTable dispatchTab; -static bool loadSymbols(void* handle) { - - dispatchTab.AllocationGetType = (AllocationGetTypeFnPtr)dlsym(handle, "rsaAllocationGetType"); - if (dispatchTab.AllocationGetType == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationGetType"); - return false; - } - dispatchTab.TypeGetNativeData = (TypeGetNativeDataFnPtr)dlsym(handle, "rsaTypeGetNativeData"); - if (dispatchTab.TypeGetNativeData == NULL) { - LOG_API("Couldn't initialize dispatchTab.TypeGetNativeData"); - return false; - } - dispatchTab.ElementGetNativeData = (ElementGetNativeDataFnPtr)dlsym(handle, "rsaElementGetNativeData"); - if (dispatchTab.ElementGetNativeData == NULL) { - LOG_API("Couldn't initialize dispatchTab.ElementGetNativeData"); - return false; - } - dispatchTab.ElementGetSubElements = (ElementGetSubElementsFnPtr)dlsym(handle, "rsaElementGetSubElements"); - if (dispatchTab.ElementGetSubElements == NULL) { - LOG_API("Couldn't initialize dispatchTab.ElementGetSubElements"); - return false; - } - dispatchTab.DeviceCreate = (DeviceCreateFnPtr)dlsym(handle, "rsDeviceCreate"); - if (dispatchTab.DeviceCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.DeviceCreate"); - return false; - } - dispatchTab.DeviceDestroy = (DeviceDestroyFnPtr)dlsym(handle, "rsDeviceDestroy"); - if (dispatchTab.DeviceDestroy == NULL) { - LOG_API("Couldn't initialize dispatchTab.DeviceDestroy"); - return false; - } - dispatchTab.DeviceSetConfig = (DeviceSetConfigFnPtr)dlsym(handle, "rsDeviceSetConfig"); - if (dispatchTab.DeviceSetConfig == NULL) { - LOG_API("Couldn't initialize dispatchTab.DeviceSetConfig"); - return false; - } - dispatchTab.ContextCreate = (ContextCreateFnPtr)dlsym(handle, "rsContextCreate");; - if (dispatchTab.ContextCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextCreate"); - return false; - } - dispatchTab.GetName = (GetNameFnPtr)dlsym(handle, "rsaGetName");; - if (dispatchTab.GetName == NULL) { - LOG_API("Couldn't initialize dispatchTab.GetName"); - return false; - } - dispatchTab.ContextDestroy = (ContextDestroyFnPtr)dlsym(handle, "rsContextDestroy"); - if (dispatchTab.ContextDestroy == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextDestroy"); - return false; - } - dispatchTab.ContextGetMessage = (ContextGetMessageFnPtr)dlsym(handle, "rsContextGetMessage"); - if (dispatchTab.ContextGetMessage == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextGetMessage"); - return false; - } - dispatchTab.ContextPeekMessage = (ContextPeekMessageFnPtr)dlsym(handle, "rsContextPeekMessage"); - if (dispatchTab.ContextPeekMessage == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextPeekMessage"); - return false; - } - dispatchTab.ContextSendMessage = (ContextSendMessageFnPtr)dlsym(handle, "rsContextSendMessage"); - if (dispatchTab.ContextSendMessage == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextSendMessage"); - return false; - } - dispatchTab.ContextInitToClient = (ContextInitToClientFnPtr)dlsym(handle, "rsContextInitToClient"); - if (dispatchTab.ContextInitToClient == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextInitToClient"); - return false; - } - dispatchTab.ContextDeinitToClient = (ContextDeinitToClientFnPtr)dlsym(handle, "rsContextDeinitToClient"); - if (dispatchTab.ContextDeinitToClient == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextDeinitToClient"); - return false; - } - dispatchTab.TypeCreate = (TypeCreateFnPtr)dlsym(handle, "rsTypeCreate"); - if (dispatchTab.TypeCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.TypeCreate"); - return false; - } - dispatchTab.AllocationCreateTyped = (AllocationCreateTypedFnPtr)dlsym(handle, "rsAllocationCreateTyped"); - if (dispatchTab.AllocationCreateTyped == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCreateTyped"); - return false; - } - dispatchTab.AllocationCreateFromBitmap = (AllocationCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCreateFromBitmap"); - if (dispatchTab.AllocationCreateFromBitmap == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCreateFromBitmap"); - return false; - } - dispatchTab.AllocationCubeCreateFromBitmap = (AllocationCubeCreateFromBitmapFnPtr)dlsym(handle, "rsAllocationCubeCreateFromBitmap"); - if (dispatchTab.AllocationCubeCreateFromBitmap == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCubeCreateFromBitmap"); - return false; - } - dispatchTab.AllocationGetSurface = (AllocationGetSurfaceFnPtr)dlsym(handle, "rsAllocationGetSurface"); - if (dispatchTab.AllocationGetSurface == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationGetSurface"); - return false; - } - dispatchTab.AllocationSetSurface = (AllocationSetSurfaceFnPtr)dlsym(handle, "rsAllocationSetSurface"); - if (dispatchTab.AllocationSetSurface == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationSetSurface"); - return false; - } - dispatchTab.ContextFinish = (ContextFinishFnPtr)dlsym(handle, "rsContextFinish"); - if (dispatchTab.ContextFinish == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextFinish"); - return false; - } - dispatchTab.ContextDump = (ContextDumpFnPtr)dlsym(handle, "rsContextDump"); - if (dispatchTab.ContextDump == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextDump"); - return false; - } - dispatchTab.ContextSetPriority = (ContextSetPriorityFnPtr)dlsym(handle, "rsContextSetPriority"); - if (dispatchTab.ContextSetPriority == NULL) { - LOG_API("Couldn't initialize dispatchTab.ContextSetPriority"); - return false; - } - dispatchTab.AssignName = (AssignNameFnPtr)dlsym(handle, "rsAssignName"); - if (dispatchTab.AssignName == NULL) { - LOG_API("Couldn't initialize dispatchTab.AssignName"); - return false; - } - dispatchTab.ObjDestroy = (ObjDestroyFnPtr)dlsym(handle, "rsObjDestroy"); - if (dispatchTab.ObjDestroy == NULL) { - LOG_API("Couldn't initialize dispatchTab.ObjDestroy"); - return false; - } - dispatchTab.ElementCreate = (ElementCreateFnPtr)dlsym(handle, "rsElementCreate"); - if (dispatchTab.ElementCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ElementCreate"); - return false; - } - dispatchTab.ElementCreate2 = (ElementCreate2FnPtr)dlsym(handle, "rsElementCreate2"); - if (dispatchTab.ElementCreate2 == NULL) { - LOG_API("Couldn't initialize dispatchTab.ElementCreate2"); - return false; - } - dispatchTab.AllocationCopyToBitmap = (AllocationCopyToBitmapFnPtr)dlsym(handle, "rsAllocationCopyToBitmap"); - if (dispatchTab.AllocationCopyToBitmap == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCopyToBitmap"); - return false; - } - dispatchTab.Allocation1DData = (Allocation1DDataFnPtr)dlsym(handle, "rsAllocation1DData"); - if (dispatchTab.Allocation1DData == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation1DData"); - return false; - } - dispatchTab.Allocation1DElementData = (Allocation1DElementDataFnPtr)dlsym(handle, "rsAllocation1DElementData"); - if (dispatchTab.Allocation1DElementData == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation1DElementData"); - return false; - } - dispatchTab.Allocation2DData = (Allocation2DDataFnPtr)dlsym(handle, "rsAllocation2DData"); - if (dispatchTab.Allocation2DData == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation2DData"); - return false; - } - dispatchTab.Allocation3DData = (Allocation3DDataFnPtr)dlsym(handle, "rsAllocation3DData"); - if (dispatchTab.Allocation3DData == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation3DData"); - return false; - } - dispatchTab.AllocationGenerateMipmaps = (AllocationGenerateMipmapsFnPtr)dlsym(handle, "rsAllocationGenerateMipmaps"); - if (dispatchTab.AllocationGenerateMipmaps == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationGenerateMipmaps"); - return false; - } - dispatchTab.AllocationRead = (AllocationReadFnPtr)dlsym(handle, "rsAllocationRead"); - if (dispatchTab.AllocationRead == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationRead"); - return false; - } - dispatchTab.Allocation1DRead = (Allocation1DReadFnPtr)dlsym(handle, "rsAllocation1DRead"); - if (dispatchTab.Allocation1DRead == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation1DRead"); - return false; - } - dispatchTab.Allocation2DRead = (Allocation2DReadFnPtr)dlsym(handle, "rsAllocation2DRead"); - if (dispatchTab.Allocation2DRead == NULL) { - LOG_API("Couldn't initialize dispatchTab.Allocation2DRead"); - return false; - } - dispatchTab.AllocationSyncAll = (AllocationSyncAllFnPtr)dlsym(handle, "rsAllocationSyncAll"); - if (dispatchTab.AllocationSyncAll == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationSyncAll"); - return false; - } - dispatchTab.AllocationResize1D = (AllocationResize1DFnPtr)dlsym(handle, "rsAllocationResize1D"); - if (dispatchTab.AllocationResize1D == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationResize1D"); - return false; - } - dispatchTab.AllocationCopy2DRange = (AllocationCopy2DRangeFnPtr)dlsym(handle, "rsAllocationCopy2DRange"); - if (dispatchTab.AllocationCopy2DRange == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCopy2DRange"); - return false; - } - dispatchTab.AllocationCopy3DRange = (AllocationCopy3DRangeFnPtr)dlsym(handle, "rsAllocationCopy3DRange"); - if (dispatchTab.AllocationCopy3DRange == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationCopy3DRange"); - return false; - } - dispatchTab.SamplerCreate = (SamplerCreateFnPtr)dlsym(handle, "rsSamplerCreate"); - if (dispatchTab.SamplerCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.SamplerCreate"); - return false; - } - dispatchTab.ScriptBindAllocation = (ScriptBindAllocationFnPtr)dlsym(handle, "rsScriptBindAllocation"); - if (dispatchTab.ScriptBindAllocation == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptBindAllocation"); - return false; - } - dispatchTab.ScriptSetTimeZone = (ScriptSetTimeZoneFnPtr)dlsym(handle, "rsScriptSetTimeZone"); - if (dispatchTab.ScriptSetTimeZone == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetTimeZone"); - return false; - } - dispatchTab.ScriptInvoke = (ScriptInvokeFnPtr)dlsym(handle, "rsScriptInvoke"); - if (dispatchTab.ScriptInvoke == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptInvoke"); - return false; - } - dispatchTab.ScriptInvokeV = (ScriptInvokeVFnPtr)dlsym(handle, "rsScriptInvokeV"); - if (dispatchTab.ScriptInvokeV == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptInvokeV"); - return false; - } - dispatchTab.ScriptForEach = (ScriptForEachFnPtr)dlsym(handle, "rsScriptForEach"); - if (dispatchTab.ScriptForEach == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptForEach"); - return false; - } - dispatchTab.ScriptSetVarI = (ScriptSetVarIFnPtr)dlsym(handle, "rsScriptSetVarI"); - if (dispatchTab.ScriptSetVarI == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarI"); - return false; - } - dispatchTab.ScriptSetVarObj = (ScriptSetVarObjFnPtr)dlsym(handle, "rsScriptSetVarObj"); - if (dispatchTab.ScriptSetVarObj == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarObj"); - return false; - } - dispatchTab.ScriptSetVarJ = (ScriptSetVarJFnPtr)dlsym(handle, "rsScriptSetVarJ"); - if (dispatchTab.ScriptSetVarJ == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarJ"); - return false; - } - dispatchTab.ScriptSetVarF = (ScriptSetVarFFnPtr)dlsym(handle, "rsScriptSetVarF"); - if (dispatchTab.ScriptSetVarF == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarF"); - return false; - } - dispatchTab.ScriptSetVarD = (ScriptSetVarDFnPtr)dlsym(handle, "rsScriptSetVarD"); - if (dispatchTab.ScriptSetVarD == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarD"); - return false; - } - dispatchTab.ScriptSetVarV = (ScriptSetVarVFnPtr)dlsym(handle, "rsScriptSetVarV"); - if (dispatchTab.ScriptSetVarV == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarV"); - return false; - } - dispatchTab.ScriptGetVarV = (ScriptGetVarVFnPtr)dlsym(handle, "rsScriptGetVarV"); - if (dispatchTab.ScriptGetVarV == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptGetVarV"); - return false; - } - dispatchTab.ScriptSetVarVE = (ScriptSetVarVEFnPtr)dlsym(handle, "rsScriptSetVarVE"); - if (dispatchTab.ScriptSetVarVE == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptSetVarVE"); - return false; - } - dispatchTab.ScriptCCreate = (ScriptCCreateFnPtr)dlsym(handle, "rsScriptCCreate"); - if (dispatchTab.ScriptCCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptCCreate"); - return false; - } - dispatchTab.ScriptIntrinsicCreate = (ScriptIntrinsicCreateFnPtr)dlsym(handle, "rsScriptIntrinsicCreate"); - if (dispatchTab.ScriptIntrinsicCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptIntrinsicCreate"); - return false; - } - dispatchTab.ScriptKernelIDCreate = (ScriptKernelIDCreateFnPtr)dlsym(handle, "rsScriptKernelIDCreate"); - if (dispatchTab.ScriptKernelIDCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptKernelIDCreate"); - return false; - } - dispatchTab.ScriptFieldIDCreate = (ScriptFieldIDCreateFnPtr)dlsym(handle, "rsScriptFieldIDCreate"); - if (dispatchTab.ScriptFieldIDCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptFieldIDCreate"); - return false; - } - dispatchTab.ScriptGroupCreate = (ScriptGroupCreateFnPtr)dlsym(handle, "rsScriptGroupCreate"); - if (dispatchTab.ScriptGroupCreate == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptGroupCreate"); - return false; - } - dispatchTab.ScriptGroupSetOutput = (ScriptGroupSetOutputFnPtr)dlsym(handle, "rsScriptGroupSetOutput"); - if (dispatchTab.ScriptGroupSetOutput == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptGroupSetOutput"); - return false; - } - dispatchTab.ScriptGroupSetInput = (ScriptGroupSetInputFnPtr)dlsym(handle, "rsScriptGroupSetInput"); - if (dispatchTab.ScriptGroupSetInput == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptGroupSetInput"); - return false; - } - dispatchTab.ScriptGroupExecute = (ScriptGroupExecuteFnPtr)dlsym(handle, "rsScriptGroupExecute"); - if (dispatchTab.ScriptGroupExecute == NULL) { - LOG_API("Couldn't initialize dispatchTab.ScriptGroupExecute"); - return false; - } - dispatchTab.AllocationIoSend = (AllocationIoSendFnPtr)dlsym(handle, "rsAllocationIoSend"); - if (dispatchTab.AllocationIoSend == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationIoSend"); - return false; - } - dispatchTab.AllocationIoReceive = (AllocationIoReceiveFnPtr)dlsym(handle, "rsAllocationIoReceive"); - if (dispatchTab.AllocationIoReceive == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationIoReceive"); - return false; - } - dispatchTab.AllocationGetPointer = (AllocationGetPointerFnPtr)dlsym(handle, "rsAllocationGetPointer"); - if (dispatchTab.AllocationGetPointer == NULL) { - LOG_API("Couldn't initialize dispatchTab.AllocationGetPointer"); - return false; - } - - return true; -} - - static jboolean nLoadSO(JNIEnv *_env, jobject _this, jboolean useNative) { void* handle = NULL; if (useNative) { @@ -444,7 +106,7 @@ static jboolean nLoadSO(JNIEnv *_env, jobject _this, jboolean useNative) { return false; } - if (loadSymbols(handle) == false) { + if (loadSymbols(handle, dispatchTab) == false) { LOG_API("%s init failed!", filename); return false; }