createPasses() {
    this.setScreenCacheDirty();
    this.setSurfaceCacheDirty();

    if (this.passes.cache != null) { this.passes.cache.release(); }
    this.passes.cache = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1, false);
    if (this.passes.screen != null) { this.passes.screen.release(); }
    this.passes.screen = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1, false);
    if (this.passes.blurComposite != null) { this.passes.blurComposite.release(); }
    this.passes.blurComposite = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1.0, true);
    if (this.passes.surfaceA != null) { this.passes.surfaceA.release(); }
    this.passes.surfaceA = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1, false);
    if (this.passes.surfaceB != null) { this.passes.surfaceB.release(); }
    this.passes.surfaceB = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1, false);
    if (this.passes.depth != null) { this.passes.depth.release(); }
    this.passes.depth = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1, false);
    if (this.passes.highpass != null) { this.passes.highpass.release(); }
    this.passes.highpass = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, this.bloomScale, true);
    if (this.passes.blur != null) { this.passes.blur.release(); }
    this.passes.blur = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, this.bloomScale, true);
    if (this.passes.bloom != null) { this.passes.bloom.release(); }
    this.passes.bloom = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, this.bloomScale, true);
    if (this.passes.bloomCompositeA != null) { this.passes.bloomCompositeA.release(); }
    this.passes.bloomCompositeA = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, this.bloomScale, true);
    if (this.passes.bloomCompositeB != null) { this.passes.bloomCompositeB.release(); }
    this.passes.bloomCompositeB = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, this.bloomScale, true);
    if (this.passes.radialBlur != null) { this.passes.radialBlur.release(); }
    this.passes.radialBlur = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1.0, false);
    if (this.passes.toneCurve != null) { this.passes.toneCurve.release(); }
    this.passes.toneCurve = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1.0, false);
    if (this.passes.gradientColorMap != null) { this.passes.gradientColorMap.release(); }
    this.passes.gradientColorMap = RenderPass.create(cc.Texture2D.PIXEL_FORMAT_RGBA8888, cc.winSize.width, cc.winSize.height, 1.0, false);
  }
Creates framebuffers for post processing. Will automatically release/cleanup any existing framebuffers.