mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
Merge pull request #9866 from vladest/tablet-ui-lodtools
Fixed slider groove size calculation. Added LOD Tools to Tablet UI
This commit is contained in:
commit
ffd4d1488c
6 changed files with 137 additions and 2 deletions
|
@ -36,7 +36,7 @@ Slider {
|
|||
|
||||
Rectangle {
|
||||
width: parent.height - 2
|
||||
height: slider.value * slider.width - 1
|
||||
height: slider.value * (slider.width/(slider.maximumValue - slider.minimumValue)) - 1
|
||||
radius: height / 2
|
||||
anchors {
|
||||
top: parent.top
|
||||
|
|
119
interface/resources/qml/hifi/dialogs/TabletLODTools.qml
Normal file
119
interface/resources/qml/hifi/dialogs/TabletLODTools.qml
Normal file
|
@ -0,0 +1,119 @@
|
|||
//
|
||||
// TabletLODTools.qml
|
||||
//
|
||||
// Created by Vlad Stelmahovsky on 3/11/17
|
||||
// Copyright 2017 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
|
||||
//
|
||||
|
||||
import QtQuick 2.5
|
||||
import QtQuick.Controls 1.4
|
||||
import Qt.labs.settings 1.0
|
||||
|
||||
import "../../styles-uit"
|
||||
import "../../controls-uit" as HifiControls
|
||||
import "../../windows"
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
objectName: "LODTools"
|
||||
|
||||
property var eventBridge;
|
||||
signal sendToScript(var message);
|
||||
property bool isHMD: false
|
||||
|
||||
color: hifi.colors.baseGray
|
||||
|
||||
property int colorScheme: hifi.colorSchemes.dark
|
||||
|
||||
HifiConstants { id: hifi }
|
||||
|
||||
readonly property real treeScale: 32768; // ~20 miles.. This is the number of meters of the 0.0 to 1.0 voxel universe
|
||||
readonly property real halfTreeScale: treeScale / 2;
|
||||
|
||||
// This controls the LOD. Larger number will make smaller voxels visible at greater distance.
|
||||
readonly property real defaultOctreeSizeScale: treeScale * 400.0
|
||||
|
||||
Column {
|
||||
anchors.margins: 10
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
y: hifi.dimensions.tabletMenuHeader //-bgNavBar
|
||||
spacing: 20
|
||||
|
||||
HifiControls.Label {
|
||||
size: 20
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
text: qsTr("You can see...")
|
||||
colorScheme: root.colorScheme
|
||||
}
|
||||
HifiControls.Label {
|
||||
id: whatYouCanSeeLabel
|
||||
color: "red"
|
||||
size: 20
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
colorScheme: root.colorScheme
|
||||
}
|
||||
Row {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: 10
|
||||
|
||||
HifiControls.Label {
|
||||
size: 20
|
||||
text: qsTr("Manually Adjust Level of Detail:")
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
colorScheme: root.colorScheme
|
||||
}
|
||||
|
||||
HifiControls.CheckBox {
|
||||
id: adjustCheckbox
|
||||
boxSize: 20
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
onCheckedChanged: LODManager.setAutomaticLODAdjust(!checked);
|
||||
}
|
||||
}
|
||||
|
||||
HifiControls.Label {
|
||||
size: 20
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Level of Detail:")
|
||||
colorScheme: root.colorScheme
|
||||
}
|
||||
HifiControls.Slider {
|
||||
id: slider
|
||||
enabled: adjustCheckbox.checked
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
minimumValue: 5
|
||||
maximumValue: 2000
|
||||
value: LODManager.getOctreeSizeScale() / treeScale
|
||||
tickmarksEnabled: false
|
||||
onValueChanged: {
|
||||
LODManager.setOctreeSizeScale(value * treeScale);
|
||||
whatYouCanSeeLabel.text = LODManager.getLODFeedbackText()
|
||||
}
|
||||
}
|
||||
|
||||
HifiControls.Button {
|
||||
id: uploadButton
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Reset")
|
||||
color: hifi.buttons.blue
|
||||
colorScheme: root.colorScheme
|
||||
height: 30
|
||||
onClicked: {
|
||||
slider.value = defaultOctreeSizeScale/treeScale
|
||||
adjustCheckbox.checked = false
|
||||
LODManager.setAutomaticLODAdjust(adjustCheckbox.checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6363,6 +6363,18 @@ void Application::loadScriptURLDialog() const {
|
|||
}
|
||||
}
|
||||
|
||||
void Application::loadLODToolsDialog() {
|
||||
auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
|
||||
auto tablet = dynamic_cast<TabletProxy*>(tabletScriptingInterface->getTablet("com.highfidelity.interface.tablet.system"));
|
||||
if (tablet->getToolbarMode() || (!tablet->getTabletRoot() && !isHMDMode())) {
|
||||
auto dialogsManager = DependencyManager::get<DialogsManager>();
|
||||
dialogsManager->lodTools();
|
||||
} else {
|
||||
tablet->pushOntoStack("../../hifi/dialogs/TabletLODTools.qml");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Application::toggleLogDialog() {
|
||||
if (! _logDialog) {
|
||||
_logDialog = new LogDialog(nullptr, getLogger());
|
||||
|
|
|
@ -403,6 +403,7 @@ public slots:
|
|||
void addAssetToWorldMessageClose();
|
||||
|
||||
Q_INVOKABLE void toggleMuteAudio();
|
||||
void loadLODToolsDialog();
|
||||
|
||||
private slots:
|
||||
void showDesktop();
|
||||
|
|
|
@ -408,7 +408,8 @@ Menu::Menu() {
|
|||
|
||||
|
||||
// Developer > Render > LOD Tools
|
||||
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0, dialogsManager.data(), SLOT(lodTools()));
|
||||
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, 0,
|
||||
qApp, SLOT(loadLODToolsDialog()));
|
||||
|
||||
// HACK enable texture decimation
|
||||
{
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "FileDialogHelper.h"
|
||||
#include "avatar/AvatarManager.h"
|
||||
#include "AudioClient.h"
|
||||
#include "LODManager.h"
|
||||
|
||||
static const float DPI = 30.47f;
|
||||
static const float INCHES_TO_METERS = 1.0f / 39.3701f;
|
||||
|
@ -182,6 +183,7 @@ void Web3DOverlay::loadSourceURL() {
|
|||
_webSurface->getRootContext()->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
|
||||
_webSurface->getRootContext()->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
|
||||
_webSurface->getRootContext()->setContextProperty("Assets", DependencyManager::get<AssetMappingsScriptingInterface>().data());
|
||||
_webSurface->getRootContext()->setContextProperty("LODManager", DependencyManager::get<LODManager>().data());
|
||||
_webSurface->getRootContext()->setContextProperty("pathToFonts", "../../");
|
||||
tabletScriptingInterface->setQmlTabletRoot("com.highfidelity.interface.tablet.system", _webSurface->getRootItem(), _webSurface.data());
|
||||
|
||||
|
|
Loading…
Reference in a new issue