-#ifndef _EFFECT_CHAIN_H
-#define _EFFECT_CHAIN_H 1
+#ifndef _MOVIT_EFFECT_CHAIN_H
+#define _MOVIT_EFFECT_CHAIN_H 1
+#include <GL/glew.h>
+#include <stdio.h>
+#include <map>
#include <set>
+#include <string>
#include <vector>
-#include "effect.h"
#include "image_format.h"
-#include "input.h"
-class EffectChain;
+class Effect;
+class Input;
struct Phase;
// For internal use within Node.
// Whether you want pre- or postmultiplied alpha in the output
// (see effect.h for a discussion of pre- versus postmultiplied alpha).
enum OutputAlphaFormat {
- OUTPUT_ALPHA_PREMULTIPLIED,
- OUTPUT_ALPHA_POSTMULTIPLIED,
+ OUTPUT_ALPHA_FORMAT_PREMULTIPLIED,
+ OUTPUT_ALPHA_FORMAT_POSTMULTIPLIED,
};
// A node in the graph; basically an effect and some associated information.
std::vector<Node *> inputs;
std::vector<Node *> effects; // In order.
- unsigned output_width, output_height;
+ unsigned output_width, output_height, virtual_output_width, virtual_output_height;
};
class EffectChain {
Effect *dither_effect;
std::vector<Input *> inputs; // Also contained in nodes.
-
- GLuint fbo;
std::vector<Phase *> phases;
unsigned num_dither_bits;
bool finalized;
};
-#endif // !defined(_EFFECT_CHAIN_H)
+#endif // !defined(_MOVIT_EFFECT_CHAIN_H)