#include "PluginContainerProxy.h" #include #include #include #include #include #include #include #include "Application.h" #include "MainWindow.h" #include "GLCanvas.h" #include "ui/DialogsManager.h" #include #include PluginContainerProxy::PluginContainerProxy() { } PluginContainerProxy::~PluginContainerProxy() { } ui::Menu* PluginContainerProxy::getPrimaryMenu() { auto appMenu = qApp->_window->menuBar(); auto uiMenu = dynamic_cast(appMenu); return uiMenu; } bool PluginContainerProxy::isForeground() { return qApp->isForeground() && !qApp->getWindow()->isMinimized(); } void PluginContainerProxy::requestReset() { // We could signal qApp to sequence this, but it turns out that requestReset is only used from within the main thread anyway. qApp->resetSensors(true); } void PluginContainerProxy::showDisplayPluginsTools(bool show) { DependencyManager::get()->hmdTools(show); } GLWidget* PluginContainerProxy::getPrimaryWidget() { return qApp->_glWidget; } MainWindow* PluginContainerProxy::getPrimaryWindow() { return qApp->getWindow(); } QOpenGLContext* PluginContainerProxy::getPrimaryContext() { return qApp->_glWidget->context()->contextHandle(); } const DisplayPluginPointer PluginContainerProxy::getActiveDisplayPlugin() const { return qApp->getActiveDisplayPlugin(); } bool PluginContainerProxy::makeRenderingContextCurrent() { return qApp->_offscreenContext->makeCurrent(); } void PluginContainerProxy::releaseSceneTexture(const gpu::TexturePointer& texture) { Q_ASSERT(QThread::currentThread() == qApp->thread()); auto& framebufferMap = qApp->_lockedFramebufferMap; Q_ASSERT(framebufferMap.contains(texture)); auto framebufferPointer = framebufferMap[texture]; framebufferMap.remove(texture); auto framebufferCache = DependencyManager::get(); framebufferCache->releaseFramebuffer(framebufferPointer); } void PluginContainerProxy::releaseOverlayTexture(const gpu::TexturePointer& texture) { qApp->_applicationOverlay.releaseOverlay(texture); }