mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-09-02 15:45:58 +00:00
VideoCommon: Add support for Abstract Framebuffers
This commit is contained in:
parent
2a6d9e4713
commit
4c24a69710
31 changed files with 792 additions and 9 deletions
|
@ -23,6 +23,7 @@ class SwapChain;
|
|||
class StagingTexture2D;
|
||||
class Texture2D;
|
||||
class RasterFont;
|
||||
class VKFramebuffer;
|
||||
class VKPipeline;
|
||||
class VKTexture;
|
||||
|
||||
|
@ -37,6 +38,9 @@ public:
|
|||
std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
|
||||
std::unique_ptr<AbstractStagingTexture>
|
||||
CreateStagingTexture(StagingTextureType type, const TextureConfig& config) override;
|
||||
std::unique_ptr<AbstractFramebuffer>
|
||||
CreateFramebuffer(const AbstractTexture* color_attachment,
|
||||
const AbstractTexture* depth_attachment) override;
|
||||
|
||||
std::unique_ptr<AbstractShader> CreateShaderFromSource(ShaderStage stage, const char* source,
|
||||
size_t length) override;
|
||||
|
@ -68,6 +72,11 @@ public:
|
|||
void RestoreAPIState() override;
|
||||
|
||||
void SetPipeline(const AbstractPipeline* pipeline) override;
|
||||
void SetFramebuffer(const AbstractFramebuffer* framebuffer) override;
|
||||
void SetAndDiscardFramebuffer(const AbstractFramebuffer* framebuffer) override;
|
||||
void SetAndClearFramebuffer(const AbstractFramebuffer* framebuffer,
|
||||
const ClearColor& color_value = {},
|
||||
float depth_value = 0.0f) override;
|
||||
void SetBlendingState(const BlendingState& state) override;
|
||||
void SetScissorRect(const MathUtil::Rectangle<int>& rc) override;
|
||||
void SetRasterizationState(const RasterizationState& state) override;
|
||||
|
@ -99,6 +108,7 @@ private:
|
|||
void OnSwapChainResized();
|
||||
void BindEFBToStateTracker();
|
||||
void RecreateEFBFramebuffer();
|
||||
void BindFramebuffer(const VKFramebuffer* fb);
|
||||
|
||||
void RecompileShaders();
|
||||
bool CompileShaders();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue