projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Register Transform uniforms in SVG Visual & only register shader properties upon...
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
visuals
/
visual-factory-impl.cpp
diff --git
a/dali-toolkit/internal/visuals/visual-factory-impl.cpp
b/dali-toolkit/internal/visuals/visual-factory-impl.cpp
index
df9cbb3
..
9b77e63
100644
(file)
--- a/
dali-toolkit/internal/visuals/visual-factory-impl.cpp
+++ b/
dali-toolkit/internal/visuals/visual-factory-impl.cpp
@@
-28,25
+28,21
@@
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
-#include <dali-toolkit/
public-api/visuals/
visual-properties.h>
+#include <dali-toolkit/
devel-api/visual-factory/devel-
visual-properties.h>
#include <dali-toolkit/internal/visuals/border/border-visual.h>
#include <dali-toolkit/internal/visuals/color/color-visual.h>
#include <dali-toolkit/internal/visuals/border/border-visual.h>
#include <dali-toolkit/internal/visuals/color/color-visual.h>
-#include <dali-toolkit/internal/visuals/debug/debug-visual.h>
#include <dali-toolkit/internal/visuals/gradient/gradient-visual.h>
#include <dali-toolkit/internal/visuals/gradient/gradient-visual.h>
-#include <dali-toolkit/internal/visuals/
npatch/npatch
-visual.h>
+#include <dali-toolkit/internal/visuals/
image/batch-image
-visual.h>
#include <dali-toolkit/internal/visuals/image/image-visual.h>
#include <dali-toolkit/internal/visuals/image/image-visual.h>
-#include <dali-toolkit/internal/visuals/svg/svg-visual.h>
#include <dali-toolkit/internal/visuals/mesh/mesh-visual.h>
#include <dali-toolkit/internal/visuals/mesh/mesh-visual.h>
+#include <dali-toolkit/internal/visuals/npatch/npatch-visual.h>
#include <dali-toolkit/internal/visuals/primitive/primitive-visual.h>
#include <dali-toolkit/internal/visuals/primitive/primitive-visual.h>
+#include <dali-toolkit/internal/visuals/svg/svg-visual.h>
+#include <dali-toolkit/internal/visuals/text/text-visual.h>
+#include <dali-toolkit/internal/visuals/wireframe/wireframe-visual.h>
#include <dali-toolkit/internal/visuals/visual-factory-cache.h>
#include <dali-toolkit/internal/visuals/visual-factory-cache.h>
+#include <dali-toolkit/internal/visuals/visual-factory-resolve-url.h>
#include <dali-toolkit/internal/visuals/visual-string-constants.h>
#include <dali-toolkit/internal/visuals/visual-string-constants.h>
-#include <dali-toolkit/internal/visuals/image-atlas-manager.h>
-#include <dali-toolkit/internal/visuals/image/batch-image-visual.h>
-
-namespace
-{
-const char * const BROKEN_VISUAL_IMAGE_URL( DALI_IMAGE_DIR "broken.png");
-}
namespace Dali
{
namespace Dali
{
@@
-67,7
+63,7
@@
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, GRADIENT )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, IMAGE )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, MESH )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, PRIMITIVE )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, IMAGE )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, MESH )
DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, PRIMITIVE )
-DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual,
DEBUG
)
+DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual,
WIREFRAME
)
DALI_ENUM_TO_STRING_TABLE_END( VISUAL_TYPE )
const char * const VISUAL_TYPE( "visualType" );
DALI_ENUM_TO_STRING_TABLE_END( VISUAL_TYPE )
const char * const VISUAL_TYPE( "visualType" );
@@
-101,15
+97,15
@@
Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property
mFactoryCache = new VisualFactoryCache();
}
mFactoryCache = new VisualFactoryCache();
}
- // Return a new
Debug
Visual if we have debug enabled
+ // Return a new
Wireframe
Visual if we have debug enabled
if( mDebugEnabled )
{
if( mDebugEnabled )
{
- return Toolkit::Visual::Base(
new DebugVisual( *( mFactoryCache.Get() )
) );
+ return Toolkit::Visual::Base(
WireframeVisual::New( *( mFactoryCache.Get() ) ).Get(
) );
}
}
- Visual::Base
* visualPtr = NULL
;
+ Visual::Base
Ptr visualPtr
;
- Property::Value* typeValue = propertyMap.Find( Toolkit::Visual
::
Property::TYPE, VISUAL_TYPE );
+ Property::Value* typeValue = propertyMap.Find( Toolkit::VisualProperty::TYPE, VISUAL_TYPE );
Toolkit::Visual::Type visualType = Toolkit::Visual::IMAGE; // Default to IMAGE type.
if( typeValue )
{
Toolkit::Visual::Type visualType = Toolkit::Visual::IMAGE; // Default to IMAGE type.
if( typeValue )
{
@@
-120,19
+116,19
@@
Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property
{
case Toolkit::Visual::BORDER:
{
{
case Toolkit::Visual::BORDER:
{
- visualPtr =
new BorderVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
BorderVisual::New
( *( mFactoryCache.Get() ) );
break;
}
case Toolkit::Visual::COLOR:
{
break;
}
case Toolkit::Visual::COLOR:
{
- visualPtr =
new ColorVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
ColorVisual::New
( *( mFactoryCache.Get() ) );
break;
}
case Toolkit::Visual::GRADIENT:
{
break;
}
case Toolkit::Visual::GRADIENT:
{
- visualPtr =
new GradientVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
GradientVisual::New
( *( mFactoryCache.Get() ) );
break;
}
break;
}
@@
-142,70
+138,75
@@
Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property
std::string imageUrl;
if( imageURLValue && imageURLValue->Get( imageUrl ) )
{
std::string imageUrl;
if( imageURLValue && imageURLValue->Get( imageUrl ) )
{
- Property::Value* batchingEnabledValue = propertyMap.Find( Toolkit::ImageVisual::Property::BATCHING_ENABLED, BATCHING_ENABLED );
- if( batchingEnabledValue )
+ // first resolve url type to know which visual to create
+ UrlType::Type type = ResolveUrlType( imageUrl );
+ if( UrlType::N_PATCH == type )
{
{
- bool batchingEnabled( false );
- batchingEnabledValue->Get( batchingEnabled );
- if( batchingEnabled )
- {
- CreateAtlasManager();
- visualPtr = new BatchImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
- break;
- }
+ visualPtr = NPatchVisual::New( *( mFactoryCache.Get() ), imageUrl );
}
}
- else if(
NinePatchImage::IsNinePatchUrl( imageUrl )
)
+ else if(
UrlType::SVG == type
)
{
{
- visualPtr =
new NPatchVisual( *( mFactoryCache.Get() )
);
+ visualPtr =
SvgVisual::New( *( mFactoryCache.Get() ), imageUrl
);
}
}
- else
+ else
// Regular image
{
{
- CreateAtlasManager();
+ bool batchingEnabled( false );
+ Property::Value* batchingEnabledValue = propertyMap.Find( Toolkit::ImageVisual::Property::BATCHING_ENABLED, BATCHING_ENABLED );
+ if( batchingEnabledValue )
+ {
+ batchingEnabledValue->Get( batchingEnabled );
+ }
- if(
SvgVisual::IsSvgUrl( imageUrl )
)
+ if(
batchingEnabled
)
{
{
- visualPtr = new SvgVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
+ visualPtr = BatchImageVisual::New( *( mFactoryCache.Get() ), imageUrl );
+ break;
}
else
{
}
else
{
- visualPtr =
new ImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() )
);
+ visualPtr =
ImageVisual::New( *( mFactoryCache.Get() ), imageUrl
);
}
}
}
}
}
}
+
break;
}
case Toolkit::Visual::MESH:
{
break;
}
case Toolkit::Visual::MESH:
{
- visualPtr =
new MeshVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
MeshVisual::New
( *( mFactoryCache.Get() ) );
break;
}
case Toolkit::Visual::PRIMITIVE:
{
break;
}
case Toolkit::Visual::PRIMITIVE:
{
- visualPtr =
new PrimitiveVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
PrimitiveVisual::New
( *( mFactoryCache.Get() ) );
break;
}
break;
}
- case Toolkit::Visual::
DEBUG
:
+ case Toolkit::Visual::
WIREFRAME
:
{
{
- visualPtr =
new DebugVisual
( *( mFactoryCache.Get() ) );
+ visualPtr =
WireframeVisual::New
( *( mFactoryCache.Get() ) );
break;
}
break;
}
+ case Toolkit::Visual::TEXT:
+ {
+ visualPtr = TextVisual::New( *( mFactoryCache.Get() ) );
+ break;
+ }
}
if( visualPtr )
{
}
if( visualPtr )
{
- Actor actor;
- visualPtr->Initialize( actor, propertyMap );
+ visualPtr->SetProperties( propertyMap );
}
else
{
DALI_LOG_ERROR( "Renderer type unknown\n" );
}
}
else
{
DALI_LOG_ERROR( "Renderer type unknown\n" );
}
- return Toolkit::Visual::Base( visualPtr );
+ return Toolkit::Visual::Base( visualPtr
.Get()
);
}
Toolkit::Visual::Base VisualFactory::CreateVisual( const Image& image )
}
Toolkit::Visual::Base VisualFactory::CreateVisual( const Image& image )
@@
-217,26
+218,22
@@
Toolkit::Visual::Base VisualFactory::CreateVisual( const Image& image )
if( mDebugEnabled )
{
if( mDebugEnabled )
{
- return Toolkit::Visual::Base(
new DebugVisual( *( mFactoryCache.Get() )
) );
+ return Toolkit::Visual::Base(
WireframeVisual::New( *( mFactoryCache.Get() ) ).Get(
) );
}
}
+ Visual::BasePtr visualPtr;
+
NinePatchImage npatchImage = NinePatchImage::DownCast( image );
if( npatchImage )
{
NinePatchImage npatchImage = NinePatchImage::DownCast( image );
if( npatchImage )
{
- NPatchVisual* visualPtr = new NPatchVisual( *( mFactoryCache.Get() ) );
- visualPtr->SetImage( npatchImage );
-
- return Toolkit::Visual::Base( visualPtr );
+ visualPtr = NPatchVisual::New( *( mFactoryCache.Get() ), npatchImage );
}
else
{
}
else
{
- CreateAtlasManager();
- ImageVisual* visualPtr = new ImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
- Actor actor;
- visualPtr->SetImage( actor, image );
-
- return Toolkit::Visual::Base( visualPtr );
+ visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), image );
}
}
+
+ return Toolkit::Visual::Base( visualPtr.Get() );
}
Toolkit::Visual::Base VisualFactory::CreateVisual( const std::string& url, ImageDimensions size )
}
Toolkit::Visual::Base VisualFactory::CreateVisual( const std::string& url, ImageDimensions size )
@@
-248,47
+245,27
@@
Toolkit::Visual::Base VisualFactory::CreateVisual( const std::string& url, Image
if( mDebugEnabled )
{
if( mDebugEnabled )
{
- return Toolkit::Visual::Base(
new DebugVisual( *( mFactoryCache.Get() )
) );
+ return Toolkit::Visual::Base(
WireframeVisual::New( *( mFactoryCache.Get() ) ).Get(
) );
}
}
- if( NinePatchImage::IsNinePatchUrl( url ) )
- {
- NPatchVisual* visualPtr = new NPatchVisual( *( mFactoryCache.Get() ) );
- visualPtr->SetImage( url );
+ Visual::BasePtr visualPtr;
- return Toolkit::Visual::Base( visualPtr );
- }
-
else if( SvgVisual::IsSvgUrl( url )
)
+ // first resolve url type to know which visual to create
+ UrlType::Type type = ResolveUrlType( url );
+
if( UrlType::N_PATCH == type
)
{
{
- CreateAtlasManager();
- SvgVisual* visualPtr = new SvgVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
- visualPtr->SetImage( url, size );
- return Toolkit::Visual::Base( visualPtr );
+ visualPtr = NPatchVisual::New( *( mFactoryCache.Get() ), url );
}
}
- else
+ else
if( UrlType::SVG == type )
{
{
- CreateAtlasManager();
- ImageVisual* visualPtr = new ImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) );
- Actor actor;
- visualPtr->SetImage( actor, url, size );
-
- return Toolkit::Visual::Base( visualPtr );
+ visualPtr = SvgVisual::New( *( mFactoryCache.Get() ), url, size );
}
}
-}
-
-Image VisualFactory::GetBrokenVisualImage()
-{
- return ResourceImage::New( BROKEN_VISUAL_IMAGE_URL );
-}
-
-void VisualFactory::CreateAtlasManager()
-{
- if( !mAtlasManager )
+ else // Regular image
{
{
- Shader shader = ImageVisual::GetImageShader( *( mFactoryCache.Get() ) );
- mAtlasManager = new ImageAtlasManager();
- mAtlasManager->SetBrokenImage( BROKEN_VISUAL_IMAGE_URL );
+ visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), url, size );
}
}
+
+ return Toolkit::Visual::Base( visualPtr.Get() );
}
} // namespace Internal
}
} // namespace Internal