From 9a450f332b63de22521e3e2a70c3378e574ad77f Mon Sep 17 00:00:00 2001 From: Francisco Santos Date: Mon, 10 Mar 2014 10:55:14 +0000 Subject: [PATCH] Fix issues related with cameras. Fixed shader effects that were doing calculations in view space. Fixed controls that were using FREE_LOOK camera without orienting it. Change-Id: Ib7330adf9a1344b03583c2cb6a9ef958df5d28b4 Signed-off-by: Francisco Santos --- .../internal/controls/bubble-effect/bubble-emitter-impl.cpp | 1 - dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp | 6 +++--- .../internal/controls/page-turn-view/page-turn-view-impl.cpp | 1 - dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp | 3 ++- dali-toolkit/internal/controls/text-view/text-view-impl.cpp | 5 ++--- dali-toolkit/public-api/shader-effects/carousel-effect.cpp | 2 +- 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp b/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp index 5f88652..f485ea4 100644 --- a/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp +++ b/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp @@ -127,7 +127,6 @@ void BubbleEmitter::OnInitialize() // Create a cameraActor for the off screen render task. mCameraActor = CameraActor::New(mMovementArea); mCameraActor.SetParentOrigin(ParentOrigin::CENTER); - mCameraActor.SetInvertYAxis(false); Stage::GetCurrent().Add(mCameraActor); } diff --git a/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp b/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp index bd44d95..bb57902 100644 --- a/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp +++ b/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp @@ -59,9 +59,9 @@ struct CameraActorPositionConstraint { const Vector3& sourcePosition = sourcePositionProperty.GetVector3(); - return Vector3(sourcePosition.x + mStageSize.x * 0.5f, - -sourcePosition.y + mStageSize.y * 0.5f, - sourcePosition.z + mDefaultCameraDistance); + return Vector3( sourcePosition.x + mStageSize.x * 0.5f, + sourcePosition.y + mStageSize.y * 0.5f, + sourcePosition.z + mDefaultCameraDistance); } Vector2 mStageSize; diff --git a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp index 078be1c..17f859a 100644 --- a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp +++ b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp @@ -350,7 +350,6 @@ void PageTurnView::SetupRenderTasks() mCameraActor.SetParentOrigin(ParentOrigin::CENTER); mCameraActor.SetPositionInheritanceMode( DONT_INHERIT_POSITION ); mCameraActor.SetInheritScale( false ); - mCameraActor.SetInvertYAxis(false); Self().Add(mCameraActor); RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); diff --git a/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp b/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp index fbc2e1c..23d709c 100644 --- a/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp +++ b/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp @@ -237,12 +237,13 @@ void ShadowView::OnInitialize() Vector2 stageSize = Stage::GetCurrent().GetSize(); mCameraActor = CameraActor::New(stageSize); + mCameraActor.SetParentOrigin( ParentOrigin::CENTER ); // Target is constrained to point at the shadow plane origin mCameraActor.SetNearClippingPlane( 1.0f ); mCameraActor.SetType( Dali::Camera::FREE_LOOK ); // Camera orientation constrained to point at shadow plane world position - mCameraActor.SetInvertYAxis(false); + mCameraActor.SetRotation(Radian(Degree(180)), Vector3::YAXIS); mCameraActor.SetPosition(DEFAULT_LIGHT_POSITION); mShadowRenderShader = ShaderEffect::New( RENDER_SHADOW_VERTEX_SOURCE, RENDER_SHADOW_FRAGMENT_SOURCE, diff --git a/dali-toolkit/internal/controls/text-view/text-view-impl.cpp b/dali-toolkit/internal/controls/text-view/text-view-impl.cpp index aa30efd..4488b2f 100644 --- a/dali-toolkit/internal/controls/text-view/text-view-impl.cpp +++ b/dali-toolkit/internal/controls/text-view/text-view-impl.cpp @@ -702,6 +702,7 @@ void TextView::SetSnapshotModeEnabled( bool enable ) Actor self = Self(); self.Add( mOffscreenRootActor ); self.Add( mOffscreenImageActor ); + mOffscreenImageActor.SetScale(Vector3(1.f, -1.f, 1.f)); } else { @@ -1467,13 +1468,11 @@ void TextView::ProcessSnapshot( const Size& textViewSize ) mOffscreenCameraActor = CameraActor::New(); mOffscreenCameraActor.SetParentOrigin( ParentOrigin::CENTER ); mOffscreenCameraActor.SetAnchorPoint( AnchorPoint::CENTER ); + mOffscreenCameraActor.SetRotation(Degree(180.f), Vector3::YAXIS); mOffscreenCameraActor.SetType( Dali::Camera::FREE_LOOK ); // Inherits position from the offscreen root actor. mOffscreenRootActor.Add( mOffscreenCameraActor ); // camera to shoot the offscreen text - - // Images are expected to be from top to bottom, but OpenGL buffers are bottom to top - mOffscreenCameraActor.SetInvertYAxis( false ); } // Calculate camera parameters for current text size. diff --git a/dali-toolkit/public-api/shader-effects/carousel-effect.cpp b/dali-toolkit/public-api/shader-effects/carousel-effect.cpp index c6119f6..6707ae5 100644 --- a/dali-toolkit/public-api/shader-effects/carousel-effect.cpp +++ b/dali-toolkit/public-api/shader-effects/carousel-effect.cpp @@ -60,7 +60,7 @@ CarouselEffect CarouselEffect::New() " vec2 d = (world.xy - uCenter) * uAnglePerUnit;\n" " float a = length(d);\n" " float cs = cos(radians(a));\n" - " world.z += cs * uRadius;\n" + " world.z -= cs * uRadius;\n" " gl_Position = uProjection * world;\n" " \n" " vTexCoord = aTexCoord;\n" -- 2.7.4