diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index f28d09ef51..4659e58d37 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5097,6 +5097,7 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se QMutexLocker viewLocker(&_viewMutex); renderArgs->setViewFrustum(_displayViewFrustum); } + renderArgs->_cameraMode = (int8_t)theCamera.getMode(); // HACK _renderEngine->getRenderContext()->args = renderArgs; // Before the deferred pass, let's try to use the render engine diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 4e2c2b036b..cf9bb45bc0 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -72,7 +72,7 @@ namespace render { if (avatarPtr->isInitialized() && args) { PROFILE_RANGE_BATCH(*args->_batch, "renderAvatarPayload"); // TODO AVATARS_RENDERER: remove need for qApp - avatarPtr->render(args, qApp->getMain3DScene(), qApp->getCamera()); + avatarPtr->render(args, qApp->getMain3DScene()); } } template <> uint32_t metaFetchMetaSubItems(const AvatarSharedPointer& avatar, ItemIDs& subItems) { @@ -579,7 +579,7 @@ void Avatar::postUpdate(float deltaTime) { } } -void Avatar::render(RenderArgs* renderArgs, const render::ScenePointer& scene, const Camera& camera) { +void Avatar::render(RenderArgs* renderArgs, const render::ScenePointer& scene) { auto& batch = *renderArgs->_batch; PROFILE_RANGE_BATCH(batch, __FUNCTION__); @@ -680,9 +680,7 @@ void Avatar::render(RenderArgs* renderArgs, const render::ScenePointer& scene, c const float DISPLAYNAME_DISTANCE = 20.0f; setShowDisplayName(distanceToTarget < DISPLAYNAME_DISTANCE); - // TODO AVATARS_RENDERER: remove need for 'camera' in this context - auto cameraMode = camera.getMode(); - if (!isMyAvatar() || cameraMode != CAMERA_MODE_FIRST_PERSON) { + if (!isMyAvatar() || renderArgs->_cameraMode != (int8_t)CAMERA_MODE_FIRST_PERSON) { auto& frustum = renderArgs->getViewFrustum(); auto textPosition = getDisplayNamePosition(); if (frustum.pointIntersectsFrustum(textPosition)) { diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index 95b682e715..816e800641 100644 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -81,7 +81,7 @@ public: void simulate(float deltaTime, bool inView); virtual void simulateAttachments(float deltaTime); - virtual void render(RenderArgs* renderArgs, const render::ScenePointer& scene, const Camera& camera); + virtual void render(RenderArgs* renderArgs, const render::ScenePointer& scene); void addToScene(AvatarSharedPointer self, std::shared_ptr scene, render::Transaction& transaction); diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index f3ba812e1f..1e491eaea2 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -752,13 +752,13 @@ controller::Pose MyAvatar::getRightHandTipPose() const { } // virtual -void MyAvatar::render(RenderArgs* renderArgs, const render::ScenePointer& scene, const Camera& camera) { +void MyAvatar::render(RenderArgs* renderArgs, const render::ScenePointer& scene) { // don't render if we've been asked to disable local rendering if (!_shouldRender) { return; // exit early } - Avatar::render(renderArgs, scene, camera); + Avatar::render(renderArgs, scene); } void MyAvatar::overrideAnimation(const QString& url, float fps, bool loop, float firstFrame, float lastFrame) { diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index 2b2a88a9b0..599411e38a 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -525,7 +525,7 @@ private: void simulate(float deltaTime); void updateFromTrackers(float deltaTime); - virtual void render(RenderArgs* renderArgs, const render::ScenePointer& scene, const Camera& camera) override; + virtual void render(RenderArgs* renderArgs, const render::ScenePointer& scene) override; virtual bool shouldRenderHead(const RenderArgs* renderArgs) const override; void setShouldRenderLocally(bool shouldRender) { _shouldRender = shouldRender; setEnableMeshVisible(shouldRender); } bool getShouldRenderLocally() const { return _shouldRender; } diff --git a/libraries/shared/src/RenderArgs.h b/libraries/shared/src/RenderArgs.h index 50722c0deb..29cd007a4c 100644 --- a/libraries/shared/src/RenderArgs.h +++ b/libraries/shared/src/RenderArgs.h @@ -126,6 +126,7 @@ public: bool _enableTexturing { true }; RenderDetails _details; + int8_t _cameraMode { -1 }; // HACK }; #endif // hifi_RenderArgs_h