I=(S=PostProcRenderer = function(){
}).prototype;

I.Draw = function()
{
    Main.FB.GLUnbind();
    var passes = 3;
    var src = Main.FB.ColorBuffer0();
    var dst = this.bufferA;
    var delta = Uno.Float2.$1(0.0, 0.0);
    var w = 320.0;
    var h = 180.0;
    dst = this.bufferA;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(0.00078125, 0.0);
    this.DrawBlurDraw(delta, src, dst);
    src = this.bufferA.ColorBuffer0();
    dst = this.bufferB;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(0.0, 1.0 / h);
    this.DrawBlurDraw(delta, src, dst);
    src = this.bufferB.ColorBuffer0();
    dst = this.bufferA;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(1.0 / w, 0.0);
    this.DrawBlurDraw(delta, src, dst);
    src = this.bufferA.ColorBuffer0();
    dst = this.bufferB;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(0.0, 1.0 / h);
    this.DrawBlurDraw(delta, src, dst);
    src = this.bufferB.ColorBuffer0();
    dst = this.bufferA;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(1.0 / w, 0.0);
    this.DrawBlurDraw(delta, src, dst);
    src = this.bufferA.ColorBuffer0();
    dst = this.bufferB;
    dst.Clear(Uno.Float4.$0(0.0));
    delta = Uno.Float2.$1(0.0, 1.0 / h);
    this.DrawBlurDraw(delta, src, dst);
    this.DrawAddDraw(Main.FB.ColorBuffer0(), null, 1.0);
    this.DrawAddDraw(this.bufferB.ColorBuffer0(), null, 1.0);
    this.DrawAddDraw(this.bufferB.ColorBuffer0(), null, 1.0);
    this.DrawColorDraw(Uno.Float4.$1(0.0, 0.0, 0.0, this.Black), null);
};

I.DrawAddDraw = function(tex, dst, amount)
{
    this.AddDraw.Draw(tex, dst, amount);
};

I.DrawColorDraw = function(color, dst)
{
    this.ColorDraw.Draw(color, dst);
};

I.DrawBlendDraw = function(tex, addColor)
{
    this.BlendDraw.Draw(tex, addColor);
};

I.DrawBlurDraw = function(delta, tex, dst)
{
    this.BlurDraw.Draw(delta, tex, dst);
};

S.$0 = function($this) {
    if (!$this) $this = new PostProcRenderer;
    $this.Black = 0.0;
    $this.Glow = 0.0;
    $this.vertices = [Uno.Float2.$1(-1.0, -1.0), Uno.Float2.$1(1.0, -1.0), Uno.Float2.$1(1.0, 1.0), Uno.Float2.$1(-1.0, 1.0)];
    $this.indices = [0, 1, 2, 2, 3, 0];
    $this.bufferA = Uno.Graphics.Framebuffer.$0(320, 180, 2, false);
    $this.bufferB = Uno.Graphics.Framebuffer.$0(320, 180, 2, false);
    {
        $this.AddDraw = PostProcRenderer.AddDrawExposePoint.$0($this);
        $this.SubDraw = PostProcRenderer.SubDrawExposePoint.$0($this);
        $this.ColorDraw = PostProcRenderer.ColorDrawExposePoint.$0($this);
        $this.BlendDraw = PostProcRenderer.BlendDrawExposePoint.$0($this);
        $this.BlurDraw = PostProcRenderer.BlurDrawExposePoint.$0($this);
    }

    return $this;
};
