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=ddaf2924955169e8a66270f65ef9f4b2601f5082;hb=146486a8c7410a2f2a20a6d670145fe855672b96;hp=19e8421cc91a52ac87754743e6c4f264a6e69d0b;hpb=278493dcbeb50938256b776d84c41ae4665d9a29;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 19e8421..ddaf292 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) 2016 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. @@ -24,16 +24,16 @@ #include #include #include -#include +#include +#include #include // INTERNAL INCLUDES +#include #include #include -#include - -// headers needed for backward compatibility of PageFactory::NewPage(pageId) API -#include +#include +#include using namespace Dali; @@ -42,14 +42,6 @@ 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" ); - -// name of the texture in material -const char * const TEXTURE_NAME( "sTexture" ); - // 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 @@ -292,35 +284,38 @@ PageTurnView::Page::Page() void PageTurnView::Page::SetImage( Image image ) { - if( material.GetNumberOfTextures() > 0 ) + if( !textureSet ) { - material.SetTextureImage( 0u, image ); - } - else - { - material.AddTexture(image, TEXTURE_NAME); + textureSet = TextureSet::New(); } + + TextureSetImage( textureSet, 0u, image ); } -void PageTurnView::Page::UseEffect(Shader shader) +void PageTurnView::Page::UseEffect(Shader newShader) { - if( material ) + shader = newShader; + if( renderer ) { - material.SetShader( shader ); - } - else - { - material = Material::New( shader ); + renderer.SetShader( shader ); } } -void PageTurnView::Page::UseEffect(Shader shader, Geometry geometry) +void PageTurnView::Page::UseEffect(Shader newShader, Geometry geometry) { - UseEffect( shader ); + UseEffect( newShader ); if( !renderer ) { - renderer = Renderer::New( geometry, material ); + renderer = Renderer::New( geometry, shader ); + + if( !textureSet ) + { + textureSet = TextureSet::New(); + } + + renderer.SetTextures( textureSet ); + renderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::ON ); actor.AddRenderer( renderer ); } } @@ -352,7 +347,7 @@ void PageTurnView::Page::SetCurrentCenter( const Vector2& value ) } PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& pageSize ) -: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ), +: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), mPageFactory( &pageFactory ), mPageSize( pageSize ), mSpineShadowParameter( DEFAULT_SPINE_SHADOW_PARAMETER ), @@ -393,8 +388,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.SetRequiresDepthTesting( true ); + mGeometry = VisualFactoryCache::CreateGridGeometry( Uint16Pair( width, height ) ); mPages.reserve( NUMBER_OF_CACHED_PAGES ); for( int i = 0; i < NUMBER_OF_CACHED_PAGES; i++ ) @@ -431,18 +425,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::Visual::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");