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;
+ mutable Device *applied_to = 0;
+ mutable unsigned changes = 0;
- OpenGLPipelineState();
+ OpenGLPipelineState() = default;
+ OpenGLPipelineState(OpenGLPipelineState &&) { }
~OpenGLPipelineState();
+ static bool can_bind_tex_level(unsigned l) { return l==0; }
+
void apply() const;
-private:
- void apply(unsigned) const;
-protected:
+
static void clear();
};