Store index format and topology in drawcall, to accommodate GL

* D3D11 just latches the state from the input assembler state into the
  drawcall when it's being added. GL stores the state per-draw.
This commit is contained in:
baldurk
2015-01-15 17:17:12 +00:00
parent b9f1b9820f
commit f013f6fd29
19 changed files with 190 additions and 262 deletions
+3 -11
View File
@@ -107,10 +107,8 @@ void Serialiser::Serialise(const char *name, D3D11PipelineState::InputAssembler:
template<>
void Serialiser::Serialise(const char *name, D3D11PipelineState::InputAssembler &el)
{
Serialise("", el.Topology);
Serialise("", el.ibuffer.Buffer);
Serialise("", el.ibuffer.Offset);
Serialise("", el.ibuffer.Format);
Serialise("", el.vbuffers);
Serialise("", el.layouts);
@@ -290,21 +288,12 @@ void Serialiser::Serialise(const char *name, GLPipelineState::VertexInput::Verte
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<>
@@ -507,6 +496,9 @@ void Serialiser::Serialise(const char *name, FetchDrawcall &el)
Serialise("", el.vertexOffset);
Serialise("", el.instanceOffset);
Serialise("", el.indexByteWidth);
Serialise("", el.topology);
Serialise("", el.context);
Serialise("", el.duration);