protected override void OnDisconnected()
        {
            if (CompositionBrush != null)
            {
                IsConnected = false;

                canvasDevice.Dispose();
                canvasDevice = null;
                graphicsDevice.Dispose();
                graphicsDevice = null;

                surfaceBrush1.Dispose();
                surfaceBrush1 = null;
                surfaceBrush2.Dispose();
                surfaceBrush2 = null;

                surface1.Dispose();
                surface1 = null;
                surface2.Dispose();
                surface2 = null;

                Source1Animation.Dispose();
                Source1Animation = null;
                Source2Animation.Dispose();
                Source2Animation = null;

                colorBrush1.Dispose();
                colorBrush1 = null;
                colorBrush2.Dispose();
                colorBrush2 = null;

                CompositionBrush.Dispose();
                CompositionBrush = null;
            }
        }
Example #2
0
 public void Dispose()
 {
     _surface.Dispose();
     _imageLoader.DeviceReplacedEvent -= OnDeviceReplaced;
     _surface     = null;
     _imageLoader = null;
 }
Example #3
0
        public void Dispose()

        {
            if (_surface != null)

            {
                _surface.Dispose();

                _surface = null;
            }



            if (_brush != null)

            {
                _brush.Dispose();

                _brush = null;
            }



            _drawer = null;



            //ImageLoader.Instance.UnregisterSurface(this);
        }
        // This animation has constant duration, speedy changes depending on the distance
        // between sourceElement and targetElement.
        public async Task StartAnimation2(FrameworkElement sourceElement, FrameworkElement targetElement)
        {
            Point point = sourceElement.TransformToVisual(_rootElement).TransformPoint(new Point(0, 0));

            CompositionDrawingSurface surface = await CompositionDrawingSurfaceFacade1.GetCompositionDrawingSurface(sourceElement, _compositor);

            SpriteVisual spriteVisual = _compositor.CreateSpriteVisual();

            spriteVisual.Brush  = _compositor.CreateSurfaceBrush(surface);
            spriteVisual.Size   = new Vector2((float)surface.Size.Width, (float)surface.Size.Height);
            spriteVisual.Offset = new Vector3((float)point.X, (float)point.Y, 0f);
            _containerVisual.Children.InsertAtBottom(spriteVisual);

            Vector3 targetOffset = GetTargetOffset(targetElement);
            Vector3KeyFrameAnimation offsetAnimation = _compositor.CreateVector3KeyFrameAnimation();

            Vector2 targetSize = GetTargetSize(targetElement);
            Vector2KeyFrameAnimation sizeAnimation = _compositor.CreateVector2KeyFrameAnimation();

            var newWidth  = (float)(sourceElement.ActualWidth * 1.3);
            var newHeight = (float)(sourceElement.ActualHeight * 1.3);
            var newX      = (float)(point.X - (newWidth - sourceElement.ActualWidth) / 2);
            var newY      = (float)(point.Y - (newHeight - sourceElement.ActualHeight) / 2);

            double sizeDurationInMs      = 250;
            double distance              = Math.Sqrt(Math.Pow(targetOffset.X - newX, 2) + Math.Pow(targetOffset.Y - newY, 2));
            double offsetDurationInMs    = distance / 2;
            double animationDurationInMs = sizeDurationInMs + offsetDurationInMs;

            sizeAnimation.Duration   = TimeSpan.FromMilliseconds(animationDurationInMs);
            offsetAnimation.Duration = TimeSpan.FromMilliseconds(animationDurationInMs);

            SetAnimationDefautls(offsetAnimation);
            SetAnimationDefautls(sizeAnimation);

            var normalizedProgressKey0 = (float)(sizeDurationInMs / animationDurationInMs);

            offsetAnimation.InsertKeyFrame(normalizedProgressKey0, new Vector3(newX, newY, 0f));
            sizeAnimation.InsertKeyFrame(normalizedProgressKey0, new Vector2(newWidth, newHeight));

            const float normalizedProgressKey1 = 1f;

            offsetAnimation.InsertKeyFrame(normalizedProgressKey1, targetOffset, _compositor.CreateLinearEasingFunction());
            sizeAnimation.InsertKeyFrame(normalizedProgressKey1, targetSize, _compositor.CreateLinearEasingFunction());

            CompositionScopedBatch myScopedBatch = _compositor.CreateScopedBatch(CompositionBatchTypes.Animation);
            var batchCompletitionAwaiter         = new BatchCompletitionAwaiter(myScopedBatch);

            spriteVisual.StartAnimation("Offset", offsetAnimation);
            spriteVisual.StartAnimation("Size", sizeAnimation);
            myScopedBatch.End();
            await batchCompletitionAwaiter.Completed();

            myScopedBatch.Dispose();
            spriteVisual.Dispose();
            surface.Dispose();
            offsetAnimation.Dispose();
            sizeAnimation.Dispose();
        }
 /// <summary>
 /// Disposes the resources used by the mask
 /// </summary>
 public void Dispose()
 {
     _surface?.Dispose();
     _geometry?.Dispose();
     _generator.DeviceReplaced -= OnDeviceReplaced;
     _surface   = null;
     _generator = null;
     _geometry  = null;
 }
Example #6
0
        public void Dispose()
        {
            _surface.Dispose();
            _surface = null;
            var visual = ElementCompositionPreview.GetElementChildVisual(RootGrid);

            ElementCompositionPreview.SetElementChildVisual(RootGrid, null);
            visual.Dispose();
        }
        private void ReleaseContent()
        {
            if (_surface != null)
            {
                _surface.Dispose();
                _surface = null;
            }

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

            if (_effectBrush != null)
            {
                _effectBrush.Dispose();
                _effectBrush = null;
            }
        }
Example #8
0
 /// <summary>
 /// Disposes the resources used by the GaussianMaskSurface
 /// </summary>
 public void Dispose()
 {
     _surface?.Dispose();
     Geometry?.Dispose();
     if (_generator != null)
     {
         _generator.DeviceReplaced -= OnDeviceReplaced;
     }
     _surface   = null;
     _generator = null;
     Geometry   = null;
 }
 private void ReleaseSurface()
 {
     if (_surface != null)
     {
         // If no one has asked to share, dispose it to free the memory
         if (!_sharedSurface)
         {
             _surface.Dispose();
             _surfaceBrush.Surface = null;
         }
         _surface = null;
     }
 }
 /// <summary>
 /// Disposes the resources used by the SurfaceImage
 /// </summary>
 public void Dispose()
 {
     _surface?.Dispose();
     if (_generator != null)
     {
         _generator.DeviceReplaced -= OnDeviceReplaced;
     }
     _canvasBitmap?.Dispose();
     _canvasBitmap = null;
     _surface      = null;
     _generator    = null;
     _uri          = null;
     Options       = null;
 }
Example #11
0
        void OnUnloaded(object sender, RoutedEventArgs e)
        {
            Unloaded -= OnUnloaded;
            Loading  -= OnLoading;

            _device?.Dispose();
            _device = null;

            _graphdevice?.Dispose();
            _graphdevice = null;

            _drawsurface?.Dispose();
            _drawsurface = null;
        }
Example #12
0
        private void Dispose(bool IsDisposing)
        {
            _visual?.Dispose();
            _visual = null;

            _brush?.Dispose();
            _brush = null;

            _surface?.Dispose();
            _surface = null;

            _animations?.Dispose();
            _animations = null;

            if (IsDisposing)
            {
                GC.SuppressFinalize(this);
            }
        }
        /// <summary>
        /// Disposes the resources used by the GeometrySurface
        /// </summary>
        public void Dispose()
        {
            _surface?.Dispose();
            _geometry?.Dispose();
            if (_generator != null)
            {
                _generator.DeviceReplaced -= OnDeviceReplaced;
            }
            _stroke.Brush.Dispose();
            _fill.Dispose();
            _backgroundBrush.Dispose();

            _stroke          = null;
            _fill            = null;
            _backgroundBrush = null;
            _surface         = null;
            _generator       = null;
            _geometry        = null;
        }
Example #14
0
 public void Dispose()
 {
     _drawingBrush.Dispose();
     _drawingSurface.Dispose();
     _graphicsDevice.Dispose();
 }