diff --git a/renderdoc/core/replay_proxy.cpp b/renderdoc/core/replay_proxy.cpp index a025e7259..fdfa583c0 100644 --- a/renderdoc/core/replay_proxy.cpp +++ b/renderdoc/core/replay_proxy.cpp @@ -254,6 +254,58 @@ void Serialiser::Serialise(const char *name, GLPipelineState::ShaderStage &el) el.ShaderDetails = NULL; } +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::VertexInput::VertexAttribute &el) +{ + Serialise("", el.BufferSlot); + Serialise("", el.Enabled); + Serialise("", el.Format); + Serialise("", el.RelativeOffset); +} + +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::VertexInput::VertexBuffer &el) +{ + Serialise("", el.Buffer); + Serialise("", el.Divisor); + Serialise("", el.Offset); + Serialise("", el.PerInstance); + Serialise("", el.Stride); +} + +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::VertexInput::IndexBuffer &el) +{ + Serialise("", el.Buffer); + Serialise("", el.Offset); + Serialise("", el.Format); +} + +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::VertexInput &el) +{ + Serialise("", el.attributes); + Serialise("", el.ibuffer); + Serialise("", el.vbuffers); + Serialise("", el.Topology); +} + +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::FrameBuffer &el) +{ + Serialise("", el.FBO); + Serialise("", el.Color); + Serialise("", el.Depth); + Serialise("", el.Stencil); +} + +template<> +void Serialiser::Serialise(const char *name, GLPipelineState::Texture &el) +{ + Serialise("", el.Resource); + Serialise("", el.FirstSlice); +} + template<> void Serialiser::Serialise(const char *name, GLPipelineState &el) { @@ -263,6 +315,10 @@ void Serialiser::Serialise(const char *name, GLPipelineState &el) Serialise("", el.m_GS); Serialise("", el.m_FS); Serialise("", el.m_CS); + + Serialise("", el.m_VtxIn); + Serialise("", el.Textures); + Serialise("", el.m_FB); } template<>