private void CreateAllObjects() { _frameCommands = _gd.ResourceFactory.CreateCommandList(); _frameCommands.Name = "Frame Commands List"; CommandList initCL = _gd.ResourceFactory.CreateCommandList(); initCL.Name = "Recreation Initialization Command List"; initCL.Begin(); _sc.CreateDeviceObjects(_gd, initCL, _sc); CommonMaterials.CreateAllDeviceObjects(_gd, initCL, _sc); _scene.CreateAllDeviceObjects(_gd, initCL, _sc); initCL.End(); _gd.SubmitCommands(initCL); initCL.Dispose(); }
public NeoDemo() { WindowCreateInfo windowCI = new WindowCreateInfo { X = 50, Y = 50, WindowWidth = 960, WindowHeight = 540, WindowInitialState = WindowState.Normal, WindowTitle = "Veldrid NeoDemo" }; RenderContextCreateInfo rcCI = new RenderContextCreateInfo(); rcCI.DebugContext = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); VeldridStartup.CreateWindowAndRenderContext(ref windowCI, ref rcCI, out _window, out _rc); _window.Resized += () => _windowResized = true; _sc.CreateDeviceObjects(_rc); CommonMaterials.CreateAllDeviceObjects(_rc); _scene = new Scene(_window.Width, _window.Height); _sc.SetCurrentScene(_scene); _igRenderable = new ImGuiRenderable(_window.Width, _window.Height); _resizeHandled += (w, h) => _igRenderable.WindowResized(w, h); _igRenderable.CreateDeviceObjects(_rc); _scene.AddRenderable(_igRenderable); _scene.AddUpdateable(_igRenderable); InfiniteGrid grid = new InfiniteGrid(); grid.CreateDeviceObjects(_rc); _scene.AddRenderable(grid); Skybox skybox = Skybox.LoadDefaultSkybox(); skybox.CreateDeviceObjects(_rc); _scene.AddRenderable(skybox); AddTexturedMesh( "Textures/spnza_bricks_a_diff.png", PrimitiveShapes.Box(10, 10, 10, 10), new Vector3(0, 0, -5), Quaternion.Identity, Vector3.One); AddTexturedMesh( "Textures/spnza_bricks_a_diff.png", PrimitiveShapes.Box(5, 5, 5, 5f), new Vector3(-3, -9, 2), Quaternion.Identity, Vector3.One); AddTexturedMesh( "Textures/spnza_bricks_a_diff.png", PrimitiveShapes.Box(27, 3, 27, 27f), new Vector3(-5, -16, 5), Quaternion.Identity, Vector3.One); AddTexturedMesh( "Textures/spnza_bricks_a_diff.png", PrimitiveShapes.Plane(100, 100, 5), new Vector3(0, -20, 0), Quaternion.Identity, Vector3.One); ShadowmapDrawer texDrawer = new ShadowmapDrawer(_window, () => _sc.NearShadowMapBinding); texDrawer.CreateDeviceObjects(_rc); texDrawer.Position = new Vector2(10, 25); _scene.AddRenderable(texDrawer); texDrawer = new ShadowmapDrawer(_window, () => _sc.MidShadowMapBinding); texDrawer.CreateDeviceObjects(_rc); texDrawer.Position = new Vector2(20 + texDrawer.Size.X, 25); _scene.AddRenderable(texDrawer); texDrawer = new ShadowmapDrawer(_window, () => _sc.FarShadowMapBinding); texDrawer.CreateDeviceObjects(_rc); texDrawer.Position = new Vector2(30 + (texDrawer.Size.X * 2), 25); _scene.AddRenderable(texDrawer); }