CSPspEmu.Gui.SMAA.Smaa.edge_pass C# (CSharp) Method

edge_pass() private method

private edge_pass ( GLTexture albedo_tex, GLTexture depthTex ) : GLTexture
albedo_tex GLTexture
depthTex GLTexture
return GLTexture
        private GLTexture edge_pass(GLTexture albedo_tex, GLTexture depthTex)
        {
            if (edge_shader == null)
            {
                edge_shader = GLShaderFilter.Create(Width, Height, new GLShader(
                    VertexHeader + @"
                        out vec2 texcoord;
                        out vec4 offset[3];
                        out vec4 dummy2;
                        void main()
                        {
                            texcoord = a_texcoords.xy;
                            vec4 dummy1 = vec4(0);
                            SMAAEdgeDetectionVS(dummy1, dummy2, texcoord, offset);
                            gl_Position = a_position;
                        }
                    ",
                    FragmentHeader + @"
                        uniform sampler2D albedo_tex;
                        uniform sampler2D depthTex;

                        in vec2 texcoord;
                        in vec4 offset[3];
                        in vec4 dummy2;

                        void main()
                        {
                            #if SMAA_PREDICATION == 1
                                gl_FragColor = SMAAColorEdgeDetectionPS(texcoord, offset, albedo_tex, depthTex);
                            #else
                                gl_FragColor = SMAAColorEdgeDetectionPS(texcoord, offset, albedo_tex);
                            #endif
                        }
                    "
                ));
            }

            return edge_shader.Process((Shader) =>
            {
                Shader.GetUniform("albedo_tex").Set(GLTextureUnit.CreateAtIndex(0).SetWrap(GLWrap.ClampToEdge).SetFiltering(GLScaleFilter.Linear).SetTexture(albedo_tex));
                Shader.GetUniform("depthTex").NoWarning().Set(GLTextureUnit.CreateAtIndex(1).SetWrap(GLWrap.ClampToEdge).SetFiltering(GLScaleFilter.Linear).SetTexture(depthTex));
            });
        }