X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.cpp;h=5b5e3675fea17a81430b21eec75e225e211228c5;hp=9ea2c03a828d2ea6861b504c33512fa713d2cdea;hb=3140175e3160e75d659e596e420afffb596e3c2c;hpb=1727b0714398fc4f318048d457a35ca58bc30b59 diff --git a/effect_chain.cpp b/effect_chain.cpp index 9ea2c03..5b5e367 100644 --- a/effect_chain.cpp +++ b/effect_chain.cpp @@ -259,7 +259,7 @@ Phase *EffectChain::compile_glsl_program( for (unsigned i = 0; i < effects.size(); ++i) { Node *node = effects[i]; if (node->effect->num_inputs() == 0) { - node->effect->set_int("needs_mipmaps", input_needs_mipmaps); + CHECK(node->effect->set_int("needs_mipmaps", input_needs_mipmaps)); } } frag_shader += std::string("#define INPUT ") + effects.back()->effect_id + "\n"; @@ -658,7 +658,7 @@ void EffectChain::propagate_gamma_and_color_space() continue; } - ColorSpace color_space = node->incoming_links[0]->output_color_space; + Colorspace color_space = node->incoming_links[0]->output_color_space; GammaCurve gamma_curve = node->incoming_links[0]->output_gamma_curve; for (unsigned j = 1; j < node->incoming_links.size(); ++j) { if (node->incoming_links[j]->output_color_space != color_space) { @@ -671,7 +671,7 @@ void EffectChain::propagate_gamma_and_color_space() // The conversion effects already have their outputs set correctly, // so leave them alone. - if (node->effect->effect_type_id() != "ColorSpaceConversionEffect") { + if (node->effect->effect_type_id() != "ColorspaceConversionEffect") { node->output_color_space = color_space; } if (node->effect->effect_type_id() != "GammaCompressionEffect" && @@ -725,9 +725,9 @@ void EffectChain::fix_internal_color_spaces() if (input->output_color_space == COLORSPACE_sRGB) { continue; } - Node *conversion = add_node(new ColorSpaceConversionEffect()); - conversion->effect->set_int("source_space", input->output_color_space); - conversion->effect->set_int("destination_space", COLORSPACE_sRGB); + Node *conversion = add_node(new ColorspaceConversionEffect()); + CHECK(conversion->effect->set_int("source_space", input->output_color_space)); + CHECK(conversion->effect->set_int("destination_space", COLORSPACE_sRGB)); conversion->output_color_space = COLORSPACE_sRGB; insert_node_between(input, conversion, node); } @@ -759,11 +759,12 @@ void EffectChain::fix_output_color_space() { Node *output = find_output_node(); if (output->output_color_space != output_format.color_space) { - Node *conversion = add_node(new ColorSpaceConversionEffect()); - conversion->effect->set_int("source_space", output->output_color_space); - conversion->effect->set_int("destination_space", output_format.color_space); + Node *conversion = add_node(new ColorspaceConversionEffect()); + CHECK(conversion->effect->set_int("source_space", output->output_color_space)); + CHECK(conversion->effect->set_int("destination_space", output_format.color_space)); conversion->output_color_space = output_format.color_space; connect_nodes(output, conversion); + propagate_gamma_and_color_space(); } } @@ -840,7 +841,7 @@ void EffectChain::fix_internal_gamma_by_asking_inputs(unsigned step) } for (unsigned i = 0; i < nonlinear_inputs.size(); ++i) { - nonlinear_inputs[i]->effect->set_int("output_linear_gamma", 1); + CHECK(nonlinear_inputs[i]->effect->set_int("output_linear_gamma", 1)); nonlinear_inputs[i]->output_gamma_curve = GAMMA_LINEAR; } @@ -878,7 +879,7 @@ void EffectChain::fix_internal_gamma_by_inserting_nodes(unsigned step) if (node->incoming_links.empty()) { assert(node->outgoing_links.empty()); Node *conversion = add_node(new GammaExpansionEffect()); - conversion->effect->set_int("source_curve", node->output_gamma_curve); + CHECK(conversion->effect->set_int("source_curve", node->output_gamma_curve)); conversion->output_gamma_curve = GAMMA_LINEAR; connect_nodes(node, conversion); } @@ -892,7 +893,7 @@ void EffectChain::fix_internal_gamma_by_inserting_nodes(unsigned step) continue; } Node *conversion = add_node(new GammaExpansionEffect()); - conversion->effect->set_int("source_curve", input->output_gamma_curve); + CHECK(conversion->effect->set_int("source_curve", input->output_gamma_curve)); conversion->output_gamma_curve = GAMMA_LINEAR; insert_node_between(input, conversion, node); } @@ -927,7 +928,7 @@ void EffectChain::fix_output_gamma() Node *output = find_output_node(); if (output->output_gamma_curve != output_format.gamma_curve) { Node *conversion = add_node(new GammaCompressionEffect()); - conversion->effect->set_int("destination_curve", output_format.gamma_curve); + CHECK(conversion->effect->set_int("destination_curve", output_format.gamma_curve)); conversion->output_gamma_curve = output_format.gamma_curve; connect_nodes(output, conversion); }