11 #include "cores/GameSettings.h" 12 #include "cores/RetroPlayer/RetroPlayerTypes.h" 13 #include "threads/CriticalSection.h" 22 #include <libavutil/pixfmt.h> 31 class CRenderBufferManager;
33 class CRenderSettings;
34 class CRPBaseRenderer;
36 class IRenderBufferPool;
41 using CreateRPProcessControl = std::function<std::unique_ptr<CRPProcessInfo>()>;
65 std::shared_ptr<IRenderBufferPool> bufferPool) = 0;
83 static std::unique_ptr<CRPProcessInfo> CreateInstance();
84 static void RegisterProcessControl(
const CreateRPProcessControl& createFunc);
142 bool HasScalingMethod(SCALINGMETHOD scalingMethod)
const;
153 void SetVideoPixelFormat(AVPixelFormat pixFormat);
154 void SetVideoDimensions(
int width,
int height);
155 void SetVideoFps(
float fps);
160 void SetAudioChannels(
const std::string& channels);
161 void SetAudioSampleRate(
int sampleRate);
162 void SetAudioBitsPerSample(
int bitsPerSample);
167 void SetSpeed(
float speed);
168 void SetPlayTimes(time_t start, int64_t current, int64_t min, int64_t max);
182 static std::vector<SCALINGMETHOD> GetScalingMethods();
185 static CreateRPProcessControl m_processControl;
186 static std::vector<std::unique_ptr<IRendererFactory>> m_rendererFactories;
187 static CCriticalSection m_createSection;
190 const std::string m_platformName;
196 std::unique_ptr<CRenderBufferManager> m_renderBufferManager;
200 std::unique_ptr<CRenderContext> m_renderContext;
201 SCALINGMETHOD m_defaultScalingMethod = SCALINGMETHOD::AUTO;
SCALINGMETHOD GetDefaultScalingMethod() const
Get the default scaling method for this rendering system.
Definition: RPProcessInfo.h:147
Definition: DataCacheCore.h:19
virtual CRPBaseRenderer * CreateRenderer(const CRenderSettings &settings, CRenderContext &context, std::shared_ptr< IRenderBufferPool > bufferPool)=0
Create a renderer.
CRenderContext & GetRenderContext()
Get the context shared by the rendering system.
Definition: RPProcessInfo.h:132
Definition: RenderBufferManager.h:25
Definition: AudioDecoder.h:18
Definition: IRenderBufferPool.h:30
virtual std::string RenderSystemName() const =0
Get a description name of the rendering system.
Rendering factory.
Definition: RPProcessInfo.h:46
Definition: RenderContext.h:43
Definition: settings.py:1
virtual RenderBufferPoolVector CreateBufferPools(CRenderContext &context)=0
Create buffer pools to manager buffers.
const std::string & GetPlatformName() const
Get the descriptive name of the platform.
Definition: RPProcessInfo.h:94
Definition: RPBaseRenderer.h:32
Player process info.
Definition: RPProcessInfo.h:80
Definition: RenderSettings.h:17
CRenderBufferManager & GetBufferManager()
Get the buffer manager that owns the buffer pools.
Definition: RPProcessInfo.h:137