public ShaderProgram(VertexShader vShader, FragmentShader fShader)
 {
     GenerateProgram();
     AttachShader(vShader);
     AttachShader(fShader);
     LinkProgram();
 }
        public void AttachShader(AbstractShader shader)
        {
            GL.AttachShader(Program, shader.Shader);

            switch(shader.Type)
            {
                case ShaderType.VertexShader:
                    VertexShader = (VertexShader)shader;
                    break;
                case ShaderType.FragmentShader:
                    FragmentShader = (FragmentShader)shader;
                    break;
                case ShaderType.GeometryShader:
                    //TODO:implement
                    break;
            }
        }