public void Execute() { DracoMesh * dracoMeshPtr; DracoMesh **dracoMeshPtrPtr = &dracoMeshPtr; void * decoder; void * buffer; var decodeResult = DecodeDracoMeshStep1(encodedData, size, dracoMeshPtrPtr, &decoder, &buffer); result[0] = decodeResult; if (decodeResult < 0) { return; } dracoTempResources[meshPtrIndex] = (IntPtr)dracoMeshPtr; dracoTempResources[decoderPtrIndex] = (IntPtr)decoder; dracoTempResources[bufferPtrIndex] = (IntPtr)buffer; result[0] = 0; }
// Decodes compressed Draco::Mesh in buffer to mesh. On input, mesh // must be null. The returned mesh must released with ReleaseDracoMesh. [DllImport("dracodec_unity")] private static extern int DecodeDracoMesh( byte[] buffer, int length, DracoMesh **mesh);
// Release data associated with DracoMesh. [DllImport("dracodec_unity")] private static extern void ReleaseDracoMesh( DracoMesh **mesh);
// Decodes compressed Draco::Mesh in buffer to mesh. On input, mesh // must be null. The returned mesh must released with ReleaseDracoMesh. [DllImport(DRACODEC_UNITY_LIB)] private static extern int DecodeDracoMesh( byte[] buffer, int length, DracoMesh **mesh);
// Release data associated with DracoMesh. [DllImport(DRACODEC_UNITY_LIB)] private static extern void ReleaseDracoMesh( DracoMesh **mesh);
// Decodes compressed Draco::Mesh in buffer to mesh. On input, mesh // must be null. The returned mesh must released with ReleaseDracoMesh. [DllImport(DRACODEC_UNITY_LIB)] unsafe static extern int DecodeDracoMeshStep2( DracoMesh **mesh, void *decoder, void *decoderBuffer);
// Decodes compressed Draco::Mesh in buffer to mesh. On input, mesh // must be null. The returned mesh must released with ReleaseDracoMesh. [DllImport(DRACODEC_UNITY_LIB)] unsafe static extern int DecodeDracoMeshStep1( byte *buffer, int length, DracoMesh **mesh, void **decoder, void **decoderBuffer);
private static extern int DecodeDracoMesh( byte[] buffer, int length, DracoMesh **mesh);
private static extern void ReleaseDracoMesh( DracoMesh **mesh);