Exemplo n.º 1
0
        static void Main(string[] args)
        {
            WindowCreateInfo windowCI = new WindowCreateInfo()
            {
                X            = 100,
                Y            = 100,
                WindowWidth  = 960,
                WindowHeight = 540,
                WindowTitle  = "Veldrid Tutorial"
            };
            Sdl2Window window = VeldridStartup.CreateWindow(ref windowCI);

            GraphicsDeviceCreateInfo gdCI = new GraphicsDeviceCreateInfo();

            _graphicsDevice = VeldridStartup.CreateGraphicsDevice(ref gdCI, window);

            CreateResources();

            while (window.Exists)
            {
                window.PumpEvents();

                if (window.Exists)
                {
                    Draw();
                }
            }

            DisposeResources();
        }
Exemplo n.º 2
0
        public NeoDemo()
        {
            WindowCreateInfo windowCI = new WindowCreateInfo
            {
                X                  = 50,
                Y                  = 50,
                WindowWidth        = 960,
                WindowHeight       = 540,
                WindowInitialState = WindowState.Normal,
                WindowTitle        = "Veldrid NeoDemo"
            };
            GraphicsDeviceCreateInfo gdCI = new GraphicsDeviceCreateInfo();

            //gdCI.Backend = GraphicsBackend.Vulkan;
#if DEBUG
            gdCI.DebugDevice = true;
#endif

            VeldridStartup.CreateWindowAndGraphicsDevice(ref windowCI, ref gdCI, out _window, out _gd);
            _window.Resized += () => _windowResized = true;

            CommandList initCL = _gd.ResourceFactory.CreateCommandList();
            _gd.SetResourceName(initCL, "Initialization Command List");
            initCL.Begin();

            _scene = new Scene(_window.Width, _window.Height);

            _sc.SetCurrentScene(_scene, initCL);

            _igRenderable   = new ImGuiRenderable(_window.Width, _window.Height);
            _resizeHandled += (w, h) => _igRenderable.WindowResized(w, h);
            _scene.AddRenderable(_igRenderable);
            _scene.AddUpdateable(_igRenderable);

            Skybox skybox = Skybox.LoadDefaultSkybox();
            _scene.AddRenderable(skybox);

            AddSponzaAtriumObjects(initCL);
            _sc.Camera.Position = new Vector3(-80, 25, -4.3f);
            _sc.Camera.Yaw      = -MathF.PI / 2;
            _sc.Camera.Pitch    = -MathF.PI / 9;

            ShadowmapDrawer texDrawer = new ShadowmapDrawer(() => _window, () => _sc.NearShadowMapView);
            _resizeHandled    += (w, h) => texDrawer.OnWindowResized();
            texDrawer.Position = new Vector2(10, 25);
            _scene.AddRenderable(texDrawer);

            ShadowmapDrawer texDrawer2 = new ShadowmapDrawer(() => _window, () => _sc.MidShadowMapView);
            _resizeHandled     += (w, h) => texDrawer2.OnWindowResized();
            texDrawer2.Position = new Vector2(20 + texDrawer2.Size.X, 25);
            _scene.AddRenderable(texDrawer2);

            ShadowmapDrawer texDrawer3 = new ShadowmapDrawer(() => _window, () => _sc.FarShadowMapView);
            _resizeHandled     += (w, h) => texDrawer3.OnWindowResized();
            texDrawer3.Position = new Vector2(30 + (texDrawer3.Size.X * 2), 25);
            _scene.AddRenderable(texDrawer3);

            CreateAllObjects();
        }
Exemplo n.º 3
0
        public TexturedCube()
        {
            WindowCreateInfo wci = new WindowCreateInfo
            {
                X            = 100,
                Y            = 100,
                WindowWidth  = 960,
                WindowHeight = 540,
                WindowTitle  = "Textured Cube"
            };

            _window = VeldridStartup.CreateWindow(ref wci);

            GraphicsDeviceCreateInfo gdci = new GraphicsDeviceCreateInfo();

#if DEBUG
            gdci.DebugDevice = true;
#endif
            _gd = VeldridStartup.CreateGraphicsDevice(ref gdci, _window);
        }
Exemplo n.º 4
0
        public ComputeTexture()
        {
            WindowCreateInfo wci = new WindowCreateInfo
            {
                X            = 100,
                Y            = 100,
                WindowWidth  = 960,
                WindowHeight = 540,
                WindowTitle  = "Compute Texture"
            };

            _window          = VeldridStartup.CreateWindow(ref wci);
            _window.Resized += () => _windowResized = true;

            GraphicsDeviceCreateInfo gdci = new GraphicsDeviceCreateInfo();

#if DEBUG
            gdci.DebugDevice = true;
#endif
            _gd = VeldridStartup.CreateGraphicsDevice(ref gdci, _window);
        }
Exemplo n.º 5
0
        private void ChangeBackend(GraphicsBackend backend)
        {
            DestroyAllObjects();

            _gd.Dispose();

            if (_recreateWindow)
            {
                WindowCreateInfo windowCI = new WindowCreateInfo
                {
                    X                  = _window.X,
                    Y                  = _window.Y,
                    WindowWidth        = _window.Width,
                    WindowHeight       = _window.Height,
                    WindowInitialState = _window.WindowState,
                    WindowTitle        = "Veldrid NeoDemo"
                };

                _window.Close();

                _window          = VeldridStartup.CreateWindow(ref windowCI);
                _window.Resized += () => _windowResized = true;
            }

            GraphicsDeviceCreateInfo rcCI = new GraphicsDeviceCreateInfo
            {
                Backend = backend,
#if DEBUG
                DebugDevice = true
#endif
            };

            _gd = VeldridStartup.CreateGraphicsDevice(ref rcCI, _window);

            CreateAllObjects();
        }