Esempio n. 1
0
 public void GenerateMeshes()
 {
     _eah = new VertexArray <Col2dVertex>(new Col2dVertex[]
     {
         new Col2dVertex {
             Position = (0F, 0F), Color = (1F, 1F, 1F, 1F)
         },
Esempio n. 2
0
 public void Render()
 {
     if (Disposed)
     {
         return;
     }
     if (_needUpdate)
     {
         lock (_updateLock)
         {
             _vertex?.DisposeAll();
             _vertex = _chunkVertexArrayProvider.ToElementArray().GetHandle();
             _chunkVertexArrayProvider = null;
             _needUpdate = false;
         }
     }
     lock (_renderLock)
     {
         if (_vertex == null || _shader == null)
         {
             return;
         }
         _textureDictionary.Bind();
         _shader.Use();
         _shader.Model      = Matrix4.Identity;
         _shader.Projection = _projectionMatrix.GetMatrix();
         _shader.View       = _viewMatrix.GetMatrix();
         _vertex.Bind();
         _vertex.Render();
     }
 }
Esempio n. 3
0
 public void Initialize()
 {
     _shader = new BoxShader();
     _eah    = new VertexArray <float>(new float[]
     {
         0F, 0F, 0F,
         1F, 0F, 0F,
         1F, 0F, 1F,
         0F, 0F, 1F,
         0F, 1F, 0F,
         1F, 1F, 0F,
         1F, 1F, 1F,
         0F, 1F, 1F,
     }, new[]
     {
         new VertexAttributePointer()
         {
             Index      = 0,
             Normalized = false,
             Offset     = 0,
             Size       = 3,
             Type       = VertexAttribePointerType.Float
         }
     }).ToElementArray(new uint[]
     {
         0, 1,
         1, 2,
         2, 3,
         3, 0,
         4, 5,
         5, 6,
         6, 7,
         7, 4,
         0, 4,
         1, 5,
         2, 6,
         3, 7
     }).GetHandle();
 }
Esempio n. 4
0
 public static IElementArrayHandle BindElementBufferObject(this IElementArrayHandle handle)
 {
     GL.BindBuffer(BufferTarget.ElementArrayBuffer, handle.ElementBufferObjectHandle);
     return(handle);
 }
Esempio n. 5
0
 /// <summary>
 /// 修改元素数据
 /// </summary>
 /// <param name="handle">元素Handle</param>
 /// <param name="offset">字节偏移量</param>
 /// <param name="size">字节数量</param>
 /// <param name="data">字节数据</param>
 /// <remarks>请确保ElementBufferObjectHandle被绑定</remarks>
 /// <returns></returns>
 public static IElementArrayHandle ElementSubData(this IElementArrayHandle handle, int offset, int size,
                                                  uint[] data)
 {
     GL.BufferSubData(BufferTarget.ElementArrayBuffer, (IntPtr)offset, size, data);
     return(handle);
 }