From c51e6c89ea5bbf5d7f41755a818e5dc4988b5568 Mon Sep 17 00:00:00 2001 From: AlsoSylv <64978191+AlsoSylv@users.noreply.github.com> Date: Thu, 5 Mar 2026 07:43:28 -0500 Subject: [PATCH] Expose methods to conver from cl3 types to opencl3 types --- src/command_queue.rs | 7 ++++++- src/context.rs | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/command_queue.rs b/src/command_queue.rs index 1993189..0f11e17 100644 --- a/src/command_queue.rs +++ b/src/command_queue.rs @@ -68,13 +68,18 @@ unsafe impl Send for CommandQueue {} unsafe impl Sync for CommandQueue {} impl CommandQueue { - const fn new(queue: cl_command_queue, max_work_item_dimensions: cl_uint) -> Self { + pub const fn new(queue: cl_command_queue, max_work_item_dimensions: cl_uint) -> Self { Self { queue, max_work_item_dimensions, } } + pub fn wrap_cl_command_queue(queue: cl_command_queue, device: &Device) -> Result { + let max_work_item_dimensions = device.max_work_item_dimensions()?; + Ok(Self::new(queue, max_work_item_dimensions)) + } + /// Get the underlying OpenCL cl_command_queue. pub const fn get(&self) -> cl_command_queue { self.queue diff --git a/src/context.rs b/src/context.rs index 7bb9fa2..5e50b90 100644 --- a/src/context.rs +++ b/src/context.rs @@ -112,13 +112,17 @@ unsafe impl Send for Context {} unsafe impl Sync for Context {} impl Context { - fn new(context: cl_context, devices: &[cl_device_id]) -> Self { + pub fn new(context: cl_context, devices: &[cl_device_id]) -> Self { Self { context, devices: devices.to_vec(), } } + pub fn wrap_cl_command_queue(context: cl_context, device: &Device) -> Self { + Self::new(context, &[device.id()]) + } + /// Get the underlying OpenCL cl_context. pub const fn get(&self) -> cl_context { self.context