OGRE
1.10.12
Object-Oriented Graphics Rendering Engine
|
Classes | |
class | Ogre::ThreadLocalPtr< T > |
wrapper around thread_local std::unique_ptr<T> that can be used as a class member More... | |
Namespaces | |
Ogre | |
This source file is part of OGRE (Object-oriented Graphics Rendering Engine) For the latest info, see http://www.ogre3d.org/ | |
Macros | |
#define | OGRE_AUTO_MUTEX mutable std::recursive_mutex OGRE_AUTO_MUTEX_NAME |
#define | OGRE_AUTO_SHARED_MUTEX mutable std::recursive_mutex *OGRE_AUTO_MUTEX_NAME |
#define | OGRE_COPY_AUTO_SHARED_MUTEX(from) assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = from |
#define | OGRE_DELETE_AUTO_SHARED_MUTEX do { assert(OGRE_AUTO_MUTEX_NAME); delete OGRE_AUTO_MUTEX_NAME; } while (0) |
#define | OGRE_LOCK_AUTO_MUTEX std::unique_lock<std::recursive_mutex> ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME) |
#define | OGRE_LOCK_AUTO_SHARED_MUTEX assert(OGRE_AUTO_MUTEX_NAME); std::recursive_mutex::scoped_lock ogreAutoMutexLock(*OGRE_AUTO_MUTEX_NAME) |
#define | OGRE_MUTEX_CONDITIONAL(mutex) if (mutex) |
#define | OGRE_NEW_AUTO_SHARED_MUTEX assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = new std::recursive_mutex() |
#define | OGRE_SET_AUTO_SHARED_MUTEX_NULL OGRE_AUTO_MUTEX_NAME = 0 |
#define | OGRE_STATIC_MUTEX(name) static std::recursive_mutex name |
#define | OGRE_STATIC_MUTEX_INSTANCE(name) std::recursive_mutex name |
#define | OGRE_THREAD_CREATE(name, worker) std::thread* name = OGRE_NEW_T(std::thread, MEMCATEGORY_GENERAL)(worker) |
#define | OGRE_THREAD_CURRENT_ID std::this_thread::get_id() |
#define | OGRE_THREAD_DESTROY(name) OGRE_DELETE_T(name, thread, MEMCATEGORY_GENERAL) |
#define | OGRE_THREAD_HARDWARE_CONCURRENCY std::thread::hardware_concurrency() |
#define | OGRE_THREAD_ID_TYPE std::thread::id |
#define | OGRE_THREAD_NOTIFY_ALL(sync) sync.notify_all() |
#define | OGRE_THREAD_NOTIFY_ONE(sync) sync.notify_one() |
#define | OGRE_THREAD_POINTER(T, var) Ogre::ThreadLocalPtr<T> var |
#define | OGRE_THREAD_POINTER_DELETE(var) var.reset(0) |
#define | OGRE_THREAD_POINTER_GET(var) var.get() |
#define | OGRE_THREAD_POINTER_INIT(var) var() |
#define | OGRE_THREAD_POINTER_SET(var, expr) var.reset(expr) |
#define | OGRE_THREAD_POINTER_VAR(T, var) Ogre::ThreadLocalPtr<T> var () |
#define | OGRE_THREAD_SLEEP(ms) std::this_thread::sleep_for(std::chrono::milliseconds(ms)) |
#define | OGRE_THREAD_TYPE std::thread |
#define | OGRE_THREAD_WAIT(sync, mutex, lock) sync.wait(lock) |
#define | OGRE_THREAD_WORKER_INHERIT |
#define | OGRE_THREAD_YIELD std::this_thread::yield() |
#define | OGRE_TOKEN_PASTE(x, y) x ## y |
#define | OGRE_TOKEN_PASTE_EXTRA(x, y) OGRE_TOKEN_PASTE(x, y) |
#define | OGRE_WQ_LOCK_MUTEX(name) std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define | OGRE_WQ_LOCK_MUTEX_NAMED(mutexName, lockName) std::unique_lock<std::recursive_mutex> lockName(mutexName) |
#define | OGRE_WQ_LOCK_RW_MUTEX_READ(name) std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define | OGRE_WQ_LOCK_RW_MUTEX_WRITE(name) std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define | OGRE_WQ_MUTEX(name) mutable std::recursive_mutex name |
#define | OGRE_WQ_RW_MUTEX(name) mutable std::recursive_mutex name |
#define | OGRE_WQ_THREAD_SYNCHRONISER(sync) std::condition_variable_any sync |
#define OGRE_TOKEN_PASTE | ( | x, | |
y | |||
) | x ## y |
#define OGRE_TOKEN_PASTE_EXTRA | ( | x, | |
y | |||
) | OGRE_TOKEN_PASTE(x, y) |
#define OGRE_THREAD_TYPE std::thread |
#define OGRE_THREAD_CREATE | ( | name, | |
worker | |||
) | std::thread* name = OGRE_NEW_T(std::thread, MEMCATEGORY_GENERAL)(worker) |
#define OGRE_THREAD_DESTROY | ( | name | ) | OGRE_DELETE_T(name, thread, MEMCATEGORY_GENERAL) |
#define OGRE_THREAD_HARDWARE_CONCURRENCY std::thread::hardware_concurrency() |
#define OGRE_THREAD_CURRENT_ID std::this_thread::get_id() |
#define OGRE_THREAD_WORKER_INHERIT |
#define OGRE_WQ_MUTEX | ( | name | ) | mutable std::recursive_mutex name |
#define OGRE_WQ_LOCK_MUTEX | ( | name | ) | std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define OGRE_WQ_LOCK_MUTEX_NAMED | ( | mutexName, | |
lockName | |||
) | std::unique_lock<std::recursive_mutex> lockName(mutexName) |
#define OGRE_WQ_RW_MUTEX | ( | name | ) | mutable std::recursive_mutex name |
#define OGRE_WQ_LOCK_RW_MUTEX_READ | ( | name | ) | std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define OGRE_WQ_LOCK_RW_MUTEX_WRITE | ( | name | ) | std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name) |
#define OGRE_WQ_THREAD_SYNCHRONISER | ( | sync | ) | std::condition_variable_any sync |
#define OGRE_THREAD_WAIT | ( | sync, | |
mutex, | |||
lock | |||
) | sync.wait(lock) |
#define OGRE_THREAD_NOTIFY_ONE | ( | sync | ) | sync.notify_one() |
#define OGRE_THREAD_NOTIFY_ALL | ( | sync | ) | sync.notify_all() |
#define OGRE_LOCK_AUTO_MUTEX std::unique_lock<std::recursive_mutex> ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME) |
#define OGRE_THREAD_SLEEP | ( | ms | ) | std::this_thread::sleep_for(std::chrono::milliseconds(ms)) |
#define OGRE_AUTO_MUTEX mutable std::recursive_mutex OGRE_AUTO_MUTEX_NAME |
#define OGRE_STATIC_MUTEX | ( | name | ) | static std::recursive_mutex name |
#define OGRE_STATIC_MUTEX_INSTANCE | ( | name | ) | std::recursive_mutex name |
#define OGRE_AUTO_SHARED_MUTEX mutable std::recursive_mutex *OGRE_AUTO_MUTEX_NAME |
#define OGRE_LOCK_AUTO_SHARED_MUTEX assert(OGRE_AUTO_MUTEX_NAME); std::recursive_mutex::scoped_lock ogreAutoMutexLock(*OGRE_AUTO_MUTEX_NAME) |
#define OGRE_NEW_AUTO_SHARED_MUTEX assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = new std::recursive_mutex() |
#define OGRE_DELETE_AUTO_SHARED_MUTEX do { assert(OGRE_AUTO_MUTEX_NAME); delete OGRE_AUTO_MUTEX_NAME; } while (0) |
#define OGRE_COPY_AUTO_SHARED_MUTEX | ( | from | ) | assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = from |
#define OGRE_SET_AUTO_SHARED_MUTEX_NULL OGRE_AUTO_MUTEX_NAME = 0 |
#define OGRE_MUTEX_CONDITIONAL | ( | mutex | ) | if (mutex) |
#define OGRE_THREAD_POINTER | ( | T, | |
var | |||
) | Ogre::ThreadLocalPtr<T> var |
#define OGRE_THREAD_POINTER_INIT | ( | var | ) | var() |
#define OGRE_THREAD_POINTER_VAR | ( | T, | |
var | |||
) | Ogre::ThreadLocalPtr<T> var () |
#define OGRE_THREAD_POINTER_SET | ( | var, | |
expr | |||
) | var.reset(expr) |
#define OGRE_THREAD_POINTER_GET | ( | var | ) | var.get() |
#define OGRE_THREAD_POINTER_DELETE | ( | var | ) | var.reset(0) |
#define OGRE_THREAD_ID_TYPE std::thread::id |
#define OGRE_THREAD_YIELD std::this_thread::yield() |