private void Uninitialize()
        {
            _initialized = false;

            if (_timer != null)
            {
                _timer.Stop();
                _timer.Tick -= DispatcherTimer_Tick;
                _timer       = null;
            }

            if (_renderer != null)
            {
                _renderer.Dispose();
                _renderer = null;
            }

            if (_effect != null)
            {
                _effect.Dispose();
                _effect = null;
            }

            _filters         = null;
            _chromaKeyFilter = null;
            _rotationFilter  = null;
            _bitmap          = null;

            if (_source != null)
            {
                _source.Dispose();
                _source = null;
            }
        }
Esempio n. 2
0
        private void Cleanup()
        {
            System.Diagnostics.Debug.WriteLine("Cleaning up scanner");
            try
            {
                _Ready     = false;
                _Done      = true;
                _Rendering = true;

                _Controller   = null;
                _ImagePreview = null;
                _Effects      = null;

                _Render.Dispose();
                _Render = null;
                _Image  = null;

                _Source.StopPreviewAsync();
                _Source.PreviewFrameAvailable -= OnPreviewFrameAvailable;
                _Source.Dispose();
                _Source = null;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Cleaning up scanner. {0}", ex.Message);
            }
        }
 private void Cleanup()
 {
     if (!_cleanedUp)
     {
         // Free all - NECESSARY TO CLEANUP PROPERLY !
         _cameraPreviewImageSource.PreviewFrameAvailable -= OnPreviewFrameAvailable;
         _capturing = false;
         _cameraPreviewImageSource.Dispose();
         _writeableBitmapRenderer.Dispose();
         _cleanedUp = true;
     }
 }
        private async Task Render()
        {
            if (!_rendering && !_stop)
            {
                _rendering = true;

                // Render camera preview frame to screen
                _writeableBitmapRenderer.Source          = _cameraPreviewImageSource;
                _writeableBitmapRenderer.WriteableBitmap = _writeableBitmap;
                await _writeableBitmapRenderer.RenderAsync();

                await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                    CoreDispatcherPriority.High, () =>
                {
                    _writeableBitmap.Invalidate();
                });

                // Write camera preview frame to file if capturing
                if (_capturing)
                {
                    if (_sequenceIndex < 20)
                    {
                        _jpegRenderer.Source = _cameraPreviewImageSource;
                        IBuffer jpg = await _jpegRenderer.RenderAsync();
                        await Save(jpg, _sequenceIndex ++);
                    }
                    else
                    {
                        StartStopCapture();
                    }
                }

                _rendering = false;
            }

            if (_stop)
            {
                _capturing = false;
                _cameraPreviewImageSource.Dispose();
                _writeableBitmapRenderer.Dispose();
                _jpegRenderer.Dispose();
            }
        }
Esempio n. 5
0
        }//hide progressBar

        private async Task DisposeResourcesAsync()
        {
            HideCommandBar();
            DisposeArray();
            if (bitmapRenderer != null)
            {
                bitmapRenderer.Dispose();
            }
            bitmapRenderer = null;

            if (isPreviewing && (cameraSource != null))
            {
                await cameraSource.StopPreviewAsync();

                cameraSource.Dispose();
            }
            cameraSource = null;
            GC.Collect();
        }//dispose page resources
        private void EndSession()
        {
            if (_renderer != null)
            {
                _renderer.Dispose();
                _renderer = null;
            }
            if (_filterEffect != null)
            {
                _filterEffect.Dispose();
                _filterEffect = null;
            }

            if (_source != null)
            {
                _source.Dispose();
                _source = null;
            }

            _reframingFilter = null;
            _info            = null;
        }