--- /dev/null
+#ifndef MSP_GL_VERTEXSETUP_BACKEND_H_
+#define MSP_GL_VERTEXSETUP_BACKEND_H_
+
+namespace Msp {
+namespace GL {
+
+class VertexArray;
+class VertexFormat;
+
+class OpenGLVertexSetup
+{
+ friend class OpenGLPipelineState;
+
+protected:
+ unsigned id;
+
+ OpenGLVertexSetup();
+ ~OpenGLVertexSetup();
+
+ static void require_format(const VertexFormat &, bool);
+ void update(unsigned) const;
+ void update_vertex_array(const VertexArray &, unsigned, unsigned, bool) const;
+
+ void unload();
+
+ void set_debug_name(const std::string &);
+};
+
+using VertexSetupBackend = OpenGLVertexSetup;
+
+} // namespace GL
+} // namespace Msp
+
+#endif