1*e1eccf28SAndroid Build Coastguard Worker /* 2*e1eccf28SAndroid Build Coastguard Worker * Copyright (C) 2012 The Android Open Source Project 3*e1eccf28SAndroid Build Coastguard Worker * 4*e1eccf28SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*e1eccf28SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*e1eccf28SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*e1eccf28SAndroid Build Coastguard Worker * 8*e1eccf28SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*e1eccf28SAndroid Build Coastguard Worker * 10*e1eccf28SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*e1eccf28SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*e1eccf28SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*e1eccf28SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*e1eccf28SAndroid Build Coastguard Worker * limitations under the License. 15*e1eccf28SAndroid Build Coastguard Worker */ 16*e1eccf28SAndroid Build Coastguard Worker 17*e1eccf28SAndroid Build Coastguard Worker #ifndef ANDROID_RSDISPATCH_H 18*e1eccf28SAndroid Build Coastguard Worker #define ANDROID_RSDISPATCH_H 19*e1eccf28SAndroid Build Coastguard Worker 20*e1eccf28SAndroid Build Coastguard Worker #include "rsInternalDefines.h" 21*e1eccf28SAndroid Build Coastguard Worker 22*e1eccf28SAndroid Build Coastguard Worker typedef void (*SetNativeLibDirFnPtr)(RsContext con, const char *nativeLibDir, size_t length); 23*e1eccf28SAndroid Build Coastguard Worker typedef const void* (*AllocationGetTypeFnPtr)(RsContext con, RsAllocation va); 24*e1eccf28SAndroid Build Coastguard Worker typedef void (*TypeGetNativeDataFnPtr)(RsContext, RsType, uintptr_t *typeData, uint32_t typeDataSize); 25*e1eccf28SAndroid Build Coastguard Worker typedef void (*ElementGetNativeDataFnPtr)(RsContext, RsElement, uint32_t *elemData, uint32_t elemDataSize); 26*e1eccf28SAndroid Build Coastguard Worker typedef void (*ElementGetSubElementsFnPtr)(RsContext, RsElement, uintptr_t *ids, const char **names, size_t *arraySizes, uint32_t dataSize); 27*e1eccf28SAndroid Build Coastguard Worker typedef RsDevice (*DeviceCreateFnPtr) (); 28*e1eccf28SAndroid Build Coastguard Worker typedef void (*DeviceDestroyFnPtr) (RsDevice dev); 29*e1eccf28SAndroid Build Coastguard Worker typedef void (*DeviceSetConfigFnPtr) (RsDevice dev, RsDeviceParam p, int32_t value); 30*e1eccf28SAndroid Build Coastguard Worker typedef RsContext (*ContextCreateFnPtr)(RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsContextType ct, uint32_t flags); 31*e1eccf28SAndroid Build Coastguard Worker typedef RsContext (*ContextCreateVendorFnPtr)(RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsContextType ct, uint32_t flags, const char* vendorDriverName); 32*e1eccf28SAndroid Build Coastguard Worker typedef void (*GetNameFnPtr)(RsContext, void * obj, const char **name); 33*e1eccf28SAndroid Build Coastguard Worker typedef RsClosure (*ClosureCreateFnPtr)(RsContext, RsScriptKernelID, RsAllocation, RsScriptFieldID*, size_t, int64_t*, size_t, int*, size_t, RsClosure*, size_t, RsScriptFieldID*, size_t); 34*e1eccf28SAndroid Build Coastguard Worker typedef RsClosure (*InvokeClosureCreateFnPtr)(RsContext, RsScriptInvokeID, const void*, const size_t, const RsScriptFieldID*, const size_t, const int64_t*, const size_t, const int*, const size_t); 35*e1eccf28SAndroid Build Coastguard Worker typedef void (*ClosureSetArgFnPtr)(RsContext, RsClosure, uint32_t, uintptr_t, int); 36*e1eccf28SAndroid Build Coastguard Worker typedef void (*ClosureSetGlobalFnPtr)(RsContext, RsClosure, RsScriptFieldID, int64_t, int); 37*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextDestroyFnPtr) (RsContext); 38*e1eccf28SAndroid Build Coastguard Worker typedef RsMessageToClientType (*ContextGetMessageFnPtr) (RsContext, void*, size_t, size_t*, size_t, uint32_t*, size_t); 39*e1eccf28SAndroid Build Coastguard Worker typedef RsMessageToClientType (*ContextPeekMessageFnPtr) (RsContext, size_t*, size_t, uint32_t*, size_t); 40*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextSendMessageFnPtr) (RsContext, uint32_t, const uint8_t*, size_t); 41*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextInitToClientFnPtr) (RsContext); 42*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextDeinitToClientFnPtr) (RsContext); 43*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextSetCacheDirFnPtr) (RsContext rsc, const char *cacheDir, size_t cacheDir_length); 44*e1eccf28SAndroid Build Coastguard Worker typedef RsType (*TypeCreateFnPtr) (RsContext, RsElement, uint32_t, uint32_t, uint32_t, bool, bool, uint32_t); 45*e1eccf28SAndroid Build Coastguard Worker typedef RsAllocation (*AllocationCreateTypedFnPtr) (RsContext, RsType, RsAllocationMipmapControl, uint32_t, uintptr_t); 46*e1eccf28SAndroid Build Coastguard Worker typedef RsAllocation (*AllocationCreateStridedFnPtr) (RsContext, RsType, RsAllocationMipmapControl, uint32_t, uintptr_t, size_t); 47*e1eccf28SAndroid Build Coastguard Worker typedef RsAllocation (*AllocationCreateFromBitmapFnPtr) (RsContext, RsType, RsAllocationMipmapControl, const void*, size_t, uint32_t); 48*e1eccf28SAndroid Build Coastguard Worker typedef RsAllocation (*AllocationCubeCreateFromBitmapFnPtr) (RsContext, RsType, RsAllocationMipmapControl, const void*, size_t, uint32_t); 49*e1eccf28SAndroid Build Coastguard Worker typedef RsNativeWindow (*AllocationGetSurfaceFnPtr) (RsContext, RsAllocation); 50*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationSetSurfaceFnPtr) (RsContext, RsAllocation, RsNativeWindow); 51*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextFinishFnPtr) (RsContext); 52*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextDumpFnPtr) (RsContext, int32_t); 53*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextSetPriorityFnPtr) (RsContext, int32_t); 54*e1eccf28SAndroid Build Coastguard Worker typedef void (*AssignNameFnPtr) (RsContext, RsObjectBase, const char*, size_t); 55*e1eccf28SAndroid Build Coastguard Worker typedef void (*ObjDestroyFnPtr) (RsContext, RsAsyncVoidPtr); 56*e1eccf28SAndroid Build Coastguard Worker typedef RsElement (*ElementCreateFnPtr) (RsContext, RsDataType, RsDataKind, bool, uint32_t); 57*e1eccf28SAndroid Build Coastguard Worker typedef RsElement (*ElementCreate2FnPtr) (RsContext, const RsElement*, size_t, const char**, size_t, const size_t*, const uint32_t*, size_t); 58*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationCopyToBitmapFnPtr) (RsContext, RsAllocation, void*, size_t); 59*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation1DDataFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, const void*, size_t); 60*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation1DElementDataFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, const void*, size_t, size_t); 61*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationElementDataFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, const void*, size_t, size_t); 62*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation2DDataFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, RsAllocationCubemapFace, uint32_t, uint32_t, const void*, size_t, size_t); 63*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation3DDataFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, const void*, size_t, size_t); 64*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationGenerateMipmapsFnPtr) (RsContext, RsAllocation); 65*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationReadFnPtr) (RsContext, RsAllocation, void*, size_t); 66*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation1DReadFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, void*, size_t); 67*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationElementReadFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, void*, size_t, size_t); 68*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation2DReadFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, RsAllocationCubemapFace, uint32_t, uint32_t, void*, size_t, size_t); 69*e1eccf28SAndroid Build Coastguard Worker typedef void (*Allocation3DReadFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, void*, size_t, size_t); 70*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationSyncAllFnPtr) (RsContext, RsAllocation, RsAllocationUsageType); 71*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationResize1DFnPtr) (RsContext, RsAllocation, uint32_t); 72*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationCopy2DRangeFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t); 73*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationCopy3DRangeFnPtr) (RsContext, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, RsAllocation, uint32_t, uint32_t, uint32_t, uint32_t); 74*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationSetupBufferQueueFnPtr) (RsContext context, RsAllocation valloc, uint32_t numAlloc); 75*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationShareBufferQueueFnPtr) (RsContext context, RsAllocation valloc1, RsAllocation valloc2); 76*e1eccf28SAndroid Build Coastguard Worker typedef RsSampler (*SamplerCreateFnPtr) (RsContext, RsSamplerValue, RsSamplerValue, RsSamplerValue, RsSamplerValue, RsSamplerValue, float); 77*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptBindAllocationFnPtr) (RsContext, RsScript, RsAllocation, uint32_t); 78*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetTimeZoneFnPtr) (RsContext, RsScript, const char*, size_t); 79*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptInvokeFnPtr) (RsContext, RsScript, uint32_t); 80*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptInvokeVFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t); 81*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptForEachFnPtr) (RsContext, RsScript, uint32_t, RsAllocation, RsAllocation, const void*, size_t, const RsScriptCall*, size_t); 82*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptForEachMultiFnPtr) (RsContext, RsScript, uint32_t, RsAllocation*, size_t, RsAllocation, const void*, size_t, const RsScriptCall*, size_t); 83*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptReduceFnPtr) (RsContext, RsScript, uint32_t, RsAllocation*, size_t, RsAllocation, const RsScriptCall*, size_t); 84*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarIFnPtr) (RsContext, RsScript, uint32_t, int); 85*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarObjFnPtr) (RsContext, RsScript, uint32_t, RsObjectBase); 86*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarJFnPtr) (RsContext, RsScript, uint32_t, int64_t); 87*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarFFnPtr) (RsContext, RsScript, uint32_t, float); 88*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarDFnPtr) (RsContext, RsScript, uint32_t, double); 89*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarVFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t); 90*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptGetVarVFnPtr) (RsContext, RsScript, uint32_t, void*, size_t); 91*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptSetVarVEFnPtr) (RsContext, RsScript, uint32_t, const void*, size_t, RsElement, const uint32_t*, size_t); 92*e1eccf28SAndroid Build Coastguard Worker typedef RsScript (*ScriptCCreateFnPtr) (RsContext, const char*, size_t, const char*, size_t, const char*, size_t); 93*e1eccf28SAndroid Build Coastguard Worker typedef RsScript (*ScriptIntrinsicCreateFnPtr) (RsContext, uint32_t id, RsElement); 94*e1eccf28SAndroid Build Coastguard Worker typedef RsScriptKernelID (*ScriptKernelIDCreateFnPtr) (RsContext, RsScript, int, int); 95*e1eccf28SAndroid Build Coastguard Worker typedef RsScriptInvokeID (*ScriptInvokeIDCreateFnPtr) (RsContext, RsScript, int); 96*e1eccf28SAndroid Build Coastguard Worker typedef RsScriptFieldID (*ScriptFieldIDCreateFnPtr) (RsContext, RsScript, int); 97*e1eccf28SAndroid Build Coastguard Worker typedef RsScriptGroup (*ScriptGroupCreateFnPtr) (RsContext, RsScriptKernelID*, size_t, RsScriptKernelID*, size_t, RsScriptKernelID*, size_t, RsScriptFieldID*, size_t, const RsType*, size_t); 98*e1eccf28SAndroid Build Coastguard Worker typedef RsScriptGroup2 (*ScriptGroup2CreateFnPtr)(RsContext, const char*, size_t, const char*, size_t, RsClosure*, size_t); 99*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptGroupSetOutputFnPtr) (RsContext, RsScriptGroup, RsScriptKernelID, RsAllocation); 100*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptGroupSetInputFnPtr) (RsContext, RsScriptGroup, RsScriptKernelID, RsAllocation); 101*e1eccf28SAndroid Build Coastguard Worker typedef void (*ScriptGroupExecuteFnPtr) (RsContext, RsScriptGroup); 102*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationIoSendFnPtr) (RsContext, RsAllocation); 103*e1eccf28SAndroid Build Coastguard Worker typedef int64_t (*AllocationIoReceiveFnPtr) (RsContext, RsAllocation); 104*e1eccf28SAndroid Build Coastguard Worker typedef void * (*AllocationGetPointerFnPtr) (RsContext, RsAllocation, uint32_t lod, RsAllocationCubemapFace face, uint32_t z, uint32_t array, size_t *stride, size_t stride_len); 105*e1eccf28SAndroid Build Coastguard Worker typedef RsAllocation (*AllocationAdapterCreateFnPtr) (RsContext rsc, RsType vtype, RsAllocation baseAlloc); 106*e1eccf28SAndroid Build Coastguard Worker typedef void (*AllocationAdapterOffsetFnPtr) (RsContext rsc, RsAllocation alloc, const uint32_t * offsets, size_t offsets_length); 107*e1eccf28SAndroid Build Coastguard Worker 108*e1eccf28SAndroid Build Coastguard Worker // Graphics APIs 109*e1eccf28SAndroid Build Coastguard Worker typedef RsContext (*ContextCreateGLFnPtr) (RsDevice vdev, uint32_t version, uint32_t sdkVersion, RsSurfaceConfig sc, uint32_t dpi); 110*e1eccf28SAndroid Build Coastguard Worker typedef RsProgramStore (*ProgramStoreCreateFnPtr) (RsContext rsc, bool colorMaskR, bool colorMaskG, bool colorMaskB, bool colorMaskA, bool depthMask, bool ditherEnable, RsBlendSrcFunc srcFunc, RsBlendDstFunc destFunc, RsDepthFunc depthFunc); 111*e1eccf28SAndroid Build Coastguard Worker typedef RsProgramRaster (*ProgramRasterCreateFnPtr) (RsContext rsc, bool pointSprite, RsCullMode cull); 112*e1eccf28SAndroid Build Coastguard Worker typedef void (*ProgramBindConstantsFnPtr) (RsContext rsc, RsProgram vp, uint32_t slot, RsAllocation constants); 113*e1eccf28SAndroid Build Coastguard Worker typedef void (*ProgramBindTextureFnPtr) (RsContext rsc, RsProgramFragment pf, uint32_t slot, RsAllocation a); 114*e1eccf28SAndroid Build Coastguard Worker typedef void (*ProgramBindSamplerFnPtr) (RsContext rsc, RsProgramFragment pf, uint32_t slot, RsSampler s); 115*e1eccf28SAndroid Build Coastguard Worker typedef RsProgramFragment (*ProgramFragmentCreateFnPtr) (RsContext rsc, const char * shaderText, size_t shaderText_length, const char ** textureNames, size_t textureNames_length_length, const size_t * textureNames_length, const uintptr_t * params, size_t params_length); 116*e1eccf28SAndroid Build Coastguard Worker typedef RsProgramVertex (*ProgramVertexCreateFnPtr) (RsContext rsc, const char * shaderText, size_t shaderText_length, const char ** textureNames, size_t textureNames_length_length, const size_t * textureNames_length, const uintptr_t * params, size_t params_length); 117*e1eccf28SAndroid Build Coastguard Worker typedef RsFont (*FontCreateFromFileFnPtr) (RsContext rsc, const char * name, size_t name_length, float fontSize, uint32_t dpi); 118*e1eccf28SAndroid Build Coastguard Worker typedef RsFont (*FontCreateFromMemoryFnPtr) (RsContext rsc, const char * name, size_t name_length, float fontSize, uint32_t dpi, const void * data, size_t data_length); 119*e1eccf28SAndroid Build Coastguard Worker typedef RsMesh (*MeshCreateFnPtr) (RsContext rsc, RsAllocation * vtx, size_t vtx_length, RsAllocation * idx, size_t idx_length, uint32_t * primType, size_t primType_length); 120*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindProgramStoreFnPtr) (RsContext rsc, RsProgramStore pgm); 121*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindProgramFragmentFnPtr) (RsContext rsc, RsProgramFragment pgm); 122*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindProgramVertexFnPtr) (RsContext rsc, RsProgramVertex pgm); 123*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindProgramRasterFnPtr) (RsContext rsc, RsProgramRaster pgm); 124*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindFontFnPtr) (RsContext rsc, RsFont pgm); 125*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextSetSurfaceFnPtr) (RsContext rsc, uint32_t width, uint32_t height, RsNativeWindow sur); 126*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextBindRootScriptFnPtr) (RsContext rsc, RsScript sampler); 127*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextPauseFnPtr) (RsContext rsc); 128*e1eccf28SAndroid Build Coastguard Worker typedef void (*ContextResumeFnPtr) (RsContext rsc); 129*e1eccf28SAndroid Build Coastguard Worker typedef void (*MeshGetVertexBufferCountFnPtr) (RsContext con, RsMesh mv, int32_t *numVtx); 130*e1eccf28SAndroid Build Coastguard Worker typedef void (*MeshGetIndexCountFnPtr) (RsContext con, RsMesh mv, int32_t *numIdx); 131*e1eccf28SAndroid Build Coastguard Worker typedef void (*MeshGetVerticesFnPtr) (RsContext con, RsMesh mv, RsAllocation *vtxData, uint32_t vtxDataCount); 132*e1eccf28SAndroid Build Coastguard Worker typedef void (*MeshGetIndicesFnPtr) (RsContext con, RsMesh mv, RsAllocation *va, uint32_t *primType, uint32_t idxDataCount); 133*e1eccf28SAndroid Build Coastguard Worker typedef RsObjectBase (*FileA3DGetEntryByIndexFnPtr) (RsContext con, uint32_t index, RsFile file); 134*e1eccf28SAndroid Build Coastguard Worker typedef void (*FileA3DGetNumIndexEntriesFnPtr) (RsContext con, int32_t *numEntries, RsFile file); 135*e1eccf28SAndroid Build Coastguard Worker typedef void (*FileA3DGetIndexEntriesFnPtr) (RsContext con, RsFileIndexEntry *fileEntries, uint32_t numEntries, RsFile file); 136*e1eccf28SAndroid Build Coastguard Worker typedef RsFile (*FileA3DCreateFromMemoryFnPtr) (RsContext con, const void *data, uint32_t len); 137*e1eccf28SAndroid Build Coastguard Worker typedef RsFile (*FileA3DCreateFromAssetFnPtr) (RsContext con, void *_asset); 138*e1eccf28SAndroid Build Coastguard Worker typedef RsFile (*FileA3DCreateFromFileFnPtr) (RsContext con, const char *path); 139*e1eccf28SAndroid Build Coastguard Worker 140*e1eccf28SAndroid Build Coastguard Worker 141*e1eccf28SAndroid Build Coastguard Worker struct dispatchTable { 142*e1eccf28SAndroid Build Coastguard Worker SetNativeLibDirFnPtr SetNativeLibDir; 143*e1eccf28SAndroid Build Coastguard Worker 144*e1eccf28SAndroid Build Coastguard Worker // Inserted by hand based on rs.spec and rs.h 145*e1eccf28SAndroid Build Coastguard Worker Allocation1DDataFnPtr Allocation1DData; 146*e1eccf28SAndroid Build Coastguard Worker Allocation1DElementDataFnPtr Allocation1DElementData; 147*e1eccf28SAndroid Build Coastguard Worker Allocation1DReadFnPtr Allocation1DRead; 148*e1eccf28SAndroid Build Coastguard Worker Allocation2DDataFnPtr Allocation2DData; 149*e1eccf28SAndroid Build Coastguard Worker Allocation2DReadFnPtr Allocation2DRead; 150*e1eccf28SAndroid Build Coastguard Worker Allocation3DDataFnPtr Allocation3DData; 151*e1eccf28SAndroid Build Coastguard Worker Allocation3DReadFnPtr Allocation3DRead; 152*e1eccf28SAndroid Build Coastguard Worker AllocationAdapterCreateFnPtr AllocationAdapterCreate; 153*e1eccf28SAndroid Build Coastguard Worker AllocationAdapterOffsetFnPtr AllocationAdapterOffset; 154*e1eccf28SAndroid Build Coastguard Worker AllocationCopy2DRangeFnPtr AllocationCopy2DRange; 155*e1eccf28SAndroid Build Coastguard Worker AllocationCopy3DRangeFnPtr AllocationCopy3DRange; 156*e1eccf28SAndroid Build Coastguard Worker AllocationCopyToBitmapFnPtr AllocationCopyToBitmap; 157*e1eccf28SAndroid Build Coastguard Worker AllocationCreateFromBitmapFnPtr AllocationCreateFromBitmap; 158*e1eccf28SAndroid Build Coastguard Worker AllocationCreateStridedFnPtr AllocationCreateStrided; 159*e1eccf28SAndroid Build Coastguard Worker AllocationCreateTypedFnPtr AllocationCreateTyped; 160*e1eccf28SAndroid Build Coastguard Worker AllocationCubeCreateFromBitmapFnPtr AllocationCubeCreateFromBitmap; 161*e1eccf28SAndroid Build Coastguard Worker AllocationElementDataFnPtr AllocationElementData; 162*e1eccf28SAndroid Build Coastguard Worker AllocationElementReadFnPtr AllocationElementRead; 163*e1eccf28SAndroid Build Coastguard Worker AllocationGenerateMipmapsFnPtr AllocationGenerateMipmaps; 164*e1eccf28SAndroid Build Coastguard Worker AllocationGetPointerFnPtr AllocationGetPointer; 165*e1eccf28SAndroid Build Coastguard Worker AllocationGetSurfaceFnPtr AllocationGetSurface; 166*e1eccf28SAndroid Build Coastguard Worker AllocationGetTypeFnPtr AllocationGetType; 167*e1eccf28SAndroid Build Coastguard Worker AllocationIoReceiveFnPtr AllocationIoReceive; 168*e1eccf28SAndroid Build Coastguard Worker AllocationIoSendFnPtr AllocationIoSend; 169*e1eccf28SAndroid Build Coastguard Worker AllocationReadFnPtr AllocationRead; 170*e1eccf28SAndroid Build Coastguard Worker AllocationResize1DFnPtr AllocationResize1D; 171*e1eccf28SAndroid Build Coastguard Worker AllocationSetSurfaceFnPtr AllocationSetSurface; 172*e1eccf28SAndroid Build Coastguard Worker AllocationSyncAllFnPtr AllocationSyncAll; 173*e1eccf28SAndroid Build Coastguard Worker AllocationSetupBufferQueueFnPtr AllocationSetupBufferQueue; 174*e1eccf28SAndroid Build Coastguard Worker AllocationShareBufferQueueFnPtr AllocationShareBufferQueue; 175*e1eccf28SAndroid Build Coastguard Worker AssignNameFnPtr AssignName; 176*e1eccf28SAndroid Build Coastguard Worker ClosureCreateFnPtr ClosureCreate; 177*e1eccf28SAndroid Build Coastguard Worker ClosureSetArgFnPtr ClosureSetArg; 178*e1eccf28SAndroid Build Coastguard Worker ClosureSetGlobalFnPtr ClosureSetGlobal; 179*e1eccf28SAndroid Build Coastguard Worker ContextCreateFnPtr ContextCreate; 180*e1eccf28SAndroid Build Coastguard Worker ContextCreateVendorFnPtr ContextCreateVendor; 181*e1eccf28SAndroid Build Coastguard Worker ContextDeinitToClientFnPtr ContextDeinitToClient; 182*e1eccf28SAndroid Build Coastguard Worker ContextDestroyFnPtr ContextDestroy; 183*e1eccf28SAndroid Build Coastguard Worker ContextDumpFnPtr ContextDump; 184*e1eccf28SAndroid Build Coastguard Worker ContextFinishFnPtr ContextFinish; 185*e1eccf28SAndroid Build Coastguard Worker ContextGetMessageFnPtr ContextGetMessage; 186*e1eccf28SAndroid Build Coastguard Worker ContextInitToClientFnPtr ContextInitToClient; 187*e1eccf28SAndroid Build Coastguard Worker ContextPeekMessageFnPtr ContextPeekMessage; 188*e1eccf28SAndroid Build Coastguard Worker ContextSendMessageFnPtr ContextSendMessage; 189*e1eccf28SAndroid Build Coastguard Worker ContextSetPriorityFnPtr ContextSetPriority; 190*e1eccf28SAndroid Build Coastguard Worker ContextSetCacheDirFnPtr ContextSetCacheDir; 191*e1eccf28SAndroid Build Coastguard Worker DeviceCreateFnPtr DeviceCreate; 192*e1eccf28SAndroid Build Coastguard Worker DeviceDestroyFnPtr DeviceDestroy; 193*e1eccf28SAndroid Build Coastguard Worker DeviceSetConfigFnPtr DeviceSetConfig; 194*e1eccf28SAndroid Build Coastguard Worker ElementCreate2FnPtr ElementCreate2; 195*e1eccf28SAndroid Build Coastguard Worker ElementCreateFnPtr ElementCreate; 196*e1eccf28SAndroid Build Coastguard Worker ElementGetNativeDataFnPtr ElementGetNativeData; 197*e1eccf28SAndroid Build Coastguard Worker ElementGetSubElementsFnPtr ElementGetSubElements; 198*e1eccf28SAndroid Build Coastguard Worker GetNameFnPtr GetName; 199*e1eccf28SAndroid Build Coastguard Worker InvokeClosureCreateFnPtr InvokeClosureCreate; 200*e1eccf28SAndroid Build Coastguard Worker ObjDestroyFnPtr ObjDestroy; 201*e1eccf28SAndroid Build Coastguard Worker SamplerCreateFnPtr SamplerCreate; 202*e1eccf28SAndroid Build Coastguard Worker ScriptBindAllocationFnPtr ScriptBindAllocation; 203*e1eccf28SAndroid Build Coastguard Worker ScriptCCreateFnPtr ScriptCCreate; 204*e1eccf28SAndroid Build Coastguard Worker ScriptFieldIDCreateFnPtr ScriptFieldIDCreate; 205*e1eccf28SAndroid Build Coastguard Worker ScriptForEachFnPtr ScriptForEach; 206*e1eccf28SAndroid Build Coastguard Worker ScriptForEachMultiFnPtr ScriptForEachMulti; 207*e1eccf28SAndroid Build Coastguard Worker ScriptGetVarVFnPtr ScriptGetVarV; 208*e1eccf28SAndroid Build Coastguard Worker ScriptGroup2CreateFnPtr ScriptGroup2Create; 209*e1eccf28SAndroid Build Coastguard Worker ScriptGroupCreateFnPtr ScriptGroupCreate; 210*e1eccf28SAndroid Build Coastguard Worker ScriptGroupExecuteFnPtr ScriptGroupExecute; 211*e1eccf28SAndroid Build Coastguard Worker ScriptGroupSetInputFnPtr ScriptGroupSetInput; 212*e1eccf28SAndroid Build Coastguard Worker ScriptGroupSetOutputFnPtr ScriptGroupSetOutput; 213*e1eccf28SAndroid Build Coastguard Worker ScriptIntrinsicCreateFnPtr ScriptIntrinsicCreate; 214*e1eccf28SAndroid Build Coastguard Worker ScriptInvokeFnPtr ScriptInvoke; 215*e1eccf28SAndroid Build Coastguard Worker ScriptInvokeIDCreateFnPtr ScriptInvokeIDCreate; 216*e1eccf28SAndroid Build Coastguard Worker ScriptInvokeVFnPtr ScriptInvokeV; 217*e1eccf28SAndroid Build Coastguard Worker ScriptKernelIDCreateFnPtr ScriptKernelIDCreate; 218*e1eccf28SAndroid Build Coastguard Worker ScriptReduceFnPtr ScriptReduce; 219*e1eccf28SAndroid Build Coastguard Worker ScriptSetTimeZoneFnPtr ScriptSetTimeZone; 220*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarDFnPtr ScriptSetVarD; 221*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarFFnPtr ScriptSetVarF; 222*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarIFnPtr ScriptSetVarI; 223*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarJFnPtr ScriptSetVarJ; 224*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarObjFnPtr ScriptSetVarObj; 225*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarVEFnPtr ScriptSetVarVE; 226*e1eccf28SAndroid Build Coastguard Worker ScriptSetVarVFnPtr ScriptSetVarV; 227*e1eccf28SAndroid Build Coastguard Worker TypeCreateFnPtr TypeCreate; 228*e1eccf28SAndroid Build Coastguard Worker TypeGetNativeDataFnPtr TypeGetNativeData; 229*e1eccf28SAndroid Build Coastguard Worker 230*e1eccf28SAndroid Build Coastguard Worker // Graphics API entries 231*e1eccf28SAndroid Build Coastguard Worker ContextCreateGLFnPtr ContextCreateGL; 232*e1eccf28SAndroid Build Coastguard Worker ContextPauseFnPtr ContextPause; 233*e1eccf28SAndroid Build Coastguard Worker ContextResumeFnPtr ContextResume; 234*e1eccf28SAndroid Build Coastguard Worker ContextBindProgramStoreFnPtr ContextBindProgramStore; 235*e1eccf28SAndroid Build Coastguard Worker ContextBindProgramFragmentFnPtr ContextBindProgramFragment; 236*e1eccf28SAndroid Build Coastguard Worker ContextBindProgramVertexFnPtr ContextBindProgramVertex; 237*e1eccf28SAndroid Build Coastguard Worker ContextBindProgramRasterFnPtr ContextBindProgramRaster; 238*e1eccf28SAndroid Build Coastguard Worker ContextBindFontFnPtr ContextBindFont; 239*e1eccf28SAndroid Build Coastguard Worker ContextSetSurfaceFnPtr ContextSetSurface; 240*e1eccf28SAndroid Build Coastguard Worker ContextBindRootScriptFnPtr ContextBindRootScript; 241*e1eccf28SAndroid Build Coastguard Worker ProgramStoreCreateFnPtr ProgramStoreCreate; 242*e1eccf28SAndroid Build Coastguard Worker ProgramRasterCreateFnPtr ProgramRasterCreate; 243*e1eccf28SAndroid Build Coastguard Worker ProgramBindConstantsFnPtr ProgramBindConstants; 244*e1eccf28SAndroid Build Coastguard Worker ProgramBindTextureFnPtr ProgramBindTexture; 245*e1eccf28SAndroid Build Coastguard Worker ProgramBindSamplerFnPtr ProgramBindSampler; 246*e1eccf28SAndroid Build Coastguard Worker ProgramFragmentCreateFnPtr ProgramFragmentCreate; 247*e1eccf28SAndroid Build Coastguard Worker ProgramVertexCreateFnPtr ProgramVertexCreate; 248*e1eccf28SAndroid Build Coastguard Worker FontCreateFromFileFnPtr FontCreateFromFile; 249*e1eccf28SAndroid Build Coastguard Worker FontCreateFromMemoryFnPtr FontCreateFromMemory; 250*e1eccf28SAndroid Build Coastguard Worker MeshCreateFnPtr MeshCreate; 251*e1eccf28SAndroid Build Coastguard Worker MeshGetVertexBufferCountFnPtr MeshGetVertexBufferCount; 252*e1eccf28SAndroid Build Coastguard Worker MeshGetIndexCountFnPtr MeshGetIndexCount; 253*e1eccf28SAndroid Build Coastguard Worker MeshGetVerticesFnPtr MeshGetVertices; 254*e1eccf28SAndroid Build Coastguard Worker MeshGetIndicesFnPtr MeshGetIndices; 255*e1eccf28SAndroid Build Coastguard Worker FileA3DGetEntryByIndexFnPtr FileA3DGetEntryByIndex; 256*e1eccf28SAndroid Build Coastguard Worker FileA3DGetNumIndexEntriesFnPtr FileA3DGetNumIndexEntries; 257*e1eccf28SAndroid Build Coastguard Worker FileA3DGetIndexEntriesFnPtr FileA3DGetIndexEntries; 258*e1eccf28SAndroid Build Coastguard Worker FileA3DCreateFromMemoryFnPtr FileA3DCreateFromMemory; 259*e1eccf28SAndroid Build Coastguard Worker FileA3DCreateFromAssetFnPtr FileA3DCreateFromAsset; 260*e1eccf28SAndroid Build Coastguard Worker FileA3DCreateFromFileFnPtr FileA3DCreateFromFile; 261*e1eccf28SAndroid Build Coastguard Worker }; 262*e1eccf28SAndroid Build Coastguard Worker 263*e1eccf28SAndroid Build Coastguard Worker bool loadSymbols(void* handle, dispatchTable& dispatchTab, int device_api = 0); 264*e1eccf28SAndroid Build Coastguard Worker 265*e1eccf28SAndroid Build Coastguard Worker #ifdef RS_COMPATIBILITY_LIB 266*e1eccf28SAndroid Build Coastguard Worker #include "jni.h" 267*e1eccf28SAndroid Build Coastguard Worker 268*e1eccf28SAndroid Build Coastguard Worker // USAGE_IO for RS Support lib 269*e1eccf28SAndroid Build Coastguard Worker typedef void (*sAllocationSetSurfaceFnPtr) (JNIEnv *, jobject, RsContext, RsAllocation, RsNativeWindow, dispatchTable); 270*e1eccf28SAndroid Build Coastguard Worker struct ioSuppDT { 271*e1eccf28SAndroid Build Coastguard Worker // USAGE_IO_OUTPUT 272*e1eccf28SAndroid Build Coastguard Worker sAllocationSetSurfaceFnPtr sAllocationSetSurface; 273*e1eccf28SAndroid Build Coastguard Worker }; 274*e1eccf28SAndroid Build Coastguard Worker 275*e1eccf28SAndroid Build Coastguard Worker bool loadIOSuppSyms(void* handleIO, ioSuppDT& ioDispatch); 276*e1eccf28SAndroid Build Coastguard Worker #endif // RS_COMPATIBILITY_LIB 277*e1eccf28SAndroid Build Coastguard Worker 278*e1eccf28SAndroid Build Coastguard Worker #endif 279