예제 #1
0
        public CameraInteraction(RenderViewConfiguration renderConfig, ShowContentControl showContentControl)
        {
            MaxMoveVelocity               = (float)App.Current.ProjectSettings.GetOrSetDefault("Tooll.SelectionView.Camera.MaxVelocity", MAX_MOVE_VELOCITY_DEFAULT);
            _cameraAcceleration           = (float)App.Current.ProjectSettings.GetOrSetDefault("Tooll.SelectionView.Camera.Acceleration", CAMERA_ACCELERATION_DEFAULT);
            _frictionKeyboardManipulation = (float)App.Current.ProjectSettings.GetOrSetDefault("Tooll.SelectionView.Camera.Friction", 0.3f);
            _showContentControl           = showContentControl;
            _renderConfig = renderConfig;

            _spaceMouse       = new SpaceMouse(this, renderConfig);
            GizmoPartHitIndex = -1;
        }
예제 #2
0
        /** Used for live preview */
        internal D3DImageSharpDX RenderImageForPreset(OperatorPreset preset, RenderViewConfiguration referenceConfig = null)
        {
            if (referenceConfig == null)
            {
                referenceConfig = App.Current.MainWindow.XRenderView.XShowContentControl.RenderConfiguration;
            }

            var renderSetup = CreateOrReuseRenderSetup(referenceConfig);

            _renderSetupsByPreset[preset] = renderSetup;

            return(renderSetup.RenderToD3dImage());
        }
예제 #3
0
        public FullScreenView(RenderViewConfiguration renderConfig)
        {
            _renderConfig = renderConfig;
            App.Current.MainWindow.Hide();
            System.Windows.Forms.Cursor.Hide();

            KeyDown          += KeyDownHandler;
            KeyUp            += KeyUpHandler;
            MouseDown        += MouseDownHandler;
            MouseUp          += MouseUpHandler;
            MouseWheel       += MouseWheelHandler;
            MouseMove        += MouseMoveHandler;
            MouseDoubleClick += MouseDoubleClickHandler;
            CurrentTime       = 0;
            PlaySpeed         = 0;
            FormBorderStyle   = FormBorderStyle.None;


            var settings = new ContextSettings();

            settings.DisplayMode = new SharpDX.Direct3D9.DisplayMode()
            {
                Width       = (int)App.Current.ProjectSettings.GetOrSetDefault("Tooll.FullScreen.Resolution.Width", 1920),
                Height      = (int)App.Current.ProjectSettings.GetOrSetDefault("Tooll.FullScreen.Resolution.Height", 1080),
                RefreshRate = 60,
                Format      = SharpDX.Direct3D9.Format.A8R8G8B8
            };
            settings.AspectRatio = settings.DisplayMode.AspectRatio;

            var displayNumber = int.Parse(App.Current.ProjectSettings.GetOrSetDefault("Tooll.FullScreen.DisplayNumber", "1"));

            displayNumber = Utilities.Clamp(displayNumber, 0, Screen.AllScreens.GetLength(0) - 1);
            Location      = Screen.AllScreens[displayNumber].WorkingArea.Location;

            CurrentTime = App.Current.Model.GlobalTime;
            PlaySpeed   = App.Current.MainWindow.CompositionView.PlaySpeed;
            App.Current.MainWindow.CompositionView.PlaySpeed = 0;

            Run(settings);

            App.Current.Model.GlobalTime = CurrentTime;
            App.Current.MainWindow.CompositionView.PlaySpeed = PlaySpeed;

            App.Current.MainWindow.Show();
            App.Current.MainWindow.Activate();
            App.Current.MainWindow.InvalidateVisual();
            App.Current.MainWindow.XCompositionViewDock.Focus();
            System.Windows.Forms.Cursor.Show();
        }
        /* This requires ShowSceneControl to have been loaded */
        private void LateInit()
        {
            RenderConfiguration = new RenderViewConfiguration()
            {
                ShowGridAndGizmos = true,
                TransformGizmo    = new TransformGizmo(),
            };


            _camSetupProvider = new ViewCameraSetupProvider(RenderConfiguration);
            _renderSetup      = new D3DRenderSetup(RenderConfiguration);
            SetupRenderer();

            CameraInteraction = new CameraInteraction(
                RenderConfiguration,
                this);
        }
예제 #5
0
        private D3DRenderSetup CreateOrReuseRenderSetup(RenderViewConfiguration referenceConfig = null)
        {
            if (_renderSetupPool.Count > 0)
            {
                var setup = _renderSetupPool.Dequeue();
                setup.RenderConfig.CameraSetup = referenceConfig.CameraSetup;
                setup.RenderConfig.Operator    = referenceConfig.Operator;
                setup.RenderConfig.RenderWithGammaCorrection = referenceConfig.RenderWithGammaCorrection;
                return(setup);
            }

            Logger.Info("Creating new renderSetup of Preset-thumb");

            var clonedRenderConfig = referenceConfig.Clone();

            clonedRenderConfig.Width  = THUMB_WIDTH;
            clonedRenderConfig.Height = THUMB_HEIGHT;
            var renderSetup = new D3DRenderSetup(clonedRenderConfig);

            return(renderSetup);
        }