]> git.sesse.net Git - movit/blobdiff - effect_chain.h
Require OpenGL 3.0 unconditionally; this is a no-op, since we already required GLSL...
[movit] / effect_chain.h
index 70dc256f41f19616d4b2fce2875ec98d049e7847..718d5ff7830cde86c7fb192b77417278dd68f7cf 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <epoxy/gl.h>
 #include <stdio.h>
+#include <list>
 #include <map>
 #include <set>
 #include <string>
@@ -179,7 +180,8 @@ struct Phase {
        std::vector<Uniform<Eigen::Matrix3d> > uniforms_mat3;
 
        // For measurement of GPU time used.
-       GLuint timer_query_object;
+       std::list<GLuint> timer_query_objects_running;
+       std::list<GLuint> timer_query_objects_free;
        uint64_t time_elapsed_ns;
        uint64_t num_measured_iterations;
 };
@@ -192,7 +194,7 @@ public:
        // will create its own that is not shared with anything else. Does not take
        // ownership of the passed-in ResourcePool, but will naturally take ownership
        // of its own internal one if created.
-       EffectChain(float aspect_nom, float aspect_denom, ResourcePool *resource_pool = NULL);
+       EffectChain(float aspect_nom, float aspect_denom, ResourcePool *resource_pool = NULL, GLenum intermediate_format = GL_RGBA16F);
        ~EffectChain();
 
        // User API:
@@ -436,6 +438,7 @@ private:
        std::vector<Input *> inputs;  // Also contained in nodes.
        std::vector<Phase *> phases;
 
+       GLenum intermediate_format;
        unsigned num_dither_bits;
        OutputOrigin output_origin;
        bool finalized;