summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/FramebufferManager.h
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-06-29 21:05:30 +1000
committerStenzek <stenzek@gmail.com>2019-07-24 05:19:22 +1000
commit137009affef20bfaa91ff32ea1bb6693c09e03c2 (patch)
treeab6ac090a91ffdc2aa9efd6a1ca01fba1c0c363b /Source/Core/VideoCommon/FramebufferManager.h
parent1082468133342586ae2a5986408d163ce5aa14ca (diff)
FramebufferManager: Support saving EFB to save state
Diffstat (limited to 'Source/Core/VideoCommon/FramebufferManager.h')
-rw-r--r--Source/Core/VideoCommon/FramebufferManager.h10
1 files changed, 10 insertions, 0 deletions
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<AbstractTexture> m_efb_color_texture;
std::unique_ptr<AbstractTexture> m_efb_convert_color_texture;
std::unique_ptr<AbstractTexture> m_efb_depth_texture;
@@ -156,6 +163,9 @@ protected:
std::unique_ptr<AbstractFramebuffer> m_efb_depth_resolve_framebuffer;
std::unique_ptr<AbstractPipeline> m_efb_depth_resolve_pipeline;
+ // Pipeline for restoring the contents of the EFB from a save state
+ std::unique_ptr<AbstractPipeline> m_efb_restore_pipeline;
+
// Format conversion shaders
std::array<std::unique_ptr<AbstractPipeline>, 6> m_format_conversion_pipelines;