X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=ycbcr_input.h;h=566f8286841da3aa1f82b68074b326083d047324;hp=4e8f194f1e2812c3d0b016cd761bae3007112a82;hb=af438a8d5331bb1435494eaf377256deac74f408;hpb=76d3f4f3c75111cc8c59a08396c5ad60c712c9a5 diff --git a/ycbcr_input.h b/ycbcr_input.h index 4e8f194..566f828 100644 --- a/ycbcr_input.h +++ b/ycbcr_input.h @@ -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;