Add a function to query if global OpenCL context is initialized.
This commit is contained in:
		@@ -134,6 +134,9 @@ namespace cv
 | 
			
		||||
        //getDevice also need to be called before this function
 | 
			
		||||
        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 ////////////////////////
 | 
			
		||||
        CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func);
 | 
			
		||||
 | 
			
		||||
@@ -144,7 +147,7 @@ namespace cv
 | 
			
		||||
        protected:
 | 
			
		||||
            Context();
 | 
			
		||||
            friend class auto_ptr<Context>;
 | 
			
		||||
 | 
			
		||||
            friend bool initialized();
 | 
			
		||||
        private:
 | 
			
		||||
            static auto_ptr<Context> clCxt;
 | 
			
		||||
            static int val;
 | 
			
		||||
 
 | 
			
		||||
@@ -917,6 +917,14 @@ namespace cv
 | 
			
		||||
        int Context::val = 0;
 | 
			
		||||
        static Mutex cs;
 | 
			
		||||
        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()
 | 
			
		||||
        {
 | 
			
		||||
            if(*((volatile int*)&val) != 1)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user