X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Frender-tasks%2Fscene-graph-camera.h;h=a3bc173d43cddb4e7f4c8a7248bbf43915aafd1b;hb=70d8a1699a38f4f72b6d57f8af6da6651d6902ec;hp=2cea7f6b37c9dca5aea2413844f964d3d6e02377;hpb=61260bb3612098fca7124f400637237cb3f181d6;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/render-tasks/scene-graph-camera.h b/dali/internal/update/render-tasks/scene-graph-camera.h index 2cea7f6..a3bc173 100644 --- a/dali/internal/update/render-tasks/scene-graph-camera.h +++ b/dali/internal/update/render-tasks/scene-graph-camera.h @@ -124,11 +124,6 @@ public: */ void SetAspectRatio( float aspectRatio ); - /** - * @copydoc Dali::Internal::CameraActor::SetStereoBias - */ - void SetStereoBias(const Vector2& stereoBias); - /** * @copydoc Dali::Internal::CameraActor::SetLeftClippingPlane */ @@ -165,6 +160,21 @@ public: void SetTargetPosition( const Vector3& targetPosition ); /** + * Sets the reflection plane + * @param[in] plane reflection plane + */ + void SetReflectByPlane( const Vector4& plane ); + + /** + * Tests whether reflection is used + * @return True if used, False otherwise + */ + bool GetReflectionUsed() const + { + return mUseReflection; + } + + /** * Retrieve the view-matrix; this is double buffered for input handling. * @param[in] bufferIndex The buffer to read from. * @return The view-matrix. @@ -270,6 +280,13 @@ private: */ void UpdateFrustum( BufferIndex updateBufferIndex, bool normalize = true ); + /** + * Adjust near plane for reflection + * @param perspective Perspective matrix + * @param clipPlane Clipping plane + */ + void AdjustNearPlaneForPerspective( Matrix& perspective, const Vector4& clipPlane ); + uint32_t mUpdateViewFlag; ///< This is non-zero if the view matrix requires an update uint32_t mUpdateProjectionFlag; ///< This is non-zero if the projection matrix requires an update const Node* mNode; ///< The node this scene graph camera belongs to @@ -287,9 +304,14 @@ public: // PROPERTIES float mBottomClippingPlane; float mNearClippingPlane; float mFarClippingPlane; - Vector2 mStereoBias; Vector3 mTargetPosition; + Dali::Matrix mReflectionMtx; + Dali::Vector4 mReflectionPlane; + Dali::Vector4 mReflectionEye; + bool mUseReflection{ false }; + bool mUseReflectionClip{ false }; + InheritedMatrix mViewMatrix; ///< The viewMatrix; this is double buffered for input handling. InheritedMatrix mProjectionMatrix; ///< The projectionMatrix; this is double buffered for input handling. @@ -344,17 +366,6 @@ inline void SetAspectRatioMessage( EventThreadServices& eventThreadServices, con new (slot) LocalType( &camera, &Camera::SetAspectRatio, parameter ); } -inline void SetStereoBiasMessage( EventThreadServices& eventThreadServices, const Camera& camera, const Vector2& parameter ) -{ - typedef MessageValue1< Camera, Vector2 > LocalType; - - // Reserve some memory inside the message queue - uint32_t* slot = eventThreadServices.ReserveMessageSlot( sizeof( LocalType ) ); - - // Construct message in the message queue memory; note that delete should not be called on the return value - new (slot) LocalType( &camera, &Camera::SetStereoBias, parameter ); -} - inline void SetLeftClippingPlaneMessage( EventThreadServices& eventThreadServices, const Camera& camera, float parameter ) { typedef MessageValue1< Camera, float > LocalType;