Пример #1
0
        /// <summary>
        /// The start methods for the renderer
        /// </summary>
        internal override void Start()
        {
            vao.Bind();
            vbo.Bind();

            vbo.InitBuffer();

            ibo.Bind();
            ibo.SetBufferData();
            ibo.Unbind();

            vbo.Unbind();
            vao.Unbind();
        }
            public void UpdateVertexData()
            {
                List <float> list = new List <float>();

                for (int i = 0; i < Faces.Count; i++)
                {
                    for (int v = 0; v < Faces[i].Vertices.Length; v++)
                    {
                        var vertex = Faces[i].Vertices[v];
                        list.Add(vertex.Position.X);
                        list.Add(vertex.Position.Y);
                        list.Add(vertex.Position.Z);
                        list.Add(vertex.Normal.X);
                        list.Add(vertex.Normal.Y);
                        list.Add(vertex.Normal.Z);
                        list.Add(vertex.TexCoord.X);
                        list.Add(vertex.TexCoord.Y);
                    }
                }

                Vao.Bind();

                float[] data = list.ToArray();
                GL.BufferData(BufferTarget.ArrayBuffer, sizeof(float) * data.Length, data, BufferUsageHint.StaticDraw);

                int[] indices = Indices.ToArray();
                GL.BufferData(BufferTarget.ElementArrayBuffer, sizeof(int) * indices.Length, indices, BufferUsageHint.StaticDraw);
            }
Пример #3
0
        public virtual void draw(Matrix4 view)
        {
            if (picked)
            {
                //this.Scale = .75f;
            }

            GL.BindTexture(TextureTarget.Texture2D, this.Texture.Id);
            Shader.Use();
            Shader.setUniform("model", this.transform);
            Shader.setUniform("view", view);
            Shader.setUniform("picked", picked);

            Shader.setUniform("l", l);
            Shader.setUniform("f", f);
            Shader.setUniform("r", r);
            Shader.setUniform("ba", ba);
            Shader.setUniform("t", t);
            Shader.setUniform("bo", bo);

            Vao.Bind();

            GL.DrawArrays(PrimitiveType.Triangles, 0, Vao.Lenth);

            Vao.Unbind();

            if (picked)
            {
                picked = false;
                //this.Scale = 1.0f;
            }
        }
Пример #4
0
 public void Bind()
 {
     if (BufferInitialized)
     {
         Vao.Bind();
     }
 }
Пример #5
0
        public void DrawArrays(PrimitiveType drawMode, int first, int count)
        {
            if (!BufferInitialized)
            {
                CreateBuffers();
            }

            Vao.Bind();
            Vao.DrawArrays(drawMode, first, count);
        }
Пример #6
0
        public void DrawElements(PrimitiveType drawMode, int count)
        {
            if (!BufferInitialized)
            {
                CreateBuffers();
            }

            Vao.Bind();
            Vao.DrawElements(drawMode, count);
        }
Пример #7
0
        public void DrawElements(PrimitiveType drawMode = PrimitiveType.Triangles)
        {
            if (!BufferInitialized)
            {
                CreateBuffers();
            }

            Vao.Bind();
            Vao.DrawElements(drawMode, IndexBuffer.ElementCount);
        }
Пример #8
0
        public void DrawElementsBaseVertex(PrimitiveType mode, int baseVertex, int count, int offset = 0)
        {
            if (!BufferInitialized)
            {
                CreateBuffers();
            }

            Vao.Bind();
            Vao.DrawElementsBaseVertex(mode, baseVertex, count, DrawElementsType.UnsignedInt, offset);
        }
Пример #9
0
        public void drawToPickBuffer(ShaderProgram shader, Matrix4 view)
        {
            shader.Use();
            shader.setUniform("model", this.transform);
            shader.setUniform("view", view);
            shader.setUniform("pickColor", this.pickColor);

            Vao.Bind();

            GL.DrawArrays(PrimitiveType.Triangles, 0, Vao.Lenth);

            Vao.Unbind();
        }
 public unsafe override void Render()
 {
     Vao.Bind();
     for (int i = 0; i < textures.Count; i++)
     {
         textures[i].Bind((TextureUnit)i);
     }
     shader.Use();
     if (indices != null)
     {
         gl.DrawElements(PrimitiveType.Triangles, (uint)indices.Length, GLEnum.UnsignedInt, null);
     }
     else
     {
         gl.DrawArrays(PrimitiveType.Triangles, 0, (uint)verts.Length);
     }
 }
Пример #11
0
 public void DrawArrays(PrimitiveType drawMode, int first, int count)
 {
     Vao.Bind();
     Vao.DrawArrays(drawMode, first, count);
 }
Пример #12
0
 public void DrawElements(PrimitiveType drawMode, int count)
 {
     Vao.Bind();
     Vao.DrawElements(drawMode, count);
 }
Пример #13
0
 public void DrawElements(PrimitiveType drawMode = PrimitiveType.Triangles)
 {
     Vao.Bind();
     Vao.DrawElements(drawMode, IndexBuffer.ElementCount);
 }
Пример #14
0
 public void DrawElementsBaseVertex(PrimitiveType mode, int baseVertex, int count, int offset = 0)
 {
     Vao.Bind();
     Vao.DrawElementsBaseVertex(mode, baseVertex, count, DrawElementsType.UnsignedInt, offset);
 }