X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fpage-turn-view%2Fpage-turn-view-impl.cpp;h=a66813a5cc0285a04f9728d6dc25c72f7d164398;hb=e65245a8ddc5d1fe018b4f890c6927974955e2a7;hp=20c57c00c85ead854a7e5b43b2ab490d5569cc5d;hpb=761122f3e8ff2b224d2329a911a78dc35177c5ea;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git 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 20c57c0..a66813a 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 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. @@ -22,28 +22,21 @@ #include // for strcmp #include #include -#include #include #include #include // INTERNAL INCLUDES +#include #include #include -#include +#include +#include using namespace Dali; namespace //Unnamed namespace { -// broken image is loaded if there is no valid image provided for the page -const char * const BROKEN_IMAGE_URL( DALI_IMAGE_DIR "broken.png"); - -// names of shader property map -const char * const CUSTOM_SHADER( "shader" ); -const char * const CUSTOM_VERTEX_SHADER( "vertexShader" ); -const char * const CUSTOM_FRAGMENT_SHADER( "fragmentShader" ); - // properties set on shader, these properties have the constant value in regardless of the page status const char * const PROPERTY_SPINE_SHADOW ( "uSpineShadowParameter" ); // uniform for both spine and turn effect @@ -284,14 +277,13 @@ PageTurnView::Page::Page() propertyTurnDirection = actor.RegisterProperty(PROPERTY_TURN_DIRECTION, -1.f); } -void PageTurnView::Page::SetImage( Image image ) +void PageTurnView::Page::SetTexture( Texture texture ) { if( !textureSet ) { textureSet = TextureSet::New(); } - - textureSet.SetImage( 0u, image ); + textureSet.SetTexture( 0u, texture ); } void PageTurnView::Page::UseEffect(Shader newShader) @@ -349,7 +341,7 @@ void PageTurnView::Page::SetCurrentCenter( const Vector2& value ) } PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& pageSize ) -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), +: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ), mPageFactory( &pageFactory ), mPageSize( pageSize ), mSpineShadowParameter( DEFAULT_SPINE_SHADOW_PARAMETER ), @@ -390,7 +382,7 @@ void PageTurnView::OnInitialize() // create the grid geometry for pages uint16_t width = static_cast(mPageSize.width / DEFAULT_GRID_DENSITY + 0.5f); uint16_t height = static_cast(mPageSize.height / DEFAULT_GRID_DENSITY + 0.5f); - mGeometry = RendererFactoryCache::CreateGridGeometry( Uint16Pair( width, height ) ); + mGeometry = VisualFactoryCache::CreateGridGeometry( Uint16Pair( width, height ) ); mPages.reserve( NUMBER_OF_CACHED_PAGES ); for( int i = 0; i < NUMBER_OF_CACHED_PAGES; i++ ) @@ -400,7 +392,7 @@ void PageTurnView::OnInitialize() Self().Add( mPages[i].actor ); } - // create the layer for turning images + // create the layer for turning pages mTurningPageLayer = Layer::New(); mTurningPageLayer.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); mTurningPageLayer.SetBehavior(Layer::LAYER_3D); @@ -427,18 +419,18 @@ void PageTurnView::OnInitialize() Shader PageTurnView::CreateShader( const Property::Map& shaderMap ) { Shader shader; - Property::Value* shaderValue = shaderMap.Find( CUSTOM_SHADER ); + Property::Value* shaderValue = shaderMap.Find( Toolkit::DevelVisual::Property::SHADER, CUSTOM_SHADER ); Property::Map shaderSource; if( shaderValue && shaderValue->Get( shaderSource ) ) { std::string vertexShader; - Property::Value* vertexShaderValue = shaderSource.Find( CUSTOM_VERTEX_SHADER ); + Property::Value* vertexShaderValue = shaderSource.Find( Toolkit::Visual::Shader::Property::VERTEX_SHADER, CUSTOM_VERTEX_SHADER ); if( !vertexShaderValue || !vertexShaderValue->Get( vertexShader ) ) { DALI_LOG_ERROR("PageTurnView::CreateShader failed: vertex shader source is not available.\n"); } std::string fragmentShader; - Property::Value* fragmentShaderValue = shaderSource.Find( CUSTOM_FRAGMENT_SHADER ); + Property::Value* fragmentShaderValue = shaderSource.Find( Toolkit::Visual::Shader::Property::FRAGMENT_SHADER, CUSTOM_FRAGMENT_SHADER ); if( !fragmentShaderValue || !fragmentShaderValue->Get( fragmentShader ) ) { DALI_LOG_ERROR("PageTurnView::CreateShader failed: fragment shader source is not available.\n"); @@ -481,9 +473,9 @@ void PageTurnView::SetupShadowView() void PageTurnView::OnStageConnection( int depth ) { - Control::OnStageConnection( depth ); - SetupShadowView(); + + Control::OnStageConnection( depth ); } void PageTurnView::OnStageDisconnection() @@ -586,13 +578,9 @@ void PageTurnView::AddPage( int pageIndex ) { int index = pageIndex % NUMBER_OF_CACHED_PAGES; - Image newPageImage; - newPageImage = mPageFactory->NewPage( pageIndex ); - - if( !newPageImage ) // load the broken image - { - newPageImage = ResourceImage::New( BROKEN_IMAGE_URL ); - } + Texture newPage; + newPage = mPageFactory->NewPage( pageIndex ); + DALI_ASSERT_ALWAYS( newPage && "must pass in valid texture" ); bool isLeftSide = ( pageIndex < mCurrentPageIndex ); if( mPages[index].isTurnBack != isLeftSide ) @@ -604,11 +592,11 @@ void PageTurnView::AddPage( int pageIndex ) mPages[index].actor.SetOrientation( Degree( degree ), Vector3::YAXIS ); mPages[index].actor.SetVisible( false ); mPages[index].UseEffect( mSpineEffectShader, mGeometry ); - mPages[index].SetImage( newPageImage ); + mPages[index].SetTexture( newPage ); // For Portrait, nothing to do // For Landscape, set the parent origin to CENTER - OnAddPage( mPages[index].actor, isLeftSide ); + OnAddPage( mPages[index].actor, isLeftSide ); } }