Insure spectator camera preview is up when reopening tablet

This commit is contained in:
David Kelly 2017-07-10 13:16:08 -07:00
parent 1c9c36a8c8
commit b87d69b15d
3 changed files with 12 additions and 6 deletions

View file

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

View file

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

View file

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