]> git.sesse.net Git - movit/blobdiff - effect_chain.h
Support other output formats than GL_RGBA16F; was easier than originally feared.
[movit] / effect_chain.h
index 35931f8058fb1a7d763fdb7572ccd2f94bb4d945..8d75e8a7bd1b6dbad1363608529271c4fd7ae471 100644 (file)
@@ -394,8 +394,8 @@ public:
        // except that it is more efficient if the last phase contains a compute shader.
        // Thus, prefer this to render_to_fbo() where possible.
        //
-       // The format must currently be GL_RGBA16F, and only one destination
-       // texture is supported. Both of these restrictions will be lifted in the future.
+       // Only one destination texture is supported. This restriction will be lifted
+       // in the future.
        //
        // All destination textures must be exactly of size <width> x <height>.
        // width and height can not be zero.
@@ -481,8 +481,11 @@ private:
                    unsigned x, unsigned y, unsigned width, unsigned height);
 
        // Execute one phase, ie. set up all inputs, effects and outputs, and render the quad.
-       void execute_phase(Phase *phase, bool render_to_texture,
-                          std::map<Phase *, GLuint> *output_textures,
+       // If <destinations> is empty, uses whatever output is current (and the phase must not be
+       // a compute shader).
+       void execute_phase(Phase *phase,
+                          const std::map<Phase *, GLuint> &output_textures,
+                          const std::vector<DestinationTexture> &destinations,
                           std::set<Phase *> *generated_mipmaps);
 
        // Set up uniforms for one phase. The program must already be bound.