예제 #1
0
        public override GlCallResult _glInitialise()
        {
            return(GlCall(() =>
            {
                var assembly = Assembly.GetExecutingAssembly();

                var vertexShaderResource = "Engine.Graphics.Shader.GLSL.vertex-shader.vert";
                var fragmentShaderResource = "Engine.Graphics.Shader.GLSL.fragment-shader.frag";

                Turpgine.Logger.Log(Level.Debug, "Loading resource '" + vertexShaderResource + "'.");
                var vertexShader =
                    new Shader(this,
                               StreamUtil.ReadStringStream(
                                   assembly.GetManifestResourceStream(vertexShaderResource)),
                               "vertex-shader.vert", ShaderType.VertexShader);

                Turpgine.Logger.Log(Level.Debug, "Loading resource '" + fragmentShaderResource + "'.");
                var fragmentShader =
                    new Shader(this,
                               StreamUtil.ReadStringStream(
                                   assembly.GetManifestResourceStream(fragmentShaderResource)),
                               "fragment-shader.frag", ShaderType.FragmentShader);

                var shaderProgram = new ShaderProgram(this, vertexShader, fragmentShader);

                Add(shaderProgram);
                GlUse(shaderProgram);
            }));
        }