aboutsummaryrefslogtreecommitdiffstatsci
path: root/vke/src/Buffer.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2019-04-05 14:13:20 +0200
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2019-04-05 14:13:20 +0200
commit04d94de392b6e5ca4f82acc233df7b3f97abca36 (patch)
tree27df9645ea97cf36c99cb4f8ed5f347cc00cb458 /vke/src/Buffer.cs
parent7d305b07ccaeb2a8cd342e3395db46f2f8fffade (diff)
Activable pattern wip
Diffstat (limited to 'vke/src/Buffer.cs')
-rw-r--r--vke/src/Buffer.cs26
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;
}
}
}