/*
- * 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.
#include <dali/public-api/animation/constraint.h>
#include <dali/public-api/images/resource-image.h>
#include <dali/public-api/object/type-registry.h>
-#include <dali/devel-api/object/type-registry-helper.h>
+#include <dali/public-api/object/type-registry-helper.h>
+#include <dali/devel-api/images/texture-set-image.h>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/controls/page-turn-view/page-turn-effect.h>
#include <dali-toolkit/internal/controls/page-turn-view/page-turn-book-spine-effect.h>
-#include <dali-toolkit/internal/controls/renderers/renderer-factory-cache.h>
-
-// headers needed for backward compatibility of PageFactory::NewPage(pageId) API
-#include <dali/public-api/actors/image-actor.h>
+#include <dali-toolkit/internal/controls/renderers/visual-factory-cache.h>
using namespace Dali;
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
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 );
}
}
}
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 ),
// create the grid geometry for pages
uint16_t width = static_cast<uint16_t>(mPageSize.width / DEFAULT_GRID_DENSITY + 0.5f);
uint16_t height = static_cast<uint16_t>(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++ )