X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.h;h=793bf7b0b2f2ddce1bf7fe02e0532989c3c78995;hp=8d75e8a7bd1b6dbad1363608529271c4fd7ae471;hb=376535a970b25a268bef44cd3c32a3630e605734;hpb=3b9957afac0555a126d1941d7027fb52e29b309a diff --git a/effect_chain.h b/effect_chain.h index 8d75e8a..793bf7b 100644 --- a/effect_chain.h +++ b/effect_chain.h @@ -153,6 +153,9 @@ private: // (in the same phase) have one_to_one_sampling() set. bool one_to_one_sampling; + // Same, for strong_one_to_one_sampling(). + bool strong_one_to_one_sampling; + friend class EffectChain; }; @@ -181,6 +184,7 @@ struct Phase { // Whether this phase is compiled as a compute shader, ie., the last effect is // marked as one. bool is_compute_shader; + Node *compute_shader_node; // If , which image unit the output buffer is bound to. // This is used as source for a Uniform below. @@ -397,7 +401,12 @@ public: // Only one destination texture is supported. This restriction will be lifted // in the future. // - // All destination textures must be exactly of size x . + // All destination textures must be exactly of size x , + // and must either come from the same ResourcePool the effect uses, or outlive + // the EffectChain (otherwise, we could be allocating FBOs that end up being + // stale). Textures must also have valid state; in particular, they must either + // be mipmap complete or have a non-mipmapped minification mode. + // // width and height can not be zero. struct DestinationTexture { GLuint texnum;