protected IndexBuffer( GraphicsDevice graphicsDevice, IndexElementSize indexElementSize, int indexCount, BufferUsage usage, bool dynamic ) { if (graphicsDevice == null) { throw new ArgumentNullException("GraphicsDevice is null"); } GraphicsDevice = graphicsDevice; IndexElementSize = indexElementSize; IndexCount = indexCount; BufferUsage = usage; Threading.ForceToMainThread(() => { Handle = new OpenGLDevice.OpenGLIndexBuffer( dynamic, IndexCount, IndexElementSize ); }); }
protected override void Dispose(bool disposing) { if (!IsDisposed) { GraphicsDevice.AddDisposeAction(() => { OpenGLDevice.Instance.DeleteIndexBuffer(Handle); Handle = null; }); } base.Dispose(disposing); }