mirror of
https://github.com/libretro/MesenCE.git
synced 2026-11-11 03:01:50 -10:00
* 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)
33 lines
768 B
C++
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;
|
|
}; |