Merge pull request #10932 from davidkelly/dk/noPreviewAfterDismissing

Ensure spectator camera preview is up when reopening tablet
This commit is contained in:
David Kelly 2017-07-10 13:28:01 -07:00 committed by GitHub
commit 339cfed3c4
3 changed files with 12 additions and 6 deletions

View file

@ -251,8 +251,8 @@ Rectangle {
// Spectator Camera Preview
Hifi.ResourceImageItem {
id: spectatorCameraPreview;
visible: false;
url: "resource://spectatorCameraFrame";
visible: cameraToggleCheckbox.checked;
url: monitorShowsSwitch.checked ? "resource://spectatorCameraFrame" : "resource://hmdPreviewFrame";
ready: cameraToggleCheckBox.checked;
mirrorVertically: true;
anchors.fill: parent;

View file

@ -66,15 +66,20 @@ void ResourceImageItemRenderer::synchronize(QQuickFramebufferObject* item) {
_ready = resourceImageItem->getReady();
readyChanged = true;
}
bool visibleChanged = false;
if (_visible != resourceImageItem->isVisible()) {
_visible = resourceImageItem->isVisible();
visibleChanged = true;
}
_window = resourceImageItem->window();
if (_ready && !_url.isNull() && !_url.isEmpty() && (urlChanged || readyChanged || !_networkTexture)) {
if (_ready && _visible && !_url.isNull() && !_url.isEmpty() && (visibleChanged || urlChanged || readyChanged || !_networkTexture)) {
_networkTexture = DependencyManager::get<TextureCache>()->getTexture(_url);
}
static const int UPDATE_TIMER_DELAY_IN_MS = 100; // 100 ms = 10 hz for now
if (_ready && !_updateTimer.isActive()) {
if (_ready && _visible && !_updateTimer.isActive()) {
_updateTimer.start(UPDATE_TIMER_DELAY_IN_MS);
} else if (!_ready && _updateTimer.isActive()) {
} else if (!(_ready && _visible) && _updateTimer.isActive()) {
_updateTimer.stop();
}
}

View file

@ -30,6 +30,7 @@ public:
private:
bool _ready;
QString _url;
bool _visible;
NetworkTexturePointer _networkTexture;
QQuickWindow* _window;