Add a function to query if global OpenCL context is initialized.
This commit is contained in:
parent
98f6a4a615
commit
5fd724b54a
@ -134,6 +134,9 @@ namespace cv
|
|||||||
//getDevice also need to be called before this function
|
//getDevice also need to be called before this function
|
||||||
CV_EXPORTS void setDeviceEx(Info &oclinfo, void *ctx, void *qu, int devnum = 0);
|
CV_EXPORTS void setDeviceEx(Info &oclinfo, void *ctx, void *qu, int devnum = 0);
|
||||||
|
|
||||||
|
//returns true when global OpenCL context is initialized
|
||||||
|
CV_EXPORTS bool initialized();
|
||||||
|
|
||||||
//////////////////////////////// Error handling ////////////////////////
|
//////////////////////////////// Error handling ////////////////////////
|
||||||
CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func);
|
CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func);
|
||||||
|
|
||||||
@ -144,7 +147,7 @@ namespace cv
|
|||||||
protected:
|
protected:
|
||||||
Context();
|
Context();
|
||||||
friend class auto_ptr<Context>;
|
friend class auto_ptr<Context>;
|
||||||
|
friend bool initialized();
|
||||||
private:
|
private:
|
||||||
static auto_ptr<Context> clCxt;
|
static auto_ptr<Context> clCxt;
|
||||||
static int val;
|
static int val;
|
||||||
|
@ -917,6 +917,14 @@ namespace cv
|
|||||||
int Context::val = 0;
|
int Context::val = 0;
|
||||||
static Mutex cs;
|
static Mutex cs;
|
||||||
static volatile int context_tear_down = 0;
|
static volatile int context_tear_down = 0;
|
||||||
|
|
||||||
|
bool initialized()
|
||||||
|
{
|
||||||
|
return *((volatile int*)&Context::val) != 0 &&
|
||||||
|
Context::clCxt->impl->clCmdQueue != NULL&&
|
||||||
|
Context::clCxt->impl->oclcontext != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
Context* Context::getContext()
|
Context* Context::getContext()
|
||||||
{
|
{
|
||||||
if(*((volatile int*)&val) != 1)
|
if(*((volatile int*)&val) != 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user