Files
SourMesen 6c54ae1989 Video: Support for VRR in borderless fullscreen (Windows only) and improved frame pacing (#178)
* Video: Add support for VRR when in borderless fullscreen mode (Windows only) and improve frame pacing

* Fixed debug stats not disappearing when unchecking option in some scenarios

* Changed frame pacing graph scale/logic to show the gap between the ideal pacing and the current pacing (within +/- 2ms)
2026-06-21 01:29:30 -07:00

33 lines
768 B
C++

#include "pch.h"
#include "Shared/Interfaces/IRenderingDevice.h"
#include "Utilities/SimpleLock.h"
class Emulator;
class SoftwareRenderer : public IRenderingDevice
{
private:
Emulator* _emu = nullptr;
SimpleLock _frameLock;
SimpleLock _textureLock;
uint32_t _frameWidth = 0;
uint32_t _frameHeight = 0;
uint32_t* _textureBuffer[2] = { nullptr, nullptr };
atomic<bool> _needSwap = false;
void SetScreenSize(uint32_t width, uint32_t height);
public:
SoftwareRenderer(Emulator* emu);
~SoftwareRenderer();
void UpdateFrame(RenderedFrame& frame) override;
void ClearFrame() override;
void Render(RenderSurfaceInfo& emuHud, RenderSurfaceInfo& scriptHud) override;
void Reset() override;
void SetFullscreenMode(FullscreenSettings settings) override;
};