mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 03:53:10 +02:00
Merge pull request #11293 from jherico/fix_hmd_menu
Fix access to menu on background thread
This commit is contained in:
commit
1f766f743d
2 changed files with 14 additions and 18 deletions
|
@ -62,24 +62,9 @@ QRect HmdDisplayPlugin::getRecommendedOverlayRect() const {
|
||||||
return CompositorHelper::VIRTUAL_SCREEN_RECOMMENDED_OVERLAY_RECT;
|
return CompositorHelper::VIRTUAL_SCREEN_RECOMMENDED_OVERLAY_RECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HmdDisplayPlugin::beginFrameRender(uint32_t frameIndex) {
|
#define DISABLE_PREVIEW_MENU_ITEM_DELAY_MS 500
|
||||||
if (!_vsyncEnabled && !_disablePreviewItemAdded) {
|
|
||||||
_container->addMenuItem(PluginType::DISPLAY_PLUGIN, MENU_PATH(), DISABLE_PREVIEW,
|
|
||||||
[this](bool clicked) {
|
|
||||||
_disablePreview = clicked;
|
|
||||||
_container->setBoolSetting("disableHmdPreview", _disablePreview);
|
|
||||||
if (_disablePreview) {
|
|
||||||
_clearPreviewFlag = true;
|
|
||||||
}
|
|
||||||
}, true, _disablePreview);
|
|
||||||
_disablePreviewItemAdded = true;
|
|
||||||
}
|
|
||||||
return Parent::beginFrameRender(frameIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool HmdDisplayPlugin::internalActivate() {
|
bool HmdDisplayPlugin::internalActivate() {
|
||||||
_disablePreviewItemAdded = false;
|
|
||||||
_monoPreview = _container->getBoolSetting("monoPreview", DEFAULT_MONO_VIEW);
|
_monoPreview = _container->getBoolSetting("monoPreview", DEFAULT_MONO_VIEW);
|
||||||
_clearPreviewFlag = true;
|
_clearPreviewFlag = true;
|
||||||
_container->addMenuItem(PluginType::DISPLAY_PLUGIN, MENU_PATH(), MONO_PREVIEW,
|
_container->addMenuItem(PluginType::DISPLAY_PLUGIN, MENU_PATH(), MONO_PREVIEW,
|
||||||
|
@ -94,6 +79,19 @@ bool HmdDisplayPlugin::internalActivate() {
|
||||||
_disablePreview = _container->getBoolSetting("disableHmdPreview", DEFAULT_DISABLE_PREVIEW || _vsyncEnabled);
|
_disablePreview = _container->getBoolSetting("disableHmdPreview", DEFAULT_DISABLE_PREVIEW || _vsyncEnabled);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
QTimer::singleShot(DISABLE_PREVIEW_MENU_ITEM_DELAY_MS, [this] {
|
||||||
|
if (isActive() && !_vsyncEnabled) {
|
||||||
|
_container->addMenuItem(PluginType::DISPLAY_PLUGIN, MENU_PATH(), DISABLE_PREVIEW,
|
||||||
|
[this](bool clicked) {
|
||||||
|
_disablePreview = clicked;
|
||||||
|
_container->setBoolSetting("disableHmdPreview", _disablePreview);
|
||||||
|
if (_disablePreview) {
|
||||||
|
_clearPreviewFlag = true;
|
||||||
|
}
|
||||||
|
}, true, _disablePreview);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
_container->removeMenu(FRAMERATE);
|
_container->removeMenu(FRAMERATE);
|
||||||
for_each_eye([&](Eye eye) {
|
for_each_eye([&](Eye eye) {
|
||||||
_eyeInverseProjections[eye] = glm::inverse(_eyeProjections[eye]);
|
_eyeInverseProjections[eye] = glm::inverse(_eyeProjections[eye]);
|
||||||
|
|
|
@ -51,7 +51,6 @@ protected:
|
||||||
virtual void postPreview() {};
|
virtual void postPreview() {};
|
||||||
virtual void updatePresentPose();
|
virtual void updatePresentPose();
|
||||||
|
|
||||||
bool beginFrameRender(uint32_t frameIndex) override;
|
|
||||||
bool internalActivate() override;
|
bool internalActivate() override;
|
||||||
void internalDeactivate() override;
|
void internalDeactivate() override;
|
||||||
void compositeOverlay() override;
|
void compositeOverlay() override;
|
||||||
|
@ -87,7 +86,6 @@ private:
|
||||||
ivec4 getViewportForSourceSize(const uvec2& size) const;
|
ivec4 getViewportForSourceSize(const uvec2& size) const;
|
||||||
float getLeftCenterPixel() const;
|
float getLeftCenterPixel() const;
|
||||||
|
|
||||||
bool _disablePreviewItemAdded { false };
|
|
||||||
bool _monoPreview { true };
|
bool _monoPreview { true };
|
||||||
bool _clearPreviewFlag { false };
|
bool _clearPreviewFlag { false };
|
||||||
gpu::TexturePointer _previewTexture;
|
gpu::TexturePointer _previewTexture;
|
||||||
|
|
Loading…
Reference in a new issue