X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fnpatch%2Fnpatch-visual.cpp;h=5c03ac21f5c152c22868fec1265b3f34ec9ffde0;hb=f27c332dcf251d50ddfe3b2ab15ec2eaff5296b1;hp=ea72d4f2fff4794cc777dc456d3ba42e38af4027;hpb=1f949ea6bc4243cb995ab77b67364e94b873e957;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 ea72d4f..5c03ac2 100644 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -19,7 +19,6 @@ #include "npatch-visual.h" // EXTERNAL INCLUDES -#include #include #include #include @@ -52,14 +51,14 @@ const char* VERTEX_SHADER = DALI_COMPOSE_SHADER( varying mediump vec2 vTexCoord;\n varying mediump vec2 vMaskTexCoord;\n uniform highp mat4 uMvpMatrix;\n - uniform mediump vec3 uSize;\n + uniform highp vec3 uSize;\n uniform mediump vec2 uNinePatchFactorsX[ FACTOR_SIZE_X ];\n uniform mediump vec2 uNinePatchFactorsY[ FACTOR_SIZE_Y ];\n \n // Visual size and offset uniform mediump vec2 offset;\n - uniform mediump vec2 size;\n + uniform highp vec2 size;\n uniform mediump vec4 offsetSizeMode;\n uniform mediump vec2 origin;\n uniform mediump vec2 anchorPoint;\n @@ -94,13 +93,13 @@ const char* VERTEX_SHADER_3X3 = DALI_COMPOSE_SHADER( varying mediump vec2 vTexCoord;\n varying mediump vec2 vMaskTexCoord;\n uniform highp mat4 uMvpMatrix;\n - uniform mediump vec3 uSize;\n + uniform highp vec3 uSize;\n uniform mediump vec2 uFixed[ 3 ];\n uniform mediump vec2 uStretchTotal;\n \n //Visual size and offset uniform mediump vec2 offset;\n - uniform mediump vec2 size;\n + uniform highp vec2 size;\n uniform mediump vec4 offsetSizeMode;\n uniform mediump vec2 origin;\n uniform mediump vec2 anchorPoint;\n @@ -181,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() ); @@ -389,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(); @@ -420,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(); @@ -497,6 +496,10 @@ Geometry NPatchVisual::CreateGeometry() { 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 { @@ -516,6 +519,10 @@ Geometry NPatchVisual::CreateGeometry() 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); + } } } } @@ -671,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 ); @@ -866,11 +873,17 @@ void NPatchVisual::LoadComplete( bool loadSuccess, Devel::PixelBuffer pixelBuffe } else { + Devel::PixelBuffer loadedPixelBuffer; if( loadSuccess ) { - mLoader.SetNPatchData( mId, pixelBuffer ); + loadedPixelBuffer = pixelBuffer; EnablePreMultipliedAlpha( preMultiplied ); } + else + { + loadedPixelBuffer = LoadImageFromFile( mFactoryCache.GetTextureManager().GetBrokenImageUrl() ); + } + mLoader.SetNPatchData( loadSuccess, mId, loadedPixelBuffer, url, preMultiplied ); if( mAuxiliaryPixelBuffer || !mAuxiliaryUrl.IsValid() ) {