the first draft of transparent API and new UMat class. more files
This commit is contained in:
@@ -727,85 +727,11 @@ void RNG::fill( InputOutputArray _mat, int disttype,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
|
||||
#ifdef HAVE_WINRT
|
||||
// using C++11 thread attribute for local thread data
|
||||
__declspec( thread ) RNG* rng = NULL;
|
||||
|
||||
void deleteThreadRNGData()
|
||||
{
|
||||
if (rng)
|
||||
delete rng;
|
||||
}
|
||||
|
||||
RNG& theRNG()
|
||||
cv::RNG& cv::theRNG()
|
||||
{
|
||||
if (!rng)
|
||||
{
|
||||
rng = new RNG;
|
||||
}
|
||||
return *rng;
|
||||
}
|
||||
#else
|
||||
#ifdef WINCE
|
||||
# define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF)
|
||||
#endif
|
||||
static DWORD tlsRNGKey = TLS_OUT_OF_INDEXES;
|
||||
|
||||
void deleteThreadRNGData()
|
||||
{
|
||||
if( tlsRNGKey != TLS_OUT_OF_INDEXES )
|
||||
delete (RNG*)TlsGetValue( tlsRNGKey );
|
||||
}
|
||||
|
||||
RNG& theRNG()
|
||||
{
|
||||
if( tlsRNGKey == TLS_OUT_OF_INDEXES )
|
||||
{
|
||||
tlsRNGKey = TlsAlloc();
|
||||
CV_Assert(tlsRNGKey != TLS_OUT_OF_INDEXES);
|
||||
}
|
||||
RNG* rng = (RNG*)TlsGetValue( tlsRNGKey );
|
||||
if( !rng )
|
||||
{
|
||||
rng = new RNG;
|
||||
TlsSetValue( tlsRNGKey, rng );
|
||||
}
|
||||
return *rng;
|
||||
}
|
||||
#endif //HAVE_WINRT
|
||||
#else
|
||||
|
||||
static pthread_key_t tlsRNGKey = 0;
|
||||
static pthread_once_t tlsRNGKeyOnce = PTHREAD_ONCE_INIT;
|
||||
|
||||
static void deleteRNG(void* data)
|
||||
{
|
||||
delete (RNG*)data;
|
||||
}
|
||||
|
||||
static void makeRNGKey()
|
||||
{
|
||||
int errcode = pthread_key_create(&tlsRNGKey, deleteRNG);
|
||||
CV_Assert(errcode == 0);
|
||||
}
|
||||
|
||||
RNG& theRNG()
|
||||
{
|
||||
pthread_once(&tlsRNGKeyOnce, makeRNGKey);
|
||||
RNG* rng = (RNG*)pthread_getspecific(tlsRNGKey);
|
||||
if( !rng )
|
||||
{
|
||||
rng = new RNG;
|
||||
pthread_setspecific(tlsRNGKey, rng);
|
||||
}
|
||||
return *rng;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return TLSData::get()->rng;
|
||||
}
|
||||
|
||||
void cv::randu(InputOutputArray dst, InputArray low, InputArray high)
|
||||
|
Reference in New Issue
Block a user