]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/opengl/pipelinestate_backend.h
Refactor low-level state management
[libs/gl.git] / source / backends / opengl / pipelinestate_backend.h
index 566b819c086cbadf120ef232dddd662cabd61a26..a8f2d306109109f440661b066410bb947973940f 100644 (file)
@@ -7,25 +7,22 @@
 namespace Msp {
 namespace GL {
 
+class Device;
+
 class OpenGLPipelineState: public NonCopyable
 {
        friend class OpenGLCommands;
 
 protected:
-       static const OpenGLPipelineState *last_applied;
-       static std::vector<int> bound_tex_targets;
-       static std::vector<char> bound_uniform_blocks;
-       static unsigned restart_index;
-       static unsigned n_clip_distances;
+       mutable Device *applied_to = 0;
+       mutable unsigned changes = 0;
 
-       OpenGLPipelineState();
+       OpenGLPipelineState() = default;
        OpenGLPipelineState(OpenGLPipelineState &&) { }
        ~OpenGLPipelineState();
 
        void apply() const;
-private:
-       void apply(unsigned) const;
-protected:
+
        static void clear();
 };