Esempio n. 1
0
        private void OnGraphPanel_SizeChanged(PointD2D newSize)
        {
            if (!(newSize.X > 0 && newSize.Y > 0))
            {
                return;
            }

            if (null == _renderer)
            {
                _d3dCanvas.Source = new D3D10ImageSource(Controller?.Doc?.Name);
                _renderer         = new D3D10RendererToImageSource(_scene, (D3D10ImageSource)_d3dCanvas.Source, Controller?.Doc?.Name);
                // invalidate the cached graph sizes in order to force a new rendering
                _cachedGraphSize_Pixels   = new System.Drawing.Size(0, 0);
                _cachedGraphSize_96thInch = new PointD2D(0, 0);
            }

            if (newSize != _cachedGraphSize_96thInch)
            {
                _cachedGraphSize_96thInch = newSize;
                var screenResolution = Current.Gui.ScreenResolutionDpi;
                var graphSizePixels  = screenResolution * _cachedGraphSize_96thInch / 96.0;
                _cachedGraphSize_Pixels = new System.Drawing.Size((int)graphSizePixels.X, (int)graphSizePixels.Y);

                _renderer.SetRenderSize(_cachedGraphSize_Pixels.Width, _cachedGraphSize_Pixels.Height);

                Controller?.EhView_GraphPanelSizeChanged(); // inform controller
            }
        }
Esempio n. 2
0
        public void AnnounceContentVisibilityChanged(bool isVisible)
        {
            _isGraphVisible = isVisible;
            // System.Diagnostics.Debug.WriteLine("Visibility of Graph {0} is now {1} Canvas: {2}x{3}", Controller?.Doc?.Name, _isGraphVisible, _guiCanvas.ActualWidth, _guiCanvas.ActualHeight);

            if (_isGraphVisible)
            {
                OnGraphPanel_SizeChanged(new PointD2D(_guiCanvas.ActualWidth, _guiCanvas.ActualHeight));
            }
            else
            {
                var tempRenderer = _renderer;
                _renderer = null;
                tempRenderer?.Dispose();

                var oldSource = (D3D10ImageSource)_d3dCanvas.Source;
                _d3dCanvas.Source = null;
                oldSource?.Dispose();
            }
        }