X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftransition-effects%2Fcube-transition-effect-impl.cpp;h=460ea31527f0b559385e6e6ceea0f74b4b517de1;hp=5a76197fbca3b05fde4da5717b8307283991d45b;hb=e2916ba0e2e9c92f2254d19f0890589cf77b2221;hpb=e5ca10134c73ca0588f893adde82694ad907dd8d 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 5a76197..460ea31 100644 --- a/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp +++ b/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,10 +21,13 @@ // EXTERNAL INCLUDES #include // for strcmp #include -#include -#include +#include +#include #include +// INTERNAL INCLUDES +#include + namespace Dali { @@ -84,40 +87,13 @@ 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 ); - quadVertices.SetData( quadVertexData, 4 ); - - // 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 ); const Vector4 CubeTransitionEffect::HALF_BRIGHTNESS( 0.5f, 0.5f, 0.5f, 1.0f ); CubeTransitionEffect::CubeTransitionEffect( unsigned int rows, unsigned int columns ) -: Control( ControlBehaviour( 0 ) ), +: Control( ControlBehaviour( DISABLE_STYLE_CHANGE_SIGNALS ) ), mRows( rows ), mColumns( columns ), mIsAnimating( false ), @@ -270,21 +246,22 @@ void CubeTransitionEffect::Initialize() void CubeTransitionEffect::OnStageConnection( int depth ) { - Control::OnStageConnection( depth ); - - Geometry geometry = CreateQuadGeometry(); + 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.SetProperty( Renderer::Property::DEPTH_INDEX, depth ); Self().AddRenderer( mCurrentRenderer ); + + Control::OnStageConnection( depth ); } void CubeTransitionEffect::OnStageDisconnection() @@ -337,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 ); } } @@ -385,18 +353,20 @@ void CubeTransitionEffect::StartTransition( Vector2 panPosition, Vector2 panDisp { if( !mCurrentRenderer ) { - DALI_LOG_ERROR( "Trying to transition a cube transition without an image set" ); + DALI_LOG_ERROR( "Trying to transition a cube transition without an image set\n" ); return; } //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 ); int depthIndex = mCurrentRenderer.GetProperty(Renderer::Property::DEPTH_INDEX); mTargetRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, depthIndex ); @@ -501,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()