private void updatePassesList() {
    mPasses.clear();

    for (int i = 0; i < mComponents.size(); i++) {
      IPostProcessingComponent component = mComponents.get(i);
      if (component.getType() == PostProcessingComponentType.PASS) {
        mPasses.add((IPass) component);
      } else if (component.getType() == PostProcessingComponentType.EFFECT) {
        IPostProcessingEffect effect = (IPostProcessingEffect) component;
        mPasses.addAll(effect.getPasses());
      }
    }

    mNumPasses = mPasses.size();
  }
 public void insertEffect(int index, IPostProcessingEffect multiPass) {
   multiPass.initialize(mRenderer);
   mComponents.addAll(index, multiPass.getPasses());
   mComponentsDirty = true;
 }
 public void removeEffect(IPostProcessingEffect multiPass) {
   mComponents.removeAll(multiPass.getPasses());
   mComponentsDirty = true;
 }
 public void addEffect(IPostProcessingEffect multiPass) {
   multiPass.initialize(mRenderer);
   mComponents.addAll(multiPass.getPasses());
   mComponentsDirty = true;
 }