#include <limits>
#include <stack>
#include <dali/public-api/actors/image-actor.h>
-#include <dali/public-api/actors/renderer.h>
#include <dali/public-api/animation/constraint.h>
#include <dali/public-api/animation/constraints.h>
-#include <dali/public-api/geometry/geometry.h>
#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/size-negotiation/relayout-container.h>
#include <dali/devel-api/object/type-registry-helper.h>
+#include <dali/devel-api/rendering/renderer.h>
#include <dali/devel-api/scripting/scripting.h>
-#include <dali/public-api/shader-effects/shader.h>
-#include <dali/public-api/shader-effects/material.h>
-#include <dali/public-api/size-negotiation/relayout-container.h>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
Vector3 Control::GetNaturalSize()
{
+ //Control's natural size is the size of its background image if it has been set, or ZERO otherwise
+ Vector3 naturalSize = Vector3::ZERO;
if( mImpl->mBackground )
{
- Actor actor = mImpl->mBackground->actor;
- if( actor )
+ Material backgroundMaterial = mImpl->mBackground->actor.GetRendererAt(0).GetMaterial();
+ if( backgroundMaterial.GetNumberOfSamplers() > 0 )
{
- return actor.GetNaturalSize();
+ Image backgroundImage = backgroundMaterial.GetSamplerAt(0).GetImage();
+ if( backgroundImage )
+ {
+ naturalSize.x = backgroundImage.GetWidth();
+ naturalSize.y = backgroundImage.GetHeight();
+ }
}
}
- return Vector3();
+
+ return naturalSize;
}
float Control::CalculateChildSize( const Dali::Actor& child, Dimension::Type dimension )