2.0f, 0.0f
};
cbcr_vbo = generate_vbo(2, GL_FLOAT, sizeof(vertices), vertices);
+ cbcr_texture_sampler_uniform = glGetUniformLocation(cbcr_program_num, "cbcr_tex");
cbcr_position_attribute_index = glGetAttribLocation(cbcr_program_num, "position");
cbcr_texcoord_attribute_index = glGetAttribLocation(cbcr_program_num, "texcoord");
float chroma_offset_0[] = { -0.5f / global_flags.width, 0.0f };
set_uniform_vec2(cbcr_program_num, "foo", "chroma_offset_0", chroma_offset_0);
+ glUniform1i(cbcr_texture_sampler_uniform, 0);
+
glBindBuffer(GL_ARRAY_BUFFER, cbcr_vbo);
check_error();
std::atomic<unsigned> master_clock_channel{0};
std::unique_ptr<movit::EffectChain> display_chain;
GLuint cbcr_program_num; // Owned by <resource_pool>.
+ GLuint cbcr_texture_sampler_uniform;
GLuint cbcr_vbo; // Holds position and texcoord data.
GLuint cbcr_position_attribute_index, cbcr_texcoord_attribute_index;
std::unique_ptr<VideoEncoder> video_encoder;