X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fnpatch%2Fnpatch-visual.cpp;h=ea72d4f2fff4794cc777dc456d3ba42e38af4027;hb=a97787d5b7db865cea0b003db309a619877b0144;hp=020f20ace86dd00a6347a34e5988bac6781f0c59;hpb=6261b85db16d8e9f842c9dc152046747eec67eaa;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp index 020f20a..ea72d4f 100644 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -20,7 +20,7 @@ // EXTERNAL INCLUDES #include -#include +#include #include #include @@ -34,6 +34,7 @@ #include #include #include +#include namespace Dali { @@ -221,13 +222,13 @@ void AddVertex( Vector< Vector2 >& vertices, unsigned int x, unsigned int y ) vertices.PushBack( Vector2( x, y ) ); } -void RegisterStretchProperties( Renderer& renderer, const char * uniformName, const NPatchLoader::StretchRanges& stretchPixels, uint16_t imageExtent) +void RegisterStretchProperties( Renderer& renderer, const char * uniformName, const NPatchUtility::StretchRanges& stretchPixels, uint16_t imageExtent) { uint16_t prevEnd = 0; uint16_t prevFix = 0; uint16_t prevStretch = 0; unsigned int i = 1; - for( NPatchLoader::StretchRanges::ConstIterator it = stretchPixels.Begin(); it != stretchPixels.End(); ++it, ++i ) + for( NPatchUtility::StretchRanges::ConstIterator it = stretchPixels.Begin(); it != stretchPixels.End(); ++it, ++i ) { uint16_t start = it->GetX(); uint16_t end = it->GetY(); @@ -404,6 +405,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(); @@ -432,6 +438,8 @@ void NPatchVisual::OnSetTransform() void NPatchVisual::DoCreatePropertyMap( Property::Map& map ) const { map.Clear(); + bool sync = IsSynchronousLoadingRequired(); + map.Insert( Toolkit::ImageVisual::Property::SYNCHRONOUS_LOADING, sync ); map.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::N_PATCH ); map.Insert( Toolkit::ImageVisual::Property::URL, mImageUrl.GetUrl() ); map.Insert( Toolkit::ImageVisual::Property::BORDER_ONLY, mBorderOnly ); @@ -485,13 +493,30 @@ 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 ); + } + 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 ); + } } } else @@ -508,8 +533,8 @@ Shader NPatchVisual::CreateShader() const NPatchLoader::Data* data; // 0 is either no data (load failed?) or no stretch regions on image // for both cases we use the default shader - NPatchLoader::StretchRanges::SizeType xStretchCount = 0; - NPatchLoader::StretchRanges::SizeType yStretchCount = 0; + NPatchUtility::StretchRanges::SizeType xStretchCount = 0; + NPatchUtility::StretchRanges::SizeType yStretchCount = 0; auto fragmentShader = mAuxiliaryPixelBuffer ? FRAGMENT_MASK_SHADER : FRAGMENT_SHADER;