pub struct ProgramSource { /* private fields */ }
Implementations§
Source§impl ProgramSource
impl ProgramSource
pub fn default() -> ProgramSource
pub fn new( module: &str, name: &str, code_str: &str, code_hash: &str, ) -> Result<ProgramSource>
pub fn from_str(prog: &str) -> Result<ProgramSource>
pub fn copy(prog: &impl ProgramSourceTraitConst) -> Result<ProgramSource>
pub fn copy_mut(prog: ProgramSource) -> ProgramSource
Sourcepub fn from_binary(
module: &str,
name: &str,
binary: &[u8],
build_options: &str,
) -> Result<ProgramSource>
pub fn from_binary( module: &str, name: &str, binary: &[u8], build_options: &str, ) -> Result<ProgramSource>
Describe OpenCL program binary. Do not call clCreateProgramWithBinary() and/or clBuildProgram().
Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).
This kind of binary is not portable between platforms in general - it is specific to OpenCL vendor / device / driver version.
§Parameters
- module: name of program owner module
- name: unique name of program (module+name is used as key for OpenCL program caching)
- binary: buffer address. See buffer lifetime requirement in description.
- size: buffer size
- buildOptions: additional program-related build options passed to clBuildProgram()
§Returns
created ProgramSource object
§C++ default parameters
- build_options: cv::String()
Sourcepub fn from_binary_def(
module: &str,
name: &str,
binary: &[u8],
) -> Result<ProgramSource>
pub fn from_binary_def( module: &str, name: &str, binary: &[u8], ) -> Result<ProgramSource>
Describe OpenCL program binary. Do not call clCreateProgramWithBinary() and/or clBuildProgram().
Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).
This kind of binary is not portable between platforms in general - it is specific to OpenCL vendor / device / driver version.
§Parameters
- module: name of program owner module
- name: unique name of program (module+name is used as key for OpenCL program caching)
- binary: buffer address. See buffer lifetime requirement in description.
- size: buffer size
- buildOptions: additional program-related build options passed to clBuildProgram()
§Returns
created ProgramSource object
§Note
This alternative version of ProgramSource::from_binary function uses the following default values for its arguments:
- build_options: cv::String()
Sourcepub fn from_spir(
module: &str,
name: &str,
binary: &[u8],
build_options: &str,
) -> Result<ProgramSource>
pub fn from_spir( module: &str, name: &str, binary: &[u8], build_options: &str, ) -> Result<ProgramSource>
Describe OpenCL program in SPIR format. Do not call clCreateProgramWithBinary() and/or clBuildProgram().
Supports SPIR 1.2 by default (pass ‘-spir-std=X.Y’ in buildOptions to override this behavior)
Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).
Programs in this format are portable between OpenCL implementations with ‘khr_spir’ extension: https://www.khronos.org/registry/OpenCL/sdk/2.0/docs/man/xhtml/cl_khr_spir.html (but they are not portable between different platforms: 32-bit / 64-bit)
Note: these programs can’t support vendor specific extensions, like ‘cl_intel_subgroups’.
§Parameters
- module: name of program owner module
- name: unique name of program (module+name is used as key for OpenCL program caching)
- binary: buffer address. See buffer lifetime requirement in description.
- size: buffer size
- buildOptions: additional program-related build options passed to clBuildProgram() (these options are added automatically: ‘-x spir’ and ‘-spir-std=1.2’)
§Returns
created ProgramSource object.
§C++ default parameters
- build_options: cv::String()
Sourcepub fn from_spir_def(
module: &str,
name: &str,
binary: &[u8],
) -> Result<ProgramSource>
pub fn from_spir_def( module: &str, name: &str, binary: &[u8], ) -> Result<ProgramSource>
Describe OpenCL program in SPIR format. Do not call clCreateProgramWithBinary() and/or clBuildProgram().
Supports SPIR 1.2 by default (pass ‘-spir-std=X.Y’ in buildOptions to override this behavior)
Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).
Programs in this format are portable between OpenCL implementations with ‘khr_spir’ extension: https://www.khronos.org/registry/OpenCL/sdk/2.0/docs/man/xhtml/cl_khr_spir.html (but they are not portable between different platforms: 32-bit / 64-bit)
Note: these programs can’t support vendor specific extensions, like ‘cl_intel_subgroups’.
§Parameters
- module: name of program owner module
- name: unique name of program (module+name is used as key for OpenCL program caching)
- binary: buffer address. See buffer lifetime requirement in description.
- size: buffer size
- buildOptions: additional program-related build options passed to clBuildProgram() (these options are added automatically: ‘-x spir’ and ‘-spir-std=1.2’)
§Returns
created ProgramSource object.
§Note
This alternative version of ProgramSource::from_spir function uses the following default values for its arguments:
- build_options: cv::String()
Trait Implementations§
Source§impl Boxed for ProgramSource
impl Boxed for ProgramSource
Source§unsafe fn from_raw(
ptr: <ProgramSource as OpenCVFromExtern>::ExternReceive,
) -> Self
unsafe fn from_raw( ptr: <ProgramSource as OpenCVFromExtern>::ExternReceive, ) -> Self
Source§fn into_raw(self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut
Source§fn as_raw(&self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSend
Source§fn as_raw_mut(
&mut self,
) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut
Source§impl Debug for ProgramSource
impl Debug for ProgramSource
Source§impl Default for ProgramSource
impl Default for ProgramSource
Source§impl Drop for ProgramSource
impl Drop for ProgramSource
Source§impl ProgramSourceTrait for ProgramSource
impl ProgramSourceTrait for ProgramSource
fn as_raw_mut_ProgramSource(&mut self) -> *mut c_void
fn set(&mut self, prog: &impl ProgramSourceTraitConst) -> Result<()>
fn set_1(&mut self, prog: ProgramSource)
impl Send for ProgramSource
Auto Trait Implementations§
impl Freeze for ProgramSource
impl RefUnwindSafe for ProgramSource
impl !Sync for ProgramSource
impl Unpin for ProgramSource
impl UnwindSafe for ProgramSource
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
Source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res,
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold
. Read more