Esempio n. 1
0
 public static OpenGLVertex ToOpenGLVertex(this Vertex vertex)
 {
     var v = new OpenGLVertex();
     v.Position = vertex.Position.ToVector3();
     if (vertex.Normal != null) v.Normal = vertex.Normal.ToVector3();
     v.Colour = vertex.Color.ToVector4();
     if (vertex.TexCoord != null) v.TexCoord = vertex.TexCoord.ToVector2();
     return v;
 }
Esempio n. 2
0
 private void Buffer(OpenGLVertex[] data)
 {
     using (new Bind(this))
     {
         Count = data.Count();
         GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(data.Length * BlittableValueType.StrideOf(data)), data,
           BufferUsageHint.StaticDraw);
         int size;
         GL.GetBufferParameter(BufferTarget.ArrayBuffer, BufferParameterName.BufferSize, out size);
         if (data.Length * BlittableValueType.StrideOf(data) != size)
             throw new ApplicationException("Vertex data not uploaded correctly");
     }
 }