X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.h;h=905119546911e094d2819dbf0dfb99a21da57300;hp=59949491e668eba68ec21202f8779d7dd6967ab4;hb=b2a5b6c97cead9cd8e41eca561f3364e95a1f9b3;hpb=407d90be3e45ddb7f5a53c16728bfa791998cb72 diff --git a/effect_chain.h b/effect_chain.h index 5994949..9051195 100644 --- a/effect_chain.h +++ b/effect_chain.h @@ -99,6 +99,13 @@ struct Phase { // Identifier used to create unique variables in GLSL. // Unique per-phase to increase cacheability of compiled shaders. std::map effect_ids; + + // The geometry needed to draw this quad, bound to the vertex array + // object. (Seemingly it's actually a win not to upload geometry every + // frame, even for something as small as a quad, due to fewer state + // changes.) + GLuint vao; + GLuint position_vbo, texcoord_vbo; }; class EffectChain { @@ -280,6 +287,7 @@ private: std::map node_map; Effect *dither_effect; + std::map fbos; // One for each OpenGL context. std::vector inputs; // Also contained in nodes. std::vector phases;