Crash fix on DisplayManager.

UINodeDrawable clean ups.
Added Node::removeAction(), Node:removeActionByTag(), Node::clearActions().
Store display DPI on scene node creation.

--HG--
branch : dev
This commit is contained in:
Martí­n Lucas Golini
2019-11-24 01:15:39 -03:00
parent 8b057fed7a
commit 52965eb9d8
12 changed files with 169 additions and 103 deletions

View File

@@ -274,6 +274,12 @@ class EE_API Node : public Transformable {
Node * runAction( Action * action );
void removeAction( Action * action );
void removeActionByTag( const Uint32& tag );
void clearActions();
Transform getLocalTransform() const;
Transform getGlobalTransform() const;

View File

@@ -112,6 +112,8 @@ class EE_API SceneNode : public Node {
const bool& getUpdateAllChilds() const;
void setUpdateAllChilds( const bool& updateAllChilds );
const Float& getDPI() const;
protected:
friend class Node;
typedef std::list<Node*> CloseList;
@@ -138,6 +140,7 @@ class EE_API SceneNode : public Node {
std::list<Node*> mScheduledUpdate;
std::list<Node*> mScheduledUpdateRemove;
std::list<Node*> mMouseOverNodes;
Float mDPI;
virtual void onSizeChange();

View File

@@ -51,8 +51,12 @@ class EE_API UINodeDrawable : public Drawable {
void setPositionEq( const std::string& offset );
const std::string& getPositionEq() const { return mPositionEq; }
void setSizeEq( const std::string& size );
const std::string& getSizeEq() const { return mDrawableSizeEq; }
const Repeat& getRepeat() const;
void setRepeat( const Repeat& repeat );
@@ -62,6 +66,10 @@ class EE_API UINodeDrawable : public Drawable {
const Sizef& getDrawableSize() const;
void setDrawableSize( const Sizef& drawableSize );
Sizef calcDrawableSize( const std::string& drawableSizeEq );
Vector2f calcPosition( const std::string& positionEq );
protected:
UINodeDrawable * mContainer;
Sizef mSize;
@@ -70,7 +78,6 @@ class EE_API UINodeDrawable : public Drawable {
std::string mPositionEq;
std::string mDrawableSizeEq;
bool mNeedsUpdate;
bool mUpdatePosEq;
bool mOwnsDrawable;
Drawable * mDrawable;
Uint32 mResourceChangeCbId;
@@ -107,6 +114,8 @@ class EE_API UINodeDrawable : public Drawable {
Uint32 getBorderRadius() const;
bool layerExists( int index );
LayerDrawable * getLayer( int index );
void setDrawable( int index, Drawable * drawable, bool ownIt );
@@ -132,8 +141,6 @@ class EE_API UINodeDrawable : public Drawable {
UINode * mOwner;
RectangleDrawable mBackgroundColor;
std::map<int,LayerDrawable*> mGroup;
std::map<int,std::string> mPosEq;
std::map<int,std::string> mSizeEq;
Sizef mSize;
bool mNeedsUpdate;
bool mClipEnabled;