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" 15 #include "cores/RetroPlayer/shaders/windows/RPWinOutputShader.h" 16 #include "cores/RetroPlayer/shaders/windows/ShaderTextureDX.h" 33 class CRPWinOutputShader;
44 std::shared_ptr<IRenderBufferPool> bufferPool)
override;
55 bool UploadTexture()
override;
61 bool GetTexture(uint8_t*& data,
unsigned int& stride);
62 bool ReleaseTexture();
64 bool CreateScalingContext();
65 void ScalePixels(
const uint8_t* source,
66 unsigned int sourceStride,
68 unsigned int targetStride);
70 static AVPixelFormat GetPixFormat();
73 const AVPixelFormat m_pixFormat;
74 const DXGI_FORMAT m_targetDxFormat;
76 AVPixelFormat m_targetPixFormat;
77 std::unique_ptr<SHADER::CShaderTextureCD3D> m_intermediateTarget;
79 SwsContext* m_swsContext =
nullptr;
92 IRenderBuffer* CreateRenderBuffer(
void* header =
nullptr)
override;
99 static const std::vector<SCALINGMETHOD>& GetScalingMethods();
101 void CompileOutputShaders();
103 DXGI_FORMAT m_targetDxFormat = DXGI_FORMAT_UNKNOWN;
104 std::map<SCALINGMETHOD, std::unique_ptr<SHADER::CRPWinOutputShader>> m_outputShaders;
112 std::shared_ptr<IRenderBufferPool> bufferPool);
116 bool Supports(RENDERFEATURE feature)
const override;
117 SCALINGMETHOD GetDefaultScalingMethod()
const override {
return DEFAULT_SCALING_METHOD; }
119 static bool SupportsScalingMethod(SCALINGMETHOD method);
124 static const SCALINGMETHOD DEFAULT_SCALING_METHOD = SCALINGMETHOD::NEAREST;
128 bool ConfigureInternal()
override;
129 void RenderInternal(
bool clear, uint8_t alpha)
override;
Definition: D3DResource.h:92
Definition: BaseRenderBufferPool.h:22
Definition: RPWinRenderer.h:107
Definition: ShaderTextureDX.h:24
Definition: RPWinRenderer.h:35
RenderBufferPoolVector CreateBufferPools(CRenderContext &context) override
Create buffer pools to manager buffers.
Definition: RPWinRenderer.cpp:45
Definition: IRenderBuffer.h:27
std::string RenderSystemName() const override
Get a description name of the rendering system.
Definition: RPWinRenderer.cpp:33
Definition: RenderBufferSysMem.h:25
Definition: AudioDecoder.h:18
Rendering factory.
Definition: RPProcessInfo.h:46
Definition: RenderContext.h:43
Definition: settings.py:1
Definition: RPWinRenderer.h:82
Video settings provided by the rendering system.
Definition: RenderVideoSettings.h:22
Definition: RPWinRenderer.h:48
CRPBaseRenderer * CreateRenderer(const CRenderSettings &settings, CRenderContext &context, std::shared_ptr< IRenderBufferPool > bufferPool) override
Create a renderer.
Definition: RPWinRenderer.cpp:38
Definition: RPBaseRenderer.h:37
Definition: RenderSettings.h:17
Definition: RPWinOutputShader.h:19