public void TestReferenceCount() { // By default, runs without EGL Egl.IsRequired = false; using (DeviceContext deviceContext = DeviceContext.Create()) { Assert.AreEqual(0, deviceContext.RefCount); Assert.IsFalse(deviceContext.IsDisposed); deviceContext.IncRef(); Assert.AreEqual(1, deviceContext.RefCount); Assert.IsFalse(deviceContext.IsDisposed); deviceContext.IncRef(); Assert.AreEqual(2, deviceContext.RefCount); Assert.IsFalse(deviceContext.IsDisposed); deviceContext.DecRef(); Assert.AreEqual(1, deviceContext.RefCount); Assert.IsFalse(deviceContext.IsDisposed); deviceContext.DecRef(); Assert.AreEqual(0, deviceContext.RefCount); Assert.IsTrue(deviceContext.IsDisposed); } }
protected override void OnUnrealized() { if (_GraphicsContext != IntPtr.Zero) { // Event handling OnContextDestroying(); // Destroy context DeleteContext(); } // Destroy device context _DeviceContext.DecRef(); _DeviceContext = null; // Base implementation base.OnUnrealized(); }