From 2e5dade4138b0dc1453fe0d32485a2b5ff23ad53 Mon Sep 17 00:00:00 2001 From: Eric Johnston Date: Tue, 6 Aug 2013 14:29:30 -0700 Subject: [PATCH] Rave demo changes per Ryan's request: Darken the world when you're in rave mode, but leave the avatars and effects un-darkened. Also fixed a warning in AvatarData.cpp initialization --- interface/src/Application.cpp | 2 ++ interface/src/avatar/Avatar.cpp | 9 +++++++++ interface/src/avatar/Avatar.h | 10 ++++++++++ interface/src/avatar/Hand.cpp | 2 ++ interface/src/avatar/Hand.h | 2 +- libraries/avatars/src/AvatarData.cpp | 4 ++-- 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 58d5ce19c4..1142e9ebbe 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3067,6 +3067,8 @@ void Application::displaySide(Camera& whichCamera) { glEnable(GL_LIGHTING); } + _myAvatar.renderScreenTint(SCREEN_TINT_BEFORE_AVATARS); + if (_renderAvatarsOn->isChecked()) { // Render avatars of other nodes NodeList* nodeList = NodeList::getInstance(); diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index c52e990605..f9b2e843a0 100755 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -1214,6 +1214,15 @@ void Avatar::render(bool lookingInMirror, bool renderAvatarBalls) { } } +void Avatar::renderScreenTint(ScreenTintLayer layer) { + + if (layer == SCREEN_TINT_BEFORE_AVATARS) { + if (_hand.isRaveGloveActive()) { + _hand.renderRaveGloveStage(); + } + } +} + void Avatar::resetBodyBalls() { for (int b = 0; b < NUM_AVATAR_BODY_BALLS; b++) { diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index 69629f1b83..1e5f9ce448 100755 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -112,6 +112,15 @@ enum AvatarMode NUM_AVATAR_MODES }; +enum ScreenTintLayer +{ + SCREEN_TINT_BEFORE_LANDSCAPE = 0, + SCREEN_TINT_BEFORE_AVATARS, + SCREEN_TINT_BEFORE_MY_AVATAR, + SCREEN_TINT_AFTER_MY_AVATAR, + NUM_SCREEN_TINT_LAYERS +}; + class Avatar : public AvatarData { public: Avatar(Node* owningNode = NULL); @@ -128,6 +137,7 @@ public: void addBodyYaw(float bodyYaw) {_bodyYaw += bodyYaw;}; void addBodyYawDelta(float bodyYawDelta) {_bodyYawDelta += bodyYawDelta;} void render(bool lookingInMirror, bool renderAvatarBalls); + void renderScreenTint(ScreenTintLayer layer); //setters void setMousePressed (bool mousePressed ) { _mousePressed = mousePressed;} diff --git a/interface/src/avatar/Hand.cpp b/interface/src/avatar/Hand.cpp index b960f8e56b..484ce0de9a 100755 --- a/interface/src/avatar/Hand.cpp +++ b/interface/src/avatar/Hand.cpp @@ -174,6 +174,7 @@ void Hand::renderRaveGloveStage() { glm::vec3 v3 = headOrientation * (glm::vec3(-1.0f, 1.0f, 0.0f) * scale) + vc; glDisable(GL_DEPTH_TEST); + glDepthMask(GL_FALSE); glEnable(GL_BLEND); glBegin(GL_TRIANGLE_FAN); glColor4f(0.0f, 0.0f, 0.0f, 1.0f); @@ -185,6 +186,7 @@ void Hand::renderRaveGloveStage() { glVertex3fv((float*)&v3); glVertex3fv((float*)&v0); glEnd(); + glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST); } } diff --git a/interface/src/avatar/Hand.h b/interface/src/avatar/Hand.h index d2a36b97b1..86995e2bdc 100755 --- a/interface/src/avatar/Hand.h +++ b/interface/src/avatar/Hand.h @@ -41,6 +41,7 @@ public: void reset(); void simulate(float deltaTime, bool isMine); void render(bool lookingInMirror); + void renderRaveGloveStage(); void setBallColor (glm::vec3 ballColor ) { _ballColor = ballColor; } void updateRaveGloveParticles(float deltaTime); @@ -74,7 +75,6 @@ private: void activateNewRaveGloveMode(); - void renderRaveGloveStage(); void renderLeapHandSpheres(); void renderLeapHands(); void renderLeapHand(PalmData& hand); diff --git a/libraries/avatars/src/AvatarData.cpp b/libraries/avatars/src/AvatarData.cpp index 6d5d0a6528..a02c55346c 100644 --- a/libraries/avatars/src/AvatarData.cpp +++ b/libraries/avatars/src/AvatarData.cpp @@ -28,6 +28,7 @@ AvatarData::AvatarData(Node* owningNode) : _bodyPitch(0.0), _bodyRoll(0.0), _newScale(1.0f), + _leaderID(UNKNOWN_NODE_ID), _handState(0), _cameraPosition(0,0,0), _cameraOrientation(), @@ -41,8 +42,7 @@ AvatarData::AvatarData(Node* owningNode) : _wantLowResMoving(false), _wantOcclusionCulling(true), _headData(NULL), - _handData(NULL), - _leaderID(UNKNOWN_NODE_ID) + _handData(NULL) { }