X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fnpatch%2Fnpatch-visual.cpp;h=b954c8c4ddff61c63d5bf25a5ffce4395f4a85e7;hp=147f88c0cdf1996288c477507724fdabbbdbdaf6;hb=8bb92d7d1170f2ddf59da60bd3588be601ef8cd2;hpb=763c96a171fb79c5ae983792434537c70ac231fb diff --git a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp index 147f88c..b954c8c 100644 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -19,7 +19,7 @@ #include "npatch-visual.h" // EXTERNAL INCLUDES -#include +#include #include #include @@ -33,6 +33,7 @@ #include #include #include +#include namespace Dali { @@ -179,15 +180,15 @@ Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsi { Property::Map vertexFormat; vertexFormat[ "aPosition" ] = Property::VECTOR2; - PropertyBuffer vertexPropertyBuffer = PropertyBuffer::New( vertexFormat ); + VertexBuffer vertexBuffer = VertexBuffer::New( vertexFormat ); if( vertices.Size() > 0 ) { - vertexPropertyBuffer.SetData( &vertices[ 0 ], vertices.Size() ); + vertexBuffer.SetData( &vertices[ 0 ], vertices.Size() ); } // Create the geometry object Geometry geometry = Geometry::New(); - geometry.AddVertexBuffer( vertexPropertyBuffer ); + geometry.AddVertexBuffer( vertexBuffer ); if( indices.Size() > 0 ) { geometry.SetIndexBuffer( &indices[ 0 ], indices.Size() ); @@ -387,7 +388,7 @@ void NPatchVisual::DoSetProperties( const Property::Map& propertyMap ) } } -void NPatchVisual::DoSetOnStage( Actor& actor ) +void NPatchVisual::DoSetOnScene( Actor& actor ) { // load when first go on stage LoadImages(); @@ -403,6 +404,11 @@ void NPatchVisual::DoSetOnStage( Actor& actor ) mPlacementActor = actor; if( data->loadCompleted ) { + if( RenderingAddOn::Get().IsValid() ) + { + RenderingAddOn::Get().SubmitRenderTask( mImpl->mRenderer, data->renderingMap ); + } + ApplyTextureAndUniforms(); actor.AddRenderer( mImpl->mRenderer ); mPlacementActor.Reset(); @@ -413,7 +419,7 @@ void NPatchVisual::DoSetOnStage( Actor& actor ) } } -void NPatchVisual::DoSetOffStage( Actor& actor ) +void NPatchVisual::DoSetOffScene( Actor& actor ) { actor.RemoveRenderer( mImpl->mRenderer ); mImpl->mRenderer.Reset(); @@ -486,13 +492,38 @@ Geometry NPatchVisual::CreateGeometry() } else { - geometry = GetNinePatchGeometry( VisualFactoryCache::NINE_PATCH_GEOMETRY ); + if( data->renderingMap ) + { + uint32_t elementCount[2]; + geometry = RenderingAddOn::Get().CreateGeometryGrid(data->renderingMap, Uint16Pair(3, 3), elementCount ); + if( mImpl->mRenderer ) + { + RenderingAddOn::Get().SubmitRenderTask(mImpl->mRenderer, data->renderingMap); + } + } + else + { + geometry = GetNinePatchGeometry( VisualFactoryCache::NINE_PATCH_GEOMETRY ); + } } } else if( data->stretchPixelsX.Size() > 0 || data->stretchPixelsY.Size() > 0) { Uint16Pair gridSize( 2 * data->stretchPixelsX.Size() + 1, 2 * data->stretchPixelsY.Size() + 1 ); - geometry = !mBorderOnly ? CreateGridGeometry( gridSize ) : CreateBorderGeometry( gridSize ); + if( !data->renderingMap ) + { + geometry = !mBorderOnly ? CreateGridGeometry( gridSize ) : CreateBorderGeometry( gridSize ); + } + else + { + uint32_t elementCount[2]; + geometry = !mBorderOnly ? + RenderingAddOn::Get().CreateGeometryGrid(data->renderingMap, gridSize, elementCount ) : CreateBorderGeometry(gridSize ); + if( mImpl->mRenderer ) + { + RenderingAddOn::Get().SubmitRenderTask(mImpl->mRenderer, data->renderingMap); + } + } } } else @@ -647,8 +678,8 @@ void NPatchVisual::ApplyTextureAndUniforms() auxiliaryPixelData.GetHeight() ); texture.Upload( auxiliaryPixelData ); textureSet.SetTexture( 1, texture ); - DevelHandle::RegisterProperty( mImpl->mRenderer, DevelImageVisual::Property::AUXILIARY_IMAGE_ALPHA, - AUXILIARY_IMAGE_ALPHA_NAME, mAuxiliaryImageAlpha ); + mImpl->mRenderer.RegisterProperty( DevelImageVisual::Property::AUXILIARY_IMAGE_ALPHA, + AUXILIARY_IMAGE_ALPHA_NAME, mAuxiliaryImageAlpha ); } mImpl->mRenderer.SetTextures( textureSet );