11 #include "RPBaseRenderer.h" 12 #include "cores/RetroPlayer/buffers/BaseRenderBufferPool.h" 13 #include "cores/RetroPlayer/buffers/video/RenderBufferSysMem.h" 14 #include "cores/RetroPlayer/process/RPProcessInfo.h" 30 class CRPWinOutputShader;
41 std::shared_ptr<IRenderBufferPool> bufferPool)
override;
52 bool UploadTexture()
override;
54 CD3DTexture* GetTarget() {
return m_intermediateTarget.get(); }
58 bool GetTexture(uint8_t*& data,
unsigned int& stride);
59 bool ReleaseTexture();
61 bool CreateScalingContext();
62 void ScalePixels(uint8_t* source,
63 unsigned int sourceStride,
65 unsigned int targetStride);
67 static AVPixelFormat GetPixFormat(DXGI_FORMAT dxFormat);
70 const AVPixelFormat m_pixFormat;
71 const DXGI_FORMAT m_targetDxFormat;
73 AVPixelFormat m_targetPixFormat;
74 std::unique_ptr<CD3DTexture> m_intermediateTarget;
76 SwsContext* m_swsContext =
nullptr;
89 IRenderBuffer* CreateRenderBuffer(
void* header =
nullptr)
override;
92 bool ConfigureDX(DXGI_FORMAT dxFormat);
96 static const std::vector<SCALINGMETHOD>& GetScalingMethods();
98 void CompileOutputShaders();
100 DXGI_FORMAT m_targetDxFormat = DXGI_FORMAT_UNKNOWN;
101 std::map<SCALINGMETHOD, std::unique_ptr<CRPWinOutputShader>> m_outputShaders;
109 std::shared_ptr<IRenderBufferPool> bufferPool);
113 bool Supports(RENDERFEATURE feature)
const override;
114 SCALINGMETHOD GetDefaultScalingMethod()
const override {
return DEFAULT_SCALING_METHOD; }
116 static bool SupportsScalingMethod(SCALINGMETHOD method);
121 static const SCALINGMETHOD DEFAULT_SCALING_METHOD = SCALINGMETHOD::NEAREST;
125 bool ConfigureInternal()
override;
126 void RenderInternal(
bool clear, uint8_t alpha)
override;
Definition: D3DResource.h:90
Definition: BaseRenderBufferPool.h:22
Definition: RPWinRenderer.h:104
Definition: RPWinRenderer.h:32
RenderBufferPoolVector CreateBufferPools(CRenderContext &context) override
Create buffer pools to manager buffers.
Definition: RPWinRenderer.cpp:43
Definition: IRenderBuffer.h:27
std::string RenderSystemName() const override
Get a description name of the rendering system.
Definition: RPWinRenderer.cpp:31
Definition: RPWinOutputShader.h:19
Definition: RenderBufferSysMem.h:25
Controller configuration window.
Definition: AudioDecoder.h:18
Rendering factory.
Definition: RPProcessInfo.h:43
Definition: RenderContext.h:43
Definition: settings.py:1
Definition: RPWinRenderer.h:79
Video settings provided by the rendering system.
Definition: RenderVideoSettings.h:22
Definition: RPWinRenderer.h:45
CRPBaseRenderer * CreateRenderer(const CRenderSettings &settings, CRenderContext &context, std::shared_ptr< IRenderBufferPool > bufferPool) override
Create a renderer.
Definition: RPWinRenderer.cpp:36
Definition: RPBaseRenderer.h:32
Definition: RenderSettings.h:17