/// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                DisposeDisplay();
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                ReleaseIfNotNull(_dxgiAdapter);
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _vulkanDeviceMemory.Dispose(DisposeVulkanDeviceMemory);
            }

            _state.EndDispose();
        }
Exemple #4
0
        /// <inheritdoc />
        public void Dispose()
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                DisposeCompositionHost(isDisposing: true);
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _d3d12Heap.Dispose(ReleaseIfNotNull);
            }

            _state.EndDispose();
        }
Exemple #6
0
        /// <inheritdoc cref="IDisposable.Dispose()" />
        /// <param name="action">The action to call, if the value was created, which performs the appropriate disposal.</param>
        public void Dispose(Action <T> action)
        {
            var priorState = _state.BeginDispose();

            if (priorState == Created)
            {
                action(_value);
            }

            _state.EndDispose();
        }
Exemple #7
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                DisposeD3D12ShaderBytecode();
            }

            _state.EndDispose();
        }
        private void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                DisposeCore(isDisposing);
            }

            _state.EndDispose();
        }
Exemple #9
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _vulkanFence.Dispose(DisposeVulkanFence);
            }

            _state.EndDispose();
        }
Exemple #10
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _d3d12Fence.Dispose(ReleaseIfNotNull);
                _d3d12FenceSignalEvent.Dispose(DisposeEventHandle);
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _vulkanShaderModule.Dispose(DisposeVulkanShaderModule);
                DisposeVulkanShaderModuleCreateInfo();
            }

            _state.EndDispose();
        }
Exemple #12
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                DisposeWindows(isDisposing);
                DisposeClassAtom();
                DisposeNativeHandle();
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _vulkanDescriptorSet.Dispose(DisposeVulkanDescriptorSet);
                _vulkanDescriptorSetLayout.Dispose(DisposeVulkanDescriptorSetLayout);
                _vulkanDescriptorPool.Dispose(DisposeVulkanDescriptorPool);
                _vulkanPipelineLayout.Dispose(DisposeVulkanPipelineLayout);
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _vulkanPipeline.Dispose(DisposeVulkanPipeline);

                Signature?.Dispose();
                PixelShader?.Dispose();
                VertexShader?.Dispose();
            }

            _state.EndDispose();
        }
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                _d3d12PipelineState.Dispose(ReleaseIfNotNull);

                Signature?.Dispose();
                PixelShader?.Dispose();
                VertexShader?.Dispose();
            }

            _state.EndDispose();
        }
Exemple #16
0
    public static void AssertNotDisposedOrDisposingTest()
    {
        var state = new VolatileState();

        Assert.That(() => AssertionUtilities.AssertNotDisposedOrDisposing(state),
                    Throws.Nothing
                    );

        _ = state.BeginDispose();

        Assert.That(() => AssertionUtilities.AssertNotDisposedOrDisposing(state),
                    Configuration.AssertionsEnabled ? Throws.Exception : Throws.Nothing
                    );

        state.EndDispose();

        Assert.That(() => AssertionUtilities.AssertNotDisposedOrDisposing(state),
                    Configuration.AssertionsEnabled ? Throws.Exception : Throws.Nothing
                    );
    }
Exemple #17
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                // We are only allowed to dispose of the window handle from the parent
                // thread. So, if we are on the wrong thread, we will close the window
                // and call DisposeWindowHandle from the appropriate thread.

                if (Thread.CurrentThread != ParentThread)
                {
                    Close();
                }
                else
                {
                    DisposeWindowHandle();
                }
            }

            _state.EndDispose();
        }
Exemple #18
0
        /// <inheritdoc />
        protected override void Dispose(bool isDisposing)
        {
            var priorState = _state.BeginDispose();

            if (priorState < Disposing)
            {
                if (_adapters.IsValueCreated)
                {
                    foreach (var adapter in _adapters.Value)
                    {
                        adapter?.Dispose();
                    }
                }

                _dxgiFactory.Dispose(ReleaseIfNotNull);

                if (DebugModeEnabled)
                {
                    TryReportLiveObjects();
                }
            }

            _state.EndDispose();
Exemple #19
0
 /// <inheritdoc />
 /// <remarks>While there are no unmanaged resources to cleanup, we still want to mark the instance as disposed if, for example, <see cref="GraphicsAdapter.Service" /> was disposed.</remarks>
 protected override void Dispose(bool isDisposing)
 {
     _ = _state.BeginDispose();
     _state.EndDispose();
 }
Exemple #20
0
 /// <inheritdoc />
 public void Dispose()
 {
     _ = _state.BeginDispose();
     _state.EndDispose();
 }