Inheritance: IDisposable
        private void Initialize()
        {
            Smaa = new Smaa();

            Shader = new GLShader(
                "attribute vec4 position; attribute vec4 texCoords; varying vec2 v_texCoord; void main() { gl_Position = position; v_texCoord = texCoords.xy; }",
                "uniform sampler2D texture; varying vec2 v_texCoord; void main() { gl_FragColor = texture2D(texture, v_texCoord); }"
            );

            VertexBuffer = GLBuffer.Create().SetData(CSharpPlatform.RectangleF.FromCoords(-1, -1, +1, +1).GetFloat2TriangleStripCoords());

            Shader.BindUniformsAndAttributes(ShaderInfo);

            // TestTexture = GLTexture.Create().SetFormat(TextureFormat.RGBA).SetSize(2, 2).SetData(new uint[] { 0xFF0000FF, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFFFF });
        }
        private static void _MainData()
        {
            var Context = GLContextFactory.CreateWindowless().MakeCurrent();
            var BitmapIn = new Bitmap(Image.FromFile(@"C:\temp\test.png"));
            var Smaa = new Smaa();
            var TextureIn = GLTextureCreateFromBitmap(BitmapIn);
            var TextureOut = Smaa.Process(TextureIn, null);

            new Bitmap(BitmapIn.Width, BitmapIn.Height).SetChannelsDataInterleaved(TextureOut.GetDataFromGpu(), BitmapChannelList.RGBA).Save(@"c:\temp\test.out.png");

            File.WriteAllBytes(@"c:\temp\test.out.bin", TextureOut.GetDataFromGpu());
            Environment.Exit(0);
        }