static UnlitProgData LoadUnlitProgram(String strVertexShader, String strFragmentShader)
        {
            UnlitProgData data = new UnlitProgData();
            int vertex_shader = Shader.compileShader(ShaderType.VertexShader, strVertexShader);
            int fragment_shader = Shader.compileShader(ShaderType.FragmentShader, strFragmentShader);
            data.theProgram  = Shader.createAndLinkProgram(vertex_shader, fragment_shader);

            data.modelToCameraMatrixUnif =  GL.GetUniformLocation(data.theProgram, "modelToCameraMatrix");
            data.objectColorUnif =  GL.GetUniformLocation(data.theProgram, "baseColor");

            data.cameraToClipMatrixUnif = GL.GetUniformLocation(data.theProgram, "cameraToClipMatrix");
            return data;
        }
        void InitializePrograms()
        {
            g_WhiteDiffuseColor = LoadLitProgram(VertexShaders.ModelPosVertexLighting_PN,
                                                 FragmentShaders.ColorPassthrough_frag);
            g_VertexDiffuseColor = LoadLitProgram(VertexShaders.ModelPosVertexLighting_PCN,
                                                  FragmentShaders.ColorPassthrough_frag);
            g_FragWhiteDiffuseColor = LoadLitProgram(VertexShaders.FragmentLighting_PN,
                                                     FragmentShaders.FragmentLighting);
            g_FragVertexDiffuseColor = LoadLitProgram(VertexShaders.FragmentLighting_PCN,
                                                      FragmentShaders.FragmentLighting);

            g_Unlit = LoadUnlitProgram(VertexShaders.PosTransform, FragmentShaders.ColorUniform_frag);
        }
        static void InitializePrograms()
        {
            g_litShaderProg = LoadStandardProgram(VertexShaders.BasicTexture_PN, FragmentShaders.ShaderGaussian);
            g_litTextureProg = LoadStandardProgram(VertexShaders.BasicTexture_PN, FragmentShaders.TextureGaussian);

            g_Unlit = LoadUnlitProgram(VertexShaders.PosTransform, FragmentShaders.ColorUniform_frag);
        }
        void InitializePrograms()
        {
            for(int iProg = 0; iProg < (int)LightingProgramTypes.LP_MAX_LIGHTING_PROGRAM_TYPES; iProg++)
            {
                g_Programs[iProg] = SceneProgramData.LoadLitProgram(g_ShaderFiles[iProg]);
            }

            g_Unlit = LoadUnlitProgram(VertexShaders.PosTransform, FragmentShaders.ColorUniform_frag);
        }