コード例 #1
0
ファイル: Extensions.cs プロジェクト: veggielane/BlockRTS
 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;
 }
コード例 #2
0
ファイル: VBO.cs プロジェクト: veggielane/BlockRTS
 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");
     }
 }