]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/renderer.h
Use a generation number to track if ProgramData has changed
[libs/gl.git] / source / render / renderer.h
index 603866073c7e81f6edac092d6db169d7c7a98051..89f111221c0ce2d482363956e18f3578331a72a0 100644 (file)
@@ -75,6 +75,14 @@ private:
                BoundTexture();
        };
 
+       struct BoundProgramData
+       {
+               const ProgramData *shdata;
+               unsigned generation;
+
+               BoundProgramData(const ProgramData *);
+       };
+
        struct State
        {
                const Camera *camera;
@@ -110,7 +118,7 @@ private:
        State *state;
        std::vector<BoundTexture> texture_stack;
        ProgramData standard_shdata;
-       std::vector<const ProgramData *> shdata_stack;
+       std::vector<BoundProgramData> shdata_stack;
        std::set<const Renderable *> excluded;
 
 public: