Struct ProgramSource

Source
pub struct ProgramSource { /* private fields */ }

Implementations§

Source§

impl ProgramSource

Source

pub fn default() -> ProgramSource

Source

pub fn new( module: &str, name: &str, code_str: &str, code_hash: &str, ) -> Result<ProgramSource>

Source

pub fn from_str(prog: &str) -> Result<ProgramSource>

Source

pub fn copy(prog: &impl ProgramSourceTraitConst) -> Result<ProgramSource>

Source

pub fn copy_mut(prog: ProgramSource) -> ProgramSource

Source

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()
Source

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()
Source

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()
Source

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

Source§

unsafe fn from_raw( ptr: <ProgramSource as OpenCVFromExtern>::ExternReceive, ) -> Self

Wrap the specified raw pointer Read more
Source§

fn into_raw(self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying raw pointer while consuming this wrapper. Read more
Source§

fn as_raw(&self) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSend

Return the underlying raw pointer. Read more
Source§

fn as_raw_mut( &mut self, ) -> <ProgramSource as OpenCVTypeExternContainer>::ExternSendMut

Return the underlying mutable raw pointer Read more
Source§

impl Debug for ProgramSource

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ProgramSource

Source§

fn default() -> Self

Forwards to infallible Self::default()

Source§

impl Drop for ProgramSource

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl ProgramSourceTrait for ProgramSource

Source§

fn as_raw_mut_ProgramSource(&mut self) -> *mut c_void

Source§

fn set(&mut self, prog: &impl ProgramSourceTraitConst) -> Result<()>

Source§

fn set_1(&mut self, prog: ProgramSource)

Source§

impl ProgramSourceTraitConst for ProgramSource

Source§

impl Send for ProgramSource

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<Mat> ModifyInplace for Mat
where Mat: Boxed,

Source§

unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res

Helper function to call OpenCV functions that allow in-place modification of a 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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.