]> git.sesse.net Git - movit/blobdiff - ycbcr_input.cpp
Stop using 1D textures.
[movit] / ycbcr_input.cpp
index 6e73d3e2015e219e0fc7f1b7a3961515db96e146..49747151532ae5863de08fdf0016964cbb2cd30e 100644 (file)
@@ -13,6 +13,8 @@
 using namespace Eigen;
 using namespace std;
 
+namespace movit {
+
 namespace {
 
 // OpenGL has texel center in (0.5, 0.5), but different formats have
@@ -63,7 +65,6 @@ YCbCrInput::YCbCrInput(const ImageFormat &image_format,
                        unsigned width, unsigned height)
        : image_format(image_format),
          ycbcr_format(ycbcr_format),
-         finalized(false),
          needs_mipmaps(false),
          width(width),
          height(height),
@@ -96,11 +97,6 @@ YCbCrInput::~YCbCrInput()
        }
 }
 
-void YCbCrInput::finalize()
-{
-       finalized = true;
-}
-       
 void YCbCrInput::set_gl_state(GLuint glsl_program_num, const string& prefix, unsigned *sampler_num)
 {
        for (unsigned channel = 0; channel < 3; ++channel) {
@@ -109,7 +105,7 @@ void YCbCrInput::set_gl_state(GLuint glsl_program_num, const string& prefix, uns
 
                if (texture_num[channel] == 0) {
                        // (Re-)upload the texture.
-                       texture_num[channel] = resource_pool->create_2d_texture(GL_LUMINANCE8, widths[channel], heights[channel]);
+                       texture_num[channel] = resource_pool->create_2d_texture(GL_R8, widths[channel], heights[channel]);
                        glBindTexture(GL_TEXTURE_2D, texture_num[channel]);
                        check_error();
                        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -120,7 +116,7 @@ void YCbCrInput::set_gl_state(GLuint glsl_program_num, const string& prefix, uns
                        check_error();
                        glPixelStorei(GL_UNPACK_ROW_LENGTH, pitch[channel]);
                        check_error();
-                       glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, widths[channel], heights[channel], GL_LUMINANCE, GL_UNSIGNED_BYTE, pixel_data[channel]);
+                       glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, widths[channel], heights[channel], GL_RED, GL_UNSIGNED_BYTE, pixel_data[channel]);
                        check_error();
                        glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
                        check_error();
@@ -255,3 +251,5 @@ void YCbCrInput::invalidate_pixel_data()
                }
        }
 }
+
+}  // namespace movit