X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.cpp;h=5d9880bf6d6a1891f142e97a5d9bd3359fafa4a9;hb=d03f1020366656f2980e19e395cf8a18b0b8adba;hp=07d7f026e9424a9ec58b0555fb116b905cd8a6eb;hpb=8fe34a7363271b35b631b07989c11845de7f190c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 07d7f02..5d9880b 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -302,8 +302,7 @@ Actor CreateBackground( Actor parent, const Vector4& color, Image image = Image( mesh.SetIndexBuffer( indexBuffer ); //Add uniforms to the shader - Property::Index backgroundColorIndex = shader.RegisterProperty( "uBackgroundColor", color ); - shader.AddUniformMapping( backgroundColorIndex, "uBackgroundColor" ); + shader.RegisterProperty( "uBackgroundColor", color ); //Create the renderer Renderer renderer = Renderer::New( mesh, material ); @@ -1074,15 +1073,23 @@ void Control::OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dime 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 )