public void GenerateMeshes() { _eah = new VertexArray <Col2dVertex>(new Col2dVertex[] { new Col2dVertex { Position = (0F, 0F), Color = (1F, 1F, 1F, 1F) },
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(); } }
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(); }
public static IElementArrayHandle BindElementBufferObject(this IElementArrayHandle handle) { GL.BindBuffer(BufferTarget.ElementArrayBuffer, handle.ElementBufferObjectHandle); return(handle); }
/// <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); }