示例#1
0
        private void LoadShaders()
        {
            VertexShader = new Shaders.Shader();
            FragmentShader = new Shaders.Shader();
            spMain = new Shaders.ShaderProgram();

            if (!VertexShader.LoadShaderS(Kocka.Properties.Resources.textShaderVert, ShaderType.VertexShader))
                System.Windows.Forms.MessageBox.Show("Nepodarilo sa nacitat vertex sahder (font rendering)!");
            if (!FragmentShader.LoadShaderS(Kocka.Properties.Resources.textShaderFrag, ShaderType.FragmentShader))
                System.Windows.Forms.MessageBox.Show("Nepodarilo sa nacitat fragment sahder (font rendering)!");

            spMain.CreateProgram();
            spMain.AddShaderToProgram(VertexShader);
            spMain.AddShaderToProgram(FragmentShader);
            spMain.LinkProgram();

            //teraz mozem detachnut shadere a znicit ich
            VertexShader.DetachShader(spMain.GetProgramHandle());
            FragmentShader.DetachShader(spMain.GetProgramHandle());
            VertexShader.DeleteShader();
            FragmentShader.DeleteShader();
            //

            //toto staci raz, pozicia sa nebude menit
            spMain.UseProgram();
            spMain.SetUniform("gSampler", 0);
            spMain.SetUniform("projectionMatrix", projectionMatrix);
            spMain.SetUniform("modelViewMatrix", modelViewMatrix);
            spMain.UseProgram(0);
        }