public void Render(ComputeMemory buffer, ComputeCommandQueue queue) { if (_doingScreenshot || _kernels == null) { return; } if (VideoRenderer.CheckForVideo(this)) { return; } CoreRender(buffer, queue, _kernels, new Vector4((Vector3)_input.Camera.Position), new Vector4((Vector3)_input.Camera.Lookat), new Vector4((Vector3)_input.Camera.Up), _input.Camera.Frame, _input.Camera.Fov, 1, _input.Camera.FocalDistance, _width, _height, _globalSize, _localSize); _input.Frame++; if (_input.CheckForScreenshot()) { _doingScreenshot = true; ThreadPool.QueueUserWorkItem(o => { Screenshot(); _doingScreenshot = false; }); } if (_input.CheckForGif()) { _doingScreenshot = true; ThreadPool.QueueUserWorkItem(o => { GifRenderer.RenderGif(this); _doingScreenshot = false; }); } }
private void KeyboardOnKeyDown(object sender, KeyboardKeyEventArgs keyboardKeyEventArgs) { switch (keyboardKeyEventArgs.Key) { case Key.P: _screenshot = true; break; case Key.O: VideoRenderer.TakeVideo(); RenderWindow.SetStatus("Started video"); break; case Key.I: _gif = true; break; case Key.J: VideoRenderer.AddFrame(_config); RenderWindow.SetStatus("Added keyframe"); break; case Key.H: VideoRenderer.ClearFrames(); RenderWindow.SetStatus("Cleared keyframes"); break; case Key.L: SaveState(); RenderWindow.SetStatus("Saved state"); break; case Key.K: LoadStateInst(); RenderWindow.SetStatus("Loaded state"); break; } }