OpenCV: cv::ocl::ProgramSource Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
cv::ocl::ProgramSource Class Reference
Core functionality » OpenCL support

`#include "ocl.hpp"`

## Public Types
typedef uint64 | hash_t

## Public Member Functions
| ProgramSource ()
| ProgramSource (const String &module, const String &name, const String &codeStr, const String &codeHash)
| ProgramSource (const String &prog)
| ProgramSource (const char *prog)
| ProgramSource (const ProgramSource &prog)
| ~ProgramSource ()
Impl * | getImpl () const
hash_t | hash () const
ProgramSource & | operator= (const ProgramSource &prog)
const String & | source () const

## Static Public Member Functions
static ProgramSource | fromBinary (const String &module, const String &name, const unsigned char *binary, const size_t size, const cv::String &buildOptions=cv::String())
| Describe OpenCL program binary. Do not call clCreateProgramWithBinary() and/or clBuildProgram(). More...
static ProgramSource | fromSPIR (const String &module, const String &name, const unsigned char *binary, const size_t size, const cv::String &buildOptions=cv::String())
| Describe OpenCL program in SPIR format. Do not call clCreateProgramWithBinary() and/or clBuildProgram(). More...

## Protected Attributes
Impl * | p

## Friends
struct | Impl

## Member Typedef Documentation

## ◆ hash_t

typedef uint64 cv::ocl::ProgramSource::hash_t

## Constructor & Destructor Documentation

## ◆ ProgramSource() [1/5]

cv::ocl::ProgramSource::ProgramSource | ( |  | ) |

## ◆ ProgramSource() [2/5]

cv::ocl::ProgramSource::ProgramSource | ( | const String & | module,
|  | const String & | name,
|  | const String & | codeStr,
|  | const String & | codeHash
| ) |  |
| explicit

## ◆ ProgramSource() [3/5]

cv::ocl::ProgramSource::ProgramSource | ( | const String & | prog | ) |
| explicit

## ◆ ProgramSource() [4/5]

cv::ocl::ProgramSource::ProgramSource | ( | const char * | prog | ) |
| explicit

## ◆ ~ProgramSource()

cv::ocl::ProgramSource::~ProgramSource | ( |  | ) |

## ◆ ProgramSource() [5/5]

cv::ocl::ProgramSource::ProgramSource | ( | const ProgramSource & | prog | ) |

## Member Function Documentation

## ◆ fromBinary()

static ProgramSource cv::ocl::ProgramSource::fromBinary | ( | const String & | module,
|  | const String & | name,
|  | const unsigned char * | binary,
|  | const size_t | size,
|  | const cv::String & | buildOptions = `cv::String()`
| ) |  |
| static

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

## ◆ fromSPIR()

static ProgramSource cv::ocl::ProgramSource::fromSPIR | ( | const String & | module,
|  | const String & | name,
|  | const unsigned char * | binary,
|  | const size_t | size,
|  | const cv::String & | buildOptions = `cv::String()`
| ) |  |
| static

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.

## ◆ getImpl()

Impl* cv::ocl::ProgramSource::getImpl | ( |  | ) | const
| inline

## ◆ hash()

hash_t cv::ocl::ProgramSource::hash | ( |  | ) | const

## ◆ operator=()

ProgramSource& cv::ocl::ProgramSource::operator= | ( | const ProgramSource & | prog | ) |

## ◆ source()

const String& cv::ocl::ProgramSource::source | ( |  | ) | const

## Friends And Related Function Documentation

## ◆ Impl

friend struct Impl
| friend

## Member Data Documentation

## ◆ p

Impl* cv::ocl::ProgramSource::p
| protected

The documentation for this class was generated from the following file:

- core/include/opencv2/core/ocl.hpp