X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.h;h=70dc256f41f19616d4b2fce2875ec98d049e7847;hp=5baf9a599cb8a791a3b622877ae50741303fb7d8;hb=2fd06b9c44225d1e740cb2de08a9dfa5c9cd0031;hpb=54d47f65e9abac77229636fbaaefea8caf34a4d4 diff --git a/effect_chain.h b/effect_chain.h index 5baf9a5..70dc256 100644 --- a/effect_chain.h +++ b/effect_chain.h @@ -147,6 +147,11 @@ struct Phase { Node *output_node; GLuint glsl_program_num; // Owned by the resource_pool. + + // Position and texcoord attribute indexes, although it doesn't matter + // which is which, because they contain the same data. + std::set attribute_indexes; + bool input_needs_mipmaps; // Inputs are only inputs from other phases (ie., those that come from RTT); @@ -360,7 +365,10 @@ private: Phase *construct_phase(Node *output, std::map *completed_effects); // Execute one phase, ie. set up all inputs, effects and outputs, and render the quad. - void execute_phase(Phase *phase, bool last_phase, std::map *output_textures, std::set *generated_mipmaps); + void execute_phase(Phase *phase, bool last_phase, + std::set *bound__attribute_indices, + std::map *output_textures, + std::set *generated_mipmaps); // Set up uniforms for one phase. The program must already be bound. void setup_uniforms(Phase *phase); @@ -431,6 +439,7 @@ private: unsigned num_dither_bits; OutputOrigin output_origin; bool finalized; + GLuint vbo; // Contains vertex and texture coordinate data. ResourcePool *resource_pool; bool owns_resource_pool;