diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp index 78946cb82b5de5ab76727f7123856d3b87ad9d1e..27d671d41b2b09bc0b4a7e35cd8633d797bd66ef 100644 --- a/src/wrapper/wrap_cl.hpp +++ b/src/wrapper/wrap_cl.hpp @@ -1308,6 +1308,12 @@ namespace pyopencl } #endif + inline + memory_object *memory_object_from_int(intptr_t cl_mem_as_int) + { + return new memory_object((cl_mem) cl_mem_as_int, true); + } + // }}} // {{{ buffer diff --git a/src/wrapper/wrap_cl_part_1.cpp b/src/wrapper/wrap_cl_part_1.cpp index bb8cdda097aaf08a7eba809026c3449c91d3b09c..48095b04e3bbcfda63d417eceedd57cb18276b22 100644 --- a/src/wrapper/wrap_cl_part_1.cpp +++ b/src/wrapper/wrap_cl_part_1.cpp @@ -151,6 +151,10 @@ void pyopencl_expose_part_1() .DEF_SIMPLE_METHOD(release) .add_property("obj_ptr", &cls::obj_ptr) .add_property("hostbuf", &cls::hostbuf) + .def("from_cl_mem_as_int", memory_object_from_int, + py::return_value_policy<py::manage_new_object>(), + py::args("cl_mem_as_int")) + .staticmethod("from_cl_mem_as_int") ; }