private void DestroyAllObjects() { _gd.WaitForIdle(); _frameCommands.Dispose(); _sc.DestroyDeviceObjects(); _scene.DestroyAllDeviceObjects(); CommonMaterials.DestroyAllDeviceObjects(); StaticResourceCache.DestroyAllDeviceObjects(); _gd.WaitForIdle(); }
private void ChangeRenderContext(GraphicsBackend backend) { _sc.DestroyDeviceObjects(); _scene.DestroyAllDeviceObjects(); CommonMaterials.DestroyAllDeviceObjects(); _rc.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; } RenderContextCreateInfo rcCI = new RenderContextCreateInfo { Backend = backend }; _rc = VeldridStartup.CreateRenderContext(ref rcCI, _window); _sc.CreateDeviceObjects(_rc); _scene.CreateAllDeviceObjects(_rc); CommonMaterials.CreateAllDeviceObjects(_rc); }