public override void Render(float x, float y, float width, float height) { quadInterpolation.UseShader(); quadInterpolation.WriteUniform("mvp", Matrix4.CreateOrthographicOffCenter(-1f, 1f, -1f, 1f, -1, 1)); data[0] = x; data[1] = y; data[2] = 0; data[3] = 1; data[4] = colors[0].R; data[5] = colors[0].G; data[6] = colors[0].B; data[7] = x + width; data[8] = y; data[9] = 1; data[10] = 1; data[11] = colors[1].R; data[12] = colors[1].G; data[13] = colors[1].B; data[14] = x + width; data[15] = y + height; data[16] = 1; data[17] = 0; data[18] = colors[2].R; data[19] = colors[2].G; data[20] = colors[2].B; data[21] = x; data[22] = y + height; data[23] = 0; data[24] = 0; data[25] = colors[3].R; data[26] = colors[3].G; data[27] = colors[3].B; GL.BindBuffer(BufferTarget.ArrayBuffer, bufferID); GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(sizeof(float) * data.Length), data, BufferUsageHint.DynamicDraw); GL.BindBuffer(BufferTarget.ArrayBuffer, 0); GL.BindVertexArray(arrayID); GL.DrawArrays(PrimitiveType.Quads, 0, 4); GL.BindVertexArray(0); ShaderUtil.ResetShader(); }
protected override void OnRenderFrame(FrameEventArgs e) { if (!isfocused) { Client.update(); base.OnRenderFrame(e); return; } // Console.WriteLine(raycaster.Enabled.ToString()); GL.ClearColor(backcolor.R, backcolor.G, backcolor.B, backcolor.A); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); ee += e.Time; fps++; if (ee > 1) { ee = 0; Title = "StoneVox fps : " + fps.ToString(); fps = 0; } renderer.Render(manager.ActiveModel); ShaderUtil.ResetShader(); floor.Render(); gui.Render(); SwapBuffers(); Client.update(); base.OnRenderFrame(e); }