]> git.sesse.net Git - movit/blobdiff - ycbcr_input.h
In YCbCrInput, fix an issue where offsets would be treated as equal even if their...
[movit] / ycbcr_input.h
index 4e8f194f1e2812c3d0b016cd761bae3007112a82..566f8286841da3aa1f82b68074b326083d047324 100644 (file)
@@ -75,7 +75,8 @@ public:
        unsigned get_height() const { return height; }
        Colorspace get_color_space() const { return image_format.color_space; }
        GammaCurve get_gamma_curve() const { return image_format.gamma_curve; }
-       virtual bool can_supply_mipmaps() const { return false; }
+       virtual bool can_supply_mipmaps() const { return ycbcr_input_splitting == YCBCR_INPUT_INTERLEAVED; }
+       virtual bool is_single_texture() const { return ycbcr_input_splitting == YCBCR_INPUT_INTERLEAVED; }
 
        // 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
@@ -175,6 +176,7 @@ private:
        YCbCrFormat ycbcr_format;
        GLuint num_channels;
        YCbCrInputSplitting ycbcr_input_splitting;
+       int needs_mipmaps;  // Only allowed if ycbcr_input_splitting == YCBCR_INPUT_INTERLEAVED.
        GLenum type;
        GLuint pbos[3], texture_num[3];
        GLint uniform_tex_y, uniform_tex_cb, uniform_tex_cr;