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

This commit is contained in:
NissimHadar 2018-05-10 09:13:15 -07:00
commit 6c07f9554c
20 changed files with 100 additions and 129 deletions

View file

@ -787,7 +787,7 @@ Rectangle {
}
lightboxPopup.button2text = "CONFIRM";
lightboxPopup.button2method = function() {
Commerce.replaceContentSet(root.itemHref);
Commerce.replaceContentSet(root.itemHref, root.certificateId);
lightboxPopup.visible = false;
rezzedNotifContainer.visible = true;
rezzedNotifContainerTimer.start();

View file

@ -145,16 +145,6 @@
#include <avatars-renderer/ScriptAvatar.h>
#include <RenderableEntityItem.h>
#include <AnimationLogging.h>
#include <AvatarLogging.h>
#include <ScriptEngineLogging.h>
#include <ModelFormatLogging.h>
#include <controllers/Logging.h>
#include <NetworkLogging.h>
#include <shared/StorageLogging.h>
#include <ScriptEngineLogging.h>
#include <ui/Logging.h>
#include "AudioClient.h"
#include "audio/AudioScope.h"
#include "avatar/AvatarManager.h"
@ -1372,8 +1362,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
// Needs to happen AFTER the render engine initialization to access its configuration
initializeUi();
updateVerboseLogging();
init();
qCDebug(interfaceapp, "init() complete.");
@ -1713,6 +1701,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
loadSettings();
updateVerboseLogging();
// Now that we've loaded the menu and thus switched to the previous display plugin
// we can unlock the desktop repositioning code, since all the positions will be
// relative to the desktop size for this plugin
@ -2165,7 +2155,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
return entityServerNode && !isPhysicsEnabled();
});
_snapshotSound = DependencyManager::get<SoundCache>()->getSound(PathUtils::resourcesUrl("sounds/snap.wav"));
_snapshotSound = DependencyManager::get<SoundCache>()->getSound(PathUtils::resourcesUrl("sounds/snapshot/snap.wav"));
QVariant testProperty = property(hifi::properties::TEST);
qDebug() << testProperty;
@ -2257,43 +2247,16 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
}
void Application::updateVerboseLogging() {
bool enable = Menu::getInstance()->isOptionChecked(MenuOption::VerboseLogging);
auto menu = Menu::getInstance();
if (!menu) {
return;
}
bool enable = menu->isOptionChecked(MenuOption::VerboseLogging);
const_cast<QLoggingCategory*>(&animation())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&animation())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&avatars())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&avatars())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&scriptengine())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&scriptengine())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&modelformat())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&modelformat())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&controllers())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&controllers())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&resourceLog())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&resourceLog())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&networking())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&networking())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&asset_client())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&asset_client())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&messages_client())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&messages_client())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&storagelogging())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&storagelogging())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&uiLogging())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&uiLogging())->setEnabled(QtInfoMsg, enable);
const_cast<QLoggingCategory*>(&glLogging())->setEnabled(QtDebugMsg, enable);
const_cast<QLoggingCategory*>(&glLogging())->setEnabled(QtInfoMsg, enable);
QString rules = "*.debug=%1\n"
"*.info=%1";
rules = rules.arg(enable ? "true" : "false");
QLoggingCategory::setFilterRules(rules);
}
void Application::domainConnectionRefused(const QString& reasonMessage, int reasonCodeInt, const QString& extraInfo) {
@ -3222,7 +3185,6 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
qCDebug(interfaceapp) << "First run... going to" << qPrintable(addressLookupString.isEmpty() ? QString("default location") : addressLookupString);
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
#else
showHelp();
DependencyManager::get<AddressManager>()->goToEntry();
sentTo = SENT_TO_ENTRY;
#endif

View file

@ -1070,7 +1070,7 @@ bool EntityItem::stepKinematicMotion(float timeElapsed) {
const float MAX_TIME_ELAPSED = 1.0f; // seconds
if (timeElapsed > MAX_TIME_ELAPSED) {
qCWarning(entities) << "kinematic timestep = " << timeElapsed << " truncated to " << MAX_TIME_ELAPSED;
qCDebug(entities) << "kinematic timestep = " << timeElapsed << " truncated to " << MAX_TIME_ELAPSED;
}
timeElapsed = glm::min(timeElapsed, MAX_TIME_ELAPSED);

View file

@ -17,7 +17,6 @@ std::string GL41Backend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 410 core
#define GPU_GL410
#define PRECISIONQ
#define BITFIELD int
)SHADER");
return header;

View file

@ -18,7 +18,6 @@ std::string GL45Backend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 450 core
#define GPU_GL450
#define PRECISIONQ
#define BITFIELD int
)SHADER"
#ifdef GPU_SSBO_TRANSFORM_OBJECT

View file

@ -17,10 +17,9 @@ std::string GLESBackend::getBackendShaderHeader() const {
static const std::string header(
R"SHADER(#version 310 es
#extension GL_EXT_texture_buffer : enable
precision lowp float; // check precision 2
precision lowp samplerBuffer;
precision lowp sampler2DShadow;
#define PRECISIONQ highp
precision highp float;
precision highp samplerBuffer;
precision highp sampler2DShadow;
#define BITFIELD highp int
)SHADER");
return header;

View file

@ -50,47 +50,50 @@ enum Type : uint8_t {
};
// Array providing the size in bytes for a given scalar type
static const int TYPE_SIZE[NUM_TYPES] = {
4,
4,
4,
2,
2,
2,
1,
1,
4, // FLOAT
4, // INT32
4, // UINT32
2, // HALF
2, // INT16
2, // UINT16
1, // INT8
1, // UINT8
// normalized values
4,
4,
2,
2,
1,
1,
4,
4, // NINT32
4, // NUINT32
2, // NINT16
2, // NUINT16
1, // NINT8
1, // NUINT8
1, // NUINT2
1, // NINT2_10_10_10
1
1, // COMPRESSED
};
// Array answering the question Does this type is integer or not
static const bool TYPE_IS_INTEGER[NUM_TYPES] = {
false,
true,
true,
false,
true,
true,
true,
true,
false, // FLOAT
true, // INT32
true, // UINT32
false, // HALF
true, // INT16
true, // UINT16
true, // INT8
true, // UINT8
// Normalized values
false,
false,
false,
false,
false,
false,
false,
false, // NINT32
false, // NUINT32
false, // NINT16
false, // NUINT16
false, // NINT8
false, // NUINT8
false, // NUINT2
false, // NINT2_10_10_10
false,
false, // COMPRESSED
};
// Dimension of an Element
@ -367,9 +370,9 @@ public:
static const Element PART_DRAWCALL;
protected:
uint8 _semantic;
uint8 _dimension : 4;
uint8 _type : 4;
uint16 _semantic : 7;
uint16 _dimension : 4;
uint16 _type : 5;
};

View file

@ -34,7 +34,7 @@ vec3 getLightIrradiance(Light l) { return lightIrradiance_getIrradiance(l.irradi
// Light Ambient
struct LightAmbient {
PRECISIONQ vec4 _ambient;
vec4 _ambient;
SphericalHarmonics _ambientSphere;
mat4 transform;
};

View file

@ -14,9 +14,9 @@
#define LightIrradianceConstRef LightIrradiance
struct LightIrradiance {
PRECISIONQ vec4 colorIntensity;
vec4 colorIntensity;
// falloffRadius, cutoffRadius, falloffSpot, spare
PRECISIONQ vec4 attenuation;
vec4 attenuation;
};

View file

@ -16,8 +16,8 @@
#define LightVolumeConstRef LightVolume
struct LightVolume {
PRECISIONQ vec4 positionRadius;
PRECISIONQ vec4 directionSpotCos;
vec4 positionRadius;
vec4 directionSpotCos;
};
bool lightVolume_isPoint(LightVolume lv) { return bool(lv.directionSpotCos.w < 0.f); }

View file

@ -15,10 +15,10 @@
// to what is provided by the uniform buffer, or the material key has the wrong bits
struct Material {
PRECISIONQ vec4 _emissiveOpacity;
PRECISIONQ vec4 _albedoRoughness;
PRECISIONQ vec4 _fresnelMetallic;
PRECISIONQ vec4 _scatteringSpare2Key;
vec4 _emissiveOpacity;
vec4 _albedoRoughness;
vec4 _fresnelMetallic;
vec4 _scatteringSpare2Key;
};
uniform materialBuffer {
@ -64,7 +64,4 @@ const BITFIELD OCCLUSION_MAP_BIT = 0x00004000;
const BITFIELD LIGHTMAP_MAP_BIT = 0x00008000;
const BITFIELD SCATTERING_MAP_BIT = 0x00010000;
#ifdef GL_ES
precision lowp float;
#endif
<@endif@>

View file

@ -16,15 +16,15 @@
#define SphericalHarmonicsConstRef SphericalHarmonics
struct SphericalHarmonics {
PRECISIONQ vec4 L00;
PRECISIONQ vec4 L1m1;
PRECISIONQ vec4 L10;
PRECISIONQ vec4 L11;
PRECISIONQ vec4 L2m2;
PRECISIONQ vec4 L2m1;
PRECISIONQ vec4 L20;
PRECISIONQ vec4 L21;
PRECISIONQ vec4 L22;
vec4 L00;
vec4 L1m1;
vec4 L10;
vec4 L11;
vec4 L2m2;
vec4 L2m1;
vec4 L20;
vec4 L21;
vec4 L22;
};
vec4 sphericalHarmonics_evalSphericalLight(SphericalHarmonicsConstRef sh, vec3 direction) {

View file

@ -6,8 +6,8 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_Controllers_Logging_h
#define hifi_Controllers_Logging_h
#ifndef hifi_QML_Logging_h
#define hifi_QML_Logging_h
#include <QLoggingCategory>

View file

@ -14,10 +14,10 @@
<@func declareLightingModel()@>
struct LightingModel {
PRECISIONQ vec4 _UnlitEmissiveLightmapBackground;
PRECISIONQ vec4 _ScatteringDiffuseSpecularAlbedo;
PRECISIONQ vec4 _AmbientDirectionalPointSpot;
PRECISIONQ vec4 _ShowContourObscuranceWireframe;
vec4 _UnlitEmissiveLightmapBackground;
vec4 _ScatteringDiffuseSpecularAlbedo;
vec4 _AmbientDirectionalPointSpot;
vec4 _ShowContourObscuranceWireframe;
};
uniform lightingModelBuffer{

View file

@ -101,8 +101,6 @@ int functionSignatureMetaID = qRegisterMetaType<QScriptEngine::FunctionSignature
int scriptEnginePointerMetaID = qRegisterMetaType<ScriptEnginePointer>();
Q_LOGGING_CATEGORY(scriptengineScript, "hifi.scriptengine.script")
static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine) {
QString message = "";
for (int i = 0; i < context->argumentCount(); i++) {
@ -115,9 +113,9 @@ static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine) {
if (ScriptEngine *scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
scriptEngine->print(message);
// prefix the script engine name to help disambiguate messages in the main debug log
qCDebug(scriptengineScript, "[%s] %s", qUtf8Printable(scriptEngine->getFilename()), qUtf8Printable(message));
qCDebug(scriptengine_script, "[%s] %s", qUtf8Printable(scriptEngine->getFilename()), qUtf8Printable(message));
} else {
qCDebug(scriptengineScript, "%s", qUtf8Printable(message));
qCDebug(scriptengine_script, "%s", qUtf8Printable(message));
}
return QScriptValue();

View file

@ -13,3 +13,4 @@
Q_LOGGING_CATEGORY(scriptengine, "hifi.scriptengine")
Q_LOGGING_CATEGORY(scriptengine_module, "hifi.scriptengine.module")
Q_LOGGING_CATEGORY(scriptengine_script, "hifi.scriptengine.script")

View file

@ -16,6 +16,7 @@
Q_DECLARE_LOGGING_CATEGORY(scriptengine)
Q_DECLARE_LOGGING_CATEGORY(scriptengine_module)
Q_DECLARE_LOGGING_CATEGORY(scriptengine_script)
#endif // hifi_ScriptEngineLogging_h

View file

@ -498,6 +498,11 @@ ScriptEnginePointer ScriptEngines::loadScript(const QUrl& scriptFilename, bool i
connect(scriptEngine.data(), &ScriptEngine::scriptLoaded, this, &ScriptEngines::onScriptEngineLoaded);
connect(scriptEngine.data(), &ScriptEngine::errorLoadingScript, this, &ScriptEngines::onScriptEngineError);
// Shutdown Interface when script finishes, if requested
if (quitWhenFinished) {
connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::quitWhenFinished);
}
// get the script engine object to load the script at the designated script URL
scriptEngine->loadURL(scriptUrl, reload);
}
@ -538,6 +543,10 @@ void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) {
emit scriptCountChanged();
}
void ScriptEngines::quitWhenFinished() {
qApp->quit();
}
int ScriptEngines::runScriptInitializers(ScriptEnginePointer scriptEngine) {
int ii=0;
for (auto initializer : _scriptInitializers) {

View file

@ -267,6 +267,7 @@ protected:
ScriptEnginePointer reloadScript(const QString& scriptName, bool isUserLoaded = true) { return loadScript(scriptName, isUserLoaded, false, false, true); }
void removeScriptEngine(ScriptEnginePointer);
void onScriptEngineLoaded(const QString& scriptFilename);
void quitWhenFinished();
void onScriptEngineError(const QString& scriptFilename);
void launchScriptEngine(ScriptEnginePointer);

View file

@ -106,10 +106,11 @@ public slots:
void mute(const QUuid& nodeID);
/**jsdoc
* Get the user name and machine fingerprint associated with the given UUID. This will only do anything if you're an admin
* of the domain you're in.
* @function Users.getUsernameFromID
* @param {Uuid} nodeID The node or session ID of the user whose username you want.
* Request the user name and machine fingerprint associated with the given UUID. The user name will be returned in a
* {@link Users.usernameFromIDReply|usernameFromIDReply} signal. This will only do anything if you're an admin of the domain
* you're in.
* @function Users.requestUsernameFromID
* @param {Uuid} nodeID The node or session ID of the user whose user name you want.
*/
void requestUsernameFromID(const QUuid& nodeID);
@ -170,7 +171,8 @@ signals:
void enteredIgnoreRadius();
/**jsdoc
* Notifies scripts of the user name and machine fingerprint associated with a UUID.
* Triggered in response to a {@link Users.requestUsernameFromID|requestUsernameFromID} call. Provides the user name and
* machine fingerprint associated with a UUID.
* Username and machineFingerprint will be their default constructor output if the requesting user isn't an admin.
* @function Users.usernameFromIDReply
* @param {Uuid} nodeID