コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }