Exemplo n.º 1
0
        public AxisPreview(KauWindow window, int size = 60, int border = 25)
        {
            this.size            = size;
            this.border          = border;
            Events.WindowResize += OnResize;
            OnResize(window);

            using (var loader = new KauRock.Loaders.Shader()) {
                loader.AddRaw("axis-preview.vert", vertShader, ShaderType.VertexShader);
                loader.AddRaw("axis-preview.frag", fragShader, ShaderType.FragmentShader);
                shader = loader.Load("axis-preview.vert", "axis-preview.frag");
            }

            vertexArray   = GL.GenVertexArray();
            vertexBuffer  = GL.GenBuffer();
            elementBuffer = GL.GenBuffer();
            GL.BindVertexArray(vertexArray);

            GL.BindBuffer(BufferTarget.ArrayBuffer, vertexBuffer);
            GL.BufferData(BufferTarget.ArrayBuffer, sizeof(float) * verts.Length, verts, BufferUsageHint.StaticDraw);

            GL.BindBuffer(BufferTarget.ElementArrayBuffer, elementBuffer);
            GL.BufferData(BufferTarget.ElementArrayBuffer, sizeof(uint) * tris.Length, tris, BufferUsageHint.StaticDraw);

            int stride = sizeof(float) * 6;

            GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, stride, 0);
            GL.EnableVertexAttribArray(0);
            GL.VertexAttribPointer(1, 3, VertexAttribPointerType.Float, false, stride, stride / 2);
            GL.EnableVertexAttribArray(1);
        }
Exemplo n.º 2
0
 private void OnResize(KauWindow window)
 {
     scale       = new Vector3(size / (float)window.Width, size / (float)window.Height, 1f);
     translation = new Vector3(
         (window.Width - (size + border)) / ((float)window.Width),
         (window.Height - (size + border)) / ((float)window.Height),
         0);
 }