From 137009affef20bfaa91ff32ea1bb6693c09e03c2 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 29 Jun 2019 21:05:30 +1000 Subject: FramebufferManager: Support saving EFB to save state --- Source/Core/VideoCommon/FramebufferManager.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Source/Core/VideoCommon/FramebufferManager.h') diff --git a/Source/Core/VideoCommon/FramebufferManager.h b/Source/Core/VideoCommon/FramebufferManager.h index b97d45b31e..b4ae99361d 100644 --- a/Source/Core/VideoCommon/FramebufferManager.h +++ b/Source/Core/VideoCommon/FramebufferManager.h @@ -17,6 +17,7 @@ #include "VideoCommon/TextureConfig.h" class NativeVertexFormat; +class PointerWrap; enum class EFBReinterpretType { @@ -95,6 +96,9 @@ public: void PokeEFBDepth(u32 x, u32 y, float depth); void FlushEFBPokes(); + // Save state load/save. + void DoState(PointerWrap& p); + protected: struct EFBPokeVertex { @@ -145,6 +149,9 @@ protected: void DrawPokeVertices(const EFBPokeVertex* vertices, u32 vertex_count, const AbstractPipeline* pipeline); + void DoLoadState(PointerWrap& p); + void DoSaveState(PointerWrap& p); + std::unique_ptr m_efb_color_texture; std::unique_ptr m_efb_convert_color_texture; std::unique_ptr m_efb_depth_texture; @@ -156,6 +163,9 @@ protected: std::unique_ptr m_efb_depth_resolve_framebuffer; std::unique_ptr m_efb_depth_resolve_pipeline; + // Pipeline for restoring the contents of the EFB from a save state + std::unique_ptr m_efb_restore_pipeline; + // Format conversion shaders std::array, 6> m_format_conversion_pipelines; -- cgit v1.2.3