#include "ycbcr_input.h"
using namespace Eigen;
+using namespace std;
+
+namespace movit {
namespace {
unsigned width, unsigned height)
: image_format(image_format),
ycbcr_format(ycbcr_format),
- finalized(false),
needs_mipmaps(false),
width(width),
height(height),
}
}
-void YCbCrInput::finalize()
-{
- finalized = true;
-}
-
-void YCbCrInput::set_gl_state(GLuint glsl_program_num, const std::string& prefix, unsigned *sampler_num)
+void YCbCrInput::set_gl_state(GLuint glsl_program_num, const string& prefix, unsigned *sampler_num)
{
for (unsigned channel = 0; channel < 3; ++channel) {
glActiveTexture(GL_TEXTURE0 + *sampler_num + channel);
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);
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();
*sampler_num += 3;
}
-std::string YCbCrInput::output_fragment_shader()
+string YCbCrInput::output_fragment_shader()
{
float coeff[3], offset[3], scale[3];
// Inverting the matrix gives us what we need to go from YCbCr back to RGB.
Matrix3d ycbcr_to_rgb = rgb_to_ycbcr.inverse();
- std::string frag_shader;
+ string frag_shader;
frag_shader = output_glsl_mat3("PREFIX(inv_ycbcr_matrix)", ycbcr_to_rgb);
}
}
}
+
+} // namespace movit