X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fwireframe%2Fwireframe-visual.cpp;h=7611dd63b52ed538e062c3a1fd3e08133c329afa;hb=HEAD;hp=f563fc1e744db5bfee82d91c4f95bbbb593f354f;hpb=0e96d3c3debf43ce2c02883bc269f087f8286528;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp index f563fc1..ae76d87 100644 --- a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp +++ b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -15,63 +15,61 @@ * */ - // CLASS HEADER #include "wireframe-visual.h" // INTERNAL INCLUDES -#include -#include +#include +#include #include +#include #include -#include -#include +#include namespace Dali { - namespace Toolkit { - namespace Internal { - namespace { -const char * const POSITION_ATTRIBUTE_NAME("aPosition"); -const char * const INDEX_NAME("indices"); -} +const char* const POSITION_ATTRIBUTE_NAME("aPosition"); +const char* const INDEX_NAME("indices"); +} // namespace -WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, const Property::Map& properties ) +WireframeVisualPtr WireframeVisual::New(VisualFactoryCache& factoryCache, const Property::Map& properties) { Visual::BasePtr emtptyVisual; return New(factoryCache, emtptyVisual, properties); } -WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual ) +WireframeVisualPtr WireframeVisual::New(VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual) { - return new WireframeVisual( factoryCache, actualVisual ); + WireframeVisualPtr wireframeVisual(new WireframeVisual(factoryCache, actualVisual)); + wireframeVisual->Initialize(); + return wireframeVisual; } -WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual, const Property::Map& properties ) +WireframeVisualPtr WireframeVisual::New(VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual, const Property::Map& properties) { - WireframeVisualPtr wireframeVisual( new WireframeVisual( factoryCache, actualVisual ) ); + WireframeVisualPtr wireframeVisual(new WireframeVisual(factoryCache, actualVisual)); // Instead of calling SetProperties, looking for the only valid property 'transform' - Property::Value* transformValue = properties.Find( Toolkit::Visual::Property::TRANSFORM, TRANSFORM ); - Property::Map transformMap; - if( transformValue && transformValue->Get( transformMap ) ) + Property::Value* transformValue = properties.Find(Toolkit::Visual::Property::TRANSFORM, TRANSFORM); + Property::Map transformMap; + if(transformValue && transformValue->Get(transformMap)) { - wireframeVisual->SetTransformAndSize( transformMap, Vector2::ZERO ); + wireframeVisual->SetTransformAndSize(transformMap, Vector2::ZERO); } - + wireframeVisual->Initialize(); return wireframeVisual; } -WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL, actualVisual ? actualVisual->GetType() : Toolkit::Visual::WIREFRAME ), - mActualVisual( actualVisual ) +WireframeVisual::WireframeVisual(VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual) +: Visual::Base(factoryCache, Visual::FittingMode::DONT_CARE, actualVisual ? actualVisual->GetType() : Toolkit::Visual::WIREFRAME), + mActualVisual(actualVisual) { } @@ -79,134 +77,133 @@ WireframeVisual::~WireframeVisual() { } -float WireframeVisual::GetHeightForWidth( float width ) +float WireframeVisual::GetHeightForWidth(float width) { - if( mActualVisual ) + if(mActualVisual) { - return mActualVisual->GetHeightForWidth( width ); + return mActualVisual->GetHeightForWidth(width); } else { - return Visual::Base::GetHeightForWidth( width ); + return Visual::Base::GetHeightForWidth(width); } } -void WireframeVisual::GetNaturalSize( Vector2& naturalSize ) +void WireframeVisual::GetNaturalSize(Vector2& naturalSize) { - if( mActualVisual ) + if(mActualVisual) { - mActualVisual->GetNaturalSize( naturalSize ); + mActualVisual->GetNaturalSize(naturalSize); } else { - Visual::Base::GetNaturalSize( naturalSize ); + Visual::Base::GetNaturalSize(naturalSize); } } -void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const +void WireframeVisual::DoCreatePropertyMap(Property::Map& map) const { - if( mActualVisual ) + if(mActualVisual) { - mActualVisual->CreatePropertyMap( map ); + mActualVisual->CreatePropertyMap(map); } else { map.Clear(); - map.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::WIREFRAME ); + map.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::WIREFRAME); } } -void WireframeVisual::DoCreateInstancePropertyMap( Property::Map& map ) const +void WireframeVisual::DoCreateInstancePropertyMap(Property::Map& map) const { // Do nothing } -void WireframeVisual::DoSetProperties( const Property::Map& propertyMap ) +void WireframeVisual::DoSetProperties(const Property::Map& propertyMap) { - Property::Value* mixValue = propertyMap.Find( Toolkit::Visual::Property::MIX_COLOR, MIX_COLOR ); - if( mixValue ) + Property::Value* mixValue = propertyMap.Find(Toolkit::Visual::Property::MIX_COLOR, MIX_COLOR); + if(mixValue) { Vector4 mixColor; - mixValue->Get( mixColor ); - SetMixColor( mixColor ); + mixValue->Get(mixColor); + SetMixColor(mixColor); } } -void WireframeVisual::DoSetOnScene( Actor& actor ) +void WireframeVisual::DoSetOnScene(Actor& actor) { - InitializeRenderer(); - - actor.AddRenderer( mImpl->mRenderer ); + actor.AddRenderer(mImpl->mRenderer); // Wireframe generated and ready to display - ResourceReady( Toolkit::Visual::ResourceStatus::READY ); + ResourceReady(Toolkit::Visual::ResourceStatus::READY); } -void WireframeVisual::InitializeRenderer() +void WireframeVisual::OnInitialize() { - Shader shader = mFactoryCache.GetShader( VisualFactoryCache::WIREFRAME_SHADER ); - if( !shader ) + Shader shader = mFactoryCache.GetShader(VisualFactoryCache::WIREFRAME_SHADER); + if(!shader) { - shader = Shader::New( SHADER_WIREFRAME_VISUAL_SHADER_VERT, SHADER_WIREFRAME_VISUAL_SHADER_FRAG ); - mFactoryCache.SaveShader( VisualFactoryCache::WIREFRAME_SHADER, shader ); + shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::WIREFRAME_SHADER, SHADER_WIREFRAME_VISUAL_SHADER_VERT, SHADER_WIREFRAME_VISUAL_SHADER_FRAG); } - Geometry geometry = mFactoryCache.GetGeometry( VisualFactoryCache::WIREFRAME_GEOMETRY ); - if( !geometry ) + Geometry geometry = mFactoryCache.GetGeometry(VisualFactoryCache::WIREFRAME_GEOMETRY); + if(!geometry) { geometry = CreateQuadWireframeGeometry(); - mFactoryCache.SaveGeometry( VisualFactoryCache::WIREFRAME_GEOMETRY, geometry ); + mFactoryCache.SaveGeometry(VisualFactoryCache::WIREFRAME_GEOMETRY, geometry); } //Create the renderer - mImpl->mRenderer = Renderer::New( geometry, shader); + mImpl->mRenderer = VisualRenderer::New(geometry, shader); //Register transform properties - mImpl->mTransform.RegisterUniforms( mImpl->mRenderer, Direction::LEFT_TO_RIGHT ); + mImpl->mTransform.SetUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT); } Geometry WireframeVisual::CreateQuadWireframeGeometry() { - const float halfWidth = 0.5f; + const float halfWidth = 0.5f; const float halfHeight = 0.5f; - struct QuadVertex { Vector2 position;}; - QuadVertex quadVertexData[4] = + struct QuadVertex { - { Vector2(-halfWidth, -halfHeight) }, - { Vector2( halfWidth, -halfHeight) }, - { Vector2( halfWidth, halfHeight) }, - { Vector2(-halfWidth, halfHeight) } + Vector2 position; }; + QuadVertex quadVertexData[4] = + { + {Vector2(-halfWidth, -halfHeight)}, + {Vector2(halfWidth, -halfHeight)}, + {Vector2(halfWidth, halfHeight)}, + {Vector2(-halfWidth, halfHeight)}}; Property::Map quadVertexFormat; quadVertexFormat[POSITION_ATTRIBUTE_NAME] = Property::VECTOR2; - VertexBuffer quadVertices = VertexBuffer::New( quadVertexFormat ); - quadVertices.SetData( quadVertexData, 4 ); + VertexBuffer quadVertices = VertexBuffer::New(quadVertexFormat); + quadVertices.SetData(quadVertexData, 4); // Create indices - unsigned short indexData[10] = { 0, 1, 1, 2, 2, 3, 3, 0 }; + unsigned short indexData[10] = {0, 1, 1, 2, 2, 3, 3, 0}; // Create the geometry object Geometry geometry = Geometry::New(); - geometry.AddVertexBuffer( quadVertices ); - geometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) ); - geometry.SetType( Geometry::LINES ); + geometry.AddVertexBuffer(quadVertices); + geometry.SetIndexBuffer(indexData, sizeof(indexData) / sizeof(indexData[0])); + geometry.SetType(Geometry::LINES); return geometry; } void WireframeVisual::OnSetTransform() { - if( mImpl->mRenderer ) + if(mImpl->mRenderer) { //Register transform properties - mImpl->mTransform.RegisterUniforms( mImpl->mRenderer, Direction::LEFT_TO_RIGHT ); + mImpl->mTransform.SetUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT); } } Visual::Base& WireframeVisual::GetVisualObject() { - if( mActualVisual ) + if(mActualVisual) { return *mActualVisual.Get(); }