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
Fix for memory leak with BufferImages from FontClient and AtlasManager.
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
public-api
/
controls
/
control-impl.cpp
diff --git
a/dali-toolkit/public-api/controls/control-impl.cpp
b/dali-toolkit/public-api/controls/control-impl.cpp
index
07d7f02
..
7bcaad4
100644
(file)
--- a/
dali-toolkit/public-api/controls/control-impl.cpp
+++ b/
dali-toolkit/public-api/controls/control-impl.cpp
@@
-23,16
+23,13
@@
#include <limits>
#include <stack>
#include <dali/public-api/actors/image-actor.h>
#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/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/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/object/type-registry-helper.h>
+#include <dali/devel-api/rendering/renderer.h>
#include <dali/devel-api/scripting/scripting.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
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
@@
-302,8
+299,7
@@
Actor CreateBackground( Actor parent, const Vector4& color, Image image = Image(
mesh.SetIndexBuffer( indexBuffer );
//Add uniforms to the shader
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 );
//Create the renderer
Renderer renderer = Renderer::New( mesh, material );
@@
-1074,15
+1070,23
@@
void Control::OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dime
Vector3 Control::GetNaturalSize()
{
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 )
{
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 )
}
float Control::CalculateChildSize( const Dali::Actor& child, Dimension::Type dimension )