11 #include "cores/GameSettings.h" 12 #include "cores/RetroPlayer/rendering/RenderSettings.h" 13 #include "utils/Geometry.h" 17 #include <libavutil/pixfmt.h> 30 class IRenderBufferPool;
37 std::shared_ptr<IRenderBufferPool> bufferPool);
46 bool Configure(AVPixelFormat format);
53 void RenderFrame(
bool clear, uint8_t alpha);
56 virtual bool Supports(RENDERFEATURE feature)
const = 0;
58 virtual SCALINGMETHOD GetDefaultScalingMethod()
const = 0;
64 const CRenderSettings& GetRenderSettings()
const {
return m_renderSettings; }
67 void SetScalingMethod(SCALINGMETHOD method);
69 void SetRenderRotation(
unsigned int rotationDegCCW);
70 void SetPixels(
const std::string& pixelPath);
73 bool IsVisible()
const;
78 virtual bool ConfigureInternal() {
return true; }
79 virtual void RenderInternal(
bool clear, uint8_t alpha) = 0;
80 virtual void FlushInternal() {}
84 std::shared_ptr<IRenderBufferPool> m_bufferPool;
87 bool m_bConfigured =
false;
88 AVPixelFormat m_format = AV_PIX_FMT_NONE;
96 std::array<CPoint, 4> m_rotatedDestCoords{};
102 virtual void ManageRenderArea(
const IRenderBuffer& renderBuffer);
112 void GetScreenDimensions(
float& screenWidth,
float& screenHeight,
float& screenPixelRatio);
114 uint64_t m_renderFrameCount = 0;
115 uint64_t m_lastRender = 0;
Definition: IRenderBuffer.h:27
void PreRender(bool clear)
Performs whatever necessary before rendering the frame.
Definition: RPBaseRenderer.cpp:213
Definition: AudioDecoder.h:18
Definition: IRenderBufferPool.h:30
STRETCHMODE
Methods for stretching the game to the viewing area.
Definition: GameSettings.h:29
Definition: RenderContext.h:43
Definition: settings.py:1
Video settings provided by the rendering system.
Definition: RenderVideoSettings.h:22
IRenderBufferPool * GetBufferPool()
Get the buffer pool used by this renderer.
Definition: RPBaseRenderer.h:43
Definition: RPBaseRenderer.h:32
Definition: RenderSettings.h:17