// EXTERNAL INCLUDES
#include <cstring> // for strcmp
#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-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
#include <dali/integration-api/debug.h>
// Setup properties, signals and actions using the type-registry.
DALI_TYPE_REGISTRATION_BEGIN( Toolkit::CubeTransitionEffect, Dali::BaseHandle, NULL );
-DALI_SIGNAL_REGISTRATION( Toolkit, CubeTransitionEffect, "transition-completed", SIGNAL_TRANSITION_COMPLETED )
+DALI_SIGNAL_REGISTRATION( Toolkit, CubeTransitionEffect, "transitionCompleted", SIGNAL_TRANSITION_COMPLETED )
DALI_TYPE_REGISTRATION_END()
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 );
void CubeTransitionEffect::OnStageConnection( int depth )
{
- Geometry geometry = CreateQuadGeometry();
+ Control::OnStageConnection( depth );
+
+ Geometry geometry = Geometry::QUAD();
Shader shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
- Material material = Material::New( shader );
+ TextureSet textureSet = TextureSet::New();
if( mCurrentImage )
{
- material.AddTexture( mCurrentImage, "sTexture" );
+ textureSet.SetImage( 0u, mCurrentImage );
}
- 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 );
}
}
mTargetRenderer.Reset();
}
+
+ Control::OnStageDisconnection();
}
void CubeTransitionEffect::SetTransitionDuration( float duration )
void CubeTransitionEffect::SetCurrentImage( Image image )
{
mCurrentImage = image;
-
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.SetImage( 0u, mCurrentImage );
}
}
if( mTargetRenderer )
{
- Material material = mTargetRenderer.GetMaterial();
- material.AddTexture( mTargetImage, "sTexture" );
+ TextureSet textureSet = mTargetRenderer.GetTextures();
+ textureSet.SetImage( 0u, mTargetImage );
}
}
}
//create the target renderer
- Material material = Material::New( mCurrentRenderer.GetMaterial().GetShader() );
+ TextureSet textureSet = TextureSet::New();
if( mTargetImage )
{
- material.AddTexture( mTargetImage, "sTexture" );
+ textureSet.SetImage( 0u, mTargetImage );
}
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<int>(Renderer::Property::DEPTH_INDEX);
+ mTargetRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, depthIndex );
for( size_t i = 0; i < mBoxes.size(); ++i )
{