Exemple #1
0
 public override void Dispose()
 {
     foreach (var e in elements)
     {
         e.Dispose();
     }
     elements.Clear();
     bitmapRt?.Dispose();
 }
Exemple #2
0
 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);
        }
Exemple #4
0
 public override void Dispose()
 {
     _renderTarget.Dispose();
 }
Exemple #5
0
 public override void Dispose()
 {
     _target.Dispose();
 }
Exemple #6
0
 protected override void DXFreeResources()
 {
     bgraImageRenderer?.Dispose();
     image?.Dispose();
     whiteBrush?.Dispose();
 }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
        /// <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);
        }