mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 03:03:35 +02:00
Exposing the REsource Caches through a bit of ui, adding MaterialCache to the family
This commit is contained in:
parent
3d199ff444
commit
c0660329a3
16 changed files with 571 additions and 1 deletions
|
@ -105,8 +105,8 @@
|
||||||
#include <MessagesClient.h>
|
#include <MessagesClient.h>
|
||||||
#include <hfm/ModelFormatRegistry.h>
|
#include <hfm/ModelFormatRegistry.h>
|
||||||
#include <model-networking/ModelCacheScriptingInterface.h>
|
#include <model-networking/ModelCacheScriptingInterface.h>
|
||||||
|
#include <material-networking/MaterialCacheScriptingInterface.h>
|
||||||
#include <material-networking/TextureCacheScriptingInterface.h>
|
#include <material-networking/TextureCacheScriptingInterface.h>
|
||||||
#include <material-networking/MaterialCache.h>
|
|
||||||
#include <ModelEntityItem.h>
|
#include <ModelEntityItem.h>
|
||||||
#include <NetworkAccessManager.h>
|
#include <NetworkAccessManager.h>
|
||||||
#include <NetworkingConstants.h>
|
#include <NetworkingConstants.h>
|
||||||
|
@ -885,6 +885,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) {
|
||||||
DependencyManager::set<TextureCache>();
|
DependencyManager::set<TextureCache>();
|
||||||
DependencyManager::set<MaterialCache>();
|
DependencyManager::set<MaterialCache>();
|
||||||
DependencyManager::set<TextureCacheScriptingInterface>();
|
DependencyManager::set<TextureCacheScriptingInterface>();
|
||||||
|
DependencyManager::set<MaterialCacheScriptingInterface>();
|
||||||
DependencyManager::set<FramebufferCache>();
|
DependencyManager::set<FramebufferCache>();
|
||||||
DependencyManager::set<AnimationCache>();
|
DependencyManager::set<AnimationCache>();
|
||||||
DependencyManager::set<AnimationCacheScriptingInterface>();
|
DependencyManager::set<AnimationCacheScriptingInterface>();
|
||||||
|
@ -2908,6 +2909,7 @@ Application::~Application() {
|
||||||
DependencyManager::destroy<AnimationCacheScriptingInterface>();
|
DependencyManager::destroy<AnimationCacheScriptingInterface>();
|
||||||
DependencyManager::destroy<AnimationCache>();
|
DependencyManager::destroy<AnimationCache>();
|
||||||
DependencyManager::destroy<FramebufferCache>();
|
DependencyManager::destroy<FramebufferCache>();
|
||||||
|
DependencyManager::destroy<MaterialCacheScriptingInterface>();
|
||||||
DependencyManager::destroy<MaterialCache>();
|
DependencyManager::destroy<MaterialCache>();
|
||||||
DependencyManager::destroy<TextureCacheScriptingInterface>();
|
DependencyManager::destroy<TextureCacheScriptingInterface>();
|
||||||
DependencyManager::destroy<TextureCache>();
|
DependencyManager::destroy<TextureCache>();
|
||||||
|
@ -3433,6 +3435,7 @@ void Application::onDesktopRootContextCreated(QQmlContext* surfaceContext) {
|
||||||
// Caches
|
// Caches
|
||||||
surfaceContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCacheScriptingInterface>().data());
|
surfaceContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCacheScriptingInterface>().data());
|
||||||
surfaceContext->setContextProperty("TextureCache", DependencyManager::get<TextureCacheScriptingInterface>().data());
|
surfaceContext->setContextProperty("TextureCache", DependencyManager::get<TextureCacheScriptingInterface>().data());
|
||||||
|
surfaceContext->setContextProperty("MaterialCache", DependencyManager::get<MaterialCacheScriptingInterface>().data());
|
||||||
surfaceContext->setContextProperty("ModelCache", DependencyManager::get<ModelCacheScriptingInterface>().data());
|
surfaceContext->setContextProperty("ModelCache", DependencyManager::get<ModelCacheScriptingInterface>().data());
|
||||||
surfaceContext->setContextProperty("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data());
|
surfaceContext->setContextProperty("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data());
|
||||||
|
|
||||||
|
@ -7563,6 +7566,7 @@ void Application::registerScriptEngineWithApplicationServices(const ScriptEngine
|
||||||
// Caches
|
// Caches
|
||||||
scriptEngine->registerGlobalObject("AnimationCache", DependencyManager::get<AnimationCacheScriptingInterface>().data());
|
scriptEngine->registerGlobalObject("AnimationCache", DependencyManager::get<AnimationCacheScriptingInterface>().data());
|
||||||
scriptEngine->registerGlobalObject("TextureCache", DependencyManager::get<TextureCacheScriptingInterface>().data());
|
scriptEngine->registerGlobalObject("TextureCache", DependencyManager::get<TextureCacheScriptingInterface>().data());
|
||||||
|
scriptEngine->registerGlobalObject("MaterialCache", DependencyManager::get<MaterialCacheScriptingInterface>().data());
|
||||||
scriptEngine->registerGlobalObject("ModelCache", DependencyManager::get<ModelCacheScriptingInterface>().data());
|
scriptEngine->registerGlobalObject("ModelCache", DependencyManager::get<ModelCacheScriptingInterface>().data());
|
||||||
scriptEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data());
|
scriptEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data());
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,7 @@ void ModelEntityWrapper::setModel(const ModelPointer& model) {
|
||||||
if (_model) {
|
if (_model) {
|
||||||
_needsInitialSimulation = true;
|
_needsInitialSimulation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// MaterialCacheScriptingInterface.cpp
|
||||||
|
// libraries/mmodel-networking/src/model-networking
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 17 September 2019.
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "MaterialCacheScriptingInterface.h"
|
||||||
|
|
||||||
|
MaterialCacheScriptingInterface::MaterialCacheScriptingInterface() :
|
||||||
|
ScriptableResourceCache::ScriptableResourceCache(DependencyManager::get<MaterialCache>())
|
||||||
|
{ }
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
//
|
||||||
|
// MaterialCacheScriptingInterface.h
|
||||||
|
// libraries/material-networking/src/material-networking
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 17 September 2019.
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef hifi_MaterialCacheScriptingInterface_h
|
||||||
|
#define hifi_MaterialCacheScriptingInterface_h
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
#include <ResourceCache.h>
|
||||||
|
|
||||||
|
#include "MaterialCache.h"
|
||||||
|
|
||||||
|
class MaterialCacheScriptingInterface : public ScriptableResourceCache, public Dependency {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
// Properties are copied over from ResourceCache (see ResourceCache.h for reason).
|
||||||
|
|
||||||
|
/**jsdoc
|
||||||
|
* The <code>TextureCache</code> API manages texture cache resources.
|
||||||
|
*
|
||||||
|
* @namespace TextureCache
|
||||||
|
*
|
||||||
|
* @hifi-interface
|
||||||
|
* @hifi-client-entity
|
||||||
|
* @hifi-avatar
|
||||||
|
*
|
||||||
|
* @property {number} numTotal - Total number of total resources. <em>Read-only.</em>
|
||||||
|
* @property {number} numCached - Total number of cached resource. <em>Read-only.</em>
|
||||||
|
* @property {number} sizeTotal - Size in bytes of all resources. <em>Read-only.</em>
|
||||||
|
* @property {number} sizeCached - Size in bytes of all cached resources. <em>Read-only.</em>
|
||||||
|
*
|
||||||
|
* @borrows ResourceCache.getResourceList as getResourceList
|
||||||
|
* @borrows ResourceCache.updateTotalSize as updateTotalSize
|
||||||
|
* @borrows ResourceCache.prefetch as prefetch
|
||||||
|
* @borrows ResourceCache.dirty as dirty
|
||||||
|
*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
MaterialCacheScriptingInterface();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // hifi_MaterialCacheScriptingInterface_h
|
66
scripts/developer/utilities/cache/cash.js
vendored
Normal file
66
scripts/developer/utilities/cache/cash.js
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
"use strict";
|
||||||
|
var Page = Script.require('./cash/Page.js');
|
||||||
|
|
||||||
|
function openView() {
|
||||||
|
//window.closed.connect(function() { Script.stop(); });
|
||||||
|
|
||||||
|
|
||||||
|
var pages = new Pages();
|
||||||
|
function fromQml(message) {
|
||||||
|
console.log(JSON.stringify(message))
|
||||||
|
if (pages.open(message.method)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var cashWindow
|
||||||
|
function openCashWindow(window) {
|
||||||
|
if (cashWindow !== undefined) {
|
||||||
|
activeWindow.fromQml.disconnect(fromQml);
|
||||||
|
}
|
||||||
|
if (window !== undefined) {
|
||||||
|
window.fromQml.connect(fromQml);
|
||||||
|
}
|
||||||
|
cashWindow = window;
|
||||||
|
|
||||||
|
|
||||||
|
var onMousePressEvent = function (e) {
|
||||||
|
};
|
||||||
|
Controller.mousePressEvent.connect(onMousePressEvent);
|
||||||
|
|
||||||
|
var onMouseReleaseEvent = function () {
|
||||||
|
};
|
||||||
|
Controller.mouseReleaseEvent.connect(onMouseReleaseEvent);
|
||||||
|
|
||||||
|
var onMouseMoveEvent = function (e) {
|
||||||
|
};
|
||||||
|
Controller.mouseMoveEvent.connect(onMouseMoveEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeCashWindow() {
|
||||||
|
if (cashWindow !== undefined) {
|
||||||
|
activeWindow.fromQml.disconnect(fromQml);
|
||||||
|
}
|
||||||
|
cashWindow = {};
|
||||||
|
|
||||||
|
Controller.mousePressEvent.disconnect(onMousePressEvent);
|
||||||
|
Controller.mouseReleaseEvent.disconnect(onMouseReleaseEvent);
|
||||||
|
Controller.mouseMoveEvent.disconnect(onMouseMoveEvent);
|
||||||
|
pages.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
pages.addPage('Cash', 'Cash', "../cash.qml", 300, 420, openCashWindow, closeCashWindow);
|
||||||
|
pages.addPage('openModelCacheInspector', 'Model Cache Inspector', "./ModelCacheInspector.qml", 300, 500);
|
||||||
|
pages.addPage('openMaterialCacheInspector', 'Material Cache Inspector', "./MaterialCacheInspector.qml", 300, 500);
|
||||||
|
pages.addPage('openTextureCacheInspector', 'Texture Cache Inspector', "./TextureCacheInspector.qml", 300, 500);
|
||||||
|
pages.addPage('openAnimationCacheInspector', 'Animation Cache Inspector', "./AnimationCacheInspector.qml", 300, 500);
|
||||||
|
pages.addPage('openSoundCacheInspector', 'Sound Cache Inspector', "./SoundCacheInspector.qml", 300, 500);
|
||||||
|
|
||||||
|
pages.open('Cash');
|
||||||
|
|
||||||
|
|
||||||
|
return pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
openView();
|
80
scripts/developer/utilities/cache/cash.qml
vendored
Normal file
80
scripts/developer/utilities/cache/cash.qml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
//
|
||||||
|
// cash.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 17/9/2019
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import controlsUit 1.0 as HifiControls
|
||||||
|
|
||||||
|
import "../lib/prop" as Prop
|
||||||
|
import "cash"
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
id: root;
|
||||||
|
|
||||||
|
Prop.Global { id: global;}
|
||||||
|
color: global.color
|
||||||
|
|
||||||
|
ScrollView {
|
||||||
|
id: scrollView
|
||||||
|
anchors.fill: parent
|
||||||
|
contentWidth: parent.width
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: column
|
||||||
|
width: parent.width
|
||||||
|
Prop.PropFolderPanel {
|
||||||
|
label: "Cache Inspectors"
|
||||||
|
isUnfold: true
|
||||||
|
panelFrameData: Component {
|
||||||
|
Column {
|
||||||
|
Prop.PropButton {
|
||||||
|
text: "Model"
|
||||||
|
onClicked: {
|
||||||
|
sendToScript({method: "openModelCacheInspector"});
|
||||||
|
}
|
||||||
|
width:column.width
|
||||||
|
}
|
||||||
|
Prop.PropButton {
|
||||||
|
text: "Material"
|
||||||
|
onClicked: {
|
||||||
|
sendToScript({method: "openMaterialCacheInspector"});
|
||||||
|
}
|
||||||
|
width:column.width
|
||||||
|
}
|
||||||
|
Prop.PropButton {
|
||||||
|
text: "Texture"
|
||||||
|
onClicked: {
|
||||||
|
sendToScript({method: "openTextureCacheInspector"});
|
||||||
|
}
|
||||||
|
width:column.width
|
||||||
|
}
|
||||||
|
Prop.PropButton {
|
||||||
|
text: "Animation"
|
||||||
|
onClicked: {
|
||||||
|
sendToScript({method: "openAnimationCacheInspector"});
|
||||||
|
}
|
||||||
|
width:column.width
|
||||||
|
}
|
||||||
|
Prop.PropButton {
|
||||||
|
text: "Sound"
|
||||||
|
onClicked: {
|
||||||
|
sendToScript({method: "openSoundCacheInspector"});
|
||||||
|
}
|
||||||
|
width:column.width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
scripts/developer/utilities/cache/cash/AnimationCacheInspector.qml
vendored
Normal file
20
scripts/developer/utilities/cache/cash/AnimationCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//
|
||||||
|
// AnimationCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
ResourceCacheInspector {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
cache: AnimationCache
|
||||||
|
}
|
20
scripts/developer/utilities/cache/cash/MaterialCacheInspector.qml
vendored
Normal file
20
scripts/developer/utilities/cache/cash/MaterialCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//
|
||||||
|
// MaterialCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
ResourceCacheInspector {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
cache: MaterialCache
|
||||||
|
}
|
20
scripts/developer/utilities/cache/cash/ModelCacheInspector.qml
vendored
Normal file
20
scripts/developer/utilities/cache/cash/ModelCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//
|
||||||
|
// ModelCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
ResourceCacheInspector {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
cache: ModelCache
|
||||||
|
}
|
90
scripts/developer/utilities/cache/cash/Page.js
vendored
Normal file
90
scripts/developer/utilities/cache/cash/Page.js
vendored
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
//
|
||||||
|
// Page.js
|
||||||
|
//
|
||||||
|
// Sam Gateau, created on 4/19/2019
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
function Page(title, qmlurl, width, height, onViewCreated, onViewClosed) {
|
||||||
|
this.title = title;
|
||||||
|
this.qml = qmlurl;
|
||||||
|
this.width = width;
|
||||||
|
this.height = height;
|
||||||
|
this.onViewCreated = onViewCreated;
|
||||||
|
this.onViewClosed = onViewClosed;
|
||||||
|
|
||||||
|
this.window;
|
||||||
|
|
||||||
|
print("Page: New Page:" + JSON.stringify(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
Page.prototype.killView = function () {
|
||||||
|
print("Page: Kill window for page:" + JSON.stringify(this));
|
||||||
|
if (this.window) {
|
||||||
|
print("Page: Kill window for page:" + this.title);
|
||||||
|
//this.window.closed.disconnect(function () {
|
||||||
|
// this.killView();
|
||||||
|
//});
|
||||||
|
this.window.close();
|
||||||
|
this.window = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Page.prototype.createView = function () {
|
||||||
|
var that = this;
|
||||||
|
if (!this.window) {
|
||||||
|
print("Page: New window for page:" + this.title);
|
||||||
|
this.window = Desktop.createWindow(Script.resolvePath(this.qml), {
|
||||||
|
title: this.title,
|
||||||
|
presentationMode: Desktop.PresentationMode.NATIVE,
|
||||||
|
size: {x: this.width, y: this.height}
|
||||||
|
});
|
||||||
|
this.onViewCreated(this.window);
|
||||||
|
this.window.closed.connect(function () {
|
||||||
|
that.killView();
|
||||||
|
that.onViewClosed();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Pages = function () {
|
||||||
|
this._pages = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
Pages.prototype.addPage = function (command, title, qmlurl, width, height, onViewCreated, onViewClosed) {
|
||||||
|
if (onViewCreated === undefined) {
|
||||||
|
// Workaround for bad linter
|
||||||
|
onViewCreated = function(window) {};
|
||||||
|
}
|
||||||
|
if (onViewClosed === undefined) {
|
||||||
|
// Workaround for bad linter
|
||||||
|
onViewClosed = function() {};
|
||||||
|
}
|
||||||
|
this._pages[command] = new Page(title, qmlurl, width, height, onViewCreated, onViewClosed);
|
||||||
|
};
|
||||||
|
|
||||||
|
Pages.prototype.open = function (command) {
|
||||||
|
print("Pages: command = " + command);
|
||||||
|
if (!this._pages[command]) {
|
||||||
|
print("Pages: unknown command = " + command);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._pages[command].createView();
|
||||||
|
};
|
||||||
|
|
||||||
|
Pages.prototype.clear = function () {
|
||||||
|
for (var p in this._pages) {
|
||||||
|
print("Pages: kill page: " + p);
|
||||||
|
this._pages[p].killView();
|
||||||
|
delete this._pages[p];
|
||||||
|
}
|
||||||
|
this._pages = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
}());
|
122
scripts/developer/utilities/cache/cash/ResourceCacheInspector.qml
vendored
Normal file
122
scripts/developer/utilities/cache/cash/ResourceCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
//
|
||||||
|
// ResourceCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
property var cache: {}
|
||||||
|
|
||||||
|
function fromScript(message) {
|
||||||
|
switch (message.method) {
|
||||||
|
case "setJSON":
|
||||||
|
// jsonText.items = message.params.items;
|
||||||
|
break;
|
||||||
|
case "setItemList":
|
||||||
|
//console.log(message.params.items)
|
||||||
|
resouceItemsModel.resetItemList(message.params.items)
|
||||||
|
break;
|
||||||
|
case "resetItemList":
|
||||||
|
resetItemList()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
// if (cache !== undefined) {
|
||||||
|
resetItemList();
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetItemList() {
|
||||||
|
var theList = cache.getResourceList();
|
||||||
|
resouceItemsModel.resetItemList(theList)
|
||||||
|
}
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
id: resouceItemsModel
|
||||||
|
|
||||||
|
function resetItemList(itemList) {
|
||||||
|
resouceItemsModel.clear()
|
||||||
|
for (var i in itemList) {
|
||||||
|
//resouceItemsModel.append({ "name": itemList[i]})
|
||||||
|
resouceItemsModel.append({ "name": itemList[i].toString()})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: resouceItemDelegate
|
||||||
|
Row {
|
||||||
|
id: itemRow
|
||||||
|
Prop.PropLabel {
|
||||||
|
text: model.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: header
|
||||||
|
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
|
||||||
|
Prop.PropButton {
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
id: refresh
|
||||||
|
text: "Refresh"
|
||||||
|
onClicked: {
|
||||||
|
resetItemList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Prop.PropScalar {
|
||||||
|
id: totalCount
|
||||||
|
anchors.right: parent.right
|
||||||
|
label: "Count"
|
||||||
|
sourceValueVar: resouceItemsModel.count
|
||||||
|
integral: true
|
||||||
|
readOnly: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Prop.PropScalar {
|
||||||
|
id: totalCount
|
||||||
|
anchors.right: parent.right
|
||||||
|
label: "Count"
|
||||||
|
sourceValueVar: resouceItemsModel.count
|
||||||
|
integral: true
|
||||||
|
readOnly: true
|
||||||
|
}
|
||||||
|
|
||||||
|
height: refresh.height
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ScrollView {
|
||||||
|
anchors.top: header.bottom
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
clip: true
|
||||||
|
ListView {
|
||||||
|
id: listView
|
||||||
|
model: resouceItemsModel
|
||||||
|
delegate: resouceItemDelegate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
20
scripts/developer/utilities/cache/cash/SoundCacheInspector.qml
vendored
Normal file
20
scripts/developer/utilities/cache/cash/SoundCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//
|
||||||
|
// SoundCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
ResourceCacheInspector {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
cache: SoundCache
|
||||||
|
}
|
20
scripts/developer/utilities/cache/cash/TextureCacheInspector.qml
vendored
Normal file
20
scripts/developer/utilities/cache/cash/TextureCacheInspector.qml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
//
|
||||||
|
// TextureCacheInspector.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 2019-09-17
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.5
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import "../../lib/prop" as Prop
|
||||||
|
|
||||||
|
ResourceCacheInspector {
|
||||||
|
id: root;
|
||||||
|
anchors.fill: parent.fill
|
||||||
|
cache: TextureCache
|
||||||
|
}
|
6
scripts/developer/utilities/cache/cash/qmldir
vendored
Normal file
6
scripts/developer/utilities/cache/cash/qmldir
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
ResourceCacheInspector 1.0 ResourceCacheInspector.qml
|
||||||
|
TextureCacheInspector 1.0 TextureCacheInspector.qml
|
||||||
|
MaterialCacheInspector 1.0 MaterialCacheInspector.qml
|
||||||
|
ModelCacheInspector 1.0 ModelCacheInspector.qml
|
||||||
|
AnimationCacheInspector 1.0 AnimationCacheInspector.qml
|
||||||
|
SoundCacheInspector 1.0 SoundCacheInspector.qml
|
|
@ -3,6 +3,7 @@ Global 1.0 style/Global.qml
|
||||||
PropText 1.0 style/PiText.qml
|
PropText 1.0 style/PiText.qml
|
||||||
PropLabel 1.0 style/PiLabel.qml
|
PropLabel 1.0 style/PiLabel.qml
|
||||||
PropSplitter 1.0 style/PiSplitter.qml
|
PropSplitter 1.0 style/PiSplitter.qml
|
||||||
|
PropButton 1.0 style/PiButton.qml
|
||||||
PropComboBox 1.0 style/PiComboBox.qml
|
PropComboBox 1.0 style/PiComboBox.qml
|
||||||
PropCanvasIcon 1.0 style/PiCanvasIcon.qml
|
PropCanvasIcon 1.0 style/PiCanvasIcon.qml
|
||||||
PropCheckBox 1.0 style/PiCheckBox.qml
|
PropCheckBox 1.0 style/PiCheckBox.qml
|
||||||
|
|
32
scripts/developer/utilities/lib/prop/style/PiButton.qml
Normal file
32
scripts/developer/utilities/lib/prop/style/PiButton.qml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
//
|
||||||
|
// Prop/style/PiButton.qml
|
||||||
|
//
|
||||||
|
// Created by Sam Gateau on 17/09/2019
|
||||||
|
// Copyright 2019 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
import QtQuick 2.6
|
||||||
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Global { id: global }
|
||||||
|
id: control
|
||||||
|
text: ""
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
contentItem: PiText {
|
||||||
|
text: control.text
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: control.down ? global.colorBackHighlight : global.colorBackShadow
|
||||||
|
opacity: enabled ? 1 : 0.3
|
||||||
|
border.color: control.down ? global.colorBorderHighight : (control.hovered ? global.colorBorderHighight : global.colorBorderLight)
|
||||||
|
border.width: global.valueBorderWidth
|
||||||
|
radius: global.valueBorderRadius
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue