Avoid warning for expected unset PresentThread

This commit is contained in:
Zach Pomerantz 2016-04-05 14:04:26 -07:00
parent 7c6c75c484
commit 37efeb7f29
2 changed files with 15 additions and 2 deletions

View file

@ -245,8 +245,10 @@ bool OpenGLDisplayPlugin::activate() {
#if THREADED_PRESENT
// Start the present thread if necessary
auto presentThread = DependencyManager::get<PresentThread>();
if (!presentThread) {
QSharedPointer<PresentThread> presentThread;
if (DependencyManager::isSet<PresentThread>()) {
presentThread = DependencyManager::get<PresentThread>();
} else {
auto widget = _container->getPrimaryWidget();
DependencyManager::set<PresentThread>();
presentThread = DependencyManager::get<PresentThread>();

View file

@ -49,6 +49,9 @@ public:
template<typename T>
static QSharedPointer<T> get();
template<typename T>
static bool isSet();
template<typename T, typename ...Args>
static QSharedPointer<T> set(Args&&... args);
@ -89,6 +92,14 @@ QSharedPointer<T> DependencyManager::get() {
return instance.toStrongRef();
}
template <typename T>
bool DependencyManager::isSet() {
static size_t hashCode = manager().getHashCode<T>();
QSharedPointer<Dependency>& instance = manager().safeGet(hashCode);
return !instance.isNull();
}
template <typename T, typename ...Args>
QSharedPointer<T> DependencyManager::set(Args&&... args) {
static size_t hashCode = manager().getHashCode<T>();