Input *EffectChain::add_input(Input *input)
{
+ assert(!finalized);
inputs.push_back(input);
add_node(input);
return input;
void EffectChain::add_output(const ImageFormat &format, OutputAlphaFormat alpha_format)
{
+ assert(!finalized);
output_format = format;
output_alpha_format = alpha_format;
}
Effect *EffectChain::add_effect(Effect *effect, const std::vector<Effect *> &inputs)
{
+ assert(!finalized);
assert(inputs.size() == effect->num_inputs());
Node *node = add_node(effect);
for (unsigned i = 0; i < inputs.size(); ++i) {
// Last phase goes to the output the user specified.
glBindFramebuffer(GL_FRAMEBUFFER, dest_fbo);
check_error();
+ GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ assert(status == GL_FRAMEBUFFER_COMPLETE);
glViewport(x, y, width, height);
if (dither_effect != NULL) {
CHECK(dither_effect->set_int("output_width", width));
output_node->output_texture,
0);
check_error();
+ GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ assert(status == GL_FRAMEBUFFER_COMPLETE);
glViewport(0, 0, phases[phase]->output_width, phases[phase]->output_height);
}