private void UpdateVertexBuffer(GraphicsDevice device) { if (_disposed || _updateQueued) { return; } var indices = Indices; PooledIndexBuffer currentBuffer = Buffer; if (indices.Length > 0 && (Buffer == null || currentBuffer.IndexCount != indices.Length)) { _updateQueued = true; Alex.Instance.UIThreadQueue.Enqueue( () => { if (_disposed) { return; } PooledIndexBuffer buffer = GpuResourceManager.GetIndexBuffer( this, device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.None); buffer.SetData(indices); Buffer = buffer; currentBuffer?.MarkForDisposal(); _updateQueued = false; }); } }
private void UpdateVertexBuffer(GraphicsDevice device) { var indices = Indices; PooledIndexBuffer currentBuffer = Buffer; if (indices.Length > 0 && (Buffer == null || currentBuffer.IndexCount != indices.Length)) { PooledIndexBuffer buffer = GpuResourceManager.GetIndexBuffer(this, device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.None); buffer.SetData(indices); Buffer = buffer; currentBuffer?.MarkForDisposal(); } }