public void OnLoad() { // create and fill a vertex buffer this.vertexBuffer = new VertexBuffer <ColouredVertex>(ColouredVertex.Size); this.vertexBuffer.AddVertex(new ColouredVertex(new Vector3(-1, -1, -1.5f), Color4.Lime)); this.vertexBuffer.AddVertex(new ColouredVertex(new Vector3(1, 1, -1.5f), Color4.Red)); this.vertexBuffer.AddVertex(new ColouredVertex(new Vector3(1, -1, -1.5f), Color4.Blue)); // load shaders #region Shaders var vertexShader = new Shader(ShaderType.VertexShader, @"#version 130 // a projection transformation to apply to the vertex' position uniform mat4 projectionMatrix; // attributes of our vertex in vec3 vPosition; in vec4 vColor; out vec4 fColor; // must match name in fragment shader void main() { // gl_Position is a special variable of OpenGL that must be set gl_Position = projectionMatrix * vec4(vPosition, 1.0); fColor = vColor; }" ); var fragmentShader = new Shader(ShaderType.FragmentShader, @"#version 130 in vec4 fColor; // must match name in vertex shader out vec4 fragColor; // first out variable is automatically written to the screen void main() { fragColor = fColor; }" ); #endregion // link shaders into shader program this.shaderProgram = new ShaderProgram(vertexShader, fragmentShader); // create vertex array to specify vertex layout this.vertexArray = new VertexArray <ColouredVertex>( this.vertexBuffer, shaderProgram, new VertexAttribute("vPosition", 3, VertexAttribPointerType.Float, ColouredVertex.Size, 0), new VertexAttribute("vColor", 4, VertexAttribPointerType.Float, ColouredVertex.Size, 12) ); // create projection matrix uniform this.projectionMatrix = new Matrix4Uniform("projectionMatrix"); this.projectionMatrix.Matrix = Matrix4.CreatePerspectiveFieldOfView( MathHelper.PiOver2, 16f / 9, 0.1f, 100f); Player = new Player(); Player.OutPutPlayerValuesToDebugger(); //This is where you load all of your content //Images, Models, Fonts, Sounds. }