From bc4e1521cc2ccc91a033998847dc35e1a8c8687b Mon Sep 17 00:00:00 2001
From: Michael Bien <mbien@fh-landshut.de>
Date: Thu, 2 Sep 2010 23:45:05 +0200
Subject: CLMemObjectDestructorCallback for HLB and LLB.

---
 src/com/jogamp/opencl/CLMemory.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'src/com/jogamp/opencl/CLMemory.java')

diff --git a/src/com/jogamp/opencl/CLMemory.java b/src/com/jogamp/opencl/CLMemory.java
index d66db3c8..416b8019 100644
--- a/src/com/jogamp/opencl/CLMemory.java
+++ b/src/com/jogamp/opencl/CLMemory.java
@@ -3,6 +3,7 @@ package com.jogamp.opencl;
 import com.jogamp.opencl.gl.CLGLI;
 import com.jogamp.common.nio.Buffers;
 import com.jogamp.common.nio.PointerBuffer;
+import com.jogamp.opencl.impl.CLMemObjectDestructorCallback;
 import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.DoubleBuffer;
@@ -72,6 +73,18 @@ public abstract class CLMemory <B extends Buffer> extends CLObject implements CL
         return context.cl;
     }
 
+    /**
+     * Registers a callback which will be called by the OpenCL implementation
+     * when the memory object is released.
+     */
+    public void registerDestructorCallback(final CLMemObjectListener listener) {
+        cl.clSetMemObjectDestructorCallback(ID, new CLMemObjectDestructorCallback() {
+            public void memoryDeallocated(long memObjID) {
+                listener.memoryDeallocated(CLMemory.this);
+            }
+        });
+    }
+
     /**
      * Returns a new instance of CLMemory pointing to the same CLResource but using a different Buffer.
      */
-- 
cgit v1.2.3