From 2cc21496478cb5aea6852f69fd80dff9e5fd7c46 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 10 Apr 2014 11:54:14 -0700 Subject: [PATCH 1/4] Glow when you talk, flash when you clip closes #2592 --- interface/src/Application.cpp | 6 ++++++ interface/src/Util.cpp | 4 ++-- interface/src/Util.h | 2 +- interface/src/avatar/Avatar.cpp | 5 ++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index f6b0d37dd4..ad216458bd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2557,6 +2557,12 @@ void Application::displayOverlay() { } bool isClipping = ((_audio.getTimeSinceLastClip() > 0.f) && (_audio.getTimeSinceLastClip() < CLIPPING_INDICATOR_TIME)); + + if ((_audio.getTimeSinceLastClip() > 0.f) && (_audio.getTimeSinceLastClip() < CLIPPING_INDICATOR_TIME)) { + const float MAX_MAGNITUDE = 0.7f; + float magnitude = MAX_MAGNITUDE * (1 - _audio.getTimeSinceLastClip() / CLIPPING_INDICATOR_TIME); + renderCollisionOverlay(_glWidget->width(), _glWidget->height(), magnitude, 1.0f); + } _audio.renderToolBox(MIRROR_VIEW_LEFT_PADDING + AUDIO_METER_GAP, audioMeterY, diff --git a/interface/src/Util.cpp b/interface/src/Util.cpp index 36e39a46a5..cecc363daa 100644 --- a/interface/src/Util.cpp +++ b/interface/src/Util.cpp @@ -351,10 +351,10 @@ void drawvec3(int x, int y, float scale, float radians, float thick, int mono, g glPopMatrix(); } -void renderCollisionOverlay(int width, int height, float magnitude) { +void renderCollisionOverlay(int width, int height, float magnitude, float red, float blue, float green) { const float MIN_VISIBLE_COLLISION = 0.01f; if (magnitude > MIN_VISIBLE_COLLISION) { - glColor4f(0, 0, 0, magnitude); + glColor4f(red, blue, green, magnitude); glBegin(GL_QUADS); glVertex2f(0, 0); glVertex2d(width, 0); diff --git a/interface/src/Util.h b/interface/src/Util.h index 4f0e76adf8..ac680645a9 100644 --- a/interface/src/Util.h +++ b/interface/src/Util.h @@ -62,7 +62,7 @@ float extractUniformScale(const glm::vec3& scale); double diffclock(timeval *clock1,timeval *clock2); -void renderCollisionOverlay(int width, int height, float magnitude); +void renderCollisionOverlay(int width, int height, float magnitude, float red = 0, float blue = 0, float green = 0); void renderOrientationDirections( glm::vec3 position, const glm::quat& orientation, float size ); diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 698d58c25a..1107bcd21a 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -210,7 +210,10 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode) { { // glow when moving far away const float GLOW_DISTANCE = 20.0f; - Glower glower(_moving && distanceToTarget > GLOW_DISTANCE && renderMode == NORMAL_RENDER_MODE ? 1.0f : 0.0f); + const float GLOW_MAX_LOUDNESS = 2500.0f; + const float MAX_GLOW = 0.7f; + const float GLOW_FROM_AVERAGE_LOUDNESS = MAX_GLOW * getHeadData()->getAudioLoudness() / GLOW_MAX_LOUDNESS; + Glower glower(_moving && distanceToTarget > GLOW_DISTANCE && renderMode == NORMAL_RENDER_MODE ? 1.0f : GLOW_FROM_AVERAGE_LOUDNESS); // render body if (Menu::getInstance()->isOptionChecked(MenuOption::Avatars)) { From ea93be15f1b59df4c2568f0ab65d6f37cb54d612 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 10 Apr 2014 12:44:51 -0700 Subject: [PATCH 2/4] Fixed dometime using wrong texdir --- interface/src/ModelUploader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/src/ModelUploader.cpp b/interface/src/ModelUploader.cpp index d22097a00c..edbc6c0ad9 100644 --- a/interface/src/ModelUploader.cpp +++ b/interface/src/ModelUploader.cpp @@ -307,13 +307,13 @@ bool ModelUploader::addTextures(const QString& texdir, const QString fbxFile) { foreach (FBXMesh mesh, geometry.meshes) { foreach (FBXMeshPart part, mesh.parts) { if (!part.diffuseFilename.isEmpty()) { - if (!addPart(QFileInfo(fbxFile).path() + "/" + part.diffuseFilename, + if (!addPart(texdir + "/" + part.diffuseFilename, QString("texture%1").arg(++_texturesCount))) { return false; } } if (!part.normalFilename.isEmpty()) { - if (!addPart(QFileInfo(fbxFile).path() + "/" + part.normalFilename, + if (!addPart(texdir + "/" + part.normalFilename, QString("texture%1").arg(++_texturesCount))) { return false; } From ac9ead36e29baf63709c017e1f746817bd21aa39 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 10 Apr 2014 13:10:24 -0700 Subject: [PATCH 3/4] fix crash: don't access null action In particular, don't crash on pressing Enter when lacking qxmpp support --- interface/src/Menu.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 8eead4acdc..80007da485 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -707,7 +707,12 @@ bool Menu::isOptionChecked(const QString& menuOption) { } void Menu::triggerOption(const QString& menuOption) { - _actionHash.value(menuOption)->trigger(); + QAction* action = _actionHash.value(menuOption); + if (action) { + action->trigger(); + } else { + qDebug() << "NULL Action for menuOption '" << menuOption << "'"; + } } QAction* Menu::getActionForOption(const QString& menuOption) { From 9c662acc9d6dba0202c27044f5c4299d73c6b81d Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 10 Apr 2014 14:40:35 -0700 Subject: [PATCH 4/4] Modified max glow + don't glow you own avatar --- interface/src/avatar/Avatar.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 1107bcd21a..4a6d0fbcf2 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -211,9 +211,13 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode) { // glow when moving far away const float GLOW_DISTANCE = 20.0f; const float GLOW_MAX_LOUDNESS = 2500.0f; - const float MAX_GLOW = 0.7f; - const float GLOW_FROM_AVERAGE_LOUDNESS = MAX_GLOW * getHeadData()->getAudioLoudness() / GLOW_MAX_LOUDNESS; - Glower glower(_moving && distanceToTarget > GLOW_DISTANCE && renderMode == NORMAL_RENDER_MODE ? 1.0f : GLOW_FROM_AVERAGE_LOUDNESS); + const float MAX_GLOW = 0.5f; + const float GLOW_FROM_AVERAGE_LOUDNESS = ((this == Application::getInstance()->getAvatar()) + ? 0.0f + : MAX_GLOW * getHeadData()->getAudioLoudness() / GLOW_MAX_LOUDNESS); + Glower glower(_moving && distanceToTarget > GLOW_DISTANCE && renderMode == NORMAL_RENDER_MODE + ? 1.0f + : GLOW_FROM_AVERAGE_LOUDNESS); // render body if (Menu::getInstance()->isOptionChecked(MenuOption::Avatars)) {