public ImageFrame(ImageFormat format, int width, int height, int widthStep, NativeArray <byte> pixelData) { FreeMemoryHandler memoryHandler = (IntPtr ptr) => { pixelData.Dispose(); }; freePixelDataHandle = GCHandle.Alloc(memoryHandler, GCHandleType.Pinned); unsafe { ptr = UnsafeNativeMethods.MpImageFrameCreateWithPixelData( (int)format, width, height, widthStep, (IntPtr)NativeArrayUnsafeUtility.GetUnsafeReadOnlyPtr(pixelData), Marshal.GetFunctionPointerForDelegate(memoryHandler) ); } base.TakeOwnership(ptr); }
public Api(string dllPath, CallBack callback) : base(dllPath) { _initialize = GetHandler <InitializeHandler>("Initialize"); _uninitialize = GetHandler <UninitializeHandler>("UnInitialize"); _freeMemory = GetHandler <FreeMemoryHandler>("FreeMemory"); _setLogLevel = GetHandler <SetLogLevelHandler>("SetLogLevel"); _sendCommand = GetHandler <SendCommandHandler>("SendCommand"); _setCallback = GetHandler <SetCallbackHandler>("SetCallback"); //_setCallbackEx = GetHandler<SetCallbackExHandler>("SetCallbackEx"); _callback = callback; SetCallback(_callback); // SetCallbackEx(OnCallBackEx, IntPtr.Zero); }
public Api(string dllPath, CallBack callback) : base(dllPath) { _initialize = GetHandler<InitializeHandler>("Initialize"); _uninitialize = GetHandler<UninitializeHandler>("UnInitialize"); _freeMemory = GetHandler<FreeMemoryHandler>("FreeMemory"); _setLogLevel = GetHandler<SetLogLevelHandler>("SetLogLevel"); _sendCommand = GetHandler<SendCommandHandler>("SendCommand"); _setCallback = GetHandler<SetCallbackHandler>("SetCallback"); //_setCallbackEx = GetHandler<SetCallbackExHandler>("SetCallbackEx"); _callback = callback; SetCallback(_callback); // SetCallbackEx(OnCallBackEx, IntPtr.Zero); }