Merge branch 'master' of github.com:highfidelity/hifi into shadowControlsOffZvork

This commit is contained in:
NissimHadar 2018-03-06 16:24:53 -08:00
commit d72f46ec3e
10 changed files with 29 additions and 52 deletions

View file

@ -257,11 +257,7 @@ Item {
id: octreeCol
spacing: 4; x: 4; y: 4;
StatText {
text: "Render Engine: " + root.engineFrameTime.toFixed(1) + " ms"
}
StatText {
visible: root.expanded
text: root.renderEngineStats
text: "Engine: " + root.engineFrameTime.toFixed(1) + " ms"
}
StatText {
text: "Batch: " + root.batchFrameTime.toFixed(1) + " ms"

View file

@ -69,6 +69,10 @@ Item {
hoverEnabled: true;
}
Component.onDestruction: {
sendSignalToParent({method: 'maybeEnableHmdPreview'});
}
// This will cause a bug -- if you bring up passphrase selection in HUD mode while
// in HMD while having HMD preview enabled, then move, then finish passphrase selection,
// HMD preview will stay off.

View file

@ -236,6 +236,8 @@ Rectangle {
} else {
sendToScript(msg);
}
} else if (msg.method === 'maybeEnableHmdPreview') {
sendToScript(msg);
}
}
}

View file

@ -482,7 +482,7 @@ void Stats::updateStats(bool force) {
float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC;
_gameUpdateStats = QString("/idle/update = %1 ms").arg(dt);
QVector<QString> categories = { "devices", "physics", "otherAvatars", "MyAvatar", "pickManager", "postUpdateLambdas", "misc" };
QVector<QString> categories = { "devices", "physics", "otherAvatars", "MyAvatar", "misc" };
for (int32_t j = 0; j < categories.size(); ++j) {
QString recordKey = "/idle/update/" + categories[j];
itr = allRecords.find(recordKey);
@ -502,39 +502,10 @@ void Stats::updateStats(bool force) {
_gameUpdateStats = "";
emit gameUpdateStatsChanged();
}
itr = allRecords.find("/paintGL/display/EngineRun/Engine");
std::priority_queue<SortableStat> renderEngineStats;
if (itr != allRecords.end()) {
float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC;
_renderEngineStats = QString("/render = %1 ms").arg(dt);
QVector<QString> categories = { "RenderMainView", "SecondaryCameraJob", "UpdateScene"};
for (int32_t j = 0; j < categories.size(); ++j) {
QString recordKey = "/paintGL/display/EngineRun/Engine/" + categories[j];
itr = allRecords.find(recordKey);
if (itr != allRecords.end()) {
float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC;
QString message = QString("\n %1 = %2").arg(categories[j]).arg(dt);
renderEngineStats.push(SortableStat(message, dt));
}
}
while (!renderEngineStats.empty()) {
SortableStat stat = renderEngineStats.top();
_renderEngineStats += stat.message;
renderEngineStats.pop();
}
emit renderEngineStatsChanged();
} else if (_renderEngineStats != "") {
_renderEngineStats = "";
emit renderEngineStatsChanged();
}
} else if (_showGameUpdateStats) {
_showGameUpdateStats = false;
_gameUpdateStats = "";
_renderEngineStats = "";
emit gameUpdateStatsChanged();
emit renderEngineStatsChanged();
}
}

View file

@ -106,7 +106,6 @@ class Stats : public QQuickItem {
STATS_PROPERTY(QString, lodStatus, QString())
STATS_PROPERTY(QString, timingStats, QString())
STATS_PROPERTY(QString, gameUpdateStats, QString())
STATS_PROPERTY(QString, renderEngineStats, QString())
STATS_PROPERTY(int, serverElements, 0)
STATS_PROPERTY(int, serverInternal, 0)
STATS_PROPERTY(int, serverLeaves, 0)
@ -240,7 +239,6 @@ signals:
void localLeavesChanged();
void timingStatsChanged();
void gameUpdateStatsChanged();
void renderEngineStatsChanged();
void glContextSwapchainMemoryChanged();
void qmlTextureMemoryChanged();
void texturePendingTransfersChanged();

View file

@ -1778,7 +1778,7 @@ bool Octree::writeToFile(const char* fileName, const OctreeElementPointer& eleme
return success;
}
bool Octree::toJSON(QJsonDocument* doc, const OctreeElementPointer& element) {
bool Octree::toJSONDocument(QJsonDocument* doc, const OctreeElementPointer& element) {
QVariantMap entityDescription;
OctreeElementPointer top;
@ -1804,18 +1804,22 @@ bool Octree::toJSON(QJsonDocument* doc, const OctreeElementPointer& element) {
return true;
}
bool Octree::toGzippedJSON(QByteArray* data, const OctreeElementPointer& element) {
bool Octree::toJSON(QByteArray* data, const OctreeElementPointer& element, bool doGzip) {
QJsonDocument doc;
if (!toJSON(&doc, element)) {
if (!toJSONDocument(&doc, element)) {
qCritical("Failed to convert Entities to QVariantMap while converting to json.");
return false;
}
QByteArray jsonData = doc.toJson();
if (doGzip) {
QByteArray jsonData = doc.toJson();
if (!gzip(jsonData, *data, -1)) {
qCritical("Unable to gzip data while saving to json.");
return false;
if (!gzip(jsonData, *data, -1)) {
qCritical("Unable to gzip data while saving to json.");
return false;
}
} else {
*data = doc.toJson();
}
return true;
@ -1825,7 +1829,7 @@ bool Octree::writeToJSONFile(const char* fileName, const OctreeElementPointer& e
qCDebug(octree, "Saving JSON SVO to file %s...", fileName);
QByteArray jsonDataForFile;
if (!toGzippedJSON(&jsonDataForFile)) {
if (!toJSON(&jsonDataForFile, element, doGzip)) {
return false;
}
@ -1837,7 +1841,6 @@ bool Octree::writeToJSONFile(const char* fileName, const OctreeElementPointer& e
qCritical("Could not write to JSON description of entities.");
}
return success;
}

View file

@ -284,8 +284,8 @@ public:
void loadOctreeFile(const char* fileName);
// Octree exporters
bool toJSON(QJsonDocument* doc, const OctreeElementPointer& element = nullptr);
bool toGzippedJSON(QByteArray* data, const OctreeElementPointer& element = nullptr);
bool toJSONDocument(QJsonDocument* doc, const OctreeElementPointer& element = nullptr);
bool toJSON(QByteArray* data, const OctreeElementPointer& element = nullptr, bool doGzip = false);
bool writeToFile(const char* filename, const OctreeElementPointer& element = nullptr, QString persistAsFileType = "json.gz");
bool writeToJSONFile(const char* filename, const OctreeElementPointer& element = nullptr, bool doGzip = false);
virtual bool writeToMap(QVariantMap& entityDescription, OctreeElementPointer element, bool skipDefaultValues,

View file

@ -341,7 +341,7 @@ void OctreePersistThread::sendLatestEntityDataToDS() {
const DomainHandler& domainHandler = nodeList->getDomainHandler();
QByteArray data;
if (_tree->toGzippedJSON(&data)) {
if (_tree->toJSON(&data, nullptr, true)) {
auto message = NLPacketList::create(PacketType::OctreeDataPersist, QByteArray(), true, true);
message->write(data);
nodeList->sendPacketList(std::move(message), domainHandler.getSockAddr());

View file

@ -1299,7 +1299,7 @@ function loaded() {
if (elCloneable.checked) {
elGrabbable.checked = false;
}
userDataChanger("grabbableKey", "grabbable", elGrabbable, elUserData, properties.dynamic);
userDataChanger("grabbableKey", "grabbable", elGrabbable, elUserData, true);
});
elCloneableDynamic.addEventListener('change', function(event) {
userDataChanger("grabbableKey", "cloneDynamic", event.target, elUserData, -1);

View file

@ -115,13 +115,15 @@ var selectionDisplay = null; // for gridTool.js to ignore
var filterText; // Used for updating Purchases QML
var onWalletScreen = false;
var onCommerceScreen = false;
function onScreenChanged(type, url) {
onMarketplaceScreen = type === "Web" && url.indexOf(MARKETPLACE_URL) !== -1;
var onWalletScreenNow = url.indexOf(MARKETPLACE_WALLET_QML_PATH) !== -1;
onCommerceScreen = type === "QML" && (url.indexOf(MARKETPLACE_CHECKOUT_QML_PATH) !== -1 || url === MARKETPLACE_PURCHASES_QML_PATH
var onCommerceScreenNow = type === "QML" && (url.indexOf(MARKETPLACE_CHECKOUT_QML_PATH) !== -1 || url === MARKETPLACE_PURCHASES_QML_PATH
|| url.indexOf(MARKETPLACE_INSPECTIONCERTIFICATE_QML_PATH) !== -1);
if (!onWalletScreenNow && onWalletScreen) { // exiting wallet screen
if ((!onWalletScreenNow && onWalletScreen) || (!onCommerceScreenNow && onCommerceScreen)) { // exiting wallet or commerce screen
if (isHmdPreviewDisabledBySecurity) {
DesktopPreviewProvider.setPreviewDisabledReason("USER");
Menu.setIsOptionChecked("Disable Preview", false);
@ -129,6 +131,7 @@ var selectionDisplay = null; // for gridTool.js to ignore
}
}
onCommerceScreen = onCommerceScreenNow;
onWalletScreen = onWalletScreenNow;
wireEventBridge(onMarketplaceScreen || onCommerceScreen || onWalletScreen);