diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2019-04-05 14:13:20 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2019-04-05 14:13:20 +0200 |
| commit | 04d94de392b6e5ca4f82acc233df7b3f97abca36 (patch) | |
| tree | 27df9645ea97cf36c99cb4f8ed5f347cc00cb458 /vke/src/Buffer.cs | |
| parent | 7d305b07ccaeb2a8cd342e3395db46f2f8fffade (diff) | |
Activable pattern wip
Diffstat (limited to 'vke/src/Buffer.cs')
| -rw-r--r-- | vke/src/Buffer.cs | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/vke/src/Buffer.cs b/vke/src/Buffer.cs index 1ad293e..d11c7da 100644 --- a/vke/src/Buffer.cs +++ b/vke/src/Buffer.cs @@ -111,9 +111,12 @@ namespace VKE { } public override void Activate () { - allocateMemory (); - bindMemory (0); - SetupDescriptor (); + if (state != ActivableState.Activated) { + allocateMemory (); + bindMemory (0); + SetupDescriptor (); + } + base.Activate (); } @@ -158,18 +161,11 @@ namespace VKE { Utils.CheckResult (vkBindBufferMemory (dev.VkDev, handle, vkMemory, offset)); } protected override void Dispose (bool disposing) { - if (references>0) - return; - if (!isDisposed) { - base.Dispose (disposing); - if (!disposing) - System.Diagnostics.Debug.WriteLine ($"A Buffer Ressource was not properly disposed."); - - - vkDestroyBuffer (dev.VkDev, handle, IntPtr.Zero); - - isDisposed = true; - } + if (state == ActivableState.Activated) { + base.Dispose (disposing); + vkDestroyBuffer (dev.VkDev, handle, IntPtr.Zero); + } + state = ActivableState.Disposed; } } } |