X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=flat_input.h;h=69c1a6f14d00b2b5a64205133aad3853d23a31eb;hp=a906a5d36a812938aeba6647c30c657385f82eda;hb=9dcbd93164611ea111cc29519c18193d4f571ac1;hpb=ef82f39846c48a654b63797b78bf8b0b8935d348 diff --git a/flat_input.h b/flat_input.h index a906a5d..69c1a6f 100644 --- a/flat_input.h +++ b/flat_input.h @@ -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; };