X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftransition-effects%2Fcube-transition-effect-impl.cpp;h=c2802e78ed6f3ebbd3985616ba80cb432965bdf4;hb=805ae527fca54726f894fb9936c288c7c0f7dbe7;hp=757858fe5857931503262cd5d4eb0355d3c969d0;hpb=a073ebfd862b49692c8e6d7dff2b128e62a4f6df;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp b/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp index 757858f..c2802e7 100644 --- a/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp +++ b/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp @@ -21,10 +21,13 @@ // EXTERNAL INCLUDES #include // for strcmp #include -#include -#include +#include +#include #include +// INTERNAL INCLUDES +#include + namespace Dali { @@ -84,33 +87,6 @@ Actor CreateTile( const Vector4& samplerRect ) return tile; } - -Geometry CreateQuadGeometry() -{ - const float halfWidth = 0.5f; - const float halfHeight = 0.5f; - struct QuadVertex { Vector2 position;}; - QuadVertex quadVertexData[4] = - { - { Vector2(-halfWidth, -halfHeight) }, - { Vector2( halfWidth, -halfHeight) }, - { Vector2(-halfWidth, halfHeight) }, - { Vector2( halfWidth, halfHeight) } - }; - - Property::Map quadVertexFormat; - quadVertexFormat["aPosition"] = Property::VECTOR2; - PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat, 4 ); - quadVertices.SetData(quadVertexData); - - // Create the geometry object - Geometry geometry = Geometry::New(); - geometry.AddVertexBuffer( quadVertices ); - geometry.SetGeometryType( Geometry::TRIANGLE_STRIP ); - - return geometry; -} - } const Vector4 CubeTransitionEffect::FULL_BRIGHTNESS( 1.0f, 1.0f, 1.0f, 1.0f ); @@ -270,18 +246,21 @@ void CubeTransitionEffect::Initialize() void CubeTransitionEffect::OnStageConnection( int depth ) { - Geometry geometry = CreateQuadGeometry(); + Control::OnStageConnection( depth ); + + Geometry geometry = VisualFactoryCache::CreateQuadGeometry(); Shader shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); - Material material = Material::New( shader ); + TextureSet textureSet = TextureSet::New(); - if( mCurrentImage ) + if( mCurrentTexture ) { - material.AddTexture( mCurrentImage, "sTexture" ); + textureSet.SetTexture( 0u, mCurrentTexture ); } - mCurrentRenderer = Renderer::New( geometry, material ); + mCurrentRenderer = Renderer::New( geometry, shader ); + mCurrentRenderer.SetTextures( textureSet ); - mCurrentRenderer.SetDepthIndex( depth ); + mCurrentRenderer.SetProperty( Renderer::Property::DEPTH_INDEX, depth ); Self().AddRenderer( mCurrentRenderer ); } @@ -306,6 +285,8 @@ void CubeTransitionEffect::OnStageDisconnection() } mTargetRenderer.Reset(); } + + Control::OnStageDisconnection(); } void CubeTransitionEffect::SetTransitionDuration( float duration ) @@ -333,34 +314,25 @@ bool CubeTransitionEffect::IsTransitioning() return mIsAnimating; } -void CubeTransitionEffect::SetCurrentImage( Image image ) +void CubeTransitionEffect::SetCurrentTexture( Texture texture ) { - mCurrentImage = image; + mCurrentTexture = texture; if( mCurrentRenderer ) { - Material material = mCurrentRenderer.GetMaterial(); - - int index = material.GetTextureIndex("sTexture" ); - if( index != -1 ) - { - material.SetTextureImage( index, mCurrentImage ); - } - else - { - material.AddTexture( mCurrentImage, "sTexture" ); - } + TextureSet textureSet = mCurrentRenderer.GetTextures(); + textureSet.SetTexture( 0u, mCurrentTexture); } } -void CubeTransitionEffect::SetTargetImage( Image image ) +void CubeTransitionEffect::SetTargetTexture( Texture texture ) { - mTargetImage = image; + mTargetTexture = texture; if( mTargetRenderer ) { - Material material = mTargetRenderer.GetMaterial(); - material.AddTexture( mTargetImage, "sTexture" ); + TextureSet textureSet = mTargetRenderer.GetTextures(); + textureSet.SetTexture( 0u, mTargetTexture ); } } @@ -386,15 +358,18 @@ void CubeTransitionEffect::StartTransition( Vector2 panPosition, Vector2 panDisp } //create the target renderer - Material material = Material::New( mCurrentRenderer.GetMaterial().GetShader() ); - if( mTargetImage ) + TextureSet textureSet = TextureSet::New(); + if( mTargetTexture ) { - material.AddTexture( mTargetImage, "sTexture" ); + textureSet.SetTexture( 0u, mTargetTexture ); } Geometry geometry = mCurrentRenderer.GetGeometry(); - mTargetRenderer = Renderer::New( geometry, material ); + Shader shader( mCurrentRenderer.GetShader() ); + mTargetRenderer = Renderer::New( geometry, shader ); + mTargetRenderer.SetTextures( textureSet ); - mTargetRenderer.SetDepthIndex( mCurrentRenderer.GetDepthIndex() ); + int depthIndex = mCurrentRenderer.GetProperty(Renderer::Property::DEPTH_INDEX); + mTargetRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, depthIndex ); for( size_t i = 0; i < mBoxes.size(); ++i ) { @@ -496,13 +471,13 @@ void CubeTransitionEffect::OnTransitionFinished(Animation& source) std::swap( mCurrentTiles, mTargetTiles ); std::swap( mCurrentRenderer, mTargetRenderer ); - std::swap( mCurrentImage, mTargetImage ); + std::swap( mCurrentTexture, mTargetTexture ); ResetToInitialState(); //Emit signal Toolkit::CubeTransitionEffect handle( GetOwner() ); - mTransitionCompletedSignal.Emit( handle, mCurrentImage ); + mTransitionCompletedSignal.Emit( handle, mCurrentTexture ); } Toolkit::CubeTransitionEffect::TransitionCompletedSignalType& CubeTransitionEffect::TransitionCompletedSignal()