X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.h;h=de50512f204b7f15fd67f9620307026c44fad528;hp=70dc256f41f19616d4b2fce2875ec98d049e7847;hb=abd6d031918db487e0724218dc604d4a51e5f650;hpb=2fd06b9c44225d1e740cb2de08a9dfa5c9cd0031 diff --git a/effect_chain.h b/effect_chain.h index 70dc256..de50512 100644 --- a/effect_chain.h +++ b/effect_chain.h @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -178,8 +179,13 @@ struct Phase { std::vector > uniforms_vec4; std::vector > uniforms_mat3; + GLuint ubo; // GL_INVALID_INDEX if not using UBOs. + GLuint uniform_block_index; + std::vector ubo_data; + // For measurement of GPU time used. - GLuint timer_query_object; + std::list timer_query_objects_running; + std::list timer_query_objects_free; uint64_t time_elapsed_ns; uint64_t num_measured_iterations; }; @@ -192,7 +198,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 +442,7 @@ private: std::vector inputs; // Also contained in nodes. std::vector phases; + GLenum intermediate_format; unsigned num_dither_bits; OutputOrigin output_origin; bool finalized;