]> git.sesse.net Git - movit/blobdiff - flat_input.h
Add YCbCr input. Required a bit of reworking of the sRGB extension stuff, but seems...
[movit] / flat_input.h
index a906a5d36a812938aeba6647c30c657385f82eda..69c1a6f14d00b2b5a64205133aad3853d23a31eb 100644 (file)
@@ -14,13 +14,16 @@ public:
        // mipmap generation) at that point.
        void finalize();
 
+       // TODO: Check that we actually have the required extension.
+       virtual bool can_output_linear_gamma() const { return true; }
+
        std::string output_fragment_shader();
 
        // Uploads the texture if it has changed since last time.
        void set_gl_state(GLuint glsl_program_num, const std::string& prefix, unsigned *sampler_num);
 
-       ColorSpace get_color_space() { return image_format.color_space; }
-       GammaCurve get_gamma_curve() { return image_format.gamma_curve; }
+       ColorSpace get_color_space() const { return image_format.color_space; }
+       GammaCurve get_gamma_curve() const { return image_format.gamma_curve; }
 
        // Tells the input where to fetch the actual pixel data. Note that if you change
        // this data, you must either call set_pixel_data() again (using the same pointer
@@ -56,7 +59,7 @@ private:
        GLenum format;
        GLuint pbo, texture_num;
        bool needs_update, finalized;
-       int use_srgb_texture_format, needs_mipmaps;
+       int output_linear_gamma, needs_mipmaps;
        unsigned width, height, pitch, bytes_per_pixel;
        const unsigned char *pixel_data;
 };