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; } }
public void Dispose() { _surface.Dispose(); _imageLoader.DeviceReplacedEvent -= OnDeviceReplaced; _surface = null; _imageLoader = null; }
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; }
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; } }
/// <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; }
void OnUnloaded(object sender, RoutedEventArgs e) { Unloaded -= OnUnloaded; Loading -= OnLoading; _device?.Dispose(); _device = null; _graphdevice?.Dispose(); _graphdevice = null; _drawsurface?.Dispose(); _drawsurface = null; }
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; }
public void Dispose() { _drawingBrush.Dispose(); _drawingSurface.Dispose(); _graphicsDevice.Dispose(); }