factory.EnableOffscreenRendering( );
PageTurnView pageTurnView = PageTurnLandscapeView::New( factory, PAGE_SIZE );
+ pageTurnView.SetRelayoutEnabled( false );
pageTurnView.SetPositionInheritanceMode( USE_PARENT_POSITION );
Stage::GetCurrent().Add( pageTurnView );
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 );
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 );
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 );
size = pushButton.GetCurrentSize();
- DALI_TEST_EQUALS( size.width, 20.f, TEST_LOCATION );
- DALI_TEST_EQUALS( size.height, 20.f, TEST_LOCATION );
-
END_TEST;
}
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 );
[AC_HELP_STRING([--enable-javascript],
[Enable JavaScript plugin])] ,
[enable_javascript=$enableval],
- [enable_javascript=automatic])
+ [enable_javascript=no])
if test "x$enable_debug" = "xyes"; then
// 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
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()
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 )?
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();
}
if ( Toolkit::AtlasManager::FAIL_ON_ADD_FAILS == mAddFailPolicy || !foundAtlas-- )
{
// Haven't found an atlas for this image!!!!!!
- return;
+ return;
}
}
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;
}
// 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;
}
// 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;
}
// 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,
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;
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
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
};
*/
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
*/
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
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;
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 );
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
// 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
{
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.
*/
void GenerateMeshData( ImageId id,
const Vector2& position,
- MeshData& mesh );
+ Mesh2D& mesh );
/**
* @brief Append second mesh to the first mesh
* @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 );
/**
* @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 );
/**
*/
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);
} // namespace Dali
-#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__
\ No newline at end of file
+#endif // __DALI_TOOLKIT_ATLAS_MANAGER_H__
// 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
// 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)
// 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 );
if( Property::INVALID_INDEX == index )
{
- RenderableActor actor = RenderableActor::DownCast(handle);
+ ImageActor actor = ImageActor::DownCast(handle);
if( actor )
{
if( ShaderEffect effect = actor.GetShaderEffect() )
// 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
// 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>
// 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
{
Actor CreateBouncingEffectActor( Property::Index& bouncePropertyIndex )
{
+ Actor meshActor;
+/*
Dali::AnimatableMesh mesh;
Dali::MeshActor meshActor;
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;
}
--- /dev/null
+{
+ "folders":
+ [
+ {
+ "path": "/homeSERILOCALr.underhill/dev/new"
+ }
+ ]
+}
--- /dev/null
+{
+ "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":
+ {
+ }
+}
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()
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)
{
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()
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)
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 )
{
}
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);
}
}
if( mAnimationStateFlags & AnimatingOut )
{
// should now be offscreen
- mOvershootOverlay.SetVisible(false);
+ //mOvershootOverlay.SetVisible(false);
}
if( (mAnimationStateFlags & AnimateBack) )
{
--- /dev/null
+{
+ "folders":
+ [
+ {
+ "path": "/homeSERILOCALr.underhill/dev/tizen"
+ }
+ ]
+}
--- /dev/null
+{
+ "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":
+ {
+ }
+}
mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
}
- RenderableActor renderableActor;
+ Actor renderableActor;
if( mRenderer )
{
renderableActor = mRenderer->Render( mController->GetView() );
Text::DecoratorPtr mDecorator;
Text::ClipperPtr mClipper; ///< For EXCEED_POLICY_CLIP
- RenderableActor mRenderableActor;
+ Actor mRenderableActor;
int mRenderingBackend;
int mExceedPolicy;
mRenderer = Backend::Get().NewRenderer( mRenderingBackend );
}
- RenderableActor renderableActor;
+ Actor renderableActor;
if( mRenderer )
{
renderableActor = mRenderer->Render( mController->GetView() );
Text::ControllerPtr mController;
Text::RendererPtr mRenderer;
- RenderableActor mRenderableActor;
+ Actor mRenderableActor;
int mRenderingBackend;
};
#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>
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 );
--- /dev/null
+/*
+ * 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
--- /dev/null
+#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__
$(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 \
#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>
#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>
// TODO - Remove this if nothing is active
CreateActiveLayer();
+ /*
// Show or hide the cursors
CreateCursors();
if( mPrimaryCursor )
}
mSecondaryCursor.SetVisible( mSecondaryCursorVisible );
}
-
+ */
// Show or hide the grab handle
HandleImpl& grabHandle = mHandle[GRAB_HANDLE];
if( grabHandle.active )
{
UnparentAndReset( primary.actor );
UnparentAndReset( secondary.actor );
- UnparentAndReset( mHighlightMeshActor );
+ //UnparentAndReset( mHighlightMeshActor );
}
if ( mActiveCopyPastePopup )
// Add or Remove cursor(s) from parent
void CreateCursors()
{
+ /*
if( mActiveCursor == ACTIVE_CURSOR_NONE )
{
UnparentAndReset( mPrimaryCursor );
}
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 )
{
UnparentAndReset( mSecondaryCursor );
}
}
+ */
}
bool OnCursorBlinkTimerTick()
{
+ /*
// Cursor blinking
if ( mPrimaryCursor )
{
}
mCursorBlinkStatus = !mCursorBlinkStatus;
-
+ */
return true;
}
void CreateHighlight()
{
+ /*
if ( !mHighlightMeshActor )
{
mHighlightMaterial = Material::New( "HighlightMaterial" );
Actor parent = mTextControlParent.Self();
parent.Add( mHighlightMeshActor );
}
+ */
}
void UpdateHighlight()
// 9* *7
//
+ /*
if ( mHighlightMesh && mHighlightMaterial && !mHighlightQuadList.empty() )
{
MeshData::VertexContainer vertices;
mHighlightMeshData.SetData( vertices, faceIndices, bones, mHighlightMaterial );
mHighlightMesh.UpdateMeshData( mHighlightMeshData );
}
+ */
}
void OnTap( Actor actor, const TapGesture& tap )
{
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 )
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];
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 );
}
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();
*/
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
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();
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 );
}
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
*/
void GenerateMeshData( uint32_t imageId,
const Vector2& position,
- MeshData& meshData );
+ Toolkit::AtlasManager::Mesh2D& mesh );
/**
* @brief Stitch Two Meshes together
* @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
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
#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
#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;
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
{
Vector4 mColor;
uint32_t mAtlasId;
- MeshData mMeshData;
+ AtlasManager::Mesh2D mMesh;
FrameBufferImage mBuffer;
bool mIsUnderline;
};
{
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,
}
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
// 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;
}
}
{
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 )
#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,
{
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;
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,
// 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 );
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 );
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;
}
}
- 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;
}
}
// 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();
task.SetRefreshRate( RenderTask::REFRESH_ONCE );
task.FinishedSignal().Connect( this, &AtlasRenderer::Impl::RenderComplete );
actor.Add( subActor );
+
return actor;
}
}
}
- 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()
return Text::RendererPtr( new AtlasRenderer() );
}
-RenderableActor AtlasRenderer::Render( Text::ViewInterface& view )
+Actor AtlasRenderer::Render( Text::ViewInterface& view )
{
UnparentAndReset( mImpl->mActor );
* @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:
// 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
* @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
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;
return Text::RendererPtr( new BasicRenderer() );
}
-RenderableActor BasicRenderer::Render( Text::ViewInterface& view )
+Actor BasicRenderer::Render( Text::ViewInterface& view )
{
// Remove the previous text
UnparentAndReset( mImpl->mActor );
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
* @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:
// CLASS HEADER
#include <dali-toolkit/internal/text/rendering/text-renderer.h>
+#include <dali/public-api/shader-effects/shader-effect.h>
namespace Dali
{
namespace BasicShadowShader
{
-
+/*
Dali::ShaderEffect New()
{
std::string vertexShader = DALI_COMPOSE_SHADER(
Dali::ShaderEffect::GeometryHints( Dali::ShaderEffect::HINT_NONE ) );
return shaderEffect;
}
-
+*/
} // namespace BasicShadowShader
} // namespace Text
+++ /dev/null
-#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__
// INTERNAL HEADERS
#include <dali-toolkit/internal/text/rendering/text-renderer.h>
+#include <dali/public-api/shader-effects/shader-effect.h>
namespace Dali
{
*/
// 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>
* @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:
#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>
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 );
/**
* 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)
meshData.SetVertices( vertices );
meshData.SetFaceIndices( faces );
meshData.SetHasColor( true );
-
- return Mesh::New( meshData );
+ */
+ return white;
+ //return Mesh::New( meshData );
}
/**
// Just set the actor color
background.actor.SetColor( color );
}
+ /*
else
{
// Create Mesh Actor
background.actor = meshActor;
Self().Add( meshActor );
}
+ */
background.color = color;
}
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()
--- /dev/null
+#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__
$(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 \
{
}
-MotionBlurEffect MotionBlurEffect::Apply( RenderableActor renderable )
+MotionBlurEffect MotionBlurEffect::Apply( ImageActor renderable )
{
MotionBlurEffect newEffect = New( MOTION_BLUR_NUM_SAMPLES );
renderable.SetShaderEffect( newEffect );
*/
// 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
* @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
{
}
-MotionStretchEffect MotionStretchEffect::Apply( RenderableActor renderable )
+MotionStretchEffect MotionStretchEffect::Apply( ImageActor renderable )
{
MotionStretchEffect newEffect = New();
renderable.SetShaderEffect( newEffect );
*/
// 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
* @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
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