Make do not caching pixelBuffer in texture-manager.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / npatch / npatch-visual.cpp
index c18bddf..5c03ac2 100644 (file)
@@ -51,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
@@ -93,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
@@ -496,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
         {
@@ -515,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);
+        }
       }
     }
   }
@@ -865,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() )
     {