utc-Dali-Text-Markup.cpp
utc-Dali-Text-Typesetter.cpp
utc-Dali-Text-ViewModel.cpp
+ utc-Dali-DebugRendering.cpp
)
# Append list of test harness files (Won't get parsed for test cases)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb --coverage -Wall -Werror")
+ADD_DEFINITIONS(-DTEST_RESOURCE_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/../../resources\" )
+
FOREACH(directory ${${CAPI_LIB}_LIBRARY_DIRS})
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -L${directory}")
ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS})
* limitations under the License.
*
*/
+#include <unistd.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+#include <dali-toolkit/internal/visuals/wireframe/wireframe-visual.h>
+#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
#include <dali/public-api/rendering/renderer.h>
#include <dali/public-api/rendering/geometry.h>
{
const char* TEST_IMAGE_FILE_NAME = "image_01.jpg";
const char* TEST_NPATCH_FILE_NAME = "image_01.9.jpg";
+const char* TEST_SVG_FILE_NAME = TEST_RESOURCE_DIR "/svg1.svg";
+const char* TEST_GIF_FILE_NAME = TEST_RESOURCE_DIR "/anim.gif";
-bool IsDebugVisual( Visual::Base& visual )
+const std::string DEFAULT_FONT_DIR( "/resources/fonts" );
+
+void TestDebugVisual( Visual::Base& visual, Visual::Type actualType, Vector2 expectedNaturalSize )
{
- bool isDebugVisualType = false;
- bool isGeometryLineType = false;
+ DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( GetImplementation(visual) ) );
+
+ Vector2 naturalSize;
+ visual.GetNaturalSize( naturalSize );
+ DALI_TEST_EQUALS( naturalSize, expectedNaturalSize, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
Property::Map propertyMap;
visual.CreatePropertyMap( propertyMap );
Property::Value* typeValue = propertyMap.Find( Visual::Property::TYPE, Property::INTEGER );
if ( typeValue )
{
- isDebugVisualType = ( typeValue->Get<int>() == Visual::WIREFRAME ); // Debug Rendering uses the WireframeVisual
+ DALI_TEST_CHECK( typeValue->Get<int>() == actualType );
}
DummyControl actor = DummyControl::New();
if( actor.GetRendererCount() > 0 )
{
Geometry geometry = actor.GetRendererAt( 0 ).GetGeometry();
- isGeometryLineType = ( geometry.GetType() == Geometry::LINES );
+ DALI_TEST_CHECK( geometry.GetType() == Geometry::LINES );
}
-
- return isDebugVisualType && isGeometryLineType;
}
}
propertyMap1.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE);
Visual::Base colorVisual = factory.CreateVisual(propertyMap1);
DALI_TEST_CHECK( colorVisual );
- DALI_TEST_CHECK( IsDebugVisual( colorVisual ) );
+ TestDebugVisual( colorVisual, Visual::COLOR, Vector2::ZERO );
// Test that border visual is replaced with debug visual
Property::Map propertyMap2;
propertyMap2.Insert(BorderVisual::Property::SIZE, 2.f);
Visual::Base borderVisual = factory.CreateVisual(propertyMap2);
DALI_TEST_CHECK( borderVisual );
- DALI_TEST_CHECK( IsDebugVisual( borderVisual ) );
+ TestDebugVisual( borderVisual, Visual::BORDER, Vector2::ZERO );
// Test that gradient visual is replaced with debug visual
Property::Map propertyMap3;
propertyMap3.Insert(GradientVisual::Property::STOP_COLOR, stopColors);
Visual::Base gradientVisual = factory.CreateVisual(propertyMap3);
DALI_TEST_CHECK( gradientVisual );
- DALI_TEST_CHECK( IsDebugVisual( gradientVisual ) );
+ TestDebugVisual( gradientVisual, Visual::GRADIENT, Vector2::ZERO );
// Test that image visual is replaced with debug visual
Property::Map propertyMap4;
propertyMap4.Insert( Visual::Property::TYPE, Visual::IMAGE );
propertyMap4.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME );
+ propertyMap4.Insert( ImageVisual::Property::DESIRED_WIDTH, 50.f );
+ propertyMap4.Insert( ImageVisual::Property::DESIRED_HEIGHT, 100.f );
Visual::Base imageVisual = factory.CreateVisual( propertyMap4 );
DALI_TEST_CHECK( imageVisual );
- DALI_TEST_CHECK( IsDebugVisual( imageVisual ) );
+ TestDebugVisual( imageVisual, Visual::IMAGE, Vector2( 50.f, 100.f ) );
- // Test that n patch visual is replaced with debug visual
+ // Test that SVG visual is replaced with debug visual
+ // TEST_SVG_FILE:
+ // <svg width="100" height="100">
+ // <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
+ // </svg>
Property::Map propertyMap5;
propertyMap5.Insert( Visual::Property::TYPE, Visual::IMAGE );
- propertyMap5.Insert( ImageVisual::Property::URL, TEST_NPATCH_FILE_NAME );
- Visual::Base nPatchVisual = factory.CreateVisual( propertyMap4 );
- DALI_TEST_CHECK( nPatchVisual );
- DALI_TEST_CHECK( IsDebugVisual( nPatchVisual ) );
+ propertyMap5.Insert( ImageVisual::Property::URL, TEST_SVG_FILE_NAME );
+ Visual::Base svgVisual = factory.CreateVisual( propertyMap5 );
+ DALI_TEST_CHECK( svgVisual );
+ TestDebugVisual( svgVisual, Visual::IMAGE, Vector2(100.f, 100.f) );
+
+ // Test that AnimatedImageVisual is replaced with debug visual
+ // TEST_GIF_FILE: anim.gif
+ // resolution: 50*50, frame count: 4, frame delay: 0.2 second for each frame
+ Property::Map propertyMap6;
+ propertyMap6.Insert( Visual::Property::TYPE, Visual::IMAGE );
+ propertyMap6.Insert( ImageVisual::Property::URL, TEST_GIF_FILE_NAME );
+ Visual::Base animatedImageVisual = factory.CreateVisual( propertyMap6 );
+ DALI_TEST_CHECK( animatedImageVisual );
+ TestDebugVisual( animatedImageVisual, Visual::IMAGE, Vector2(50.f, 50.f) );
+
+ // Test that text visual is replaced with debug visual
+
+ // Load some fonts to get the same metrics on different platforms.
+ TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
+ fontClient.SetDpi( 96u, 96u );
+
+ char* pathNamePtr = get_current_dir_name();
+ const std::string pathName( pathNamePtr );
+ free( pathNamePtr );
+
+ fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf" );
+
+ Property::Map propertyMap7;
+ propertyMap7.Insert( Visual::Property::TYPE, DevelVisual::TEXT );
+ propertyMap7.Insert( TextVisual::Property::ENABLE_MARKUP, true );
+ propertyMap7.Insert( TextVisual::Property::TEXT, "<font family='TizenSans' size='12'>Hello world</font>" );
+ propertyMap7.Insert( TextVisual::Property::MULTI_LINE, true );
+
+ Visual::Base textVisual = factory.CreateVisual( propertyMap7 );
+ DALI_TEST_CHECK( textVisual );
+ DALI_TEST_CHECK( &typeid( Toolkit::Internal::WireframeVisual ) == &typeid( GetImplementation(textVisual) ) );
+
+ Vector2 naturalSize;
+ textVisual.GetNaturalSize( naturalSize );
+ DALI_TEST_EQUALS( naturalSize, Vector2( 80.f, 20.f ), Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+
+ const float height = textVisual.GetHeightForWidth( 40.f );
+ DALI_TEST_EQUALS( height, 40.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
EnvironmentVariable::SetTestingEnvironmentVariable(false);
END_TEST;
Visual::Base colorVisual = factory.CreateVisual( map);
DALI_TEST_CHECK( colorVisual );
- DALI_TEST_CHECK( IsDebugVisual( colorVisual ) );
+ TestDebugVisual( colorVisual, Visual::COLOR, Vector2::ZERO );
// Test that border visual is replaced with debug visual
map.Clear();
map[ BorderVisual::Property::SIZE ] = 2.f;
Visual::Base borderVisual = factory.CreateVisual( map );
DALI_TEST_CHECK( borderVisual );
- DALI_TEST_CHECK( IsDebugVisual( borderVisual ) );
+ TestDebugVisual( borderVisual, Visual::BORDER, Vector2::ZERO );
// Test that image visual is replaced with debug visual
Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME);
Visual::Base imageVisual = factory.CreateVisual( image );
DALI_TEST_CHECK( imageVisual );
- DALI_TEST_CHECK( IsDebugVisual( imageVisual ) );
+ TestDebugVisual( imageVisual, Visual::IMAGE, Vector2::ZERO);
// Test that n patch visual is replaced with debug visual
Visual::Base nPatchVisual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() );
DALI_TEST_CHECK( nPatchVisual );
- DALI_TEST_CHECK( IsDebugVisual( nPatchVisual ) );
+ TestDebugVisual( nPatchVisual, Visual::IMAGE, Vector2::ZERO );
EnvironmentVariable::SetTestingEnvironmentVariable(false);
END_TEST;
utc-Dali-Model3dView.cpp
utc-Dali-Visual.cpp
utc-Dali-VisualFactory.cpp
- utc-Dali-DebugRendering.cpp
utc-Dali-ImageAtlas.cpp
utc-Dali-VideoView.cpp
utc-Dali-AsyncImageLoader.cpp
// Add effect texture to blend-two-image custom shader
TextureSet textureSet = mActorForBlending.GetRendererAt(0).GetTextures();
- TextureSetImage( textureSet, 1u, mInputImage );
+ if( textureSet )
+ {
+ TextureSetImage( textureSet, 1u, mInputImage );
+ }
SetupCamera();
CreateRenderTasks();
void PrimitiveVisual::GetNaturalSize( Vector2& naturalSize )
{
+ if( !mGeometry )
+ {
+ CreateGeometry();
+ }
+
naturalSize.x = mObjectDimensions.x;
naturalSize.y = mObjectDimensions.y;
}
virtual ~Base();
protected:
+
/**
* @brief Called by CreatePropertyMap() allowing sub classes to respond to the CreatePropertyMap event
*
*/
virtual void OnSetTransform() = 0;
-protected:
-
/**
* @brief Called by SetOnStage() allowing sub classes to respond to the SetOnStage event
*
Visual::BasePtr visualPtr;
- if( mDebugEnabled )
+ Property::Value* typeValue = propertyMap.Find( Toolkit::DevelVisual::Property::TYPE, VISUAL_TYPE );
+ Toolkit::DevelVisual::Type visualType = Toolkit::DevelVisual::IMAGE; // Default to IMAGE type.
+ if( typeValue )
{
- //Create a WireframeVisual if we have debug enabled
- visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ) );
+ Scripting::GetEnumerationProperty( *typeValue, VISUAL_TYPE_TABLE, VISUAL_TYPE_TABLE_COUNT, visualType );
}
- else
+
+ switch( visualType )
{
- Property::Value* typeValue = propertyMap.Find( Toolkit::DevelVisual::Property::TYPE, VISUAL_TYPE );
- Toolkit::DevelVisual::Type visualType = Toolkit::DevelVisual::IMAGE; // Default to IMAGE type.
- if( typeValue )
+ case Toolkit::Visual::BORDER:
{
- Scripting::GetEnumerationProperty( *typeValue, VISUAL_TYPE_TABLE, VISUAL_TYPE_TABLE_COUNT, visualType );
+ visualPtr = BorderVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
}
- switch( visualType )
+ case Toolkit::Visual::COLOR:
{
- case Toolkit::Visual::BORDER:
- {
- visualPtr = BorderVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
-
- case Toolkit::Visual::COLOR:
- {
- visualPtr = ColorVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
+ visualPtr = ColorVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
+ }
- case Toolkit::Visual::GRADIENT:
- {
- visualPtr = GradientVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
+ case Toolkit::Visual::GRADIENT:
+ {
+ visualPtr = GradientVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
+ }
- case Toolkit::Visual::IMAGE:
+ case Toolkit::Visual::IMAGE:
+ {
+ Property::Value* imageURLValue = propertyMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
+ std::string imageUrl;
+ if( imageURLValue && imageURLValue->Get( imageUrl ) )
{
- Property::Value* imageURLValue = propertyMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
- std::string imageUrl;
- if( imageURLValue && imageURLValue->Get( imageUrl ) )
+ // first resolve url type to know which visual to create
+ UrlType::Type type = ResolveUrlType( imageUrl );
+ if( UrlType::N_PATCH == type )
{
- // first resolve url type to know which visual to create
- UrlType::Type type = ResolveUrlType( imageUrl );
- if( UrlType::N_PATCH == type )
- {
- visualPtr = NPatchVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
- }
- else if( UrlType::SVG == type )
+ visualPtr = NPatchVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
+ }
+ else if( UrlType::SVG == type )
+ {
+ visualPtr = SvgVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
+ }
+ else if( UrlType::GIF == type )
+ {
+ visualPtr = AnimatedImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
+ }
+ else // Regular image
+ {
+ bool batchingEnabled( false );
+ Property::Value* batchingEnabledValue = propertyMap.Find( Toolkit::ImageVisual::Property::BATCHING_ENABLED, BATCHING_ENABLED );
+ if( batchingEnabledValue )
{
- visualPtr = SvgVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
+ batchingEnabledValue->Get( batchingEnabled );
}
- else if( UrlType::GIF == type )
+
+ if( batchingEnabled )
{
- visualPtr = AnimatedImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
+ visualPtr = BatchImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
}
- else // Regular image
+ else
{
- bool batchingEnabled( false );
- Property::Value* batchingEnabledValue = propertyMap.Find( Toolkit::ImageVisual::Property::BATCHING_ENABLED, BATCHING_ENABLED );
- if( batchingEnabledValue )
- {
- batchingEnabledValue->Get( batchingEnabled );
- }
-
- if( batchingEnabled )
- {
- visualPtr = BatchImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
- }
- else
- {
- visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
- }
+ visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), imageUrl, propertyMap );
}
}
-
- break;
}
- case Toolkit::Visual::MESH:
- {
- visualPtr = MeshVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
+ break;
+ }
- case Toolkit::Visual::PRIMITIVE:
- {
- visualPtr = PrimitiveVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
+ case Toolkit::Visual::MESH:
+ {
+ visualPtr = MeshVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
+ }
- case Toolkit::Visual::WIREFRAME:
- {
- visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ) );
- break;
- }
+ case Toolkit::Visual::PRIMITIVE:
+ {
+ visualPtr = PrimitiveVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
+ }
- case Toolkit::DevelVisual::TEXT:
- {
- visualPtr = TextVisual::New( *( mFactoryCache.Get() ), propertyMap );
- break;
- }
+ case Toolkit::Visual::WIREFRAME:
+ {
+ visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
+ }
+
+ case Toolkit::DevelVisual::TEXT:
+ {
+ visualPtr = TextVisual::New( *( mFactoryCache.Get() ), propertyMap );
+ break;
}
}
DALI_LOG_ERROR( "Renderer type unknown\n" );
}
+ if( mDebugEnabled && visualType != Toolkit::DevelVisual::WIREFRAME )
+ {
+ //Create a WireframeVisual if we have debug enabled
+ visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ), visualPtr, propertyMap );
+ }
+
return Toolkit::Visual::Base( visualPtr.Get() );
}
mFactoryCache = new VisualFactoryCache();
}
- if( mDebugEnabled )
- {
- return Toolkit::Visual::Base( WireframeVisual::New( *( mFactoryCache.Get() ) ).Get() );
- }
-
Visual::BasePtr visualPtr;
NinePatchImage npatchImage = NinePatchImage::DownCast( image );
visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), image );
}
+ if( mDebugEnabled )
+ {
+ //Create a WireframeVisual if we have debug enabled
+ visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ), visualPtr );
+ }
+
return Toolkit::Visual::Base( visualPtr.Get() );
}
mFactoryCache = new VisualFactoryCache();
}
- if( mDebugEnabled )
- {
- return Toolkit::Visual::Base( WireframeVisual::New( *( mFactoryCache.Get() ) ).Get() );
- }
-
Visual::BasePtr visualPtr;
// first resolve url type to know which visual to create
visualPtr = ImageVisual::New( *( mFactoryCache.Get() ), url, size );
}
+ if( mDebugEnabled )
+ {
+ //Create a WireframeVisual if we have debug enabled
+ visualPtr = WireframeVisual::New( *( mFactoryCache.Get() ), visualPtr );
+ }
+
return Toolkit::Visual::Base( visualPtr.Get() );
}
}
-WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache )
+WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, const Property::Map& properties )
{
- return new WireframeVisual( factoryCache );
+ Visual::BasePtr emtptyVisual;
+
+ return New(factoryCache, emtptyVisual, properties);
}
-WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache )
-: Visual::Base( factoryCache )
+WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual )
+{
+ return new WireframeVisual( factoryCache, actualVisual );
+}
+
+WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual, const Property::Map& properties )
+{
+ WireframeVisualPtr wireframeVisual( new WireframeVisual( factoryCache, actualVisual ) );
+
+ // Instead of calling SetProperties, looking for the only valid property 'transform'
+ Property::Value* transformValue = properties.Find( DevelVisual::Property::TRANSFORM, TRANSFORM );
+ Property::Map transformMap;
+ if( transformValue && transformValue->Get( transformMap ) )
+ {
+ wireframeVisual->SetTransformAndSize( transformMap, Vector2::ZERO );
+ }
+
+ return wireframeVisual;
+}
+
+WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual )
+: Visual::Base( factoryCache ),
+ mActualVisual( actualVisual )
{
}
{
}
+float WireframeVisual::GetHeightForWidth( float width )
+{
+ if( mActualVisual )
+ {
+ return mActualVisual->GetHeightForWidth( width );
+ }
+ else
+ {
+ return Visual::Base::GetHeightForWidth( width );
+ }
+}
+
+void WireframeVisual::GetNaturalSize( Vector2& naturalSize )
+{
+ if( mActualVisual )
+ {
+ mActualVisual->GetNaturalSize( naturalSize );
+ }
+ else
+ {
+ Visual::Base::GetNaturalSize( naturalSize );
+ }
+}
+
+void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const
+{
+ if( mActualVisual )
+ {
+ mActualVisual->CreatePropertyMap( map );
+ }
+ else
+ {
+ map.Clear();
+ map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::Visual::WIREFRAME );
+ }
+}
+
void WireframeVisual::DoSetProperties( const Property::Map& propertyMap )
{
// no properties supported at the moment
actor.AddRenderer( mImpl->mRenderer );
}
-void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const
-{
- map.Clear();
- map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::Visual::WIREFRAME );
-}
-
void WireframeVisual::InitializeRenderer()
{
Shader shader = mFactoryCache.GetShader( VisualFactoryCache::WIREFRAME_SHADER );
* @brief Create a new wireframe visual.
*
* @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
+ * @param[in] properties A Property::Map containing settings for this visual
* @return A smart-pointer to the newly allocated visual.
*/
- static WireframeVisualPtr New( VisualFactoryCache& factoryCache );
+ static WireframeVisualPtr New( VisualFactoryCache& factoryCache, const Property::Map& properties );
+
+ /**
+ * @brief Create a new wireframe visual with an encapsulated actual visual.
+ *
+ * For debugging purpose, the rendering of the encapsulated visual is replaced with wireframe
+ *
+ * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
+ * @param[in] actualVisual The encapsulated actual visual.
+ * @return A smart-pointer to the newly allocated visual.
+ */
+ static WireframeVisualPtr New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual );
+
+ /**
+ * @brief Create a new wireframe visual with an encapsulated actual visual.
+ *
+ * For debugging purpose, the rendering of the encapsulated visual is replaced with wireframe
+ *
+ * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
+ * @param[in] actualVisual The encapsulated actual visual.
+ * @param[in] properties A Property::Map containing settings for this visual
+ * @return A smart-pointer to the newly allocated visual.
+ */
+ static WireframeVisualPtr New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual, const Property::Map& properties );
+
protected:
* @brief Constructor.
*
* @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
+ * @param[in] actualVisual The encapsulated actual visual.
*/
- WireframeVisual( VisualFactoryCache& factoryCache );
+ WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual );
/**
* @brief A reference counted object may only be deleted by calling Unreference().
*/
virtual ~WireframeVisual();
+protected: // from Visual::Base
+
/**
- * @copydoc Visual::Base::DoSetProperties()
+ * @copydoc Visual::Base::GetHeightForWidth()
*/
- virtual void DoSetProperties( const Property::Map& propertyMap );
+ virtual float GetHeightForWidth( float width );
/**
- * @copydoc Visual::Base::DoSetOnStage
+ * @copydoc Visual::Base::GetNaturalSize()
*/
- virtual void DoSetOnStage( Actor& actor );
+ virtual void GetNaturalSize( Vector2& naturalSize );
/**
- * @copydoc Visual::Base::CreatePropertyMap
+ * @copydoc Visual::Base::CreatePropertyMap()
*/
virtual void DoCreatePropertyMap( Property::Map& map ) const;
/**
+ * @copydoc Visual::Base::DoSetProperties()
+ */
+ virtual void DoSetProperties( const Property::Map& propertyMap );
+
+ /**
+ * @copydoc Visual::Base::DoSetOnStage
+ */
+ virtual void DoSetOnStage( Actor& actor );
+
+ /**
* @copydoc Visual::Base::OnSetTransform
*/
virtual void OnSetTransform();
*/
void InitializeRenderer();
-private:
-
// Undefined
WireframeVisual( const WireframeVisual& visual);
// Undefined
WireframeVisual& operator=( const WireframeVisual& visual );
+private:
+
+ Visual::BasePtr mActualVisual;
+
};
} // namespace Internal