12 public GLWindow(GameWindowSettings gws, NativeWindowSettings nws)
19 GL.ClearColor(0f, 0f, 0f, 1f);
26 protected override void OnResize(ResizeEventArgs e)
34 base.OnRenderFrame(args);
36 GL.Clear(ClearBufferMask.ColorBufferBit);
38 GL.UseProgram(shaderProgram);
39 GL.BindVertexArray(vao);
40 GL.DrawArrays(PrimitiveType.Triangles, 0, 3);
54 vao = GL.GenVertexArray();
57 GL.BindVertexArray(vao);
58 GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
59 GL.BufferData(BufferTarget.ArrayBuffer, vertices.Length *
sizeof(
float), vertices, BufferUsageHint.StaticDraw);
61 GL.VertexAttribPointer(0, 2, VertexAttribPointerType.Float,
false, 2 *
sizeof(
float), 0);
62 GL.EnableVertexAttribArray(0);
67 string vertexShaderSource =
@"
69layout (location = 0) in vec2 aPos;
72 gl_Position = vec4(aPos.xy, 0.0, 1.0);
75 string fragmentShaderSource =
@"
80 FragColor = vec4(1,0,0,1);
83 int vs = GL.CreateShader(ShaderType.VertexShader);
84 GL.ShaderSource(vs, vertexShaderSource);
87 int fs = GL.CreateShader(ShaderType.FragmentShader);
88 GL.ShaderSource(fs, fragmentShaderSource);
91 shaderProgram = GL.CreateProgram();
92 GL.AttachShader(shaderProgram, vs);
93 GL.AttachShader(shaderProgram, fs);
94 GL.LinkProgram(shaderProgram);