Struct opencv::core::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: &ProgramSource) -> Result<ProgramSource>

source

pub fn copy_mut(prog: ProgramSource) -> ProgramSource

source

pub fn from_binary( module: &str, name: &str, binary: &u8, size: size_t, 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_spir( module: &str, name: &str, binary: &u8, size: size_t, 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()

Trait Implementations§

source§

impl Boxed for ProgramSource

source§

unsafe fn from_raw(ptr: *mut c_void) -> Self

Wrap the specified raw pointer Read more
source§

fn into_raw(self) -> *mut c_void

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

fn as_raw(&self) -> *const c_void

Return the underlying raw pointer. Read more
source§

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

Return the underlying mutable raw pointer 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§

impl ProgramSourceTraitConst for ProgramSource

source§

impl Send for ProgramSource

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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<T, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.