-#ifndef _FLAT_INPUT_H
-#define _FLAT_INPUT_H 1
+#ifndef _MOVIT_FLAT_INPUT_H
+#define _MOVIT_FLAT_INPUT_H 1
-#include "input.h"
+#include <GL/glew.h>
+#include <assert.h>
+#include <string>
+
+#include "effect.h"
+#include "image_format.h"
#include "init.h"
+#include "input.h"
// A FlatInput is the normal, “classic” case of an input, where everything
// comes from a single 2D array with chunky pixels.
(image_format.gamma_curve == GAMMA_LINEAR ||
image_format.gamma_curve == GAMMA_sRGB));
}
+ virtual AlphaHandling alpha_handling() const {
+ switch (pixel_format) {
+ case FORMAT_RGBA_PREMULTIPLIED_ALPHA:
+ case FORMAT_BGRA_PREMULTIPLIED_ALPHA:
+ return INPUT_AND_OUTPUT_PREMULTIPLIED_ALPHA;
+ case FORMAT_RGBA_POSTMULTIPLIED_ALPHA:
+ case FORMAT_BGRA_POSTMULTIPLIED_ALPHA:
+ return OUTPUT_POSTMULTIPLIED_ALPHA;
+ case FORMAT_RGB:
+ case FORMAT_BGR:
+ case FORMAT_GRAYSCALE:
+ return OUTPUT_BLANK_ALPHA;
+ default:
+ assert(false);
+ }
+ }
std::string output_fragment_shader();
const void *pixel_data;
};
-#endif // !defined(_FLAT_INPUT_H)
+#endif // !defined(_MOVIT_FLAT_INPUT_H)