const YCbCrFormat &ycbcr_format,
unsigned width, unsigned height);
const YCbCrFormat &ycbcr_format,
unsigned width, unsigned height);
// Create the texture itself. We cannot do this in the constructor,
// because we don't necessarily know all the settings (sRGB texture,
// mipmap generation) at that point.
// Create the texture itself. We cannot do this in the constructor,
// because we don't necessarily know all the settings (sRGB texture,
// mipmap generation) at that point.
// 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);
// 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() const { return image_format.color_space; }
GammaCurve get_gamma_curve() const { 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; }
}
private:
ImageFormat image_format;
YCbCrFormat ycbcr_format;
GLuint pbos[3], texture_num[3];
}
private:
ImageFormat image_format;
YCbCrFormat ycbcr_format;
GLuint pbos[3], texture_num[3];