public override void Dispose() { foreach (var e in elements) { e.Dispose(); } elements.Clear(); bitmapRt?.Dispose(); }
private void DisposeRenderTargets() { if (_compositeRenderTarget != null) { _compositeRenderTarget.Dispose(); } _compositeRenderTarget = null; if (_windowRenderTarget != null) { _windowRenderTarget.Dispose(); } _windowRenderTarget = null; }
/// <summary> /// Release the unmanaged resources used by the <see cref="Direct3DSurface"/> and it's child controls and optionally releases the managed resources. /// </summary> /// <param name="disposing">True to release managed resources and unmanaged resources. False to only release unmanaged resources.</param> protected void Dispose(bool disposing) { if (!disposing) { Coordinates.Clear(); Values.Clear(); _tileTexture2D.Dispose(); _renderTargetView.Dispose(); _dxgiSurface.Dispose(); _renderTarget2D.Dispose(); _bitmapRenderTarget.Dispose(); _vertexBuffer.Dispose(); _indexBuffer.Dispose(); _vertexShader.Dispose(); _pixelShader.Dispose(); _inputLayout.Dispose(); } // base.Dispose(disposing); }
public override void Dispose() { _renderTarget.Dispose(); }
public override void Dispose() { _target.Dispose(); }
protected override void DXFreeResources() { bgraImageRenderer?.Dispose(); image?.Dispose(); whiteBrush?.Dispose(); }
public static Brush GetPatternBrush(RenderTarget renderTarget, System.Drawing.Color fillColor, float opacity, xPFT.Charting.Base.FillPattern fillPattern, float patternSize = 10) { if (renderTarget != null) { BitmapRenderTarget brt = new BitmapRenderTarget(renderTarget, CompatibleRenderTargetOptions.None, new SharpDX.Size2F(patternSize, patternSize)); Brush tempBrush = new SolidColorBrush(brt, xPFT.DrawingBase.Convertor.ColorConvertor(fillColor, opacity)); if (fillPattern == xPFT.Charting.Base.FillPattern.Solid) { return(tempBrush); } brt.BeginDraw(); brt.Clear(Color.Transparent); switch (fillPattern) { case xPFT.Charting.Base.FillPattern.Hachure_Double: brt.DrawLine(new SharpDX.Vector2(0, 0), new SharpDX.Vector2(patternSize, patternSize), tempBrush, 1); brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(0, patternSize), tempBrush, 1); break; case xPFT.Charting.Base.FillPattern.Hachure: brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(0, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Hashure_Back: brt.DrawLine(new SharpDX.Vector2(0, 0), new SharpDX.Vector2(patternSize, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Dash: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 4), new SharpDX.Vector2(patternSize / 4, patternSize / 4), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize * 3 / 4, patternSize / 4), new SharpDX.Vector2(patternSize, patternSize / 4), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 4, patternSize * 3 / 4), new SharpDX.Vector2(patternSize * 3 / 4, patternSize * 3 / 4), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Squre: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 2), new SharpDX.Vector2(patternSize, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 2, 0), new SharpDX.Vector2(patternSize / 2, patternSize), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Dot: brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize / 4, patternSize / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize / 4, patternSize * 3 / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize * 3 / 4, patternSize / 4), 1, 1), tempBrush); brt.FillEllipse(new SharpDX.Direct2D1.Ellipse(new SharpDX.Vector2(patternSize * 3 / 4, patternSize * 3 / 4), 1, 1), tempBrush); break; case xPFT.Charting.Base.FillPattern.Zig_Zag_Horizontal: brt.DrawLine(new SharpDX.Vector2(0, patternSize / 2), new SharpDX.Vector2(patternSize / 2, 0), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize / 2), new SharpDX.Vector2(patternSize / 2, 0), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(0, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); break; case xPFT.Charting.Base.FillPattern.Zig_Zag_Vertical: brt.DrawLine(new SharpDX.Vector2(patternSize / 2, 0), new SharpDX.Vector2(0, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize / 2, patternSize), new SharpDX.Vector2(0, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, 0), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); brt.DrawLine(new SharpDX.Vector2(patternSize, patternSize), new SharpDX.Vector2(patternSize / 2, patternSize / 2), tempBrush, 0.5f); break; } brt.EndDraw(); BitmapBrushProperties bmpbp = new BitmapBrushProperties(); bmpbp.ExtendModeX = ExtendMode.Wrap; bmpbp.ExtendModeY = ExtendMode.Wrap; bmpbp.InterpolationMode = BitmapInterpolationMode.Linear; BitmapBrush br = new BitmapBrush(brt, brt.Bitmap, bmpbp); tempBrush.Dispose(); brt.Dispose(); return(br); } else { return(null); } }
/// <summary> /// Dispose of resources (IDisposable implementation) /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param> protected override void Dispose(bool disposing) { if (disposing && !disposed) { lock (renderSyncObject) { render = null; lock (sharedSyncObject) { if (sharedD2DFactory != null && d2DFactory == sharedD2DFactory) { sharedRefCount--; } if (d2DFactory != null && d2DFactory != sharedD2DFactory) { d2DFactory.Dispose(); } d2DFactory = null; if (dwriteFactory != null && dwriteFactory != sharedDwriteFactory) { dwriteFactory.Dispose(); } dwriteFactory = null; if (wicFactory != null && wicFactory != sharedWicFactory) { wicFactory.Dispose(); } wicFactory = null; if (sharedRefCount == 0) { if (sharedD2DFactory != null) { sharedD2DFactory.Dispose(); } sharedD2DFactory = null; if (sharedDwriteFactory != null) { sharedDwriteFactory.Dispose(); } sharedDwriteFactory = null; if (sharedWicFactory != null) { sharedWicFactory.Dispose(); } sharedWicFactory = null; } } foreach (DrawingShape shape in drawingShapes) { shape.Dispose(); } if (bitmap != null) { bitmap.Dispose(); } bitmap = null; if (dcRenderTarget != null) { dcRenderTarget.Dispose(); } dcRenderTarget = null; if (bitmapRenderTarget != null) { bitmapRenderTarget.Dispose(); } bitmapRenderTarget = null; if (hwndRenderTarget != null) { hwndRenderTarget.Dispose(); } hwndRenderTarget = null; disposed = true; } } base.Dispose(disposing); }