コード例 #1
0
ファイル: VkWindow.cs プロジェクト: jpbruyere/vke.net
        protected virtual void Dispose(bool disposing)
        {
            if (!isDisposed)
            {
                dev.WaitIdle();

                for (int i = 0; i < swapChain.ImageCount; i++)
                {
                    dev.DestroySemaphore(drawComplete[i]);
                    cmds[i].Free();
                }
                drawFence.Dispose();
                swapChain.Dispose();

                vkDestroySurfaceKHR(instance.Handle, hSurf, IntPtr.Zero);

                if (disposing)
                {
                    cmdPool.Dispose();
                    dev.Dispose();
                    instance.Dispose();
                }
                else
                {
                    Debug.WriteLine("a VkWindow has not been correctly disposed");
                }

                if (currentCursor != IntPtr.Zero)
                {
                    Glfw3.DestroyCursor(currentCursor);
                }

                Glfw3.DestroyWindow(hWin);
                Glfw3.Terminate();


                isDisposed = true;
            }
        }