Example #1
0
        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);
            }
        }
Example #2
0
        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();
        }