Merge remote-tracking branch 'origin/tizen' into devel/new_mesh 99/39599/1
authorFrancisco Santos <f1.santos@samsung.com>
Tue, 19 May 2015 10:05:42 +0000 (11:05 +0100)
committerFrancisco Santos <f1.santos@samsung.com>
Tue, 19 May 2015 10:05:42 +0000 (11:05 +0100)
Conflicts:
automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp
dali-toolkit/internal/atlas-manager/atlas-manager.h
dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.h
dali-toolkit/internal/controls/scrollable/bouncing-effect-actor.cpp
dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/file.list
dali-toolkit/internal/text/decorator/text-decorator.cpp
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-controller-impl.h
dali-toolkit/internal/text/text-controller.cpp
dali-toolkit/internal/text/text-controller.h
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/dali-toolkit-version.cpp
docs/content/main-page.h
docs/content/programming-guide/script-overview.h
packaging/dali-toolkit.spec

Change-Id: I672b8fe4c79dcabd9a3fe323ad55a1a368cc0b0e

47 files changed:
automated-tests/src/dali-toolkit/utc-Dali-PageTurnView.cpp
automated-tests/src/dali-toolkit/utc-Dali-PushButton.cpp
automated-tests/src/dali-toolkit/utc-Dali-SuperBlurView.cpp
build/tizen/configure.ac
dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp
dali-toolkit/internal/atlas-manager/atlas-manager-impl.h
dali-toolkit/internal/atlas-manager/atlas-manager.cpp
dali-toolkit/internal/atlas-manager/atlas-manager.h
dali-toolkit/internal/builder/builder-animations.cpp
dali-toolkit/internal/builder/builder-impl.cpp
dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.h
dali-toolkit/internal/controls/scrollable/bouncing-effect-actor.cpp
dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-project [new file with mode: 0644]
dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-workspace [new file with mode: 0644]
dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp
dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-project [new file with mode: 0644]
dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-workspace [new file with mode: 0644]
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.h
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/controls/text-controls/text-label-impl.h
dali-toolkit/internal/controls/tool-bar/tool-bar-impl.cpp
dali-toolkit/internal/controls/view/view-impl.cpp [new file with mode: 0644]
dali-toolkit/internal/controls/view/view-impl.h [new file with mode: 0644]
dali-toolkit/internal/file.list
dali-toolkit/internal/text/decorator/text-decorator.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.h
dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp
dali-toolkit/internal/text/rendering/basic/text-basic-renderer.h
dali-toolkit/internal/text/rendering/shaders/text-basic-shader.cpp
dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.cpp
dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.h [deleted file]
dali-toolkit/internal/text/rendering/shaders/text-bgra-shader.cpp
dali-toolkit/internal/text/rendering/text-renderer.h
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/view/view.h [new file with mode: 0644]
dali-toolkit/public-api/file.list
dali-toolkit/public-api/shader-effects/motion-blur-effect.cpp
dali-toolkit/public-api/shader-effects/motion-blur-effect.h
dali-toolkit/public-api/shader-effects/motion-stretch-effect.cpp
dali-toolkit/public-api/shader-effects/motion-stretch-effect.h
docs/content/programming-guide/size-negotiation.h

index c905b71..5fc9c90 100644 (file)
@@ -371,6 +371,7 @@ int UtcDaliPageTurnViewEnterLeaveEditMode(void)
   factory.EnableOffscreenRendering( );
 
   PageTurnView pageTurnView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+  pageTurnView.SetRelayoutEnabled( false );
   pageTurnView.SetPositionInheritanceMode( USE_PARENT_POSITION );
   Stage::GetCurrent().Add( pageTurnView );
 
@@ -422,6 +423,7 @@ int UtcDaliPageTurnViewGetHitActor(void)
   factory.EnableOffscreenRendering( );
 
   PageTurnView pageTurnView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+  pageTurnView.SetRelayoutEnabled( false );
   pageTurnView.SetParentOrigin( ParentOrigin::TOP_LEFT );
   pageTurnView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
   Stage::GetCurrent().Add( pageTurnView );
@@ -458,6 +460,7 @@ int UtcDaliPageTurnViewRefresh(void)
   TestPageFactory factory(application);
   factory.EnableOffscreenRendering( );
   PageTurnView pageTurnView = PageTurnPortraitView::New( factory, PAGE_SIZE );
+  pageTurnView.SetRelayoutEnabled( false );
   pageTurnView.SetParentOrigin( ParentOrigin::TOP_LEFT );
   pageTurnView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
   Stage::GetCurrent().Add( pageTurnView );
@@ -498,6 +501,7 @@ int UtcDaliPageTurnViewSignals(void)
   TestPageFactory factory(application);
   Vector2 size = Stage::GetCurrent().GetSize();
   PageTurnView portraitView = PageTurnPortraitView::New( factory, size );
+  portraitView.SetRelayoutEnabled( false );
   portraitView.SetPositionInheritanceMode( USE_PARENT_POSITION );
   Stage::GetCurrent().Add( portraitView );
 
index 4b62045..b2f0324 100644 (file)
@@ -295,9 +295,6 @@ int UtcDaliPushButtonSetImages(void)
 
   size = pushButton.GetCurrentSize();
 
-  DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION );
-  DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION );
-
   END_TEST;
 }
 
index 0e1385f..bed13ae 100644 (file)
@@ -197,6 +197,7 @@ int UtcDaliSuperBlurViewGetBlurredImage(void)
   tet_infoline( "UtcDaliSuperBlurViewGetBlurredImage" );
 
   SuperBlurView blurView = SuperBlurView::New( BLUR_LEVELS );
+  blurView.SetRelayoutEnabled( false );
   blurView.SetSize( 100.f,100.f );
   Image inputImage = CreateSolidColorImage( application, Color::GREEN, 100, 100 );
   blurView.SetImage( inputImage );
index 006e192..6f8e877 100644 (file)
@@ -56,7 +56,7 @@ AC_ARG_ENABLE([javascript],
               [AC_HELP_STRING([--enable-javascript],
                [Enable JavaScript plugin])] ,
                [enable_javascript=$enableval],
-               [enable_javascript=automatic])
+               [enable_javascript=no])
 
 
 if test "x$enable_debug" = "xyes"; then
index 853c0ae..d58daa9 100644 (file)
@@ -20,6 +20,8 @@
 // EXTERNAL INCLUDE
 #include <iostream>
 #include <string.h>
+#include <dali/public-api/shader-effects/sampler.h>
+#include <dali/public-api/shader-effects/shader.h>
 #include <dali/integration-api/debug.h>
 
 namespace Dali
@@ -41,6 +43,47 @@ namespace
   const uint32_t DOUBLE_PIXEL_PADDING( SINGLE_PIXEL_PADDING << 1 );
   const uint32_t FILLED_PIXEL( -1 );
   Toolkit::AtlasManager::AtlasSize EMPTY_SIZE;
+
+  #define MAKE_SHADER(A)#A
+
+  const char* VERTEX_SHADER = MAKE_SHADER(
+  attribute mediump vec2    aPosition;
+  attribute mediump vec2    aTexCoord;
+  uniform   mediump mat4    uMvpMatrix;
+  uniform   mediump vec3    uSize;
+  varying   mediump vec2    vTexCoord;
+
+  void main()
+  {
+    mediump vec4 position = vec4( aPosition, 0.0, 1.0 );
+    position.xyz *= uSize;
+    gl_Position = uMvpMatrix * position;
+    vTexCoord = aTexCoord;
+  }
+  );
+
+  const char* FRAGMENT_SHADER_L8 = MAKE_SHADER(
+  uniform lowp    vec4      uColor;
+  uniform         sampler2D sTexture;
+  varying mediump vec2      vTexCoord;
+
+  void main()
+  {
+    mediump vec4 color = texture2D( sTexture, vTexCoord );
+    gl_FragColor = vec4( uColor.rgb, uColor.a * color.r );
+  }
+  );
+
+  const char* FRAGMENT_SHADER_BGRA = MAKE_SHADER(
+  uniform         sampler2D sTexture;
+  varying mediump vec2      vTexCoord;
+
+  void main()
+  {
+    gl_FragColor = texture2D( sTexture, vTexCoord );
+  }
+  );
+
 }
 
 AtlasManager::AtlasManager()
@@ -87,11 +130,6 @@ Toolkit::AtlasManager::AtlasId AtlasManager::CreateAtlas( const Toolkit::AtlasMa
   atlasDescriptor.mAtlas = atlas;
   atlasDescriptor.mSize = size;
   atlasDescriptor.mPixelFormat = pixelformat;
-  std::stringstream materialLabel;
-  materialLabel << "Atlas Material - ";
-  materialLabel << mAtlasList.size();
-  atlasDescriptor.mMaterial = Material::New( materialLabel.str() );
-  atlasDescriptor.mMaterial.SetDiffuseTexture( atlas );
   atlasDescriptor.mNextFreeBlock = 1u; // indicate next free block will be the first ( +1 )
 
   // What size do we need for this atlas' strip buffer ( assume 32bit pixel format )?
@@ -110,6 +148,22 @@ Toolkit::AtlasManager::AtlasId AtlasManager::CreateAtlas( const Toolkit::AtlasMa
                                                      pixelformat );
   atlasDescriptor.mFilledPixelImage = BufferImage::New( reinterpret_cast< PixelBuffer* >( &mFilledPixel ), 1, 1, pixelformat );
   atlas.Upload( atlasDescriptor.mFilledPixelImage, 0, 0 );
+
+  Sampler sampler = Sampler::New( atlas, "sTexture" );
+  sampler.SetProperty( Sampler::Property::AFFECTS_TRANSPARENCY, true );
+  Shader shader;
+  if ( pixelformat == Pixel::BGRA8888 )
+  {
+    shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_BGRA );
+  }
+  else
+  {
+    shader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER_L8 );
+  }
+  atlasDescriptor.mMaterial = Material::New( shader );
+  atlasDescriptor.mMaterial.AddSampler( sampler );
+  atlasDescriptor.mSampler = sampler;
+  atlasDescriptor.mMaterial.SetBlendMode( BlendingMode::ON );
   mAtlasList.push_back( atlasDescriptor );
   return mAtlasList.size();
 }
@@ -169,7 +223,7 @@ void AtlasManager::Add( const BufferImage& image,
     if ( Toolkit::AtlasManager::FAIL_ON_ADD_FAILS == mAddFailPolicy || !foundAtlas-- )
     {
       // Haven't found an atlas for this image!!!!!!
-          return;
+      return;
     }
   }
 
@@ -265,16 +319,12 @@ void AtlasManager::CreateMesh( SizeType atlas,
                                const Vector2& position,
                                SizeType widthInBlocks,
                                SizeType heightInBlocks,
-                               Dali::MeshData& meshData,
+                               Toolkit::AtlasManager::Mesh2D& mesh,
                                AtlasSlotDescriptor& desc )
 {
-  Dali::MeshData::Vertex vertex;
-  Dali::MeshData::VertexContainer vertices;
-  Dali::MeshData::FaceIndices faces;
-  Dali::MeshData::FaceIndex faceIndex = 0;
-  meshData.SetHasNormals( false );
-  meshData.SetHasColor( true );
-  meshData.SetHasTextureCoords( true );
+
+  Toolkit::AtlasManager::Vertex2D vertex;
+  uint32_t faceIndex = 0;       // TODO change to unsigned short when property type is available
 
   SizeType blockWidth = mAtlasList[ atlas ].mSize.mBlockWidth;
   SizeType blockHeight = mAtlasList[ atlas ].mSize.mBlockHeight;
@@ -354,49 +404,45 @@ void AtlasManager::CreateMesh( SizeType atlas,
       }
 
       // Top left
-      vertex.x = topLeft.x;
-      vertex.y = topLeft.y;
-      vertex.z = 0.0f;
-      vertex.u = fBlockX;
-      vertex.v = fBlockY;
+      vertex.mPosition.x = topLeft.x;
+      vertex.mPosition.y = topLeft.y;
+      vertex.mTexCoords.x = fBlockX;
+      vertex.mTexCoords.y = fBlockY;
 
-      vertices.push_back( vertex );
+      mesh.mVertices.PushBack( vertex );
 
       // Top Right
-      vertex.x = topLeft.x + ndcVWidth;
-      vertex.y = topLeft.y;
-      vertex.z = 0.0f;
-      vertex.u = fBlockX + ndcWidth;
-      vertex.v = fBlockY;
+      vertex.mPosition.x = topLeft.x + ndcVWidth;
+      vertex.mPosition.y = topLeft.y;
+      vertex.mTexCoords.x = fBlockX + ndcWidth;
+      vertex.mTexCoords.y = fBlockY;
 
-      vertices.push_back( vertex );
+      mesh.mVertices.PushBack( vertex );
 
       // Bottom Left
-      vertex.x = topLeft.x;
-      vertex.y = topLeft.y + ndcVHeight;
-      vertex.z = 0.0f;
-      vertex.u = fBlockX;
-      vertex.v = fBlockY + ndcHeight;
+      vertex.mPosition.x = topLeft.x;
+      vertex.mPosition.y = topLeft.y + ndcVHeight;
+      vertex.mTexCoords.x = fBlockX;
+      vertex.mTexCoords.y = fBlockY + ndcHeight;
 
-      vertices.push_back( vertex );
+      mesh.mVertices.PushBack( vertex );
 
       // Bottom Right
       topLeft.x += ndcVWidth;
-      vertex.x = topLeft.x;
-      vertex.y = topLeft.y + ndcVHeight;
-      vertex.z = 0.0f;
-      vertex.u = fBlockX + ndcWidth;
-      vertex.v = fBlockY + ndcHeight;
+      vertex.mPosition.x = topLeft.x;
+      vertex.mPosition.y = topLeft.y + ndcVHeight;
+      vertex.mTexCoords.x = fBlockX + ndcWidth;
+      vertex.mTexCoords.y = fBlockY + ndcHeight;
 
-      vertices.push_back( vertex );
+      mesh.mVertices.PushBack( vertex );
 
       // Six indices in counter clockwise winding
-      faces.push_back( faceIndex + 1u );
-      faces.push_back( faceIndex );
-      faces.push_back( faceIndex + 2u );
-      faces.push_back( faceIndex + 2u );
-      faces.push_back( faceIndex + 3u );
-      faces.push_back( faceIndex + 1u );
+      mesh.mIndices.PushBack( faceIndex + 1u );
+      mesh.mIndices.PushBack( faceIndex );
+      mesh.mIndices.PushBack( faceIndex + 2u );
+      mesh.mIndices.PushBack( faceIndex + 2u );
+      mesh.mIndices.PushBack( faceIndex + 3u );
+      mesh.mIndices.PushBack( faceIndex + 1u );
       faceIndex += 4;
     }
 
@@ -408,62 +454,53 @@ void AtlasManager::CreateMesh( SizeType atlas,
   // If there's only one block then skip this next vertex optimisation
   if ( widthInBlocks * heightInBlocks > 1 )
   {
-    Dali::MeshData::VertexContainer optimizedVertices;
-    OptimizeVertices( vertices, faces, optimizedVertices );
-    meshData.SetVertices( optimizedVertices );
-  }
-  else
-  {
-    meshData.SetVertices( vertices );
+    Toolkit::AtlasManager::Mesh2D optimizedMesh;
+    OptimizeMesh( mesh, optimizedMesh );
   }
-
-  meshData.SetFaceIndices( faces );
-  meshData.SetMaterial( mAtlasList[ atlas ].mMaterial );
+  //PrintMeshData( mesh );
 }
 
-void AtlasManager::PrintMeshData( const MeshData& meshData )
+void AtlasManager::PrintMeshData( const Toolkit::AtlasManager::Mesh2D& mesh )
 {
-  std::cout << "\nMesh Data for Image: VertexCount = " << meshData.GetVertexCount();
-  std::cout << ", Triangles = " << meshData.GetFaceCount() << std::endl;
-
-  Dali::MeshData::VertexContainer vertices = meshData.GetVertices();
-  Dali::MeshData::FaceIndices faces = meshData.GetFaces();
+  uint32_t vertexCount = mesh.mVertices.Size();
+  uint32_t indexCount = mesh.mIndices.Size();
+  std::cout << "\nMesh Data for Image: VertexCount = " << vertexCount;
+  std::cout << ", Triangles = " << indexCount / 3 << std::endl;
 
-  for ( SizeType v = 0; v < vertices.size(); ++v )
+  for ( SizeType v = 0; v < vertexCount; ++v )
   {
-    std::cout << " Vertex(" << v << ") x = " << vertices[v].x << ", ";
-    std::cout << "y = " << vertices[v].y << ", " << "z = " << vertices[v].z << ", ";
-    std::cout << "u = " << vertices[v].u << ", " << "v = " << vertices[v].v << std::endl;
+    std::cout << " Vertex(" << v << ") x = " << mesh.mVertices[v].mPosition.x << ", ";
+    std::cout << "y = " << mesh.mVertices[v].mPosition.y << ", ";
+    std::cout << "u = " << mesh.mVertices[v].mTexCoords.x << ", ";
+    std::cout << "v = " << mesh.mVertices[v].mTexCoords.y << std::endl;
   }
 
   std::cout << "\n Indices: ";
-  for ( SizeType i = 0; i < faces.size(); ++i )
+  for ( SizeType i = 0; i < indexCount; ++i )
   {
-    std::cout << " " << faces[ i ];
+    std::cout << " " << mesh.mIndices[ i ];
   }
   std::cout << std::endl;
 }
 
-void AtlasManager::OptimizeVertices( const MeshData::VertexContainer& in,
-                                     MeshData::FaceIndices& faces,
-                                     MeshData::VertexContainer& out )
+void AtlasManager::OptimizeMesh( const Toolkit::AtlasManager::Mesh2D& in,
+                                 Toolkit::AtlasManager::Mesh2D& out )
 {
   unsigned short vertexIndex = 0;
 
   // We could check to see if blocks are next to each other, but it's probably just as quick to compare verts
-  for ( SizeType i = 0; i < faces.size(); ++i )
+  for ( SizeType i = 0; i < in.mIndices.Size(); ++i )
   {
     // Fetch a vertex, has it already been assigned?
     bool foundVertex = false;
-    Dali::MeshData::Vertex v = in[ faces [ i ] ];
-    for ( SizeType j = 0; j < vertexIndex; ++j )
+    Toolkit::AtlasManager::Vertex2D v = in.mVertices[ in.mIndices[ i ] ];
+    for ( SizeType j = 0; j < out.mVertices.Size(); ++j )
     {
-      if ( v.x == out[ j ].x && v.y == out[ j ].y && v.z == out[ j ].z &&
-           v.u == out[ j ].u && v.v == out[ j ].v && v.nX == out[ j ].nX &&
-           v.nY == out[ j ].nY && v.nZ == out[ j ].nZ )
+      if ( v.mPosition.x == out.mVertices[ j ].mPosition.x && v.mPosition.y == out.mVertices[ j ].mPosition.y &&
+           v.mTexCoords.x == out.mVertices[ j ].mTexCoords.x && v.mTexCoords.y == out.mVertices[ j ].mTexCoords.y )
       {
         // Yes, so store this down as the vertex to use
-        faces[ i ] = j;
+        out.mIndices.PushBack( j );
         foundVertex = true;
         break;
       }
@@ -472,103 +509,70 @@ void AtlasManager::OptimizeVertices( const MeshData::VertexContainer& in,
     // Did we find a vertex ?
     if ( !foundVertex )
     {
-      // Add a new vertex
-      faces[ i ] = vertexIndex++;
-      out.push_back( v );
+      // No so add a new one
+      out.mVertices.PushBack( v );
+      vertexIndex++;
     }
   }
 }
 
-void AtlasManager::StitchMesh( MeshData& first,
-                               const MeshData& second,
+void AtlasManager::StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                               const Toolkit::AtlasManager::Mesh2D& second,
                                bool optimize )
 {
+  uint32_t vc = first.mVertices.Size();
 
-  // Would be much quicker to be able to get a non-const reference to these containers and update in situ
-  MeshData::VertexContainer v1 = first.GetVertices();
-  MeshData::VertexContainer v2 = second.GetVertices();
-  MeshData::FaceIndices f1 = first.GetFaces();
-  MeshData::FaceIndices f2 = second.GetFaces();
-
-  uint32_t vc1 = first.GetVertexCount();
-  uint32_t vc2 = second.GetVertexCount();
-
-  for ( uint32_t v = 0; v < vc2; ++v )
+  for ( uint32_t v = 0; v < second.mVertices.Size(); ++v )
   {
-    v1.push_back( v2[ v ] );
+    first.mVertices.PushBack( second.mVertices[ v ] );
   }
 
-  for ( uint32_t f = 0; f < f2.size(); ++f )
+  for ( uint32_t i = 0; i < second.mIndices.Size(); ++i )
   {
-    f1.push_back( f2[ f ] + vc1 );
+    first.mIndices.PushBack( second.mIndices[ i ] + vc );
   }
 
   if ( optimize )
   {
-    MeshData::VertexContainer optimizedVertices;
-    OptimizeVertices( v1, f1, optimizedVertices );
-    first.SetVertices( optimizedVertices );
+    Toolkit::AtlasManager::Mesh2D optimizedMesh;
+    OptimizeMesh( first, optimizedMesh );
+    first = optimizedMesh;
   }
-  else
-  {
-    first.SetVertices( v1 );
-  }
-
-  first.SetFaceIndices( f1 );
 }
 
-void AtlasManager::StitchMesh( const MeshData& first,
-                               const MeshData& second,
-                               MeshData& out,
+void AtlasManager::StitchMesh( const Toolkit::AtlasManager::Mesh2D& first,
+                               const Toolkit::AtlasManager::Mesh2D& second,
+                               Toolkit::AtlasManager::Mesh2D& out,
                                bool optimize )
 {
-  MeshData::VertexContainer v1 = first.GetVertices();
-  MeshData::VertexContainer v2 = second.GetVertices();
-  MeshData::FaceIndices f1 = first.GetFaces();
-  MeshData::FaceIndices f2 = second.GetFaces();
-
-  uint32_t vc1 = first.GetVertexCount();
-  uint32_t vc2 = second.GetVertexCount();
+  uint32_t vc = first.mVertices.Size();
 
-  MeshData::VertexContainer vertices;
-
-  MeshData::FaceIndices faces;
-
-  MeshData::Vertex vertex;
-
-  for ( uint32_t v = 0; v < vc1; ++v )
+  for ( uint32_t v = 0; v < vc; ++v )
   {
-    vertices.push_back( v1[ v ] );
+    out.mVertices.PushBack( first.mVertices[ v ] );
   }
 
-  for ( uint32_t v = 0; v < vc2; ++v )
+  for ( uint32_t v = 0; v < second.mVertices.Size(); ++v )
   {
-    vertices.push_back( v2[ v  ] );
+    out.mVertices.PushBack( second.mVertices[ v ] );
   }
 
-  for ( uint32_t f = 0; f < f1.size(); ++f )
+  for ( uint32_t i = 0; i < first.mIndices.Size(); ++i )
   {
-    faces.push_back( f1[ f ] );
+    out.mIndices.PushBack( first.mIndices[ i ] );
   }
 
-  for ( uint32_t f = 0; f < f2.size(); ++f )
+  for ( uint32_t i = 0; i < second.mIndices.Size(); ++i )
   {
-    faces.push_back( f2[ f ] + vc1 );
+    out.mIndices.PushBack( second.mIndices[ i ] + vc );
   }
 
   if ( optimize )
   {
-    MeshData::VertexContainer optimizedVertices;
-    OptimizeVertices( vertices, faces, optimizedVertices );
-    out.SetVertices( optimizedVertices );
-  }
-  else
-  {
-    out.SetVertices( vertices );
+    Toolkit::AtlasManager::Mesh2D optimizedMesh;
+    OptimizeMesh( out, optimizedMesh );
+    out = optimizedMesh;
   }
-
-  out.SetMaterial( first.GetMaterial() );
-  out.SetFaceIndices( faces );
 }
 
 void AtlasManager::UploadImage( const BufferImage& image,
@@ -651,7 +655,7 @@ void AtlasManager::UploadImage( const BufferImage& image,
 
 void AtlasManager::GenerateMeshData( ImageId id,
                                      const Vector2& position,
-                                     MeshData& meshData )
+                                     Toolkit::AtlasManager::Mesh2D& meshData )
 {
   // Read the atlas Id to use for this image
   SizeType imageId = id - 1u;
@@ -826,6 +830,25 @@ void AtlasManager::GetMetrics( Toolkit::AtlasManager::Metrics& metrics )
   metrics.mTextureMemoryUsed = textureMemoryUsed;
 }
 
+Material AtlasManager::GetMaterial( AtlasId atlas ) const
+{
+  if ( atlas && atlas <= mAtlasList.size() )
+  {
+    return mAtlasList[ atlas -1u ].mMaterial;
+  }
+  Material null;
+  return null;
+}
+
+Sampler AtlasManager::GetSampler( AtlasId atlas ) const
+{
+  if ( atlas && atlas <= mAtlasList.size() )
+  {
+    return mAtlasList[ atlas -1u ].mSampler;
+  }
+  Sampler null;
+  return null;
+}
 
 } // namespace Internal
 
index ef078f8..8046f71 100644 (file)
@@ -67,6 +67,7 @@ public:
     BufferImage mFilledPixelImage;                                      // Image used by atlas for operations such as underline
     PixelBuffer* mStripBuffer;                                          // Blank image buffer used to pad upload
     Material mMaterial;                                                 // material used for atlas texture
+    Sampler mSampler;                                                   // sampler used for atlas texture
     SizeType mNextFreeBlock;                                            // next free block will be placed here ( actually +1 )
     Dali::Vector< SizeType > mFreeBlocksList;                           // unless there are any previously freed blocks
   };
@@ -111,21 +112,22 @@ public:
    */
   void GenerateMeshData( ImageId id,
                          const Vector2& position,
-                         MeshData& mesh );
+                         Toolkit::AtlasManager::Mesh2D& mesh );
 
   /**
    * @copydoc Toolkit::AtlasManager::StitchMesh
    */
-  void StitchMesh( MeshData& first,
-                   const MeshData& second,
+  void StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                   const Toolkit::AtlasManager::Mesh2D& second,
                    bool optimize );
 
   /**
    * @copydoc Toolkit::AtlasManager::StitchMesh
    */
-  void StitchMesh( const MeshData& first,
-                   const MeshData& second,
-                   MeshData& out, bool optimize );
+  void StitchMesh(  const Toolkit::AtlasManager::Mesh2D& first,
+                    const Toolkit::AtlasManager::Mesh2D& second,
+                    Toolkit::AtlasManager::Mesh2D& out,
+                    bool optimize );
 
   /**
    * @copydoc Toolkit::AtlasManager::Remove
@@ -177,6 +179,16 @@ public:
    */
   void GetMetrics( Toolkit::AtlasManager::Metrics& metrics );
 
+  /**
+   * @copydoc Toolkit::AtlasManager::GetMaterial
+   */
+  Material GetMaterial( AtlasId atlas ) const;
+
+/**
+   * @copydoc Toolkit::AtlasManager::GetSampler
+   */
+  Sampler GetSampler( AtlasId atlas ) const;
+
 private:
 
   std::vector< AtlasDescriptor > mAtlasList;        // List of atlases created
@@ -195,17 +207,16 @@ private:
                    const Vector2& position,
                    SizeType widthInBlocks,
                    SizeType heightInBlocks,
-                   Dali::MeshData& meshData,
+                   Toolkit::AtlasManager::Mesh2D& mesh,
                    AtlasSlotDescriptor& desc );
 
-  void OptimizeVertices( const MeshData::VertexContainer& in,
-                         MeshData::FaceIndices& faces,
-                         MeshData::VertexContainer& out );
+  void OptimizeMesh( const Toolkit::AtlasManager::Mesh2D& in,
+                     Toolkit::AtlasManager::Mesh2D& out );
 
   void UploadImage( const BufferImage& image,
                     const AtlasSlotDescriptor& desc );
 
-  void PrintMeshData( const MeshData& meshData );
+  void PrintMeshData( const Toolkit::AtlasManager::Mesh2D& mesh );
 
   Toolkit::AtlasManager::AtlasSize mNewAtlasSize;
   Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy;
index e46eb1d..977c8dc 100644 (file)
@@ -69,23 +69,23 @@ bool AtlasManager::Remove( ImageId id )
 
 void AtlasManager::GenerateMeshData( ImageId id,
                                      const Vector2& position,
-                                     MeshData& meshData)
+                                     Mesh2D& mesh )
 {
   GetImplementation(*this).GenerateMeshData( id,
                                              position,
-                                             meshData );
+                                             mesh );
 }
 
-void AtlasManager::StitchMesh( MeshData& first,
-                               const MeshData& second,
+void AtlasManager::StitchMesh( Mesh2D& first,
+                               const Mesh2D& second,
                                bool optimize )
 {
   GetImplementation(*this).StitchMesh( first, second, optimize );
 }
 
-void AtlasManager::StitchMesh( const MeshData& first,
-                               const MeshData& second,
-                               MeshData& out,
+void AtlasManager::StitchMesh( const Mesh2D& first,
+                               const Mesh2D& second,
+                               Mesh2D& out,
                                bool optimize )
 {
   GetImplementation(*this).StitchMesh( first, second, out, optimize );
@@ -128,7 +128,17 @@ Pixel::Format AtlasManager::GetPixelFormat( AtlasId atlas )
 
 void AtlasManager::GetMetrics( Metrics& metrics )
 {
-  return GetImplementation(*this).GetMetrics( metrics );
+  GetImplementation(*this).GetMetrics( metrics );
+}
+
+Material AtlasManager::GetMaterial( AtlasId atlas ) const
+{
+  return GetImplementation(*this).GetMaterial( atlas );
+}
+
+Sampler AtlasManager::GetSampler( AtlasId atlas ) const
+{
+  return GetImplementation(*this).GetSampler( atlas );
 }
 
 } // namespace Toolkit
index 2bf79f0..2b8a122 100644 (file)
@@ -20,9 +20,9 @@
 // EXTERNAL INCLUDES
 #include <stdint.h>
 #include <dali/public-api/common/dali-vector.h>
-#include <dali/devel-api/geometry/mesh-data.h>
 #include <dali/devel-api/images/atlas.h>
 #include <dali/public-api/images/buffer-image.h>
+#include <dali/public-api/shader-effects/material.h>
 
 namespace Dali
 {
@@ -187,6 +187,18 @@ public:
     Dali::Vector< AtlasMetricsEntry > mAtlasMetrics;    // container of atlas information
   };
 
+  struct Vertex2D
+  {
+    Vector2 mPosition;
+    Vector2 mTexCoords;
+  };
+
+  struct Mesh2D
+  {
+    Vector< Vertex2D > mVertices;
+    Vector< unsigned int> mIndices;
+  };
+
   /**
    * Create an AtlasManager handle; this can be initialised with AtlasManager::New()
    * Calling member functions with an uninitialised handle is not allowed.
@@ -277,7 +289,7 @@ public:
    */
   void GenerateMeshData( ImageId id,
                          const Vector2& position,
-                         MeshData& mesh );
+                         Mesh2D& mesh );
 
   /**
    * @brief Append second mesh to the first mesh
@@ -286,8 +298,8 @@ public:
    * @param[in] second Second mesh
    * @param[in] optimize should we optimize vertex data
    */
-  void StitchMesh( MeshData& first,
-                   const MeshData& second,
+  void StitchMesh( Mesh2D& first,
+                   const Mesh2D& second,
                    bool optimize = false );
 
   /**
@@ -298,9 +310,9 @@ public:
    * @param[in] optimize should we optimize vertex data
    * @param[out] out resulting mesh
    */
-  void StitchMesh( const MeshData& first,
-                   const MeshData& second,
-                   MeshData& out,
+  void StitchMesh( const Mesh2D& first,
+                   const Mesh2D& second,
+                   Mesh2D& out,
                    bool optimize = false );
 
   /**
@@ -370,6 +382,23 @@ public:
    */
   void GetMetrics( Metrics& metrics );
 
+  /**
+   * @brief Get Material used by atlas
+   *
+   * @param atlas[in] atlas AtlasId
+   *
+   * @return Material used by atlas
+   */
+  Material GetMaterial( AtlasId atlas ) const;
+
+ /**
+   * @brief Get Sampler used by atlas
+   *
+   * @param atlas[in] atlas AtlasId
+   *
+   * @return Sampler used by atlas
+   */
+  Sampler GetSampler( AtlasId atlas ) const;
 private:
 
   explicit DALI_INTERNAL AtlasManager(Internal::AtlasManager *impl);
@@ -380,4 +409,4 @@ private:
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__
\ No newline at end of file
+#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__
index 6caf392..12a87c5 100644 (file)
@@ -17,7 +17,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/actors/layer.h>
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/image-actor.h>
 #include <dali/integration-api/debug.h>
 
 // INTERNAL INCLUDES
@@ -229,13 +229,13 @@ Animation CreateAnimation( const TreeNode& child, const Replacement& constant, D
         // to allow animating shader uniforms
         if( propIndex == Property::INVALID_INDEX )
         {
-          RenderableActor renderable = RenderableActor::DownCast( targetHandle );
-          if( renderable )
+          ImageActor imageActor = ImageActor::DownCast( targetHandle );
+          if( imageActor )
           {
             // A limitation here is that its possible that between creation of animation
             // and running it the ShaderEffect of the actor has been changed.
             // However this is a unlikely use case especially when using scripts.
-            if( ShaderEffect effect = renderable.GetShaderEffect() )
+            if( ShaderEffect effect = imageActor.GetShaderEffect() )
             {
               propIndex = effect.GetPropertyIndex( *property );
               if(propIndex != Property::INVALID_INDEX)
index 5055061..aaf3f22 100644 (file)
@@ -279,7 +279,7 @@ void Builder::SetProperties( const TreeNode& node, Handle& handle, const Replace
       // special field 'effect' references the shader effect instances
       if(key == "effect")
       {
-        RenderableActor actor = RenderableActor::DownCast(handle);
+        ImageActor actor = ImageActor::DownCast(handle);
         if( actor )
         {
           OptionalString str = constant.IsString( keyChild.second );
@@ -303,7 +303,7 @@ void Builder::SetProperties( const TreeNode& node, Handle& handle, const Replace
 
       if( Property::INVALID_INDEX == index )
       {
-        RenderableActor actor = RenderableActor::DownCast(handle);
+        ImageActor actor = ImageActor::DownCast(handle);
         if( actor )
         {
           if( ShaderEffect effect = actor.GetShaderEffect() )
index 6b07573..6cac58b 100644 (file)
 // EXTERNAL INCLUDES
 #include <dali/public-api/actors/camera-actor.h>
 #include <dali/public-api/actors/image-actor.h>
-#include <dali/devel-api/actors/mesh-actor.h>
 #include <dali/public-api/common/stage.h>
 #include <dali/public-api/images/frame-buffer-image.h>
-#include <dali/devel-api/geometry/mesh.h>
 #include <dali/public-api/render-tasks/render-task.h>
 
 // INTERNAL INCLUDES
index 7f38bd4..d78801a 100644 (file)
@@ -20,9 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <math.h>
-#include <dali/devel-api/actors/mesh-actor.h>
 #include <dali/public-api/animation/constraint.h>
-#include <dali/devel-api/geometry/animatable-mesh.h>
 #include <dali/public-api/shader-effects/shader-effect.h>
 #include <dali/public-api/math/vector3.h>
 
@@ -40,14 +38,14 @@ namespace
 // Bouncing effect is presented by stacked three layers with same color and opacity
 const size_t NUM_LAYERS( 3 );
 const Vector3 LAYER_HEIGHTS( 1.f, 27.f/42.f, 13.f/42.f);
-
+/*
 // use the actor color to paint every layer
 const char* MESH_FRAGMENT_SHADER =
 "void main()\n"
 "{\n"
 "  gl_FragColor = uColor;\n"
 "}\n";
-
+*/
 // Constraint to move the vertices vertically
 struct VertexPositionConstraint
 {
@@ -70,6 +68,8 @@ struct VertexPositionConstraint
 
 Actor CreateBouncingEffectActor( Property::Index& bouncePropertyIndex )
 {
+  Actor meshActor;
+/*
   Dali::AnimatableMesh             mesh;
   Dali::MeshActor                  meshActor;
 
@@ -112,7 +112,7 @@ Actor CreateBouncingEffectActor( Property::Index& bouncePropertyIndex )
     constraint = Constraint::New<Vector3>( mesh, mesh.GetPropertyIndex(j+3,  AnimatableVertex::Property::POSITION), VertexPositionConstraint(-0.5f, LAYER_HEIGHTS[i]) );
     constraint.AddSource( Source(meshActor, bouncePropertyIndex) );
     constraint.Apply();
-  }
+  }*/
 
   return meshActor;
 }
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-project b/dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-project
new file mode 100644 (file)
index 0000000..d4bef92
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "folders":
+       [
+               {
+                       "path": "/homeSERILOCALr.underhill/dev/new"
+               }
+       ]
+}
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-workspace b/dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-workspace
new file mode 100644 (file)
index 0000000..ed39525
--- /dev/null
@@ -0,0 +1,1282 @@
+{
+       "auto_complete":
+       {
+               "selected_items":
+               [
+                       [
+                               "Set",
+                               "SetBlendMode"
+                       ],
+                       [
+                               "STYLE_",
+                               "STYLE_DROP_SHADOW"
+                       ],
+                       [
+                               "nom",
+                               "normIndices"
+                       ],
+                       [
+                               "norm",
+                               "normVerts"
+                       ],
+                       [
+                               "nomr",
+                               "normVerts"
+                       ],
+                       [
+                               "shadow",
+                               "shadowOffset"
+                       ],
+                       [
+                               "mesh",
+                               "meshRecord"
+                       ],
+                       [
+                               "Text",
+                               "TextLabel"
+                       ],
+                       [
+                               "FRAGMENT_SHADER_",
+                               "FRAGMENT_SHADER_BGRA"
+                       ],
+                       [
+                               "complete",
+                               "completeCount"
+                       ],
+                       [
+                               "mV",
+                               "mVertices"
+                       ],
+                       [
+                               "print",
+                               "PrintMeshData"
+                       ],
+                       [
+                               "vetex",
+                               "vertexBuffer"
+                       ],
+                       [
+                               "inde",
+                               "indexBuffer"
+                       ],
+                       [
+                               "ind",
+                               "indexCount"
+                       ],
+                       [
+                               "ver",
+                               "vertexBuffer"
+                       ],
+                       [
+                               "quad",
+                               "quadData"
+                       ],
+                       [
+                               "qua",
+                               "quadData"
+                       ],
+                       [
+                               "q",
+                               "quadData"
+                       ],
+                       [
+                               "C",
+                               "Count"
+                       ],
+                       [
+                               "gl",
+                               "gl_FragColor"
+                       ],
+                       [
+                               "mAtlas",
+                               "mAtlasId"
+                       ],
+                       [
+                               "mAtl",
+                               "mAtlasId"
+                       ],
+                       [
+                               "texturedQuad",
+                               "texturedQuadGeometry"
+                       ],
+                       [
+                               "Mesh",
+                               "MeshRecord"
+                       ],
+                       [
+                               "Atlas",
+                               "AtlasGlyphManager"
+                       ],
+                       [
+                               "Property",
+                               "PropertyBuffer"
+                       ],
+                       [
+                               "atlas",
+                               "atlasDescriptor"
+                       ],
+                       [
+                               "op",
+                               "optimizedMesh"
+                       ],
+                       [
+                               "vertex",
+                               "vertexCount"
+                       ],
+                       [
+                               "Atl",
+                               "AtlasSlotDescriptor"
+                       ],
+                       [
+                               "he",
+                               "heightInBlocks"
+                       ],
+                       [
+                               "wid",
+                               "widthInBlocks"
+                       ],
+                       [
+                               "imag",
+                               "imageHeight"
+                       ],
+                       [
+                               "image",
+                               "imageWidth"
+                       ]
+               ]
+       },
+       "buffers":
+       [
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 13752,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "scroll-overshoot-indicator-impl.h",
+                       "settings":
+                       {
+                               "buffer_size": 8339,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 33180,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-field-impl.h",
+                       "settings":
+                       {
+                               "buffer_size": 6419,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.h",
+                       "settings":
+                       {
+                               "buffer_size": 3898,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 16273,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 29679,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.h",
+                       "settings":
+                       {
+                               "buffer_size": 21305,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control.h",
+                       "settings":
+                       {
+                               "buffer_size": 13810,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/file.list",
+                       "settings":
+                       {
+                               "buffer_size": 14166,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/file.list",
+                       "settings":
+                       {
+                               "buffer_size": 6651,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/view/view-impl.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 9817,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/dali-toolkit.h",
+                       "settings":
+                       {
+                               "buffer_size": 7449,
+                               "line_ending": "Unix"
+                       }
+               },
+               {
+                       "contents": "Searching 483 files for \"controlbehaviour\"\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/alignment/alignment-impl.cpp:\n  549  \n  550  Alignment::Alignment( Toolkit::Alignment::Type horizontal, Toolkit::Alignment::Type vertical )\n  551: : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  552    mHorizontal( horizontal ),\n  553    mVertical( vertical ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp:\n  127  \n  128  BloomView::BloomView()\n  129:   : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) )\n  130    , mBlurNumSamples(BLOOM_GAUSSIAN_BLUR_VIEW_DEFAULT_NUM_SAMPLES)\n  131    , mBlurBellCurveWidth(BLOOM_GAUSSIAN_BLUR_VIEW_DEFAULT_BLUR_BELL_CURVE_WIDTH)\n  ...\n  149  BloomView::BloomView( const unsigned int blurNumSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat,\n  150                                      const float downsampleWidthScale, const float downsampleHeightScale)\n  151:   : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) )\n  152    , mBlurNumSamples(blurNumSamples)\n  153    , mBlurBellCurveWidth(blurBellCurveWidth)\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp:\n   40                                unsigned int maximumNumberOfBubble,\n   41                                const Vector2& bubbleSizeRange )\n   42: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),\n   43    mMovementArea( movementArea ),\n   44    mShapeImage( shapeImage ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp.orig:\n   40                                unsigned int maximumNumberOfBubble,\n   41                                const Vector2& bubbleSizeRange )\n   42: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),\n   43    mMovementArea( movementArea ),\n   44    mShapeImage( shapeImage ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/buttons/button-impl.cpp:\n  101  \n  102  Button::Button()\n  103: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  104    mAutoRepeatingTimer(),\n  105    mDisabled( false ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp:\n  113  \n  114  EffectsView::EffectsView()\n  115: : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  116    mEffectType( Toolkit::EffectsView::INVALID_TYPE ),\n  117    mPixelFormat( EFFECTS_VIEW_DEFAULT_PIXEL_FORMAT ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.cpp:\n  117  \n  118  GaussianBlurView::GaussianBlurView()\n  119:   : Control( ControlBehaviour( DISABLE_SIZE_NEGOTIATION ) )\n  120    , mNumSamples(GAUSSIAN_BLUR_VIEW_DEFAULT_NUM_SAMPLES)\n  121    , mBlurBellCurveWidth( 0.001f )\n  ...\n  139                                      const float downsampleWidthScale, const float downsampleHeightScale,\n  140                                      bool blurUserImage)\n  141:   : Control( ControlBehaviour( DISABLE_SIZE_NEGOTIATION ) )\n  142    , mNumSamples(numSamples)\n  143    , mBlurBellCurveWidth( 0.001f )\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/image-view/masked-image-view-impl.cpp:\n  476  \n  477  MaskedImageView::MaskedImageView()\n  478: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  479    mEditMode( Dali::Toolkit::MaskedImageView::EDIT_DISABLED ),\n  480    mSelfPropertySetting( false ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp:\n  124  \n  125  Magnifier::Magnifier()\n  126: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),\n  127    mPropertySourcePosition(Property::INVALID_INDEX),\n  128    mDefaultCameraDistance(1000.f),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/navigation-frame/navigation-control-impl.cpp:\n   61  \n   62  NavigationControl::NavigationControl()\n   63: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),\n   64    mToolBar(NULL),\n   65    mTitleBar(NULL),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/navigation-frame/page-impl.cpp:\n   48  \n   49  Page::Page()\n   50: : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n   51    mTitle(\"\"),\n   52    mSubTitle(\"\")\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp:\n  260  \n  261  PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& pageSize )\n  262: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS ) ),\n  263    mPageFactory( pageFactory ),\n  264    mPageSize( pageSize ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/popup/popup-impl.cpp:\n  105  \n  106  Popup::Popup(PopupStyle& style)\n  107: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  108    mShowing(false),\n  109    mState(Toolkit::Popup::POPUP_NONE), // Initially, the popup state should not be set, it's set in OnInitialize\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp:\n  293  \n  294  ItemView::ItemView(ItemFactory& factory)\n  295: : Scrollable( ControlBehaviour( DISABLE_SIZE_NEGOTIATION | REQUIRES_MOUSE_WHEEL_EVENTS | REQUIRES_KEYBOARD_NAVIGATION_SUPPORT ) ),\n  296    mItemFactory(factory),\n  297    mActiveLayout(NULL),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-base-impl.cpp:\n   41  }\n   42  \n   43: ScrollBase::ScrollBase( ControlBehaviour behaviourFlags )\n   44  : Scrollable( behaviourFlags ),\n   45    mParent(NULL),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-base-impl.h:\n  197     * @param[in] behaviourFlags Flags to enable\n  198     */\n  199:   ScrollBase( ControlBehaviour behaviourFlags );\n  200  \n  201  protected:\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp:\n  535  \n  536  ScrollView::ScrollView()\n  537: : ScrollBase( ControlBehaviour( REQUIRES_MOUSE_WHEEL_EVENTS ) ),   // Enable size negotiation\n  538    mTouchDownTime(0u),\n  539    mGestureStackDepth(0),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scrollable-impl.cpp:\n   76  // we dont want size negotiation while scrolling if we can avoid it\n   77  Scrollable::Scrollable()\n   78: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS | DISABLE_SIZE_NEGOTIATION ) ),\n   79    mOvershootEffectColor(  DEFAULT_OVERSHOOT_COLOUR ),\n   80    mOvershootAnimationSpeed ( DEFAULT_OVERSHOOT_ANIMATION_SPEED ),\n   ..\n   83  }\n   84  \n   85: Scrollable::Scrollable( ControlBehaviour behaviourFlags )\n   86: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS | behaviourFlags ) ),\n   87    mOvershootEffectColor(  DEFAULT_OVERSHOOT_COLOUR ),\n   88    mOvershootAnimationSpeed ( DEFAULT_OVERSHOOT_ANIMATION_SPEED ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scrollable-impl.h:\n  187     * @param[in] behaviourFlags Flags to enable\n  188     */\n  189:   Scrollable( ControlBehaviour behaviourFlags );\n  190  \n  191    /**\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp:\n  109  \n  110  ShadowView::ShadowView( float downsampleWidthScale, float downsampleHeightScale )\n  111: : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  112    mChildrenRoot(Actor::New()),\n  113    mCachedShadowColor(DEFAULT_SHADOW_COLOR),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/slider/slider-impl.cpp:\n  148  \n  149  Slider::Slider()\n  150: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  151    mState( NORMAL ),\n  152    mDisableColor( 0.0f, 0.0f, 0.0f, 0.0f ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp:\n  105  \n  106  SuperBlurView::SuperBlurView( unsigned int blurLevels )\n  107: : Control( ControlBehaviour( DISABLE_SIZE_NEGOTIATION ) ),\n  108    mBlurLevels( blurLevels ),\n  109    mBlurStrengthPropertyIndex(Property::INVALID_INDEX),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/table-view/table-view-impl.cpp:\n  941  \n  942  TableView::TableView( unsigned int initialRows, unsigned int initialColumns )\n  943: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  944    mCellData( initialRows, initialColumns ),\n  945    mLayoutingChild( false ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp:\n 1007  \n 1008  TextField::TextField()\n 1009: : Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n 1010    mRenderingBackend( DEFAULT_RENDERING_BACKEND ),\n 1011    mExceedPolicy( Dali::Toolkit::TextField::EXCEED_POLICY_CLIP )\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp:\n  488  \n  489  TextLabel::TextLabel()\n  490: : Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ),\n  491    mRenderingBackend( DEFAULT_RENDERING_BACKEND )\n  492  {\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-selection-popup-impl.cpp:\n  589  \n  590  TextSelectionPopup::TextSelectionPopup()\n  591: : Control( ControlBehaviour( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ) ),\n  592    mMaxSize ( DEFAULT_POPUP_MAX_SIZE ),\n  593    mVisiblePopUpSize( DEFAULT_POPUP_MAX_SIZE ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/tool-bar/tool-bar-impl.cpp:\n  297  \n  298  ToolBar::ToolBar()\n  299: : Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  300    mLayout(),\n  301    mLeftOffset( 0 ),\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp:\n  196      mCurrentSize(),\n  197      mNaturalSize(),\n  198:     mFlags( Control::ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  199      mIsKeyboardNavigationSupported( false ),\n  200      mIsKeyboardFocusGroup( false ),\n  ...\n  394    Vector3 mNaturalSize; ///< Stores the size set through the Actor's API. This is size the actor wants to be. Useful when reset to the initial size is needed.\n  395  \n  396:   ControlBehaviour mFlags :CONTROL_BEHAVIOUR_FLAG_COUNT;    ///< Flags passed in from constructor.\n  397    bool mIsKeyboardNavigationSupported :1;  ///< Stores whether keyboard navigation is supported by the control.\n  398    bool mIsKeyboardFocusGroup :1;           ///< Stores whether the control is a focus group.\n  ...\n  415  {\n  416    // Create the implementation, temporarily owned on stack\n  417:   IntrusivePtr<Control> controlImpl = new Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) );\n  418  \n  419    // Pass ownership to handle\n  ...\n  781  }\n  782  \n  783: Control::Control( ControlBehaviour behaviourFlags )\n  784  : CustomActorImpl( static_cast< ActorFlags >( behaviourFlags ) ),\n  785    mImpl(new Impl(*this))\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp.orig:\n  170      mCurrentSize(),\n  171      mNaturalSize(),\n  172:     mFlags( Control::ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),\n  173      mIsKeyboardNavigationSupported( false ),\n  174      mIsKeyboardFocusGroup( false ),\n  ...\n  368    Vector3 mNaturalSize; ///< Stores the size set through the Actor's API. This is size the actor wants to be. Useful when reset to the initial size is needed.\n  369  \n  370:   ControlBehaviour mFlags :CONTROL_BEHAVIOUR_FLAG_COUNT;    ///< Flags passed in from constructor.\n  371    bool mIsKeyboardNavigationSupported :1;  ///< Stores whether keyboard navigation is supported by the control.\n  372    bool mIsKeyboardFocusGroup :1;           ///< Stores whether the control is a focus group.\n  ...\n  389  {\n  390    // Create the implementation, temporarily owned on stack\n  391:   IntrusivePtr<Control> controlImpl = new Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) );\n  392  \n  393    // Pass ownership to handle\n  ...\n  754  }\n  755  \n  756: Control::Control( ControlBehaviour behaviourFlags )\n  757  : CustomActorImpl( static_cast< ActorFlags >( behaviourFlags ) ),\n  758    mImpl(new Impl(*this))\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.h:\n  357  \n  358    // Flags for the constructor\n  359:   enum ControlBehaviour\n  360    {\n  361      REQUIRES_STYLE_CHANGE_SIGNALS        = 1 << ( CustomActorImpl::ACTOR_FLAG_COUNT + 0 ),     ///< True if needs to monitor style change signals such as theme/font change\n  ...\n  370     * @brief Create a Control.\n  371     *\n  372:    * @param[in] behaviourFlags Behavioural flags from ControlBehaviour enum\n  373     */\n  374:   Control(ControlBehaviour behaviourFlags);\n  375  \n  376    /**\n\n/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/scrollable/scroll-component-impl.cpp:\n   59  \n   60  ScrollComponentImpl::ScrollComponentImpl()\n   61: : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) )\n   62  {\n   63  }\n\n44 matches across 31 files\n",
+                       "settings":
+                       {
+                               "buffer_size": 13597,
+                               "line_ending": "Unix",
+                               "name": "Find Results",
+                               "scratch": true
+                       }
+               },
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/new/dali-demo/demo/dali-demo.cpp",
+                       "settings":
+                       {
+                               "buffer_size": 3296,
+                               "line_ending": "Unix"
+                       }
+               }
+       ],
+       "build_system": "",
+       "build_system_choices":
+       [
+       ],
+       "build_varint": "",
+       "command_palette":
+       {
+               "height": 375.0,
+               "last_filter": "Package Control: ",
+               "selected_items":
+               [
+                       [
+                               "Package Control: ",
+                               "Package Control: Install Package"
+                       ],
+                       [
+                               "Package Cont",
+                               "Package Control: Install Package"
+                       ]
+               ],
+               "width": 462.0
+       },
+       "console":
+       {
+               "height": 0.0,
+               "history":
+               [
+               ]
+       },
+       "distraction_free":
+       {
+               "menu_visible": true,
+               "show_minimap": false,
+               "show_open_files": false,
+               "show_tabs": false,
+               "side_bar_visible": false,
+               "status_bar_visible": false
+       },
+       "expanded_folders":
+       [
+               "/homeSERILOCALr.underhill/dev/new",
+               "/homeSERILOCALr.underhill/dev/new/dali-demo",
+               "/homeSERILOCALr.underhill/dev/new/dali-demo/demo",
+               "/homeSERILOCALr.underhill/dev/new/dali-demo/examples",
+               "/homeSERILOCALr.underhill/dev/new/dali-demo/examples/atlas",
+               "/homeSERILOCALr.underhill/dev/new/dali-demo/shared",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-view",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/view",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls"
+       ],
+       "file_history":
+       [
+               "/homeSERILOCALr.underhill/dev/new/dali-demo/shared/view.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/file.list",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.h",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/clash/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali/public-api/animation/alpha-function.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali/internal/event/animation/animation-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/automated-tests/src/dali/utc-Dali-AlphaFunction.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-signals.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/tool-bar/tool-bar-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/file.list",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/decorator/text-decorator.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/text-view.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/material.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/sampler.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/shader.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-impl.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/builder/builder.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h",
+               "/homeSERILOCALr.underhill/dev/apr28/dali-demo/build/tizen/examples/out",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/effects/scene-graph-material.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/demo/dali-table-view.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/shared/view.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/file.list",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/actors/renderer.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/object/property-buffer.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/geometry/geometry.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/geometry/scene-graph-geometry.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label-multi-language/text-label-multi-language-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label/text-label-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label-emojis/text-label-emojis.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/point-mesh/point-mesh-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/resources/complete-status-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/node-attachments/scene-graph-renderer-attachment.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/event/images/atlas-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/mesh-morph/mesh-morph-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/atlas/atlas-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-view/text-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/size-negotiation/size-negotiation-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/scroll-view/scroll-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/motion-stretch/motion-stretch-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/motion-blur/motion-blur-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/logging/logging-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/item-view/item-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/dissolve-effect/dissolve-effect-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/cube-transition-effect/cube-transition-effect-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/cluster/cluster-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/buttons/buttons-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/builder/examples.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/blocks/blocks-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/textured-mesh/textured-mesh-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/docs/generated/html/font_8h_source.html",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/build/tizen/dali-toolkit/Makefile.in",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/Preferences.sublime-settings",
+               "/homeSERILOCALr.underhill/dev/test/dali-core/dali/public-api/object/any.h",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/trailing_spaces.sublime-settings",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/Default (Linux).sublime-keymap",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/TrailingSpaces/trailing_spaces.sublime-settings",
+               "/homeSERILOCALr.underhill/.scripts/nmgrab",
+               "/homeSERILOCALr.underhill/dev/test/dali-core/dali/public-api/object/any.cpp",
+               "/homeSERILOCALr.underhill/.ssh/id_rsa.pub",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings"
+       ],
+       "find":
+       {
+               "height": 37.0
+       },
+       "find_in_files":
+       {
+               "height": 95.0,
+               "where_history":
+               [
+                       "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/mesh-merge/",
+                       "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/demo",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core",
+                       "/homeSERILOCALr.underhill/dev/new_mesh",
+                       "/homeSERILOCALr.underhill/dev/check/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/check/dali-adaptor",
+                       "/homeSERILOCALr.underhill/dev/check/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit"
+               ]
+       },
+       "find_state":
+       {
+               "case_sensitive": false,
+               "find_history":
+               [
+                       "controlbehaviour",
+                       "CONTROL_BEHAVIOUR",
+                       "view",
+                       "style_na",
+                       "setsty",
+                       "scrollovershooteffectr",
+                       "EaseOutQuint50",
+                       "alphafunction",
+                       "alphafunctions",
+                       "alphafunction",
+                       "stage.add",
+                       "mrenderable",
+                       "mrenderableactor",
+                       "blend",
+                       "textab",
+                       "invalid write",
+                       "atlas",
+                       "textabstraction",
+                       "text",
+                       "uniformmap",
+                       "setsortmodifier",
+                       "fragment_shader_b",
+                       "mface",
+                       "blendfunc",
+                       "blendingfunc",
+                       "blendingmode",
+                       "blend",
+                       "mface",
+                       "createme",
+                       "createmes",
+                       "remove",
+                       "index",
+                       "createmes",
+                       "texturedq",
+                       "createmes",
+                       "createmeshac",
+                       "createmesh",
+                       "createmes",
+                       "createan",
+                       "createanim",
+                       "CreateAni",
+                       "createani",
+                       "createanimation",
+                       "CreateBouncingEffect",
+                       "createbou",
+                       "setrelayout",
+                       "setresizepolicy",
+                       "SetResizePolicy",
+                       "TextView",
+                       "textview",
+                       "font",
+                       "font_parameters",
+                       "default_font_parameters",
+                       "default_font",
+                       "defaul",
+                       "DEFAULT_FONT_PARAMETERS",
+                       "default_font_parameters",
+                       "default_font_paramters",
+                       "defaultfontparameter",
+                       "filterscript",
+                       "text-view",
+                       "text-label",
+                       "text-view",
+                       "text-view.cpp",
+                       "text-view",
+                       "public-api/controls/text-view/",
+                       "text-view",
+                       "textview",
+                       "textvie",
+                       "text-view",
+                       "fragment",
+                       "optimize",
+                       "optimizemesh",
+                       "mesh"
+               ],
+               "highlight": true,
+               "in_selection": false,
+               "preserve_case": false,
+               "regex": false,
+               "replace_history":
+               [
+                       "TextLabel"
+               ],
+               "reverse": false,
+               "show_context": true,
+               "use_buffer2": true,
+               "whole_word": false,
+               "wrap": true
+       },
+       "groups":
+       [
+               {
+                       "selected": 12,
+                       "sheets":
+                       [
+                               {
+                                       "buffer": 0,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 13752,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               8968,
+                                                               8968
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 3705.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 14,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 1,
+                                       "file": "scroll-overshoot-indicator-impl.h",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 8339,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               7228,
+                                                               7228
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": -0.0,
+                                               "translation.y": 2940.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 13,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 2,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 33180,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               27892,
+                                                               27892
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 11715.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 12,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 3,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-field-impl.h",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 6419,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               5679,
+                                                               5679
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": -0.0,
+                                               "translation.y": 2475.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 11,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 4,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.h",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 3898,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               3179,
+                                                               3179
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": -0.0,
+                                               "translation.y": 1290.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 10,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 5,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 16273,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               15457,
+                                                               15457
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 6390.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 9,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 6,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 29679,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               9233,
+                                                               9233
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 3459.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 3,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 7,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control-impl.h",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 21305,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               0,
+                                                               0
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 1440.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 4,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 8,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/controls/control.h",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 13810,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               12233,
+                                                               12233
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 1646.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 5,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 9,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/public-api/file.list",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 14166,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               10429,
+                                                               10429
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/Text/Plain text.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 2490.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 7,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 10,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/file.list",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 6651,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               5037,
+                                                               5037
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/Text/Plain text.tmLanguage",
+                                                       "tab_size": 3,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 495.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 6,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 11,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/view/view-impl.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 9817,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               8636,
+                                                               8636
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 3915.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 1,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 12,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/dali-toolkit.h",
+                                       "semi_transient": true,
+                                       "settings":
+                                       {
+                                               "buffer_size": 7449,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               0,
+                                                               0
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage"
+                                               },
+                                               "translation.x": -0.0,
+                                               "translation.y": 765.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 0,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 13,
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 13597,
+                                               "regions":
+                                               {
+                                                       "match":
+                                                       {
+                                                               "flags": 112,
+                                                               "regions":
+                                                               [
+                                                                       [
+                                                                               280,
+                                                                               296
+                                                                       ],
+                                                                       [
+                                                                               561,
+                                                                               577
+                                                                       ],
+                                                                       [
+                                                                               1043,
+                                                                               1059
+                                                                       ],
+                                                                       [
+                                                                               1459,
+                                                                               1475
+                                                                       ],
+                                                                       [
+                                                                               1864,
+                                                                               1880
+                                                                       ],
+                                                                       [
+                                                                               2139,
+                                                                               2155
+                                                                       ],
+                                                                       [
+                                                                               2452,
+                                                                               2468
+                                                                       ],
+                                                                       [
+                                                                               2815,
+                                                                               2831
+                                                                       ],
+                                                                       [
+                                                                               3167,
+                                                                               3183
+                                                                       ],
+                                                                       [
+                                                                               3476,
+                                                                               3492
+                                                                       ],
+                                                                       [
+                                                                               3827,
+                                                                               3843
+                                                                       ],
+                                                                       [
+                                                                               4169,
+                                                                               4185
+                                                                       ],
+                                                                       [
+                                                                               4422,
+                                                                               4438
+                                                                       ],
+                                                                       [
+                                                                               4742,
+                                                                               4758
+                                                                       ],
+                                                                       [
+                                                                               5023,
+                                                                               5039
+                                                                       ],
+                                                                       [
+                                                                               5442,
+                                                                               5458
+                                                                       ],
+                                                                       [
+                                                                               5793,
+                                                                               5809
+                                                                       ],
+                                                                       [
+                                                                               6100,
+                                                                               6116
+                                                                       ],
+                                                                       [
+                                                                               6346,
+                                                                               6362
+                                                                       ],
+                                                                       [
+                                                                               6723,
+                                                                               6739
+                                                                       ],
+                                                                       [
+                                                                               7015,
+                                                                               7031
+                                                                       ],
+                                                                       [
+                                                                               7067,
+                                                                               7083
+                                                                       ],
+                                                                       [
+                                                                               7492,
+                                                                               7508
+                                                                       ],
+                                                                       [
+                                                                               7776,
+                                                                               7792
+                                                                       ],
+                                                                       [
+                                                                               8062,
+                                                                               8078
+                                                                       ],
+                                                                       [
+                                                                               8426,
+                                                                               8442
+                                                                       ],
+                                                                       [
+                                                                               8794,
+                                                                               8810
+                                                                       ],
+                                                                       [
+                                                                               9127,
+                                                                               9143
+                                                                       ],
+                                                                       [
+                                                                               9478,
+                                                                               9494
+                                                                       ],
+                                                                       [
+                                                                               9794,
+                                                                               9810
+                                                                       ],
+                                                                       [
+                                                                               9812,
+                                                                               9828
+                                                                       ],
+                                                                       [
+                                                                               10117,
+                                                                               10133
+                                                                       ],
+                                                                       [
+                                                                               10389,
+                                                                               10405
+                                                                       ],
+                                                                       [
+                                                                               10717,
+                                                                               10733
+                                                                       ],
+                                                                       [
+                                                                               11172,
+                                                                               11188
+                                                                       ],
+                                                                       [
+                                                                               11309,
+                                                                               11325
+                                                                       ],
+                                                                       [
+                                                                               11634,
+                                                                               11650
+                                                                       ],
+                                                                       [
+                                                                               11962,
+                                                                               11978
+                                                                       ],
+                                                                       [
+                                                                               12417,
+                                                                               12433
+                                                                       ],
+                                                                       [
+                                                                               12554,
+                                                                               12570
+                                                                       ],
+                                                                       [
+                                                                               12850,
+                                                                               12866
+                                                                       ],
+                                                                       [
+                                                                               13173,
+                                                                               13189
+                                                                       ],
+                                                                       [
+                                                                               13225,
+                                                                               13241
+                                                                       ],
+                                                                       [
+                                                                               13475,
+                                                                               13491
+                                                                       ]
+                                                               ],
+                                                               "scope": ""
+                                                       }
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               280,
+                                                               320
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "detect_indentation": false,
+                                                       "line_numbers": false,
+                                                       "output_tag": 1,
+                                                       "result_base_dir": "",
+                                                       "result_file_regex": "^([A-Za-z\\\\/<].*):$",
+                                                       "result_line_regex": "^ +([0-9]+):",
+                                                       "scroll_past_end": true,
+                                                       "syntax": "Packages/Default/Find Results.hidden-tmLanguage"
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 0.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 2,
+                                       "type": "text"
+                               },
+                               {
+                                       "buffer": 14,
+                                       "file": "/homeSERILOCALr.underhill/dev/new/dali-demo/demo/dali-demo.cpp",
+                                       "semi_transient": false,
+                                       "settings":
+                                       {
+                                               "buffer_size": 3296,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               984,
+                                                               984
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": 0.0,
+                                               "translation.y": 0.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 8,
+                                       "type": "text"
+                               }
+                       ]
+               }
+       ],
+       "incremental_find":
+       {
+               "height": 23.0
+       },
+       "input":
+       {
+               "height": 0.0
+       },
+       "layout":
+       {
+               "cells":
+               [
+                       [
+                               0,
+                               0,
+                               1,
+                               1
+                       ]
+               ],
+               "cols":
+               [
+                       0.0,
+                       1.0
+               ],
+               "rows":
+               [
+                       0.0,
+                       1.0
+               ]
+       },
+       "menu_visible": true,
+       "output.find_results":
+       {
+               "height": 0.0
+       },
+       "pinned_build_system": "",
+       "project": "merge.sublime-project",
+       "replace":
+       {
+               "height": 42.0
+       },
+       "save_all_on_build": true,
+       "select_file":
+       {
+               "height": 0.0,
+               "last_filter": "",
+               "selected_items":
+               [
+               ],
+               "width": 0.0
+       },
+       "select_project":
+       {
+               "height": 500.0,
+               "last_filter": "",
+               "selected_items":
+               [
+                       [
+                               "",
+                               "~/dev/newmesh.sublime-project"
+                       ]
+               ],
+               "width": 380.0
+       },
+       "select_symbol":
+       {
+               "height": 0.0,
+               "last_filter": "",
+               "selected_items":
+               [
+               ],
+               "width": 0.0
+       },
+       "selected_group": 0,
+       "settings":
+       {
+       },
+       "show_minimap": true,
+       "show_open_files": false,
+       "show_tabs": true,
+       "side_bar_visible": true,
+       "side_bar_width": 503.0,
+       "status_bar_visible": true,
+       "template_settings":
+       {
+       }
+}
index 0d2e728..344a761 100644 (file)
@@ -143,13 +143,14 @@ ScrollOvershootEffectRipple::ScrollOvershootEffectRipple( bool vertical, Scrolla
     mOvershoot(0.0f),
     mAnimationStateFlags(0)
 {
+  /*
   mOvershootOverlay = CreateBouncingEffectActor(mEffectOvershootProperty);
   mOvershootOverlay.SetColor(mAttachedScrollView.GetOvershootEffectColor());
   mOvershootOverlay.SetParentOrigin(ParentOrigin::TOP_LEFT);
   mOvershootOverlay.SetAnchorPoint(AnchorPoint::TOP_LEFT);
   mOvershootOverlay.SetDrawMode(DrawMode::OVERLAY);
   mOvershootOverlay.SetVisible(false);
-
+  */
 }
 
 void ScrollOvershootEffectRipple::Apply()
@@ -158,16 +159,16 @@ void ScrollOvershootEffectRipple::Apply()
   mOvershootProperty = IsVertical() ? Toolkit::ScrollView::Property::OVERSHOOT_Y : Toolkit::ScrollView::Property::OVERSHOOT_X;
 
   // make sure height is set, since we only create a constraint for image width
-  mOvershootOverlay.SetSize(OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.width, OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.height);
+  //mOvershootOverlay.SetSize(OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.width, OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.height);
 
-  mAttachedScrollView.AddOverlay(mOvershootOverlay);
+  //mAttachedScrollView.AddOverlay(mOvershootOverlay);
 
   UpdatePropertyNotifications();
 }
 
 void ScrollOvershootEffectRipple::Remove( Scrollable& scrollable )
 {
-  if(mOvershootOverlay)
+//  if(mOvershootOverlay)
   {
     if(mOvershootIncreaseNotification)
     {
@@ -179,14 +180,14 @@ void ScrollOvershootEffectRipple::Remove( Scrollable& scrollable )
       scrollable.Self().RemovePropertyNotification(mOvershootDecreaseNotification);
       mOvershootDecreaseNotification.Reset();
     }
-    scrollable.RemoveOverlay(mOvershootOverlay);
+    //scrollable.RemoveOverlay(mOvershootOverlay);
   }
 }
 
 void ScrollOvershootEffectRipple::Reset()
 {
-  mOvershootOverlay.SetVisible(false);
-  mOvershootOverlay.SetProperty( mEffectOvershootProperty, 0.f);
+//  mOvershootOverlay.SetVisible(false);
+//  mOvershootOverlay.SetProperty( mEffectOvershootProperty, 0.f);
 }
 
 void ScrollOvershootEffectRipple::UpdatePropertyNotifications()
@@ -233,59 +234,10 @@ void ScrollOvershootEffectRipple::UpdatePropertyNotifications()
 
 void ScrollOvershootEffectRipple::SetOvershootEffectColor( const Vector4& color )
 {
-  if(mOvershootOverlay)
-  {
-    mOvershootOverlay.SetColor(color);
-  }
 }
 
 void ScrollOvershootEffectRipple::UpdateVisibility( bool visible )
 {
-  mOvershootOverlay.SetVisible(visible);
-  // make sure overshoot image is correctly placed
-  if( visible )
-  {
-    Actor self = mAttachedScrollView.Self();
-    if(mOvershoot > 0.0f)
-    {
-      // positive overshoot
-      const Vector3 size = mOvershootOverlay.GetCurrentSize();
-      Vector3 relativeOffset;
-      const Vector3 parentSize = self.GetCurrentSize();
-      if(IsVertical())
-      {
-        mOvershootOverlay.SetOrientation( Quaternion( Radian( 0.0f ), Vector3::ZAXIS ) );
-        mOvershootOverlay.SetSize(parentSize.width, GetBounceActorHeight(parentSize.width), size.depth);
-      }
-      else
-      {
-        mOvershootOverlay.SetOrientation( Quaternion( Radian( 1.5f * Math::PI ), Vector3::ZAXIS ) );
-        mOvershootOverlay.SetSize(parentSize.height, GetBounceActorHeight(parentSize.height), size.depth);
-        relativeOffset = Vector3(0.0f, 1.0f, 0.0f);
-      }
-      mOvershootOverlay.SetPosition(relativeOffset * parentSize);
-    }
-    else
-    {
-      // negative overshoot
-      const Vector3 size = mOvershootOverlay.GetCurrentSize();
-      Vector3 relativeOffset;
-      const Vector3 parentSize = self.GetCurrentSize();
-      if(IsVertical())
-      {
-        mOvershootOverlay.SetOrientation( Quaternion( Radian( Math::PI ), Vector3::ZAXIS ) );
-        mOvershootOverlay.SetSize(parentSize.width, GetBounceActorHeight(parentSize.width), size.depth);
-        relativeOffset = Vector3(1.0f, 1.0f, 0.0f);
-      }
-      else
-      {
-        mOvershootOverlay.SetOrientation( Quaternion( Radian( 0.5f * Math::PI ), Vector3::ZAXIS ) );
-        mOvershootOverlay.SetSize(parentSize.height, GetBounceActorHeight(parentSize.height), size.depth);
-        relativeOffset = Vector3(1.0f, 0.0f, 0.0f);
-      }
-      mOvershootOverlay.SetPosition(relativeOffset * parentSize);
-    }
-  }
 }
 
 void ScrollOvershootEffectRipple::OnOvershootNotification(PropertyNotification& source)
@@ -330,8 +282,8 @@ void ScrollOvershootEffectRipple::SetOvershoot(float amount, bool animate)
 
   if( animate && overshootAnimationSpeed > Math::MACHINE_EPSILON_0 )
   {
-    float currentOvershoot = fabsf( mOvershootOverlay.GetProperty( mEffectOvershootProperty ).Get<float>() );
-    float duration = mOvershootOverlay.GetCurrentSize().height * (animatingOn ? (1.0f - currentOvershoot) : currentOvershoot) / overshootAnimationSpeed;
+    //float currentOvershoot = 0.0f;//fabsf( mOvershootOverlay.GetProperty( mEffectOvershootProperty ).Get<float>() );
+    float duration = 0.05f;//mOvershootOverlay.GetCurrentSize().height * (animatingOn ? (1.0f - currentOvershoot) : currentOvershoot) / overshootAnimationSpeed;
 
     if( duration > Math::MACHINE_EPSILON_0 )
     {
@@ -343,14 +295,14 @@ void ScrollOvershootEffectRipple::SetOvershoot(float amount, bool animate)
       }
       mScrollOvershootAnimation = Animation::New(duration);
       mScrollOvershootAnimation.FinishedSignal().Connect( this, &ScrollOvershootEffectRipple::OnOvershootAnimFinished );
-      mScrollOvershootAnimation.AnimateTo( Property(mOvershootOverlay, mEffectOvershootProperty), amount, TimePeriod(duration) );
+      //mScrollOvershootAnimation.AnimateTo( Property(mOvershootOverlay, mEffectOvershootProperty), amount, TimePeriod(duration) );
       mScrollOvershootAnimation.Play();
       mAnimationStateFlags = animatingOn ? AnimatingIn : AnimatingOut;
     }
   }
   else
   {
-    mOvershootOverlay.SetProperty( mEffectOvershootProperty, amount);
+    //mOvershootOverlay.SetProperty( mEffectOvershootProperty, amount);
   }
 }
 
@@ -360,7 +312,7 @@ void ScrollOvershootEffectRipple::OnOvershootAnimFinished(Animation& animation)
   if( mAnimationStateFlags & AnimatingOut )
   {
     // should now be offscreen
-    mOvershootOverlay.SetVisible(false);
+    //mOvershootOverlay.SetVisible(false);
   }
   if( (mAnimationStateFlags & AnimateBack) )
   {
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-project b/dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-project
new file mode 100644 (file)
index 0000000..79164c3
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "folders":
+       [
+               {
+                       "path": "/homeSERILOCALr.underhill/dev/tizen"
+               }
+       ]
+}
diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-workspace b/dali-toolkit/internal/controls/scrollable/scroll-view/tizen.sublime-workspace
new file mode 100644 (file)
index 0000000..a7478df
--- /dev/null
@@ -0,0 +1,545 @@
+{
+       "auto_complete":
+       {
+               "selected_items":
+               [
+                       [
+                               "Set",
+                               "SetBlendMode"
+                       ],
+                       [
+                               "STYLE_",
+                               "STYLE_DROP_SHADOW"
+                       ],
+                       [
+                               "nom",
+                               "normIndices"
+                       ],
+                       [
+                               "norm",
+                               "normVerts"
+                       ],
+                       [
+                               "nomr",
+                               "normVerts"
+                       ],
+                       [
+                               "shadow",
+                               "shadowOffset"
+                       ],
+                       [
+                               "mesh",
+                               "meshRecord"
+                       ],
+                       [
+                               "Text",
+                               "TextLabel"
+                       ],
+                       [
+                               "FRAGMENT_SHADER_",
+                               "FRAGMENT_SHADER_BGRA"
+                       ],
+                       [
+                               "complete",
+                               "completeCount"
+                       ],
+                       [
+                               "mV",
+                               "mVertices"
+                       ],
+                       [
+                               "print",
+                               "PrintMeshData"
+                       ],
+                       [
+                               "vetex",
+                               "vertexBuffer"
+                       ],
+                       [
+                               "inde",
+                               "indexBuffer"
+                       ],
+                       [
+                               "ind",
+                               "indexCount"
+                       ],
+                       [
+                               "ver",
+                               "vertexBuffer"
+                       ],
+                       [
+                               "quad",
+                               "quadData"
+                       ],
+                       [
+                               "qua",
+                               "quadData"
+                       ],
+                       [
+                               "q",
+                               "quadData"
+                       ],
+                       [
+                               "C",
+                               "Count"
+                       ],
+                       [
+                               "gl",
+                               "gl_FragColor"
+                       ],
+                       [
+                               "mAtlas",
+                               "mAtlasId"
+                       ],
+                       [
+                               "mAtl",
+                               "mAtlasId"
+                       ],
+                       [
+                               "texturedQuad",
+                               "texturedQuadGeometry"
+                       ],
+                       [
+                               "Mesh",
+                               "MeshRecord"
+                       ],
+                       [
+                               "Atlas",
+                               "AtlasGlyphManager"
+                       ],
+                       [
+                               "Property",
+                               "PropertyBuffer"
+                       ],
+                       [
+                               "atlas",
+                               "atlasDescriptor"
+                       ],
+                       [
+                               "op",
+                               "optimizedMesh"
+                       ],
+                       [
+                               "vertex",
+                               "vertexCount"
+                       ],
+                       [
+                               "Atl",
+                               "AtlasSlotDescriptor"
+                       ],
+                       [
+                               "he",
+                               "heightInBlocks"
+                       ],
+                       [
+                               "wid",
+                               "widthInBlocks"
+                       ],
+                       [
+                               "imag",
+                               "imageHeight"
+                       ],
+                       [
+                               "image",
+                               "imageWidth"
+                       ]
+               ]
+       },
+       "buffers":
+       [
+               {
+                       "file": "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.h",
+                       "settings":
+                       {
+                               "buffer_size": 8339,
+                               "line_ending": "Unix"
+                       }
+               }
+       ],
+       "build_system": "",
+       "build_system_choices":
+       [
+       ],
+       "build_varint": "",
+       "command_palette":
+       {
+               "height": 375.0,
+               "last_filter": "Package Control: ",
+               "selected_items":
+               [
+                       [
+                               "Package Control: ",
+                               "Package Control: Install Package"
+                       ],
+                       [
+                               "Package Cont",
+                               "Package Control: Install Package"
+                       ]
+               ],
+               "width": 462.0
+       },
+       "console":
+       {
+               "height": 0.0,
+               "history":
+               [
+               ]
+       },
+       "distraction_free":
+       {
+               "menu_visible": true,
+               "show_minimap": false,
+               "show_open_files": false,
+               "show_tabs": false,
+               "side_bar_visible": false,
+               "status_bar_visible": false
+       },
+       "expanded_folders":
+       [
+               "/homeSERILOCALr.underhill/dev/tizen",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal/controls",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal/controls/scrollable",
+               "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view"
+       ],
+       "file_history":
+       [
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/controls/control-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/file.list",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/shadow-view/shadow-view-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.h",
+               "/homeSERILOCALr.underhill/dev/new/dali-toolkit/dali-toolkit/internal/builder/builder-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/clash/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali/public-api/animation/alpha-function.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali/internal/event/animation/animation-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/automated-tests/src/dali/utc-Dali-AlphaFunction.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-signals.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/tool-bar/tool-bar-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/file.list",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/decorator/text-decorator.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/text-view.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/material.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/sampler.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/shader-effects/shader.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-impl.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/public-api/builder/builder.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-animations.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager-impl.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h",
+               "/homeSERILOCALr.underhill/dev/apr28/dali-demo/build/tizen/examples/out",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/effects/scene-graph-material.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/demo/dali-table-view.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/shared/view.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/builder/builder-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/file.list",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/actors/renderer.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/object/property-buffer.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/public-api/geometry/geometry.h",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/geometry/scene-graph-geometry.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label-multi-language/text-label-multi-language-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label/text-label-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-label-emojis/text-label-emojis.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/point-mesh/point-mesh-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/resources/complete-status-manager.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/update/node-attachments/scene-graph-renderer-attachment.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali/internal/event/images/atlas-impl.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/mesh-morph/mesh-morph-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/atlas/atlas-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/text-view/text-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/size-negotiation/size-negotiation-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/scroll-view/scroll-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/motion-stretch/motion-stretch-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/motion-blur/motion-blur-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/logging/logging-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/item-view/item-view-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/dissolve-effect/dissolve-effect-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/cube-transition-effect/cube-transition-effect-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/cluster/cluster-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/buttons/buttons-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/builder/examples.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/blocks/blocks-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples/textured-mesh/textured-mesh-example.cpp",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/docs/generated/html/font_8h_source.html",
+               "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/build/tizen/dali-toolkit/Makefile.in",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/Preferences.sublime-settings",
+               "/homeSERILOCALr.underhill/dev/test/dali-core/dali/public-api/object/any.h",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/trailing_spaces.sublime-settings",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/User/Default (Linux).sublime-keymap",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/TrailingSpaces/trailing_spaces.sublime-settings",
+               "/homeSERILOCALr.underhill/.scripts/nmgrab",
+               "/homeSERILOCALr.underhill/dev/test/dali-core/dali/public-api/object/any.cpp",
+               "/homeSERILOCALr.underhill/.ssh/id_rsa.pub",
+               "/homeSERILOCALr.underhill/.config/sublime-text-3/Packages/Package Control/Package Control.sublime-settings"
+       ],
+       "find":
+       {
+               "height": 37.0
+       },
+       "find_in_files":
+       {
+               "height": 95.0,
+               "where_history":
+               [
+                       "/homeSERILOCALr.underhill/dev/mesh-merge/",
+                       "/homeSERILOCALr.underhill/dev/mesh-merge/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit/",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/demo",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-demo/examples",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core",
+                       "/homeSERILOCALr.underhill/dev/new_mesh",
+                       "/homeSERILOCALr.underhill/dev/check/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/check/dali-adaptor",
+                       "/homeSERILOCALr.underhill/dev/check/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-core/dali",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/",
+                       "/homeSERILOCALr.underhill/dev/new_mesh/dali-toolkit/dali-toolkit"
+               ]
+       },
+       "find_state":
+       {
+               "case_sensitive": false,
+               "find_history":
+               [
+                       "style_na",
+                       "setsty",
+                       "scrollovershooteffectr",
+                       "EaseOutQuint50",
+                       "alphafunction",
+                       "alphafunctions",
+                       "alphafunction",
+                       "stage.add",
+                       "mrenderable",
+                       "mrenderableactor",
+                       "blend",
+                       "textab",
+                       "invalid write",
+                       "atlas",
+                       "textabstraction",
+                       "text",
+                       "uniformmap",
+                       "setsortmodifier",
+                       "fragment_shader_b",
+                       "mface",
+                       "blendfunc",
+                       "blendingfunc",
+                       "blendingmode",
+                       "blend",
+                       "mface",
+                       "createme",
+                       "createmes",
+                       "remove",
+                       "index",
+                       "createmes",
+                       "texturedq",
+                       "createmes",
+                       "createmeshac",
+                       "createmesh",
+                       "createmes",
+                       "createan",
+                       "createanim",
+                       "CreateAni",
+                       "createani",
+                       "createanimation",
+                       "CreateBouncingEffect",
+                       "createbou",
+                       "setrelayout",
+                       "setresizepolicy",
+                       "SetResizePolicy",
+                       "TextView",
+                       "textview",
+                       "font",
+                       "font_parameters",
+                       "default_font_parameters",
+                       "default_font",
+                       "defaul",
+                       "DEFAULT_FONT_PARAMETERS",
+                       "default_font_parameters",
+                       "default_font_paramters",
+                       "defaultfontparameter",
+                       "filterscript",
+                       "text-view",
+                       "text-label",
+                       "text-view",
+                       "text-view.cpp",
+                       "text-view",
+                       "public-api/controls/text-view/",
+                       "text-view",
+                       "textview",
+                       "textvie",
+                       "text-view",
+                       "fragment",
+                       "optimize",
+                       "optimizemesh",
+                       "mesh"
+               ],
+               "highlight": true,
+               "in_selection": false,
+               "preserve_case": false,
+               "regex": false,
+               "replace_history":
+               [
+                       "TextLabel"
+               ],
+               "reverse": false,
+               "show_context": true,
+               "use_buffer2": true,
+               "whole_word": false,
+               "wrap": true
+       },
+       "groups":
+       [
+               {
+                       "selected": 0,
+                       "sheets":
+                       [
+                               {
+                                       "buffer": 0,
+                                       "file": "/homeSERILOCALr.underhill/dev/tizen/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.h",
+                                       "semi_transient": true,
+                                       "settings":
+                                       {
+                                               "buffer_size": 8339,
+                                               "regions":
+                                               {
+                                               },
+                                               "selection":
+                                               [
+                                                       [
+                                                               7226,
+                                                               7331
+                                                       ]
+                                               ],
+                                               "settings":
+                                               {
+                                                       "syntax": "Packages/C++/C++.tmLanguage",
+                                                       "tab_size": 2,
+                                                       "translate_tabs_to_spaces": true
+                                               },
+                                               "translation.x": -0.0,
+                                               "translation.y": 3225.0,
+                                               "zoom_level": 1.0
+                                       },
+                                       "stack_index": 0,
+                                       "type": "text"
+                               }
+                       ]
+               }
+       ],
+       "incremental_find":
+       {
+               "height": 23.0
+       },
+       "input":
+       {
+               "height": 0.0
+       },
+       "layout":
+       {
+               "cells":
+               [
+                       [
+                               0,
+                               0,
+                               1,
+                               1
+                       ]
+               ],
+               "cols":
+               [
+                       0.0,
+                       1.0
+               ],
+               "rows":
+               [
+                       0.0,
+                       1.0
+               ]
+       },
+       "menu_visible": true,
+       "output.find_results":
+       {
+               "height": 0.0
+       },
+       "pinned_build_system": "",
+       "project": "tizen.sublime-project",
+       "replace":
+       {
+               "height": 42.0
+       },
+       "save_all_on_build": true,
+       "select_file":
+       {
+               "height": 0.0,
+               "last_filter": "",
+               "selected_items":
+               [
+               ],
+               "width": 0.0
+       },
+       "select_project":
+       {
+               "height": 500.0,
+               "last_filter": "",
+               "selected_items":
+               [
+                       [
+                               "",
+                               "~/dev/new/dali-toolkit/dali-toolkit/internal/controls/scrollable/scroll-view/merge.sublime-project"
+                       ]
+               ],
+               "width": 380.0
+       },
+       "select_symbol":
+       {
+               "height": 0.0,
+               "last_filter": "",
+               "selected_items":
+               [
+               ],
+               "width": 0.0
+       },
+       "selected_group": 0,
+       "settings":
+       {
+       },
+       "show_minimap": true,
+       "show_open_files": false,
+       "show_tabs": true,
+       "side_bar_visible": true,
+       "side_bar_width": 390.0,
+       "status_bar_visible": true,
+       "template_settings":
+       {
+       }
+}
index dc9545a..aec9e08 100644 (file)
@@ -870,7 +870,7 @@ void TextField::OnRelayout( const Vector2& size, RelayoutContainer& container )
       mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
     }
 
-    RenderableActor renderableActor;
+    Actor renderableActor;
     if( mRenderer )
     {
       renderableActor = mRenderer->Render( mController->GetView() );
index 5292178..b57a171 100644 (file)
@@ -199,7 +199,7 @@ private: // Data
   Text::DecoratorPtr mDecorator;
   Text::ClipperPtr mClipper; ///< For EXCEED_POLICY_CLIP
 
-  RenderableActor mRenderableActor;
+  Actor mRenderableActor;
 
   int mRenderingBackend;
   int mExceedPolicy;
index 5c6fd53..e888911 100644 (file)
@@ -457,7 +457,7 @@ void TextLabel::OnRelayout( const Vector2& size, RelayoutContainer& container )
       mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
     }
 
-    RenderableActor renderableActor;
+    Actor renderableActor;
     if( mRenderer )
     {
       renderableActor = mRenderer->Render( mController->GetView() );
index 54c2554..528a16f 100644 (file)
@@ -124,7 +124,7 @@ private: // Data
 
   Text::ControllerPtr mController;
   Text::RendererPtr mRenderer;
-  RenderableActor mRenderableActor;
+  Actor mRenderableActor;
 
   int mRenderingBackend;
 };
index d8402d7..d9e85c5 100644 (file)
@@ -19,7 +19,7 @@
 #include "tool-bar-impl.h"
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/animation/constraints.h>
 #include <dali/public-api/object/type-registry.h>
 #include <dali/devel-api/object/type-registry-helper.h>
@@ -76,7 +76,7 @@ void ToolBar::SetBackground( Actor background )
   background.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER );
   background.SetSize( Vector2( mToolBarSize.width, mToolBarSize.height ) );
 
-  RenderableActor renderableActor = RenderableActor::DownCast( background );
+  ImageActor renderableActor = ImageActor::DownCast( background );
   if ( renderableActor )
   {
     renderableActor.SetSortModifier( 1.f );
diff --git a/dali-toolkit/internal/controls/view/view-impl.cpp b/dali-toolkit/internal/controls/view/view-impl.cpp
new file mode 100644 (file)
index 0000000..280bd24
--- /dev/null
@@ -0,0 +1,346 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include "view-impl.h"
+
+// EXTERNAL INCLUDES
+#include <cstring> // for strcmp
+#include <dali/public-api/animation/constraints.h>
+#include <dali/public-api/common/stage.h>
+#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal
+{
+
+namespace
+{
+
+BaseHandle Create()
+{
+  return Toolkit::View::New();
+}
+
+DALI_TYPE_REGISTRATION_BEGIN( Toolkit::View, Toolkit::Control, Create )
+
+//DALI_SIGNAL_REGISTRATION( View, "orientation-animation-start", SIGNAL_ORIENTATION_ANIMATION_START )
+
+DALI_TYPE_REGISTRATION_END()
+
+const float ROTATION_ANIMATION_DURATION = 0.5f;
+
+}
+
+Toolkit::View View::New( bool fullscreen )
+{
+  // Create the implementation, temporarily owned by this handle on stack
+  IntrusivePtr< View > internalView = new View(fullscreen);
+
+  // Pass ownership to CustomActor handle
+  Toolkit::View view( *internalView );
+
+  // Second-phase init of the implementation
+  // This can only be done after the CustomActor connection has been made...
+  internalView->Initialize();
+
+  return view;
+}
+
+Layer View::GetContentLayer( unsigned int index ) const
+{
+  // Returns the layer stored in the layer map.
+  Layer layer;
+
+  LayerConstIt it = mContentLayers.find( index );
+
+  if( it != mContentLayers.end() )
+  {
+    layer = it->second;
+  }
+
+  return layer;
+}
+
+unsigned int View::AddContentLayer( Layer layer )
+{
+  // layer must exist.
+  DALI_ASSERT_ALWAYS( layer );
+
+  unsigned int index = mNextLayerIndex;
+  LayerIt it = FindLayer( layer );
+
+  if( it == mContentLayers.end() )
+  {
+    // Add layer to the custom actor.
+    Self().Add( layer );
+
+    // Store the layer.
+    mContentLayers[mNextLayerIndex] = layer;
+
+    // Increase the index.
+    ++mNextLayerIndex;
+  }
+
+  return index;
+}
+
+void View::RemoveContentLayer( Layer layer )
+{
+  // Check if layer was added in this view.
+  LayerIt it = FindLayer( layer );
+  if( it != mContentLayers.end() )
+  {
+    // Remove layer from custom actor.
+    Self().Remove( layer );
+
+    // Remove layer from layer map.
+    mContentLayers.erase( it );
+  }
+}
+
+Layer View::GetBackgroundLayer() const
+{
+  return mBackgroundLayer;
+}
+
+void View::SetBackground( ImageActor backgroundImage )
+{
+  // Create background layer if doesn't exist.
+
+  if( !mBackgroundLayer )
+  {
+    mBackgroundLayer = Layer::New();
+
+    mBackgroundLayer.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
+    mBackgroundLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+
+    // Add background layer to custom actor.
+    Self().Add( mBackgroundLayer );
+
+    // Drop the background layer
+
+    DALI_ASSERT_ALWAYS( mBackgroundLayer.OnStage() ); // We need to be on-stage to drop the layer
+    mBackgroundLayer.LowerToBottom();
+  }
+  else
+  {
+    // It removes the old background
+    if( 0 < mBackgroundLayer.GetChildCount() )
+    {
+      mBackgroundLayer.Remove( mBackgroundLayer.GetChildAt(0) );
+    }
+  }
+
+  backgroundImage.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
+  backgroundImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+  backgroundImage.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO );
+  mBackgroundLayer.Add( backgroundImage );
+
+  RelayoutRequest();
+}
+
+void View::SetOrientationFunction( Degree portrait, Degree landscale, Degree portraitInverse, Degree landscapeInverse )
+{
+  mOrientationFunction[View::PORTRAIT] = portrait.degree;
+  mOrientationFunction[View::LANDSCAPE] = landscale.degree;
+  mOrientationFunction[View::PORTRAIT_INVERSE] = portraitInverse.degree;
+  mOrientationFunction[View::LANDSCAPE_INVERSE] = landscapeInverse.degree;
+}
+
+void View::OrientationChanged( Dali::Orientation orientation )
+{
+  /*
+  Actor self = Self();
+
+  // Nothing to do if orientation doesn't really change.
+  if ( orientation.GetDegrees() == mOrientation || !mAutoRotateEnabled )
+  {
+    return;
+  }
+
+  mOrientation = orientation.GetDegrees();
+
+  // has parent so we expect it to be on stage
+  mRotateAnimation = Animation::New( ROTATION_ANIMATION_DURATION );
+  mRotateAnimation.AnimateTo( Property( self, Actor::Property::ORIENTATION ), Quaternion( Radian( -orientation.GetRadians() ), Vector3::ZAXIS ), AlphaFunctions::EaseOut );
+
+  // Resize the view
+  if( mFullScreen )
+  {
+    const Vector2& stageSize( Stage::GetCurrent().GetSize() );
+    const Vector3& currentSize( self.GetCurrentSize() );
+
+    float minSize = std::min( stageSize.width, stageSize.height );
+    float maxSize = std::max( stageSize.width, stageSize.height );
+
+    Vector3 targetSize;
+    View::Orientation viewOrientation = DegreeToViewOrientation( Degree( orientation.GetDegrees() ) );
+    switch( viewOrientation )
+    {
+      case View::PORTRAIT:          // Fallthrough
+      case View::PORTRAIT_INVERSE:
+        targetSize = Vector3( minSize, maxSize, currentSize.depth );
+        break;
+      case View::LANDSCAPE:         // Fallthrough
+      case View::LANDSCAPE_INVERSE:
+        targetSize = Vector3( maxSize, minSize, currentSize.depth );
+        break;
+      default:
+        DALI_ASSERT_ALWAYS( false );
+    }
+
+    // if we linearly resize from portrait to landscape halfway through the animation
+    // we get size which is square between the both. This would cause a square image to grow
+    // if it is fitted to be 100% of view size. Therefore we do a nonlinear size animation
+    // where we shrink faster
+    // which one grows
+    if( targetSize.width > currentSize.width )
+    {
+      // width grows, shrink height faster
+      Vector3 shrink( currentSize );shrink.height = targetSize.height;
+      mRotateAnimation.AnimateTo( Property( self, Actor::Property::SIZE ), shrink, AlphaFunctions::EaseOut, TimePeriod( 0.0f, ROTATION_ANIMATION_DURATION * 0.5f ) );
+      mRotateAnimation.AnimateTo( Property( self, Actor::Property::SIZE ), targetSize, AlphaFunctions::EaseIn, TimePeriod( 0.0f, ROTATION_ANIMATION_DURATION ) );
+    }
+    else
+    {
+      // height grows, shrink width faster
+      Vector3 shrink( currentSize );shrink.width = targetSize.width;
+      mRotateAnimation.AnimateTo( Property( self, Actor::Property::SIZE ), shrink, AlphaFunctions::EaseOut, TimePeriod( 0.0f, ROTATION_ANIMATION_DURATION * 0.5f ) );
+      mRotateAnimation.AnimateTo( Property( self, Actor::Property::SIZE ), targetSize, AlphaFunctions::EaseIn, TimePeriod( 0.0f, ROTATION_ANIMATION_DURATION ) );
+    }
+  }
+
+  Toolkit::View handle( GetOwner() );
+  mOrientationAnimationStartedSignal.Emit( handle, mRotateAnimation, orientation );
+
+  mRotateAnimation.Play();
+  */
+}
+
+void View::SetAutoRotate( bool enabled )
+{
+  mAutoRotateEnabled = enabled;
+}
+
+Toolkit::View::OrientationAnimationStartedSignalType& View::OrientationAnimationStartedSignal()
+{
+  return mOrientationAnimationStartedSignal;
+}
+
+bool View::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
+{
+  return true;
+
+  /*
+  Dali::BaseHandle handle( object );
+
+  bool connected( true );
+  Toolkit::View view = Toolkit::View::DownCast(handle);
+
+  if( 0 == strcmp( signalName.c_str(), SIGNAL_ORIENTATION_ANIMATION_START ) )
+  {
+    view.OrientationAnimationStartedSignal().Connect( tracker, functor );
+  }
+  else
+  {
+    // signalName does not match any signal
+    connected = false;
+  }
+
+  return connected;
+  */
+}
+
+View::View(bool fullscreen)
+: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ),
+  mOrientation( -1 ),
+  mFullScreen(fullscreen),
+  mContentLayers(),
+  mNextLayerIndex( 0 ),
+  mOrientationFunction(),
+  mAutoRotateEnabled( true )
+{
+  mOrientationFunction[View::PORTRAIT] = 0.f;
+  mOrientationFunction[View::LANDSCAPE] = 90.f;
+  mOrientationFunction[View::PORTRAIT_INVERSE] = 180.f;
+  mOrientationFunction[View::LANDSCAPE_INVERSE] =  270.f;
+}
+
+View::~View()
+{
+}
+
+void View::OnInitialize()
+{
+  Self().SetAnchorPoint( AnchorPoint::CENTER );
+  Self().SetParentOrigin( ParentOrigin::CENTER );
+
+  if( mFullScreen )
+  {
+    Self().SetSize( Stage::GetCurrent().GetSize() );
+  }
+}
+
+View::Orientation View::DegreeToViewOrientation( Degree degree )
+{
+  View::Orientation orientation = PORTRAIT;
+
+  if( fabsf( mOrientationFunction[PORTRAIT] - degree.degree ) <= GetRangedEpsilon( mOrientationFunction[PORTRAIT], degree.degree ) )
+  {
+    orientation =  PORTRAIT;
+  }
+  else if( fabsf( mOrientationFunction[LANDSCAPE] - degree.degree ) <= GetRangedEpsilon( mOrientationFunction[LANDSCAPE], degree.degree ) )
+  {
+    orientation = LANDSCAPE;
+  }
+  else if( fabsf( mOrientationFunction[PORTRAIT_INVERSE] - degree.degree ) <= GetRangedEpsilon( mOrientationFunction[PORTRAIT_INVERSE], degree.degree ) )
+  {
+    orientation = PORTRAIT_INVERSE;
+  }
+  else if( fabsf( mOrientationFunction[LANDSCAPE_INVERSE] - degree.degree ) <= GetRangedEpsilon( mOrientationFunction[LANDSCAPE_INVERSE], degree.degree ) )
+  {
+    orientation = LANDSCAPE_INVERSE;
+  }
+
+  return orientation;
+}
+
+View::LayerIt View::FindLayer( Layer layer )
+{
+  for( LayerIt it = mContentLayers.begin(); it != mContentLayers.end(); ++it )
+  {
+    if(layer == it->second)
+    {
+      return it;
+    }
+  }
+
+  return mContentLayers.end();
+}
+
+} // namespace Internal
+
+} // namespace Toolkit
+
+} // namespace Dali
diff --git a/dali-toolkit/internal/controls/view/view-impl.h b/dali-toolkit/internal/controls/view/view-impl.h
new file mode 100644 (file)
index 0000000..b956eae
--- /dev/null
@@ -0,0 +1,208 @@
+#ifndef __DALI_TOOLKIT_INTERNAL_VIEW_H__
+#define __DALI_TOOLKIT_INTERNAL_VIEW_H__
+
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/actors/layer.h>
+#include <dali/public-api/animation/animation.h>
+#include <dali/public-api/common/map-wrapper.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali-toolkit/public-api/controls/view/view.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+class View;
+
+namespace Internal
+{
+
+/**
+ * View is a control to add layers and a background.
+ * @see Dali::Toolkit::View for more details.
+ */
+class View : public Control
+{
+private:
+  typedef std::map<unsigned int,Layer> LayerContainer;
+  typedef std::map<unsigned int,Layer>::iterator LayerIt;
+  typedef std::map<unsigned int,Layer>::const_iterator LayerConstIt;
+
+  /**
+   * Orientation declaration used internally to rotate the view.
+   * The angles associated with each enum value could be changed with the SetOrientationFunction method.
+   */
+  enum Orientation
+  {
+    PORTRAIT,          ///< portrait orientation.
+    LANDSCAPE,         ///< landscape orientation.
+    PORTRAIT_INVERSE,  ///< portrait inverse orientation.
+    LANDSCAPE_INVERSE  ///< landscape inverse orientation.
+  };
+
+public:
+
+  /**
+   * Create an initialized View.
+   * @param fullscreen If true, the view's size is going to be set with the Dali::Stage size. Otherwise a size must be provided.
+   * @return A handle to a newly allocated Dali resource.
+   */
+  static Toolkit::View New( bool fullscreen );
+
+  /**
+   * @copydoc Dali::Toolkit::View::GetContentLayer()
+   */
+  Layer GetContentLayer( unsigned int index ) const;
+
+  /**
+   * @copydoc Dali::Toolkit::View::AddContentLayer()
+   */
+  unsigned int AddContentLayer( Layer layer );
+
+  /**
+   * @copydoc Dali::Toolkit::View::RemoveContentLayer()
+   */
+  void RemoveContentLayer( Layer layer );
+
+  /**
+   * @copydoc Dali::Toolkit::View::GetBackgroundLayer()
+   */
+  Layer GetBackgroundLayer() const;
+
+  /**
+   * @copydoc Dali::Toolkit::View::SetBackground()
+   */
+  void SetBackground( ImageActor image );
+
+  /**
+   * @copydoc Dali::Toolkit::View::SetOrientationFunction()
+   */
+  void SetOrientationFunction( Degree portrait, Degree landscale, Degree portraitInverse, Degree landscapeInverse );
+
+  /**
+   * @copydoc Dali::Toolkit::View::OrientationChanged()
+   *
+   */
+  void OrientationChanged( Dali::Orientation orientation );
+
+  /**
+   * @copydoc Dali::Toolkit::View::SetAutoRotate()
+   *
+   */
+  void SetAutoRotate( bool enabled );
+
+public:
+
+  /**
+   * @copydoc Dali::Toolkit::View::AnimationStartedSignalOrientation()
+   */
+  Toolkit::View::OrientationAnimationStartedSignalType& OrientationAnimationStartedSignal();
+
+  /**
+   * Connects a callback function with the object's signals.
+   * @param[in] object The object providing the signal.
+   * @param[in] tracker Used to disconnect the signal.
+   * @param[in] signalName The signal to connect to.
+   * @param[in] functor A newly allocated FunctorDelegate.
+   * @return True if the signal was connected.
+   * @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the caller is responsible for deleting the unused functor.
+   */
+  static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor );
+
+private: // From Control
+
+  /**
+   * @copydoc Toolkit::Control::OnInitialize()
+   */
+  virtual void OnInitialize();
+
+private:
+
+
+  /**
+   * Constructor.
+   * It initializes View members.
+   * It initializes orientations as follows: portrait 0, landscape 90, portrait inverse 180, landscape inverse 270.
+   * @param fullscreen If true, the view's size is going to be set with the Dali::Stage size. Otherwise a size must be provided.
+   */
+  View(bool fullscreen);
+
+  /**
+   * A reference counted object may only be deleted by calling Unreference()
+   */
+  virtual ~View();
+
+  /**
+   * Return an orientation for the given angle in degrees.
+   * @param degree angle in degrees.
+   * @return An internal orientation.
+   */
+  View::Orientation DegreeToViewOrientation( Degree degree );
+
+  /**
+   * Find a layer in the layer container. Non const method
+   */
+  LayerIt FindLayer( Layer layer );
+
+private:
+  int            mOrientation;            ///< Stores the given orientation in degrees.
+  bool           mFullScreen;             ///< Stores if the view is fullscreen or not.
+  LayerContainer mContentLayers;          ///< Layer container.
+  unsigned int   mNextLayerIndex;         ///< Next index to be used when a layer is added.
+  Layer          mBackgroundLayer;        ///< The background layer.
+  Animation      mRotateAnimation;        ///< The animation which rotates the view (and all layers added to it)
+  float          mOrientationFunction[4]; ///< The orientation function used to transform from degrees to the internal orientation.
+  bool           mAutoRotateEnabled;      ///< Whether the view rotates if the OrientationChanged method is called.
+
+  Toolkit::View::OrientationAnimationStartedSignalType mOrientationAnimationStartedSignal;
+};
+
+} // namespace Internal
+
+
+// Helpers for public-api forwarding methods
+
+inline Toolkit::Internal::View& GetImpl( Toolkit::View& view )
+{
+  DALI_ASSERT_ALWAYS( view );
+
+  Dali::RefObject& handle = view.GetImplementation();
+
+  return static_cast<Toolkit::Internal::View&>( handle );
+}
+
+inline const Toolkit::Internal::View& GetImpl( const Toolkit::View& view )
+{
+  DALI_ASSERT_ALWAYS( view );
+
+  const Dali::RefObject& handle = view.GetImplementation();
+
+  return static_cast<const Toolkit::Internal::View&>( handle );
+}
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_INTERNAL_VIEW_H__
index b39bf81..7eaa5cd 100644 (file)
@@ -14,7 +14,6 @@ toolkit_src_files = \
    $(toolkit_src_dir)/builder/replacement.cpp \
    $(toolkit_src_dir)/controls/alignment/alignment-impl.cpp \
    $(toolkit_src_dir)/controls/bloom-view/bloom-view-impl.cpp \
-   $(toolkit_src_dir)/controls/bubble-effect/bubble-emitter-impl.cpp \
    $(toolkit_src_dir)/controls/buttons/button-impl.cpp \
    $(toolkit_src_dir)/controls/buttons/check-box-button-impl.cpp \
    $(toolkit_src_dir)/controls/buttons/push-button-impl.cpp \
index 2e8570f..34b3726 100644 (file)
@@ -24,7 +24,6 @@
 #include <dali/public-api/adaptor-framework/timer.h>
 #include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/actors/layer.h>
-#include <dali/devel-api/actors/mesh-actor.h>
 #include <dali/public-api/animation/constraint.h>
 #include <dali/public-api/common/constants.h>
 #include <dali/public-api/common/stage.h>
@@ -32,8 +31,6 @@
 #include <dali/public-api/events/tap-gesture-detector.h>
 #include <dali/public-api/events/pan-gesture.h>
 #include <dali/public-api/events/pan-gesture-detector.h>
-#include <dali/devel-api/geometry/mesh.h>
-#include <dali/devel-api/geometry/mesh-data.h>
 #include <dali/public-api/images/resource-image.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/math/vector2.h>
@@ -237,6 +234,7 @@ struct Decorator::Impl : public ConnectionTracker
     // TODO - Remove this if nothing is active
     CreateActiveLayer();
 
+    /*
     // Show or hide the cursors
     CreateCursors();
     if( mPrimaryCursor )
@@ -276,7 +274,7 @@ struct Decorator::Impl : public ConnectionTracker
       }
       mSecondaryCursor.SetVisible( mSecondaryCursorVisible );
     }
-
+    */
     // Show or hide the grab handle
     HandleImpl& grabHandle = mHandle[GRAB_HANDLE];
     if( grabHandle.active )
@@ -335,7 +333,7 @@ struct Decorator::Impl : public ConnectionTracker
     {
       UnparentAndReset( primary.actor );
       UnparentAndReset( secondary.actor );
-      UnparentAndReset( mHighlightMeshActor );
+      //UnparentAndReset( mHighlightMeshActor );
     }
 
     if ( mActiveCopyPastePopup )
@@ -398,6 +396,7 @@ struct Decorator::Impl : public ConnectionTracker
   // Add or Remove cursor(s) from parent
   void CreateCursors()
   {
+    /*
     if( mActiveCursor == ACTIVE_CURSOR_NONE )
     {
       UnparentAndReset( mPrimaryCursor );
@@ -405,7 +404,7 @@ struct Decorator::Impl : public ConnectionTracker
     }
     else
     {
-      /* Create Primary and or Secondary Cursor(s) if active and add to parent */
+      // Create Primary and or Secondary Cursor(s) if active and add to parent
       if ( mActiveCursor == ACTIVE_CURSOR_PRIMARY ||
            mActiveCursor == ACTIVE_CURSOR_BOTH )
       {
@@ -435,10 +434,12 @@ struct Decorator::Impl : public ConnectionTracker
         UnparentAndReset( mSecondaryCursor );
       }
     }
+    */
   }
 
   bool OnCursorBlinkTimerTick()
   {
+    /*
     // Cursor blinking
     if ( mPrimaryCursor )
     {
@@ -450,7 +451,7 @@ struct Decorator::Impl : public ConnectionTracker
     }
 
     mCursorBlinkStatus = !mCursorBlinkStatus;
-
+    */
     return true;
   }
 
@@ -606,6 +607,7 @@ struct Decorator::Impl : public ConnectionTracker
 
   void CreateHighlight()
   {
+    /*
     if ( !mHighlightMeshActor )
     {
       mHighlightMaterial = Material::New( "HighlightMaterial" );
@@ -626,6 +628,7 @@ struct Decorator::Impl : public ConnectionTracker
       Actor parent = mTextControlParent.Self();
       parent.Add( mHighlightMeshActor );
     }
+    */
   }
 
   void UpdateHighlight()
@@ -655,6 +658,7 @@ struct Decorator::Impl : public ConnectionTracker
     //  9*    *7
     //
 
+    /*
     if ( mHighlightMesh && mHighlightMaterial && !mHighlightQuadList.empty() )
     {
       MeshData::VertexContainer vertices;
@@ -718,6 +722,7 @@ struct Decorator::Impl : public ConnectionTracker
       mHighlightMeshData.SetData( vertices, faceIndices, bones, mHighlightMaterial );
       mHighlightMesh.UpdateMeshData( mHighlightMeshData );
     }
+    */
   }
 
   void OnTap( Actor actor, const TapGesture& tap )
@@ -822,12 +827,13 @@ struct Decorator::Impl : public ConnectionTracker
   {
     float alternativePosition=0.0f;;
 
+    /*
     if ( mPrimaryCursor ) // Secondary cursor not used for paste
     {
       Cursor cursor = PRIMARY_CURSOR;
       alternativePosition = mCursor[cursor].position.y;
     }
-
+    */
     const float popupHeight = 120.0f; // todo Set as a MaxSize Property in Control or retrieve from CopyPastePopup class.
 
     if( mHandle[GRAB_HANDLE].active )
@@ -986,16 +992,16 @@ struct Decorator::Impl : public ConnectionTracker
   Timer               mScrollTimer;               ///< Timer used to scroll the text when the grab handle is moved close to the edges.
 
   Layer               mActiveLayer;               ///< Layer for active handles and alike that ensures they are above all else.
-  ImageActor          mPrimaryCursor;
-  ImageActor          mSecondaryCursor;
-  MeshActor           mHighlightMeshActor;        ///< Mesh Actor to display highlight
+  //ImageActor          mPrimaryCursor;
+  //ImageActor          mSecondaryCursor;
+  //MeshActor           mHighlightMeshActor;        ///< Mesh Actor to display highlight
   TextSelectionPopup  mCopyPastePopup;
 
   Image               mHandleImages[HANDLE_TYPE_COUNT][HANDLE_IMAGE_TYPE_COUNT];
   Image               mCursorImage;
-  Mesh                mHighlightMesh;             ///< Mesh for highlight
-  MeshData            mHighlightMeshData;         ///< Mesh Data for highlight
-  Material            mHighlightMaterial;         ///< Material used for highlight
+  //Mesh                mHighlightMesh;             ///< Mesh for highlight
+  //MeshData            mHighlightMeshData;         ///< Mesh Data for highlight
+  //Material            mHighlightMaterial;         ///< Material used for highlight
 
   CursorImpl          mCursor[CURSOR_COUNT];
   HandleImpl          mHandle[HANDLE_TYPE_COUNT];
index 734b82a..3c21923 100644 (file)
@@ -81,13 +81,13 @@ void AtlasGlyphManager::Add( const Text::GlyphInfo& glyph,
 
 void AtlasGlyphManager::GenerateMeshData( uint32_t imageId,
                                           const Vector2& position,
-                                          MeshData& meshData )
+                                          Toolkit::AtlasManager::Mesh2D& mesh )
 {
-  mAtlasManager.GenerateMeshData( imageId, position, meshData );
+  mAtlasManager.GenerateMeshData( imageId, position, mesh );
 }
 
-void AtlasGlyphManager::StitchMesh( MeshData& first,
-                                    const MeshData& second )
+void AtlasGlyphManager::StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                                    const Toolkit::AtlasManager::Mesh2D& second )
 {
   mAtlasManager.StitchMesh( first, second );
 }
@@ -144,6 +144,16 @@ Pixel::Format AtlasGlyphManager::GetPixelFormat( uint32_t atlasId )
   return mAtlasManager.GetPixelFormat( atlasId );
 }
 
+Material AtlasGlyphManager::GetMaterial( uint32_t atlasId ) const
+{
+  return mAtlasManager.GetMaterial( atlasId );
+}
+
+Sampler AtlasGlyphManager::GetSampler( uint32_t atlasId ) const
+{
+  return mAtlasManager.GetSampler( atlasId );
+}
+
 const Toolkit::AtlasGlyphManager::Metrics& AtlasGlyphManager::GetMetrics()
 {
   mMetrics.mGlyphCount = mGlyphRecords.Size();
index cbbe732..20abcd2 100644 (file)
@@ -77,13 +77,13 @@ public:
    */
   void GenerateMeshData( uint32_t imageId,
                          const Vector2& position,
-                         MeshData& meshData );
+                         Toolkit::AtlasManager::Mesh2D& mesh );
 
   /**
    * @copydoc Toolkit::AtlasGlyphManager::StitchMesh
    */
-  void StitchMesh( MeshData& first,
-                   const MeshData& second );
+  void StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                   const Toolkit::AtlasManager::Mesh2D& second );
 
   /**
    * @copydoc Toolkit::AtlasGlyphManager::Cached
@@ -108,12 +108,22 @@ public:
   void Remove( uint32_t imageId );
 
   /**
-   * @copydoc toolkit::AtlasGlyphManager::GetPixelFormat
+   * @copydoc Toolkit::AtlasGlyphManager::GetPixelFormat
    */
   Pixel::Format GetPixelFormat( uint32_t atlasId );
 
   /**
-   * @copydoc toolkit::AtlasGlyphManager::GetMetrics
+   * @copydoc Toolkit::AtlasGlyphManager::GetMaterial
+   */
+  Material GetMaterial( uint32_t atlasId ) const;
+
+  /**
+   * @copydoc Toolkit::AtlasGlyphManager::GetMaterial
+   */
+  Sampler GetSampler( uint32_t atlasId ) const;
+
+  /**
+   * @copydoc Toolkit::AtlasGlyphManager::GetMetrics
    */
   const Toolkit::AtlasGlyphManager::Metrics& GetMetrics();
 
index 37f7ee1..0c6ab13 100644 (file)
@@ -78,15 +78,15 @@ void AtlasGlyphManager::Add( const Text::GlyphInfo& glyph,
 
 void AtlasGlyphManager::GenerateMeshData( uint32_t imageId,
                                           const Vector2& position,
-                                          MeshData& meshData )
+                                          Toolkit::AtlasManager::Mesh2D& mesh )
 {
   GetImplementation(*this).GenerateMeshData( imageId,
                                              position,
-                                             meshData );
+                                             mesh );
 }
 
-void AtlasGlyphManager::StitchMesh( MeshData& first,
-                                    const MeshData& second )
+void AtlasGlyphManager::StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                                    const Toolkit::AtlasManager::Mesh2D& second )
 {
   GetImplementation(*this).StitchMesh( first, second );
 }
@@ -118,11 +118,22 @@ Pixel::Format AtlasGlyphManager::GetPixelFormat( uint32_t atlasId )
   return GetImplementation(*this).GetPixelFormat( atlasId );
 }
 
+Material AtlasGlyphManager::GetMaterial( uint32_t atlasId ) const
+{
+  return GetImplementation(*this).GetMaterial( atlasId );
+}
+
+Sampler AtlasGlyphManager::GetSampler( uint32_t atlasId ) const
+{
+  return GetImplementation(*this).GetSampler( atlasId );
+}
+
 const Toolkit::AtlasGlyphManager::Metrics& AtlasGlyphManager::GetMetrics()
 {
   return GetImplementation(*this).GetMetrics();
 }
 
+
 } // namespace Toolkit
 
 } // namespace Dali
index ad2c5ea..7a516e3 100644 (file)
@@ -88,7 +88,7 @@ public:
    */
   void GenerateMeshData( uint32_t imageId,
                          const Vector2& position,
-                         MeshData& meshData );
+                         Toolkit::AtlasManager::Mesh2D& mesh );
 
   /**
    * @brief Stitch Two Meshes together
@@ -96,8 +96,8 @@ public:
    * @param[in] first first mesh
    * @param[in] second second mesh
    */
-  void StitchMesh( MeshData& first,
-                   const MeshData& second );
+  void StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
+                   const Toolkit::AtlasManager::Mesh2D& second );
 
   /**
    * @brief Check to see if a glyph is being cached
@@ -146,6 +146,24 @@ public:
   Pixel::Format GetPixelFormat( uint32_t atlasId );
 
   /**
+   * @brief Get the material used by an atlas
+   *
+   * @param[in] atlasId Id of an atlas
+   *
+   * @return The material used by the atlas
+   */
+  Material GetMaterial( uint32_t atlasId ) const;
+
+  /**
+   * @brief Get the sampler used by an atlas
+   *
+   * @param[in] atlasId Id of an atlas
+   *
+   * @return The sampler used by the atlas
+   */
+  Sampler GetSampler( uint32_t atlasId ) const;
+
+  /**
    * @brief Get Glyph Manager metrics
    *
    * @return const reference to glyph manager metrics
index 58f7fc1..9fefd6d 100644 (file)
@@ -22,8 +22,6 @@
 #include <dali/dali.h>
 #include <dali/integration-api/debug.h>
 #include <dali/devel-api/text-abstraction/font-client.h>
-#include <dali/devel-api/actors/mesh-actor.h>
-#include <dali/devel-api/geometry/mesh.h>
 
 
 // INTERNAL INCLUDES
@@ -32,7 +30,7 @@
 #include <dali-toolkit/internal/text/rendering/atlas/atlas-glyph-manager.h>
 #include <dali-toolkit/internal/text/rendering/shaders/text-basic-shader.h>
 #include <dali-toolkit/internal/text/rendering/shaders/text-bgra-shader.h>
-#include <dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.h>
+//#include <dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.h>
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -50,6 +48,62 @@ namespace
   const float TWO( 2.0f );
   const uint32_t DEFAULT_ATLAS_WIDTH = 512u;
   const uint32_t DEFAULT_ATLAS_HEIGHT = 512u;
+
+  #define MAKE_SHADER(A)#A
+
+  const char* VERTEX_SHADER = MAKE_SHADER(
+  attribute mediump vec2    aPosition;
+  attribute mediump vec2    aTexCoord;
+  uniform   mediump mat4    uMvpMatrix;
+  uniform   mediump vec3    uSize;
+  varying   mediump vec2    vTexCoord;
+
+  void main()
+  {
+    mediump vec4 position = vec4( aPosition, 0.0, 1.0 );
+    position.xyz *= uSize;
+    gl_Position = uMvpMatrix * position;
+    vTexCoord = aTexCoord;
+  }
+  );
+
+  const char* FRAGMENT_SHADER = MAKE_SHADER(
+  uniform         sampler2D sTexture;
+  varying mediump vec2      vTexCoord;
+
+  void main()
+  {
+    //gl_FragColor = vec4( 1.0 );
+    gl_FragColor = texture2D( sTexture, vTexCoord );
+  }
+  );
+
+  const char* VERTEX_SHADER_SHADOW = MAKE_SHADER(
+  attribute mediump vec2    aPosition;
+  attribute mediump vec2    aTexCoord;
+  uniform   mediump vec3    uSize;
+  varying   mediump vec2    vTexCoord;
+
+  void main()
+  {
+    mediump vec4 position = vec4( aPosition, 0.0, 1.0 );
+    position.xyz *= uSize;
+    gl_Position = position;
+    vTexCoord = aTexCoord;
+  }
+  );
+
+  const char* FRAGMENT_SHADER_SHADOW = MAKE_SHADER(
+  uniform         sampler2D sTexture;
+  uniform lowp    vec4      uColor;
+  varying mediump vec2      vTexCoord;
+
+  void main()
+  {
+    mediump vec4 color = texture2D( sTexture, vTexCoord );
+    gl_FragColor = vec4(uColor.rgb, uColor.a*color.r);
+  }
+  );
 }
 
 struct AtlasRenderer::Impl : public ConnectionTracker
@@ -65,7 +119,7 @@ struct AtlasRenderer::Impl : public ConnectionTracker
   {
     Vector4 mColor;
     uint32_t mAtlasId;
-    MeshData mMeshData;
+    AtlasManager::Mesh2D mMesh;
     FrameBufferImage mBuffer;
     bool mIsUnderline;
   };
@@ -97,13 +151,13 @@ struct AtlasRenderer::Impl : public ConnectionTracker
   {
     mGlyphManager = AtlasGlyphManager::Get();
     mFontClient = TextAbstraction::FontClient::Get();
-    mBasicShader = BasicShader::New();
-    mBgraShader = BgraShader::New();
-    mBasicShadowShader = BasicShadowShader::New();
 
-    mFace.reserve( 6u );
-    mFace.push_back( 0 ); mFace.push_back( 2u ); mFace.push_back( 1u );
-    mFace.push_back( 1u ); mFace.push_back( 2u ); mFace.push_back( 3u );
+    mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2;
+    mQuadVertexFormat[ "aTexCoord" ] = Property::VECTOR2;
+    mQuadIndexFormat[ "indices" ] = Property::UNSIGNED_INTEGER;
+
+    mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
+    mShadowShader = Shader::New( VERTEX_SHADER_SHADOW, FRAGMENT_SHADER_SHADOW );
   }
 
   void AddGlyphs( const std::vector<Vector2>& positions,
@@ -182,13 +236,13 @@ struct AtlasRenderer::Impl : public ConnectionTracker
         }
 
         const Vector2& position = positions[ i ];
-        MeshData newMeshData;
+        AtlasManager::Mesh2D newMesh;
         mGlyphManager.Cached( glyph.fontId, glyph.index, slot );
 
         if ( slot.mImageId )
         {
           // This glyph already exists so generate mesh data plugging in our supplied position
-          mGlyphManager.GenerateMeshData( slot.mImageId, position, newMeshData );
+          mGlyphManager.GenerateMeshData( slot.mImageId, position, newMesh );
           mImageIds.PushBack( slot.mImageId );
         }
         else
@@ -241,21 +295,21 @@ struct AtlasRenderer::Impl : public ConnectionTracker
             // Generate mesh data for this quad, plugging in our supplied position
             if ( slot.mImageId )
             {
-              mGlyphManager.GenerateMeshData( slot.mImageId, position, newMeshData );
+              mGlyphManager.GenerateMeshData( slot.mImageId, position, newMesh );
               mImageIds.PushBack( slot.mImageId );
             }
           }
         }
         // Find an existing mesh data object to attach to ( or create a new one, if we can't find one using the same atlas)
         StitchTextMesh( meshContainer,
-                        newMeshData,
+                        newMesh,
                         extents,
                         textColor,
                         position.y + glyph.yBearing,
                         currentUnderlinePosition,
                         currentUnderlineThickness,
                         slot );
-        lastFontId = glyph.fontId;
+       lastFontId = glyph.fontId;
       }
     }
 
@@ -270,33 +324,12 @@ struct AtlasRenderer::Impl : public ConnectionTracker
     {
       for ( std::vector< MeshRecord >::iterator mIt = meshContainer.begin(); mIt != meshContainer.end(); ++mIt )
       {
-        MeshActor actor = MeshActor::New( Mesh::New( mIt->mMeshData ) );
-        actor.SetColor( mIt->mColor );
-
-        // Ensure that text rendering is unfiltered
-        actor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
-        if ( mIt->mIsUnderline )
-        {
-          actor.SetColorMode( USE_OWN_COLOR );
-        }
-        else
-        {
-          actor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
-        }
+        Actor actor = CreateMeshActor( *mIt );
 
-        // Check to see what pixel format the shader should be
-        if ( mGlyphManager.GetPixelFormat( mIt->mAtlasId ) == Pixel::L8 )
-        {
-          // Create an effect if necessary
-          if ( style == STYLE_DROP_SHADOW )
-          {
-            actor.Add( GenerateShadow( *mIt, shadowOffset, shadowColor ) );
-          }
-          actor.SetShaderEffect( mBasicShader );
-        }
-        else
+        // Create an effect if necessary
+        if ( style == STYLE_DROP_SHADOW )
         {
-          actor.SetShaderEffect( mBgraShader );
+          actor.Add( GenerateShadow( *mIt, shadowOffset, shadowColor ) );
         }
 
         if ( mActor )
@@ -331,8 +364,38 @@ struct AtlasRenderer::Impl : public ConnectionTracker
 #endif
   }
 
+  Actor CreateMeshActor( const MeshRecord& meshRecord )
+  {
+    PropertyBuffer quadVertices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadVertexFormat, meshRecord.mMesh.mVertices.Size() );
+    PropertyBuffer quadIndices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadIndexFormat, meshRecord.mMesh.mIndices.Size() );
+    quadVertices.SetData( const_cast< AtlasManager::Vertex2D* >( &meshRecord.mMesh.mVertices[ 0 ] ) );
+    quadIndices.SetData( const_cast< unsigned int* >( &meshRecord.mMesh.mIndices[ 0 ] ) );
+
+    Geometry quadGeometry = Geometry::New();
+    quadGeometry.AddVertexBuffer( quadVertices );
+    quadGeometry.SetIndexBuffer( quadIndices );
+
+    Material material = mGlyphManager.GetMaterial( meshRecord.mAtlasId );
+    Dali::Renderer renderer = Dali::Renderer::New( quadGeometry, material );
+    renderer.SetDepthIndex( 0 );
+    Actor actor = Actor::New();
+    actor.AddRenderer( renderer );
+    actor.SetSize( 1.0f, 1.0f );
+    actor.SetColor( meshRecord.mColor );
+
+    if ( meshRecord.mIsUnderline )
+    {
+      actor.SetColorMode( USE_OWN_COLOR );
+    }
+    else
+    {
+      actor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
+    }
+    return actor;
+  }
+
   void StitchTextMesh( std::vector< MeshRecord >& meshContainer,
-                       MeshData& newMeshData,
+                       AtlasManager::Mesh2D& newMesh,
                        Vector< Extent >& extents,
                        const Vector4& color,
                        float baseLine,
@@ -342,9 +405,8 @@ struct AtlasRenderer::Impl : public ConnectionTracker
   {
     if ( slot.mImageId )
     {
-      MeshData::VertexContainer verts = newMeshData.GetVertices();
-      float left = verts[ 0 ].x;
-      float right = verts[ 1 ].x;
+      float left = newMesh.mVertices[ 0 ].mPosition.x;
+      float right = newMesh.mVertices[ 1 ].mPosition.x;
 
       // Check to see if there's a mesh data object that references the same atlas ?
       uint32_t index = 0;
@@ -353,7 +415,7 @@ struct AtlasRenderer::Impl : public ConnectionTracker
         if ( slot.mAtlasId == mIt->mAtlasId && color == mIt->mColor )
         {
           // Stitch the mesh to the existing mesh and adjust any extents
-          mGlyphManager.StitchMesh( mIt->mMeshData, newMeshData );
+          mGlyphManager.StitchMesh( mIt->mMesh, newMesh );
           AdjustExtents( extents,
                          meshContainer,
                          index,
@@ -369,7 +431,7 @@ struct AtlasRenderer::Impl : public ConnectionTracker
       // No mesh data object currently exists that references this atlas, so create a new one
       MeshRecord meshRecord;
       meshRecord.mAtlasId = slot.mAtlasId;
-      meshRecord.mMeshData = newMeshData;
+      meshRecord.mMesh = newMesh;
       meshRecord.mColor = color;
       meshRecord.mIsUnderline = false;
       meshContainer.push_back( meshRecord );
@@ -480,11 +542,11 @@ struct AtlasRenderer::Impl : public ConnectionTracker
                            const Vector4& underlineColor,
                            const Vector4& textColor )
   {
-    MeshData newMeshData;
+    AtlasManager::Mesh2D newMesh;
+    unsigned short faceIndex = 0;
     for ( Vector< Extent >::ConstIterator eIt = extents.Begin(); eIt != extents.End(); ++eIt )
     {
-      MeshData::VertexContainer newVerts;
-      newVerts.reserve( 4u );
+      AtlasManager::Vertex2D vert;
       uint32_t index = eIt->mMeshRecordIndex;
       Vector2 uv = mGlyphManager.GetAtlasSize( meshRecords[ index ].mAtlasId );
 
@@ -496,37 +558,45 @@ struct AtlasRenderer::Impl : public ConnectionTracker
       float tlx = eIt->mLeft;
       float brx = eIt->mRight;
 
-      newVerts.push_back( MeshData::Vertex( Vector3( tlx, baseLine, ZERO ),
-                                            Vector2::ZERO,
-                                            Vector3::ZERO ) );
-
-      newVerts.push_back( MeshData::Vertex( Vector3( brx, baseLine, ZERO ),
-                                            Vector2( u, ZERO ),
-                                            Vector3::ZERO ) );
-
-      newVerts.push_back( MeshData::Vertex( Vector3( tlx, baseLine + thickness, ZERO ),
-                                            Vector2( ZERO, v ),
-                                            Vector3::ZERO ) );
-
-      newVerts.push_back( MeshData::Vertex( Vector3( brx, baseLine + thickness, ZERO ),
-                                            Vector2( u, v ),
-                                            Vector3::ZERO ) );
-
-      newMeshData.SetVertices( newVerts );
-      newMeshData.SetFaceIndices( mFace );
+      vert.mPosition.x = tlx;
+      vert.mPosition.y = baseLine;
+      vert.mTexCoords.x = ZERO;
+      vert.mTexCoords.y = ZERO;
+      newMesh.mVertices.PushBack( vert );
+
+      vert.mPosition.x = brx;
+      vert.mPosition.y = baseLine;
+      vert.mTexCoords.x = u;
+      newMesh.mVertices.PushBack( vert );
+
+      vert.mPosition.x = tlx;
+      vert.mPosition.y = baseLine + thickness;
+      vert.mTexCoords.x = ZERO;
+      vert.mTexCoords.y = v;
+      newMesh.mVertices.PushBack( vert );
+
+      vert.mPosition.x = brx;
+      vert.mPosition.y = baseLine + thickness;
+      vert.mTexCoords.x = u;
+      newMesh.mVertices.PushBack( vert );
+
+      // Six indices in counter clockwise winding
+      newMesh.mIndices.PushBack( faceIndex + 1u );
+      newMesh.mIndices.PushBack( faceIndex );
+      newMesh.mIndices.PushBack( faceIndex + 2u );
+      newMesh.mIndices.PushBack( faceIndex + 2u );
+      newMesh.mIndices.PushBack( faceIndex + 3u );
+      newMesh.mIndices.PushBack( faceIndex + 1u );
+      faceIndex += 4;
 
       if ( underlineColor == textColor )
       {
-        mGlyphManager.StitchMesh( meshRecords[ index ].mMeshData, newMeshData );
+        mGlyphManager.StitchMesh( meshRecords[ index ].mMesh, newMesh );
       }
       else
       {
         MeshRecord record;
-        newMeshData.SetMaterial( meshRecords[ index ].mMeshData.GetMaterial() );
-        newMeshData.SetHasNormals( true );
-        newMeshData.SetHasColor( false );
-        newMeshData.SetHasTextureCoords( true );
-        record.mMeshData = newMeshData;
+        record.mMesh = newMesh;
         record.mAtlasId = meshRecords[ index ].mAtlasId;
         record.mColor = underlineColor;
         record.mIsUnderline = true;
@@ -535,34 +605,34 @@ struct AtlasRenderer::Impl : public ConnectionTracker
     }
   }
 
-  MeshActor GenerateShadow( MeshRecord& meshRecord,
-                            const Vector2& shadowOffset,
-                            const Vector4& shadowColor )
+  Actor GenerateShadow( MeshRecord& meshRecord,
+                        const Vector2& shadowOffset,
+                        const Vector4& shadowColor )
   {
     // Scan vertex buffer to determine width and height of effect buffer needed
-    MeshData::VertexContainer verts = meshRecord.mMeshData.GetVertices();
-    float tlx = verts[ 0 ].x;
-    float tly = verts[ 0 ].y;
+    const Vector< AtlasManager::Vertex2D >& verts = meshRecord.mMesh.mVertices;
+    float tlx = verts[ 0 ].mPosition.x;
+    float tly = verts[ 0 ].mPosition.y;
     float brx = ZERO;
     float bry = ZERO;
 
-    for ( uint32_t i = 0; i < verts.size(); ++i )
+    for ( uint32_t i = 0; i < verts.Size(); ++i )
     {
-      if ( verts[ i ].x < tlx )
+      if ( verts[ i ].mPosition.x < tlx )
       {
-        tlx = verts[ i ].x;
+        tlx = verts[ i ].mPosition.x;
       }
-      if ( verts[ i ].y < tly )
+      if ( verts[ i ].mPosition.y < tly )
       {
-        tly = verts[ i ].y;
+        tly = verts[ i ].mPosition.y;
       }
-      if ( verts[ i ].x > brx )
+      if ( verts[ i ].mPosition.x > brx )
       {
-        brx = verts[ i ].x;
+        brx = verts[ i ].mPosition.x;
       }
-      if ( verts[ i ].y > bry )
+      if ( verts[ i ].mPosition.y > bry )
       {
-        bry = verts[ i ].y;
+        bry = verts[ i ].mPosition.y;
       }
     }
 
@@ -574,76 +644,62 @@ struct AtlasRenderer::Impl : public ConnectionTracker
     // Create a buffer to render to
     meshRecord.mBuffer = FrameBufferImage::New( width, height );
 
-    // Create a mesh actor to contain the post-effect render
-    MeshData::VertexContainer vertices;
-    MeshData::FaceIndices face;
-
-    vertices.push_back( MeshData::Vertex( Vector3( tlx + shadowOffset.x, tly + shadowOffset.y, ZERO ),
-                                          Vector2::ZERO,
-                                          Vector3::ZERO ) );
-
-    vertices.push_back( MeshData::Vertex( Vector3( brx + shadowOffset.x, tly + shadowOffset.y, ZERO ),
-                                          Vector2( ONE, ZERO ),
-                                          Vector3::ZERO ) );
-
-    vertices.push_back( MeshData::Vertex( Vector3( tlx + shadowOffset.x, bry + shadowOffset.y, ZERO ),
-                                          Vector2( ZERO, ONE ),
-                                          Vector3::ZERO ) );
-
-    vertices.push_back( MeshData::Vertex( Vector3( brx + shadowOffset.x, bry + shadowOffset.y, ZERO ),
-                                          Vector2::ONE,
-                                          Vector3::ZERO ) );
-
-    MeshData meshData;
-    Material newMaterial = Material::New("effect buffer");
-    newMaterial.SetDiffuseTexture( meshRecord.mBuffer );
-    meshData.SetMaterial( newMaterial );
-    meshData.SetVertices( vertices );
-    meshData.SetFaceIndices( mFace );
-    meshData.SetHasNormals( true );
-    meshData.SetHasColor( false );
-    meshData.SetHasTextureCoords( true );
-    MeshActor actor = MeshActor::New( Mesh::New( meshData ) );
-    actor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
-    actor.SetShaderEffect( mBgraShader );
-    actor.SetFilterMode( FilterMode::LINEAR, FilterMode::LINEAR );
-    actor.SetSortModifier( 0.1f ); // force behind main text
-
-    // Create a sub actor to render once with normalized vertex positions
-    MeshData newMeshData;
-    MeshData::VertexContainer newVerts;
-    MeshData::FaceIndices newFaces;
-    MeshData::FaceIndices faces = meshRecord.mMeshData.GetFaces();
-    for ( uint32_t i = 0; i < verts.size(); ++i )
+    // We will render a quad into this buffer
+    unsigned int indices[ 6 ] = { 1, 0, 2, 2, 3, 1 };
+    PropertyBuffer quadVertices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadVertexFormat, 4u );
+    PropertyBuffer quadIndices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadIndexFormat, sizeof(indices)/sizeof(indices[0]) );
+
+    AtlasManager::Vertex2D vertices[ 4 ] = {
+    { Vector2( tlx + shadowOffset.x, tly + shadowOffset.y ), Vector2( ZERO, ZERO ) },
+    { Vector2( brx + shadowOffset.x, tly + shadowOffset.y ), Vector2( ONE, ZERO ) },
+    { Vector2( tlx + shadowOffset.x, bry + shadowOffset.y ), Vector2( ZERO, ONE ) },
+    { Vector2( brx + shadowOffset.x, bry + shadowOffset.y ), Vector2( ONE, ONE ) } };
+
+    quadVertices.SetData( vertices );
+    quadIndices.SetData( indices );
+
+    Geometry quadGeometry = Geometry::New();
+    quadGeometry.AddVertexBuffer( quadVertices );
+    quadGeometry.SetIndexBuffer( quadIndices );
+
+    Sampler sampler = Sampler::New( meshRecord.mBuffer, "sTexture" );
+    Material material = Material::New( mShader );
+    material.AddSampler( sampler );
+
+    Dali::Renderer renderer = Dali::Renderer::New( quadGeometry, material );
+    renderer.SetDepthIndex( 1.0f );
+    Actor actor = Actor::New();
+    actor.AddRenderer( renderer );
+    actor.SetSize( 1.0f, 1.0f );
+
+    // Create a sub actor to render the source with normalized vertex positions
+    Vector< AtlasManager::Vertex2D > normVertexList;
+    for ( uint32_t i = 0; i < verts.Size(); ++i )
     {
-      MeshData::Vertex vertex = verts[ i ];
-      vertex.x = ( ( vertex.x - tlx ) * divWidth ) - ONE;
-      vertex.y = ( ( vertex.y - tly ) * divHeight ) - ONE;
-      newVerts.push_back( vertex );
+      AtlasManager::Vertex2D vertex = verts[ i ];
+      vertex.mPosition.x = ( ( vertex.mPosition.x - tlx ) * divWidth ) - ONE;
+      vertex.mPosition.y = ( ( vertex.mPosition.y - tly ) * divHeight ) - ONE;
+      normVertexList.PushBack( vertex );
     }
 
-    // Reverse triangle winding order
-    uint32_t faceCount = faces.size() / 3;
-    for ( uint32_t i = 0; i < faceCount; ++i )
-    {
-      uint32_t index = i * 3;
-      newFaces.push_back( faces[ index + 2 ] );
-      newFaces.push_back( faces[ index + 1 ] );
-      newFaces.push_back( faces[ index ] );
-    }
-
-    newMeshData.SetMaterial( meshRecord.mMeshData.GetMaterial() );
-    newMeshData.SetVertices( newVerts );
-    newMeshData.SetFaceIndices( newFaces );
-    newMeshData.SetHasNormals( true );
-    newMeshData.SetHasColor( false );
-    newMeshData.SetHasTextureCoords( true );
-
-    MeshActor subActor = MeshActor::New( Mesh::New( newMeshData ) );
+    PropertyBuffer normVertices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadVertexFormat, normVertexList.Size() );
+    PropertyBuffer normIndices = PropertyBuffer::New( PropertyBuffer::STATIC, mQuadIndexFormat, meshRecord.mMesh.mIndices.Size() );
+    normVertices.SetData( const_cast< AtlasManager::Vertex2D* >( &normVertexList[ 0 ] ) );
+    normIndices.SetData( const_cast< unsigned int* >( &meshRecord.mMesh.mIndices[ 0 ] ) );
+
+    Geometry normGeometry = Geometry::New();
+    normGeometry.AddVertexBuffer( normVertices );
+    normGeometry.SetIndexBuffer( normIndices );
+
+    Material normMaterial = Material::New( mShadowShader );
+    Sampler normSampler =  mGlyphManager.GetSampler( meshRecord.mAtlasId );
+    normMaterial.AddSampler( normSampler );
+    Dali::Renderer normRenderer = Dali::Renderer::New( normGeometry, normMaterial );
+    Actor subActor = Actor::New();
+    subActor.AddRenderer( normRenderer );
+    subActor.SetSize( 1.0f, 1.0f );
     subActor.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
     subActor.SetColor( shadowColor );
-    subActor.SetShaderEffect( mBasicShadowShader );
-    subActor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
 
     // Create a render task to render the effect
     RenderTask task = Stage::GetCurrent().GetRenderTaskList().CreateTask();
@@ -655,6 +711,7 @@ struct AtlasRenderer::Impl : public ConnectionTracker
     task.SetRefreshRate( RenderTask::REFRESH_ONCE );
     task.FinishedSignal().Connect( this, &AtlasRenderer::Impl::RenderComplete );
     actor.Add( subActor );
+
     return actor;
   }
 
@@ -676,15 +733,16 @@ struct AtlasRenderer::Impl : public ConnectionTracker
     }
   }
 
-  RenderableActor mActor;                             ///< The actor parent which renders the text
+  Actor mActor;                                       ///< The actor parent which renders the text
   AtlasGlyphManager mGlyphManager;                    ///< Glyph Manager to handle upload and caching
   Vector< uint32_t > mImageIds;                       ///< A list of imageIDs used by the renderer
   TextAbstraction::FontClient mFontClient;            ///> The font client used to supply glyph information
-  ShaderEffect mBasicShader;                          ///> Shader used to render L8 glyphs
-  ShaderEffect mBgraShader;                           ///> Shader used to render BGRA glyphs
-  ShaderEffect mBasicShadowShader;                    ///> Shader used to render drop shadow into buffer
+  Shader mShader;                                     ///> Shader used to render drop shadow buffer textures
+  Shader mShadowShader;                               ///> Shader used to render drop shadow into buffer
   std::vector< MaxBlockSize > mBlockSizes;            ///> Maximum size needed to contain a glyph in a block within a new atlas
-  std::vector< MeshData::FaceIndex > mFace;           ///> Face indices for a quad
+  std::vector< uint32_t > mFace;                      ///> Face indices for a quad
+  Property::Map mQuadVertexFormat;
+  Property::Map mQuadIndexFormat;
 };
 
 Text::RendererPtr AtlasRenderer::New()
@@ -694,7 +752,7 @@ Text::RendererPtr AtlasRenderer::New()
   return Text::RendererPtr( new AtlasRenderer() );
 }
 
-RenderableActor AtlasRenderer::Render( Text::ViewInterface& view )
+Actor AtlasRenderer::Render( Text::ViewInterface& view )
 {
   UnparentAndReset( mImpl->mActor );
 
index e259621..7bc6177 100644 (file)
@@ -50,7 +50,7 @@ public:
    * @param[in] view The interface to a view.
    * @return The Renderable actor used to position the text.
    */
-  virtual RenderableActor Render( ViewInterface& view );
+  virtual Actor Render( ViewInterface& view );
 
 protected:
 
index 5937c91..8011823 100644 (file)
@@ -21,9 +21,7 @@
 // EXTERNAL INCLUDES
 #include <dali/devel-api/text-abstraction/font-client.h>
 #include <dali/public-api/actors/image-actor.h>
-#include <dali/devel-api/actors/mesh-actor.h>
 #include <dali/devel-api/images/atlas.h>
-#include <dali/devel-api/geometry/mesh.h>
 #include <dali/integration-api/debug.h>
 
 // INTERNAL INCLUDES
@@ -274,6 +272,7 @@ struct BasicRenderer::Impl
    * @param[in] positions The 2D positions of the glyphs.
    * @param[in] image The material uses this as a diffuse texture.
    */
+  /*
   Mesh CreateMesh( const Vector<GlyphInfo>& glyphs, const std::vector<Vector2>& positions, Pixel::Format format, Image image )
   {
     MeshData::VertexContainer vertices( 4 * glyphs.Count() ); // 1 quad per glyph
@@ -319,8 +318,8 @@ struct BasicRenderer::Impl
     Dali::Mesh mesh = Mesh::New( meshData );
     return mesh;
   }
-
-  RenderableActor mActor; ///< The actor which renders the text
+  */
+  Actor mActor; ///< The actor which renders the text
 
   Atlas mAtlasL8;
   unsigned int mWidthL8;
@@ -343,7 +342,7 @@ Text::RendererPtr BasicRenderer::New()
   return Text::RendererPtr( new BasicRenderer() );
 }
 
-RenderableActor BasicRenderer::Render( Text::ViewInterface& view )
+Actor BasicRenderer::Render( Text::ViewInterface& view )
 {
   // Remove the previous text
   UnparentAndReset( mImpl->mActor );
@@ -368,24 +367,24 @@ RenderableActor BasicRenderer::Render( Text::ViewInterface& view )
 
     mImpl->CreateAtlases( glyphs );
 
-    MeshActor actorL8;
+    Actor actorL8;
     if( mImpl->mAtlasL8 )
     {
-      actorL8 = MeshActor::New( mImpl->CreateMesh( glyphs, positions, Pixel::L8, mImpl->mAtlasL8 ) );
+      //actorL8 = MeshActor::New( mImpl->CreateMesh( glyphs, positions, Pixel::L8, mImpl->mAtlasL8 ) );
       actorL8.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
 
       ShaderEffect shader = BasicShader::New();
-      actorL8.SetShaderEffect( shader );
+      //actorL8.SetShaderEffect( shader );
     }
 
-    MeshActor actorBGRA8888;
+    Actor actorBGRA8888;
     if( mImpl->mAtlasBGRA8888 )
     {
-      actorBGRA8888 = MeshActor::New( mImpl->CreateMesh( glyphs, positions, Pixel::BGRA8888, mImpl->mAtlasBGRA8888 ) );
+      //actorBGRA8888 = MeshActor::New( mImpl->CreateMesh( glyphs, positions, Pixel::BGRA8888, mImpl->mAtlasBGRA8888 ) );
       actorBGRA8888.SetColorMode( USE_OWN_MULTIPLY_PARENT_COLOR );
 
       ShaderEffect shader = BgraShader::New();
-      actorBGRA8888.SetShaderEffect( shader );
+      //actorBGRA8888.SetShaderEffect( shader );
     }
 
     // If we have both monochrome & color glyphs, two mesh actors are returned in a container
index 1cf8469..6a7e1a0 100644 (file)
@@ -53,7 +53,7 @@ public:
    * @param[in] view The interface to a view.
    * @return The Renderable actor used to position the text.
    */
-  virtual RenderableActor Render( ViewInterface& view );
+  virtual Actor Render( ViewInterface& view );
 
 protected:
 
index 0afddbb..3ea7154 100644 (file)
@@ -17,6 +17,7 @@
 
 // CLASS HEADER
 #include <dali-toolkit/internal/text/rendering/text-renderer.h>
+#include <dali/public-api/shader-effects/shader-effect.h>
 
 namespace Dali
 {
index f7789f1..89e7a8b 100644 (file)
@@ -29,7 +29,7 @@ namespace Text
 
 namespace BasicShadowShader
 {
-
+/*
 Dali::ShaderEffect New()
 {
   std::string vertexShader = DALI_COMPOSE_SHADER(
@@ -53,7 +53,7 @@ Dali::ShaderEffect New()
                                                              Dali::ShaderEffect::GeometryHints( Dali::ShaderEffect::HINT_NONE ) );
   return shaderEffect;
 }
-
+*/
 } // namespace BasicShadowShader
 
 } // namespace Text
diff --git a/dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.h b/dali-toolkit/internal/text/rendering/shaders/text-basic-shadow-shader.h
deleted file mode 100644 (file)
index 93bd0a3..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef __DALI_TOOLKIT_TEXT_BASIC_SHADOW_SHADER_H__
-#define __DALI_TOOLKIT_TEXT_BASIC_SHADOW_SHADER_H__
-
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/shader-effects/shader-effect.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Text
-{
-
-/**
- * @brief A basic shader for rendering glyphs in Pixel::L8 format.
- */
-namespace BasicShadowShader
-{
-
-/**
- * Create a basic text shadow shader.
- * @return A handle to a newly allocated ShaderEffect
- */
-Dali::ShaderEffect New();
-
-} // namespace BasicShadowShader
-
-} // namespace Text
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // __DALI_TOOLKIT_TEXT_BASIC_SHADOW_SHADER_H__
index 7f2f2a5..ac4c0d6 100644 (file)
@@ -17,6 +17,7 @@
 
 // INTERNAL HEADERS
 #include <dali-toolkit/internal/text/rendering/text-renderer.h>
+#include <dali/public-api/shader-effects/shader-effect.h>
 
 namespace Dali
 {
index 3485f16..1262c90 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/actor.h>
 #include <dali/public-api/common/intrusive-ptr.h>
 #include <dali/public-api/object/ref-object.h>
 
@@ -54,7 +54,7 @@ public:
    * @param[in] view The interface to a view.
    * @return The Renderable actor used to position the text.
    */
-  virtual RenderableActor Render( ViewInterface& view ) = 0;
+  virtual Actor Render( ViewInterface& view ) = 0;
 
 protected:
 
index 810a742..0e87de0 100644 (file)
 #include <limits>
 #include <stack>
 #include <dali/public-api/actors/image-actor.h>
-#include <dali/devel-api/actors/mesh-actor.h>
 #include <dali/public-api/animation/constraint.h>
 #include <dali/public-api/animation/constraints.h>
-#include <dali/devel-api/geometry/mesh.h>
 #include <dali/public-api/object/type-registry.h>
 #include <dali/devel-api/object/type-registry-helper.h>
 #include <dali/devel-api/scripting/scripting.h>
@@ -49,9 +47,9 @@ namespace Toolkit
 namespace
 {
 
-#if defined(DEBUG_ENABLED)
-Integration::Log::Filter* gLogFilter  = Integration::Log::Filter::New(Debug::NoLogging, false, "LOG_CONTROL");
-#endif
+//#if defined(DEBUG_ENABLED)
+//Integration::Log::Filter* gLogFilter  = Integration::Log::Filter::New(Debug::NoLogging, false, "LOG_CONTROL");
+//#endif
 
 const float MAX_FLOAT_VALUE( std::numeric_limits<float>::max() );
 const Vector3 MAX_SIZE( MAX_FLOAT_VALUE, MAX_FLOAT_VALUE, MAX_FLOAT_VALUE );
@@ -100,10 +98,10 @@ struct Background
 /**
  * Creates a white coloured Mesh.
  */
-Mesh CreateMesh()
+Vector3 CreateMesh()
 {
   Vector3 white( Color::WHITE );
-
+  /*
   MeshData meshData;
 
   // Create vertices with a white color (actual color is set by actor color)
@@ -124,8 +122,9 @@ Mesh CreateMesh()
   meshData.SetVertices( vertices );
   meshData.SetFaceIndices( faces );
   meshData.SetHasColor( true );
-
-  return Mesh::New( meshData );
+  */
+  return white;
+  //return Mesh::New( meshData );
 }
 
 /**
@@ -553,6 +552,7 @@ void Control::SetBackgroundColor( const Vector4& color )
     // Just set the actor color
     background.actor.SetColor( color );
   }
+  /*
   else
   {
     // Create Mesh Actor
@@ -564,6 +564,7 @@ void Control::SetBackgroundColor( const Vector4& color )
     background.actor = meshActor;
     Self().Add( meshActor );
   }
+  */
 
   background.color = color;
 }
@@ -588,12 +589,14 @@ void Control::SetBackgroundImage( Image image )
     background.actor.Reset();
   }
 
+  /*
   ImageActor imageActor = ImageActor::New( image );
-  SetupBackgroundActor( imageActor, background.color );
+  SetupBackgroundActor( imageActor, Actor::Property::SIZE, background.color );
 
   // Set the background actor before adding so that we do not inform derived classes
   background.actor = imageActor;
   Self().Add( imageActor );
+  */
 }
 
 void Control::ClearBackground()
diff --git a/dali-toolkit/public-api/controls/view/view.h b/dali-toolkit/public-api/controls/view/view.h
new file mode 100644 (file)
index 0000000..b42340c
--- /dev/null
@@ -0,0 +1,218 @@
+#ifndef __DALI_TOOLKIT_VIEW_H__
+#define __DALI_TOOLKIT_VIEW_H__
+
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/actors/image-actor.h>
+#include <dali/public-api/adaptor-framework/orientation.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal DALI_INTERNAL
+{
+// Forward declarations
+class View;
+}
+
+/**
+ * View provides a container where different Dali::Layer instances and a background could be added. It
+ * also provides a View::OrientationChanged() method which could be connected to the Dali::Orientation::SignalChange() signal.
+ * This method rotates all layers accordingly with the given orientation, it emits an OrientationAnimationStartsSignal signal just before the rotation animation starts.
+ *
+ * By default view anchor point and parent origin are centered, the size is full screen and is got directly from the Dali::Stage. However, by passing \e false to the
+ * Toolkit::View::New() method a custom size could be specified, and after initialization, anchor point and parent origin could be updated.
+ *
+ * If a background is set, a background layer will be created and dropped to the bottom.
+ *
+ * Use example (application is a Dali::Application object):
+ * \code{.cpp}
+ * Stage stage = Stage::GetCurrent();
+ *
+ * // Create default View. By default it gets the stage size.
+ * Toolkit::View view = Toolkit::View::New();
+ *
+ * // Add the view to the stage before setting the background.
+ * stage.Add( view );
+ *
+ * // Set background image. BACKGROUND_IMAGE is a string with the background image file path.
+ * Image backgroundImage = Image::New( BACKGROUND_IMAGE );
+ * ImageActor backgroundImageActor = ImageActor::New( backgroundImage );
+ * mView.SetBackground( backgroundImageActor );
+ *
+ * // Connects the orientation signal with the View::OrientationChanged method.
+ * application.GetWindow().GetOrientation().ChangedSignal().Connect( &view, &Toolkit::View::OrientationChanged );
+ *
+ * // Create a content layer.
+ * Layer contentLayer = Layer::New();
+ * contentLayer.SetAnchorPoint( AnchorPoint::CENTER );
+ * contentLayer.SetParentOrigin( ParentOrigin::CENTER );
+ * view.AddContentLayer( contentLayer );
+ * \endcode
+ *
+ * Signals
+ * | %Signal Name                | Method                                   |
+ * |-----------------------------|------------------------------------------|
+ * | orientation-animation-start | @ref OrientationAnimationStartedSignal() |
+
+ */
+class DALI_IMPORT_API View : public Control
+{
+
+public:
+
+  /**
+   * Create a View handle; this can be initialised with View::New()
+   * Calling member functions with an uninitialised handle is not allowed.
+   */
+  View();
+
+  /**
+   * Copy constructor. Creates another handle that points to the same real object
+   * @param handle to copy from
+   */
+  View( const View& handle );
+
+  /**
+   * Assignment operator. Changes this handle to point to another real object
+   */
+  View& operator=( const View& handle );
+
+  /**
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
+   */
+  ~View();
+
+  /**
+   * Create an initialized View.
+   * @param fullscreen If true, the view's size is going to be set with the Dali::Stage size. Otherwise a size must be provided. By default fullscreen is set to true.
+   * @return A handle to a newly allocated Dali resource.
+   */
+  static View New( bool fullscreen = true );
+
+  /**
+   * Downcast an Object handle to View. If handle points to a View the
+   * downcast produces valid handle. If not the returned handle is left uninitialized.
+   * @param[in] handle Handle to an object
+   * @return handle to a View or an uninitialized handle
+   */
+  static View DownCast( BaseHandle handle );
+
+  /**
+   * Returns a content layer.
+   * @param index to the layer container.
+   * @return A Layer handle if it exists, otherwise it returns an uninitialized handle.
+   */
+  Layer GetContentLayer( unsigned int index ) const;
+
+  /**
+   * Adds a new layer in the view.
+   * @pre layer must be initialized.
+   * @param layer A Layer handle.
+   * @return the an index that can be used to access the layer stores in the view.
+   */
+  unsigned int AddContentLayer( Layer layer );
+
+  /**
+   * Removes a layer from the view.
+   * @param layer The layer to be removed.
+   */
+  void RemoveContentLayer( Layer layer );
+
+  /**
+   * Returns the background layer.
+   * @return the background layer or an empty handle if any background has been set before.
+   */
+  Layer GetBackgroundLayer() const;
+
+  /**
+   * Sets a background image.
+   *
+   * It creates a background layer the first time this method is called and it is dropped to the bottom.
+   * Any previous set background will be replaced by the new one.
+   *
+   * @pre View must be on stage before calling SetBackground.
+   * @param image An image actor.
+   */
+  void SetBackground( ImageActor image );
+
+  /**
+   * Sets the angle values for portrait, landscape, portrait inverse and landscape inverse.
+   *
+   * These angles are used to rotate the views.
+   * By default, orientation angles are initialized as follows: portrait 0, landscape 90, portrait inverse 180, landscape inverse 270.
+   *
+   * @param portrait angle in degrees.
+   * @param landscale angle in degrees.
+   * @param portraitInverse angle in degrees.
+   * @param landscapeInverse angle in degrees.
+   */
+  void SetOrientationFunction( Degree portrait, Degree landscale, Degree portraitInverse, Degree landscapeInverse );
+
+  /**
+   * It rotates all layers to the new given orientation.
+   *
+   * @param orientation The new orientation.
+   */
+  void OrientationChanged( Orientation orientation );
+
+  /**
+   * Enables or disables the view's rotation when device orientation changes.
+   * @param enabled Whether auto-rotate should be enabled or disabled. By default is enabled.
+   */
+  void SetAutoRotate( bool enabled );
+
+public: //Signals
+
+  // Orientation change animation starts.
+  typedef Signal< void ( View, Animation&, const Orientation& ) > OrientationAnimationStartedSignalType;
+
+  /**
+   * Signal emitted just before the rotate animation starts when the device orientation changes.
+   */
+  OrientationAnimationStartedSignalType& OrientationAnimationStartedSignal();
+
+public: // Not intended for application developers
+
+  /**
+   * Creates a handle using the Toolkit::Internal implementation.
+   * @param[in]  implementation  The Control implementation.
+   */
+  DALI_INTERNAL View( Internal::View& implementation );
+
+  /**
+   * Allows the creation of this Control from an Internal::CustomActor pointer.
+   * @param[in]  internal  A pointer to the internal CustomActor.
+   */
+  explicit DALI_INTERNAL View( Dali::Internal::CustomActor* internal );
+};
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_VIEW_H__
index f275660..9493cef 100755 (executable)
@@ -7,7 +7,6 @@ public_api_src_files = \
   $(public_api_src_dir)/controls/control-impl.cpp \
   $(public_api_src_dir)/controls/control.cpp \
   $(public_api_src_dir)/controls/alignment/alignment.cpp \
-  $(public_api_src_dir)/controls/bubble-effect/bubble-emitter.cpp \
   $(public_api_src_dir)/controls/buttons/button.cpp \
   $(public_api_src_dir)/controls/buttons/check-box-button.cpp \
   $(public_api_src_dir)/controls/buttons/push-button.cpp \
index 205327d..269e4ec 100644 (file)
@@ -80,7 +80,7 @@ MotionBlurEffect::~MotionBlurEffect()
 {
 }
 
-MotionBlurEffect MotionBlurEffect::Apply( RenderableActor renderable )
+MotionBlurEffect MotionBlurEffect::Apply( ImageActor renderable )
 {
   MotionBlurEffect newEffect = New( MOTION_BLUR_NUM_SAMPLES );
   renderable.SetShaderEffect( newEffect );
index 5455fef..13a8e1d 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/shader-effects/shader-effect.h>
 
 namespace Dali
@@ -77,7 +77,7 @@ public:
    * @param renderable actor to apply the effect to
    * @return A handle to a newly allocated Dali resource.
    */
-  static MotionBlurEffect Apply( RenderableActor renderable );
+  static MotionBlurEffect Apply( ImageActor renderable );
 
   /**
    * Create an initialized MotionBlurEffect
index 3a631bf..9cde815 100644 (file)
@@ -94,7 +94,7 @@ MotionStretchEffect::~MotionStretchEffect()
 {
 }
 
-MotionStretchEffect MotionStretchEffect::Apply( RenderableActor renderable )
+MotionStretchEffect MotionStretchEffect::Apply( ImageActor renderable )
 {
   MotionStretchEffect newEffect = New();
   renderable.SetShaderEffect( newEffect );
index 5cc7bcf..48d2483 100644 (file)
@@ -19,7 +19,7 @@
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/shader-effects/shader-effect.h>
 
 namespace Dali
@@ -72,7 +72,7 @@ public:
    * @param renderable actor to apply the effect to
    * @return A handle to a newly allocated Dali resource.
    */
-  static MotionStretchEffect Apply( RenderableActor renderable );
+  static MotionStretchEffect Apply( ImageActor renderable );
 
   /**
    * Set geometry stretch factor property. This scales the amount the geometry
index 92beacd..334c709 100644 (file)
@@ -244,7 +244,7 @@ PushButton, OKAY_BUTTON - Pos: [185, 0, 0.1] Size: [165, 76, 76], Dirty: (FALSE,
 
 The format is as follows:
 
-[Actor type], [Actor name]  Pos:[X, Y, Z] Size[Dimension::WIDTH, Dimension::HEIGHT, DEPTH], Dirty:(Dimension::WIDTH, Dimension::HEIGHT), Negotiated: (Dimension::WIDTH, Dimension::HEIGHT), Enabled: BOOLEAN, (Object address)
+[Actor type], [Actor name] ? Pos:[X, Y, Z] Size[Dimension::WIDTH, Dimension::HEIGHT, DEPTH], Dirty:(Dimension::WIDTH, Dimension::HEIGHT), Negotiated: (Dimension::WIDTH, Dimension::HEIGHT), Enabled: BOOLEAN, (Object address)
 - <i>Actor type</i>: The type name of the actor E.g. PushButton
 - <i>Actor name</i>: The name set on the actor with SetName(). Useful for debugging.
 - <i>Pos</i>: The position of the actor