mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-29 20:23:04 +02:00
Add profiling to edit.js fof the entity list
This commit is contained in:
parent
133ac0662a
commit
f6ac755bae
2 changed files with 109 additions and 75 deletions
|
@ -23,6 +23,18 @@ const DELETE = 46; // Key code for the delete key.
|
||||||
const KEY_P = 80; // Key code for letter p used for Parenting hotkey.
|
const KEY_P = 80; // Key code for letter p used for Parenting hotkey.
|
||||||
const MAX_ITEMS = Number.MAX_VALUE; // Used to set the max length of the list of discovered entities.
|
const MAX_ITEMS = Number.MAX_VALUE; // Used to set the max length of the list of discovered entities.
|
||||||
|
|
||||||
|
var profileIndent = '';
|
||||||
|
PROFILE = function(name, fn, args) {
|
||||||
|
EventBridge.emitWebEvent("PROFILE-Web " + profileIndent + "(" + name + ") Begin");
|
||||||
|
var previousIndent = profileIndent;
|
||||||
|
profileIndent += ' ';
|
||||||
|
var before = Date.now();
|
||||||
|
fn.apply(this, args);
|
||||||
|
var delta = Date.now() - before;
|
||||||
|
profileIndent = previousIndent;
|
||||||
|
EventBridge.emitWebEvent("PROFILE-Web " + profileIndent + "(" + name + ") End " + delta + "ms");
|
||||||
|
}
|
||||||
|
|
||||||
debugPrint = function (message) {
|
debugPrint = function (message) {
|
||||||
console.log(message);
|
console.log(message);
|
||||||
};
|
};
|
||||||
|
@ -363,27 +375,29 @@ function loaded() {
|
||||||
refreshEntities();
|
refreshEntities();
|
||||||
}
|
}
|
||||||
} else if (data.type === "update" && data.selectedIDs !== undefined) {
|
} else if (data.type === "update" && data.selectedIDs !== undefined) {
|
||||||
var newEntities = data.entities;
|
PROFILE("update", function() {
|
||||||
if (newEntities && newEntities.length == 0) {
|
var newEntities = data.entities;
|
||||||
elNoEntitiesMessage.style.display = "block";
|
if (newEntities && newEntities.length == 0) {
|
||||||
elFooter.firstChild.nodeValue = "0 entities found";
|
elNoEntitiesMessage.style.display = "block";
|
||||||
} else if (newEntities) {
|
elFooter.firstChild.nodeValue = "0 entities found";
|
||||||
elNoEntitiesMessage.style.display = "none";
|
} else if (newEntities) {
|
||||||
for (var i = 0; i < newEntities.length; i++) {
|
elNoEntitiesMessage.style.display = "none";
|
||||||
var id = newEntities[i].id;
|
for (var i = 0; i < newEntities.length; i++) {
|
||||||
addEntity(id, newEntities[i].name, newEntities[i].type, newEntities[i].url,
|
var id = newEntities[i].id;
|
||||||
newEntities[i].locked ? LOCKED_GLYPH : null,
|
addEntity(id, newEntities[i].name, newEntities[i].type, newEntities[i].url,
|
||||||
newEntities[i].visible ? VISIBLE_GLYPH : null,
|
newEntities[i].locked ? LOCKED_GLYPH : null,
|
||||||
newEntities[i].verticesCount, newEntities[i].texturesCount, newEntities[i].texturesSize,
|
newEntities[i].visible ? VISIBLE_GLYPH : null,
|
||||||
newEntities[i].hasTransparent ? TRANSPARENCY_GLYPH : null,
|
newEntities[i].verticesCount, newEntities[i].texturesCount, newEntities[i].texturesSize,
|
||||||
newEntities[i].isBaked ? BAKED_GLYPH : null,
|
newEntities[i].hasTransparent ? TRANSPARENCY_GLYPH : null,
|
||||||
newEntities[i].drawCalls,
|
newEntities[i].isBaked ? BAKED_GLYPH : null,
|
||||||
newEntities[i].hasScript ? SCRIPT_GLYPH : null);
|
newEntities[i].drawCalls,
|
||||||
|
newEntities[i].hasScript ? SCRIPT_GLYPH : null);
|
||||||
|
}
|
||||||
|
updateSelectedEntities(data.selectedIDs);
|
||||||
|
scheduleRefreshEntityList();
|
||||||
|
resize();
|
||||||
}
|
}
|
||||||
updateSelectedEntities(data.selectedIDs);
|
});
|
||||||
scheduleRefreshEntityList();
|
|
||||||
resize();
|
|
||||||
}
|
|
||||||
} else if (data.type === "removeEntities" && data.deletedIDs !== undefined && data.selectedIDs !== undefined) {
|
} else if (data.type === "removeEntities" && data.deletedIDs !== undefined && data.selectedIDs !== undefined) {
|
||||||
removeEntities(data.deletedIDs);
|
removeEntities(data.deletedIDs);
|
||||||
updateSelectedEntities(data.selectedIDs);
|
updateSelectedEntities(data.selectedIDs);
|
||||||
|
|
|
@ -11,6 +11,18 @@
|
||||||
/* global EntityListTool, Tablet, selectionManager, Entities, Camera, MyAvatar, Vec3, Menu, Messages,
|
/* global EntityListTool, Tablet, selectionManager, Entities, Camera, MyAvatar, Vec3, Menu, Messages,
|
||||||
cameraManager, MENU_EASE_ON_FOCUS, deleteSelectedEntities, toggleSelectedEntitiesLocked, toggleSelectedEntitiesVisible */
|
cameraManager, MENU_EASE_ON_FOCUS, deleteSelectedEntities, toggleSelectedEntitiesLocked, toggleSelectedEntitiesVisible */
|
||||||
|
|
||||||
|
var profileIndent = '';
|
||||||
|
PROFILE = function(name, fn, args) {
|
||||||
|
console.log("PROFILE-Script " + profileIndent + "(" + name + ") Begin");
|
||||||
|
var previousIndent = profileIndent;
|
||||||
|
profileIndent += ' ';
|
||||||
|
var before = Date.now();
|
||||||
|
fn.apply(this, args);
|
||||||
|
var delta = Date.now() - before;
|
||||||
|
profileIndent = previousIndent;
|
||||||
|
console.log("PROFILE-Script " + profileIndent + "(" + name + ") End " + delta + "ms");
|
||||||
|
}
|
||||||
|
|
||||||
EntityListTool = function(shouldUseEditTabletApp) {
|
EntityListTool = function(shouldUseEditTabletApp) {
|
||||||
var that = {};
|
var that = {};
|
||||||
|
|
||||||
|
@ -66,11 +78,16 @@ EntityListTool = function(shouldUseEditTabletApp) {
|
||||||
that.setVisible(false);
|
that.setVisible(false);
|
||||||
|
|
||||||
function emitJSONScriptEvent(data) {
|
function emitJSONScriptEvent(data) {
|
||||||
var dataString = JSON.stringify(data);
|
var dataString;
|
||||||
webView.emitScriptEvent(dataString);
|
PROFILE("Script-JSON.stringify", function() {
|
||||||
if (entityListWindow.window) {
|
dataString = JSON.stringify(data);
|
||||||
entityListWindow.window.emitScriptEvent(dataString);
|
});
|
||||||
}
|
PROFILE("Script-emitScriptEvent", function() {
|
||||||
|
webView.emitScriptEvent(dataString);
|
||||||
|
if (entityListWindow.window) {
|
||||||
|
entityListWindow.window.emitScriptEvent(dataString);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
that.toggleVisible = function() {
|
that.toggleVisible = function() {
|
||||||
|
@ -116,59 +133,61 @@ EntityListTool = function(shouldUseEditTabletApp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
that.sendUpdate = function() {
|
that.sendUpdate = function() {
|
||||||
var entities = [];
|
PROFILE('Script-sendUpdate', function() {
|
||||||
|
var entities = [];
|
||||||
|
|
||||||
var ids;
|
var ids;
|
||||||
if (filterInView) {
|
if (filterInView) {
|
||||||
ids = Entities.findEntitiesInFrustum(Camera.frustum);
|
ids = Entities.findEntitiesInFrustum(Camera.frustum);
|
||||||
} else {
|
} else {
|
||||||
ids = Entities.findEntities(MyAvatar.position, searchRadius);
|
ids = Entities.findEntities(MyAvatar.position, searchRadius);
|
||||||
}
|
|
||||||
|
|
||||||
var cameraPosition = Camera.position;
|
|
||||||
for (var i = 0; i < ids.length; i++) {
|
|
||||||
var id = ids[i];
|
|
||||||
var properties = Entities.getEntityProperties(id);
|
|
||||||
|
|
||||||
if (!filterInView || Vec3.distance(properties.position, cameraPosition) <= searchRadius) {
|
|
||||||
var url = "";
|
|
||||||
if (properties.type === "Model") {
|
|
||||||
url = properties.modelURL;
|
|
||||||
} else if (properties.type === "Material") {
|
|
||||||
url = properties.materialURL;
|
|
||||||
}
|
|
||||||
entities.push({
|
|
||||||
id: id,
|
|
||||||
name: properties.name,
|
|
||||||
type: properties.type,
|
|
||||||
url: url,
|
|
||||||
locked: properties.locked,
|
|
||||||
visible: properties.visible,
|
|
||||||
verticesCount: (properties.renderInfo !== undefined ?
|
|
||||||
valueIfDefined(properties.renderInfo.verticesCount) : ""),
|
|
||||||
texturesCount: (properties.renderInfo !== undefined ?
|
|
||||||
valueIfDefined(properties.renderInfo.texturesCount) : ""),
|
|
||||||
texturesSize: (properties.renderInfo !== undefined ?
|
|
||||||
valueIfDefined(properties.renderInfo.texturesSize) : ""),
|
|
||||||
hasTransparent: (properties.renderInfo !== undefined ?
|
|
||||||
valueIfDefined(properties.renderInfo.hasTransparent) : ""),
|
|
||||||
isBaked: properties.type === "Model" ? url.toLowerCase().endsWith(".baked.fbx") : false,
|
|
||||||
drawCalls: (properties.renderInfo !== undefined ?
|
|
||||||
valueIfDefined(properties.renderInfo.drawCalls) : ""),
|
|
||||||
hasScript: properties.script !== ""
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var selectedIDs = [];
|
var cameraPosition = Camera.position;
|
||||||
for (var j = 0; j < selectionManager.selections.length; j++) {
|
for (var i = 0; i < ids.length; i++) {
|
||||||
selectedIDs.push(selectionManager.selections[j]);
|
var id = ids[i];
|
||||||
}
|
var properties = Entities.getEntityProperties(id);
|
||||||
|
|
||||||
emitJSONScriptEvent({
|
if (!filterInView || Vec3.distance(properties.position, cameraPosition) <= searchRadius) {
|
||||||
type: "update",
|
var url = "";
|
||||||
entities: entities,
|
if (properties.type === "Model") {
|
||||||
selectedIDs: selectedIDs,
|
url = properties.modelURL;
|
||||||
|
} else if (properties.type === "Material") {
|
||||||
|
url = properties.materialURL;
|
||||||
|
}
|
||||||
|
entities.push({
|
||||||
|
id: id,
|
||||||
|
name: properties.name,
|
||||||
|
type: properties.type,
|
||||||
|
url: url,
|
||||||
|
locked: properties.locked,
|
||||||
|
visible: properties.visible,
|
||||||
|
verticesCount: (properties.renderInfo !== undefined ?
|
||||||
|
valueIfDefined(properties.renderInfo.verticesCount) : ""),
|
||||||
|
texturesCount: (properties.renderInfo !== undefined ?
|
||||||
|
valueIfDefined(properties.renderInfo.texturesCount) : ""),
|
||||||
|
texturesSize: (properties.renderInfo !== undefined ?
|
||||||
|
valueIfDefined(properties.renderInfo.texturesSize) : ""),
|
||||||
|
hasTransparent: (properties.renderInfo !== undefined ?
|
||||||
|
valueIfDefined(properties.renderInfo.hasTransparent) : ""),
|
||||||
|
isBaked: properties.type === "Model" ? url.toLowerCase().endsWith(".baked.fbx") : false,
|
||||||
|
drawCalls: (properties.renderInfo !== undefined ?
|
||||||
|
valueIfDefined(properties.renderInfo.drawCalls) : ""),
|
||||||
|
hasScript: properties.script !== ""
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var selectedIDs = [];
|
||||||
|
for (var j = 0; j < selectionManager.selections.length; j++) {
|
||||||
|
selectedIDs.push(selectionManager.selections[j]);
|
||||||
|
}
|
||||||
|
|
||||||
|
emitJSONScriptEvent({
|
||||||
|
type: "update",
|
||||||
|
entities: entities,
|
||||||
|
selectedIDs: selectedIDs,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -186,7 +205,8 @@ EntityListTool = function(shouldUseEditTabletApp) {
|
||||||
try {
|
try {
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
print("entityList.js: Error parsing JSON: " + e.name + " data " + data);
|
console.log(data);
|
||||||
|
//print("entityList.js: Error parsing JSON: " + e.name + " data " + data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue