public void Render() { GL.Viewport(0, 0, Width, Height); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); if (CanRender) { _shader.Bind(); GL.UniformMatrix4(20, false, ref _projection); Scene?.Render(_camera); } GL.Flush(); FrameRendered?.Invoke(); }
public void ResumeEmulation() { AudioHandler.Resume(); if (!string.IsNullOrEmpty(FileName)) { if (ROM?.Header == null) { byte[] data = File.ReadAllBytes(FileName); LoadRom(data); } ROM.LoadSRAM(); _isExecuting = true; while (_isExecuting) { RunFrame(false); Renderer.RenderBuffer(PPU.GetPixels()); APU.SetSamples(AudioHandler.SampleBufferL, AudioHandler.SampleBufferR); AudioHandler.NextBuffer(); FrameRendered?.Invoke(this, null); } } }
protected virtual void OnFrameRendered(FrameRenderedEventArgs e) { FrameRendered?.Invoke(this, e); }
protected virtual void OnFrameRendered() { FrameRendered?.Invoke(this, EventArgs.Empty); }