X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_chain.cpp;h=0775042c5ccb114c2f0ed2e4bf7d1a023e061ec2;hp=deeea9187f719b1ca3e0f5f340197fab8b2e59c5;hb=c79d94d05d560fa59b23d542bca6d7a94b907b6f;hpb=fb1f4f2008f97c71248c0554d93e8d7c11347a8b diff --git a/effect_chain.cpp b/effect_chain.cpp index deeea91..0775042 100644 --- a/effect_chain.cpp +++ b/effect_chain.cpp @@ -698,6 +698,8 @@ Phase *EffectChain::construct_phase(Node *output, map *complete for (unsigned i = 0; i < deps.size(); ++i) { bool start_new_phase = false; + Effect::MipmapRequirements save_needs_mipmaps = deps[i]->needs_mipmaps; + if (node->effect->needs_texture_bounce() && !deps[i]->effect->is_single_texture() && !deps[i]->effect->override_disable_bounce()) { @@ -785,6 +787,11 @@ Phase *EffectChain::construct_phase(Node *output, map *complete } if (start_new_phase) { + // Since we're starting a new phase here, we don't need to impose any + // new demands on this effect. Restore the status we had before we + // started looking at it. + deps[i]->needs_mipmaps = save_needs_mipmaps; + phase->inputs.push_back(construct_phase(deps[i], completed_effects)); } else { effects_todo_this_phase.push(deps[i]);