mirror of https://github.com/axmolengine/axmol.git
Merge branch 'develop' into newRenderer
This commit is contained in:
commit
524751e56f
|
@ -87,7 +87,7 @@ void ActionManager::actionAllocWithHashElement(tHashElement *element)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ActionManager::removeActionAtIndex(int index, tHashElement *element)
|
void ActionManager::removeActionAtIndex(ssize_t index, tHashElement *element)
|
||||||
{
|
{
|
||||||
Action *action = (Action*)element->actions->arr[index];
|
Action *action = (Action*)element->actions->arr[index];
|
||||||
|
|
||||||
|
@ -324,7 +324,7 @@ Action* ActionManager::getActionByTag(int tag, const Node *target) const
|
||||||
|
|
||||||
// XXX: Passing "const O *" instead of "const O&" because HASH_FIND_IT requries the address of a pointer
|
// XXX: Passing "const O *" instead of "const O&" because HASH_FIND_IT requries the address of a pointer
|
||||||
// and, it is not possible to get the address of a reference
|
// and, it is not possible to get the address of a reference
|
||||||
int ActionManager::getNumberOfRunningActionsInTarget(const Node *target) const
|
ssize_t ActionManager::getNumberOfRunningActionsInTarget(const Node *target) const
|
||||||
{
|
{
|
||||||
tHashElement *element = NULL;
|
tHashElement *element = NULL;
|
||||||
HASH_FIND_PTR(_targets, &target, element);
|
HASH_FIND_PTR(_targets, &target, element);
|
||||||
|
|
|
@ -100,10 +100,10 @@ public:
|
||||||
* - If you are running 1 Sequence of 7 actions, it will return 1.
|
* - If you are running 1 Sequence of 7 actions, it will return 1.
|
||||||
* - If you are running 7 Sequences of 2 actions, it will return 7.
|
* - If you are running 7 Sequences of 2 actions, it will return 7.
|
||||||
*/
|
*/
|
||||||
int getNumberOfRunningActionsInTarget(const Node *target) const;
|
ssize_t getNumberOfRunningActionsInTarget(const Node *target) const;
|
||||||
|
|
||||||
/** @deprecated use getNumberOfRunningActionsInTarget() instead */
|
/** @deprecated use getNumberOfRunningActionsInTarget() instead */
|
||||||
CC_DEPRECATED_ATTRIBUTE inline int numberOfRunningActionsInTarget(Node *target) const { return getNumberOfRunningActionsInTarget(target); }
|
CC_DEPRECATED_ATTRIBUTE inline ssize_t numberOfRunningActionsInTarget(Node *target) const { return getNumberOfRunningActionsInTarget(target); }
|
||||||
|
|
||||||
/** Pauses the target: all running actions and newly added actions will be paused.
|
/** Pauses the target: all running actions and newly added actions will be paused.
|
||||||
*/
|
*/
|
||||||
|
@ -124,7 +124,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
// declared in ActionManager.m
|
// declared in ActionManager.m
|
||||||
|
|
||||||
void removeActionAtIndex(int index, struct _hashElement *pElement);
|
void removeActionAtIndex(ssize_t index, struct _hashElement *pElement);
|
||||||
void deleteHashElement(struct _hashElement *pElement);
|
void deleteHashElement(struct _hashElement *pElement);
|
||||||
void actionAllocWithHashElement(struct _hashElement *pElement);
|
void actionAllocWithHashElement(struct _hashElement *pElement);
|
||||||
void update(float dt);
|
void update(float dt);
|
||||||
|
|
|
@ -612,7 +612,7 @@ void Director::replaceScene(Scene *scene)
|
||||||
CCASSERT(_runningScene, "Use runWithScene: instead to start the director");
|
CCASSERT(_runningScene, "Use runWithScene: instead to start the director");
|
||||||
CCASSERT(scene != nullptr, "the scene should not be null");
|
CCASSERT(scene != nullptr, "the scene should not be null");
|
||||||
|
|
||||||
int index = _scenesStack.size();
|
ssize_t index = _scenesStack.size();
|
||||||
|
|
||||||
_sendCleanupToScene = true;
|
_sendCleanupToScene = true;
|
||||||
_scenesStack.replace(index - 1, scene);
|
_scenesStack.replace(index - 1, scene);
|
||||||
|
@ -635,7 +635,7 @@ void Director::popScene(void)
|
||||||
CCASSERT(_runningScene != nullptr, "running scene should not null");
|
CCASSERT(_runningScene != nullptr, "running scene should not null");
|
||||||
|
|
||||||
_scenesStack.popBack();
|
_scenesStack.popBack();
|
||||||
int c = _scenesStack.size();
|
ssize_t c = _scenesStack.size();
|
||||||
|
|
||||||
if (c == 0)
|
if (c == 0)
|
||||||
{
|
{
|
||||||
|
@ -656,7 +656,7 @@ void Director::popToRootScene(void)
|
||||||
void Director::popToSceneStackLevel(int level)
|
void Director::popToSceneStackLevel(int level)
|
||||||
{
|
{
|
||||||
CCASSERT(_runningScene != nullptr, "A running Scene is needed");
|
CCASSERT(_runningScene != nullptr, "A running Scene is needed");
|
||||||
int c = _scenesStack.size();
|
ssize_t c = _scenesStack.size();
|
||||||
|
|
||||||
// level 0? -> end
|
// level 0? -> end
|
||||||
if (level == 0)
|
if (level == 0)
|
||||||
|
|
|
@ -136,12 +136,12 @@ private:
|
||||||
|
|
||||||
inline std::vector<EventListener*>* getFixedPriorityListeners() const { return _fixedListeners; };
|
inline std::vector<EventListener*>* getFixedPriorityListeners() const { return _fixedListeners; };
|
||||||
inline std::vector<EventListener*>* getSceneGraphPriorityListeners() const { return _sceneGraphListeners; };
|
inline std::vector<EventListener*>* getSceneGraphPriorityListeners() const { return _sceneGraphListeners; };
|
||||||
inline int getGt0Index() const { return _gt0Index; };
|
inline ssize_t getGt0Index() const { return _gt0Index; };
|
||||||
inline void setGt0Index(int index) { _gt0Index = index; };
|
inline void setGt0Index(ssize_t index) { _gt0Index = index; };
|
||||||
private:
|
private:
|
||||||
std::vector<EventListener*>* _fixedListeners;
|
std::vector<EventListener*>* _fixedListeners;
|
||||||
std::vector<EventListener*>* _sceneGraphListeners;
|
std::vector<EventListener*>* _sceneGraphListeners;
|
||||||
int _gt0Index;
|
ssize_t _gt0Index;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Adds event listener with item */
|
/** Adds event listener with item */
|
||||||
|
|
|
@ -1083,7 +1083,7 @@ void LayerMultiplex::switchToAndReleaseMe(int n)
|
||||||
|
|
||||||
std::string LayerMultiplex::getDescription() const
|
std::string LayerMultiplex::getDescription() const
|
||||||
{
|
{
|
||||||
return StringUtils::format("<LayerMultiplex | Tag = %d, Layers = %d", _tag, _children.size());
|
return StringUtils::format("<LayerMultiplex | Tag = %d, Layers = %zd", _tag, _children.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_CC_END
|
NS_CC_END
|
||||||
|
|
|
@ -396,7 +396,7 @@ void Node::setPositionY(float y)
|
||||||
setPosition(Point(_position.x, y));
|
setPosition(Point(_position.x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
int Node::getChildrenCount() const
|
ssize_t Node::getChildrenCount() const
|
||||||
{
|
{
|
||||||
return _children.size();
|
return _children.size();
|
||||||
}
|
}
|
||||||
|
@ -684,7 +684,7 @@ void Node::removeChild(Node* child, bool cleanup /* = true */)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto index = _children.getIndex(child);
|
ssize_t index = _children.getIndex(child);
|
||||||
if( index != CC_INVALID_INDEX )
|
if( index != CC_INVALID_INDEX )
|
||||||
this->detachChild( child, index, cleanup );
|
this->detachChild( child, index, cleanup );
|
||||||
}
|
}
|
||||||
|
@ -742,7 +742,7 @@ void Node::removeAllChildrenWithCleanup(bool cleanup)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::detachChild(Node *child, int childIndex, bool doCleanup)
|
void Node::detachChild(Node *child, ssize_t childIndex, bool doCleanup)
|
||||||
{
|
{
|
||||||
// IMPORTANT:
|
// IMPORTANT:
|
||||||
// -1st do onExit
|
// -1st do onExit
|
||||||
|
@ -1056,7 +1056,7 @@ Action * Node::getActionByTag(int tag)
|
||||||
return _actionManager->getActionByTag(tag, this);
|
return _actionManager->getActionByTag(tag, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Node::getNumberOfRunningActions() const
|
ssize_t Node::getNumberOfRunningActions() const
|
||||||
{
|
{
|
||||||
return _actionManager->getNumberOfRunningActionsInTarget(this);
|
return _actionManager->getNumberOfRunningActionsInTarget(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -621,7 +621,7 @@ public:
|
||||||
*
|
*
|
||||||
* @return The amount of children.
|
* @return The amount of children.
|
||||||
*/
|
*/
|
||||||
int getChildrenCount() const;
|
ssize_t getChildrenCount() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the parent node
|
* Sets the parent node
|
||||||
|
@ -1042,10 +1042,10 @@ public:
|
||||||
*
|
*
|
||||||
* @return The number of actions that are running plus the ones that are schedule to run
|
* @return The number of actions that are running plus the ones that are schedule to run
|
||||||
*/
|
*/
|
||||||
int getNumberOfRunningActions() const;
|
ssize_t getNumberOfRunningActions() const;
|
||||||
|
|
||||||
/** @deprecated Use getNumberOfRunningActions() instead */
|
/** @deprecated Use getNumberOfRunningActions() instead */
|
||||||
CC_DEPRECATED_ATTRIBUTE int numberOfRunningActions() const { return getNumberOfRunningActions(); };
|
CC_DEPRECATED_ATTRIBUTE ssize_t numberOfRunningActions() const { return getNumberOfRunningActions(); };
|
||||||
|
|
||||||
/// @} end of Actions
|
/// @} end of Actions
|
||||||
|
|
||||||
|
@ -1408,7 +1408,7 @@ protected:
|
||||||
void insertChild(Node* child, int z);
|
void insertChild(Node* child, int z);
|
||||||
|
|
||||||
/// Removes a child, call child->onExit(), do cleanup, remove it from children array.
|
/// Removes a child, call child->onExit(), do cleanup, remove it from children array.
|
||||||
void detachChild(Node *child, int index, bool doCleanup);
|
void detachChild(Node *child, ssize_t index, bool doCleanup);
|
||||||
|
|
||||||
/// Convert cocos2d coordinates to UI windows coordinate.
|
/// Convert cocos2d coordinates to UI windows coordinate.
|
||||||
Point convertToWindowSpace(const Point& nodePoint) const;
|
Point convertToWindowSpace(const Point& nodePoint) const;
|
||||||
|
|
|
@ -143,7 +143,7 @@ int NotificationCenter::removeAllObservers(Object *target)
|
||||||
}
|
}
|
||||||
|
|
||||||
_observers->removeObjectsInArray(toRemove);
|
_observers->removeObjectsInArray(toRemove);
|
||||||
return toRemove->count();
|
return static_cast<int>(toRemove->count());
|
||||||
}
|
}
|
||||||
|
|
||||||
void NotificationCenter::registerScriptObserver( Object *target, int handler,const char* name)
|
void NotificationCenter::registerScriptObserver( Object *target, int handler,const char* name)
|
||||||
|
|
|
@ -429,7 +429,7 @@ void ParticleBatchNode::draw(void)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ParticleBatchNode::increaseAtlasCapacityTo(int quantity)
|
void ParticleBatchNode::increaseAtlasCapacityTo(ssize_t quantity)
|
||||||
{
|
{
|
||||||
CCLOG("cocos2d: ParticleBatchNode: resizing TextureAtlas capacity from [%lu] to [%lu].",
|
CCLOG("cocos2d: ParticleBatchNode: resizing TextureAtlas capacity from [%lu] to [%lu].",
|
||||||
(long)_textureAtlas->getCapacity(),
|
(long)_textureAtlas->getCapacity(),
|
||||||
|
|
|
@ -129,7 +129,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateAllAtlasIndexes();
|
void updateAllAtlasIndexes();
|
||||||
void increaseAtlasCapacityTo(int quantity);
|
void increaseAtlasCapacityTo(ssize_t quantity);
|
||||||
int searchNewPositionInChildrenForZ(int z);
|
int searchNewPositionInChildrenForZ(int z);
|
||||||
void getCurrentIndex(int* oldIndex, int* newIndex, Node* child, int z);
|
void getCurrentIndex(int* oldIndex, int* newIndex, Node* child, int z);
|
||||||
int addChildHelper(ParticleSystem* child, int z, int aTag);
|
int addChildHelper(ParticleSystem* child, int z, int aTag);
|
||||||
|
|
|
@ -677,7 +677,7 @@ unsigned int Scheduler::scheduleScriptFunc(unsigned int handler, float interval,
|
||||||
|
|
||||||
void Scheduler::unscheduleScriptEntry(unsigned int scheduleScriptEntryID)
|
void Scheduler::unscheduleScriptEntry(unsigned int scheduleScriptEntryID)
|
||||||
{
|
{
|
||||||
for (int i = _scriptHandlerEntries.size() - 1; i >= 0; i--)
|
for (ssize_t i = _scriptHandlerEntries.size() - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
SchedulerScriptHandlerEntry* entry = _scriptHandlerEntries.at(i);
|
SchedulerScriptHandlerEntry* entry = _scriptHandlerEntries.at(i);
|
||||||
if (entry->getEntryId() == (int)scheduleScriptEntryID)
|
if (entry->getEntryId() == (int)scheduleScriptEntryID)
|
||||||
|
|
|
@ -1149,7 +1149,7 @@ void Sprite::setSpriteFrame(SpriteFrame *spriteFrame)
|
||||||
setTextureRect(spriteFrame->getRect(), _rectRotated, spriteFrame->getOriginalSize());
|
setTextureRect(spriteFrame->getRect(), _rectRotated, spriteFrame->getOriginalSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sprite::setDisplayFrameWithAnimationName(const std::string& animationName, int frameIndex)
|
void Sprite::setDisplayFrameWithAnimationName(const std::string& animationName, ssize_t frameIndex)
|
||||||
{
|
{
|
||||||
CCASSERT(animationName.size()>0, "CCSprite#setDisplayFrameWithAnimationName. animationName must not be NULL");
|
CCASSERT(animationName.size()>0, "CCSprite#setDisplayFrameWithAnimationName. animationName must not be NULL");
|
||||||
|
|
||||||
|
|
|
@ -258,7 +258,7 @@ public:
|
||||||
* Changes the display frame with animation name and index.
|
* Changes the display frame with animation name and index.
|
||||||
* The animation name will be get from the AnimationCache
|
* The animation name will be get from the AnimationCache
|
||||||
*/
|
*/
|
||||||
virtual void setDisplayFrameWithAnimationName(const std::string& animationName, int frameIndex);
|
virtual void setDisplayFrameWithAnimationName(const std::string& animationName, ssize_t frameIndex);
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
||||||
|
@ -292,13 +292,13 @@ public:
|
||||||
/**
|
/**
|
||||||
* Returns the index used on the TextureAtlas.
|
* Returns the index used on the TextureAtlas.
|
||||||
*/
|
*/
|
||||||
inline int getAtlasIndex(void) const { return _atlasIndex; }
|
inline ssize_t getAtlasIndex(void) const { return _atlasIndex; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the index used on the TextureAtlas.
|
* Sets the index used on the TextureAtlas.
|
||||||
* @warning Don't modify this value unless you know what you are doing
|
* @warning Don't modify this value unless you know what you are doing
|
||||||
*/
|
*/
|
||||||
inline void setAtlasIndex(int atlasIndex) { _atlasIndex = atlasIndex; }
|
inline void setAtlasIndex(ssize_t atlasIndex) { _atlasIndex = atlasIndex; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the rect of the Sprite in points
|
* Returns the rect of the Sprite in points
|
||||||
|
@ -540,7 +540,7 @@ protected:
|
||||||
// Data used when the sprite is rendered using a SpriteSheet
|
// Data used when the sprite is rendered using a SpriteSheet
|
||||||
//
|
//
|
||||||
TextureAtlas* _textureAtlas; /// SpriteBatchNode texture atlas (weak reference)
|
TextureAtlas* _textureAtlas; /// SpriteBatchNode texture atlas (weak reference)
|
||||||
int _atlasIndex; /// Absolute (real) Index on the SpriteSheet
|
ssize_t _atlasIndex; /// Absolute (real) Index on the SpriteSheet
|
||||||
SpriteBatchNode* _batchNode; /// Used batch node (weak reference)
|
SpriteBatchNode* _batchNode; /// Used batch node (weak reference)
|
||||||
|
|
||||||
bool _dirty; /// Whether the sprite needs to be updated
|
bool _dirty; /// Whether the sprite needs to be updated
|
||||||
|
|
|
@ -51,7 +51,7 @@ NS_CC_BEGIN
|
||||||
* creation with Texture2D
|
* creation with Texture2D
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SpriteBatchNode* SpriteBatchNode::createWithTexture(Texture2D* tex, int capacity/* = DEFAULT_CAPACITY*/)
|
SpriteBatchNode* SpriteBatchNode::createWithTexture(Texture2D* tex, ssize_t capacity/* = DEFAULT_CAPACITY*/)
|
||||||
{
|
{
|
||||||
SpriteBatchNode *batchNode = new SpriteBatchNode();
|
SpriteBatchNode *batchNode = new SpriteBatchNode();
|
||||||
batchNode->initWithTexture(tex, capacity);
|
batchNode->initWithTexture(tex, capacity);
|
||||||
|
@ -64,7 +64,7 @@ SpriteBatchNode* SpriteBatchNode::createWithTexture(Texture2D* tex, int capacity
|
||||||
* creation with File Image
|
* creation with File Image
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SpriteBatchNode* SpriteBatchNode::create(const char *fileImage, int capacity/* = DEFAULT_CAPACITY*/)
|
SpriteBatchNode* SpriteBatchNode::create(const char *fileImage, ssize_t capacity/* = DEFAULT_CAPACITY*/)
|
||||||
{
|
{
|
||||||
SpriteBatchNode *batchNode = new SpriteBatchNode();
|
SpriteBatchNode *batchNode = new SpriteBatchNode();
|
||||||
batchNode->initWithFile(fileImage, capacity);
|
batchNode->initWithFile(fileImage, capacity);
|
||||||
|
@ -76,7 +76,7 @@ SpriteBatchNode* SpriteBatchNode::create(const char *fileImage, int capacity/* =
|
||||||
/*
|
/*
|
||||||
* init with Texture2D
|
* init with Texture2D
|
||||||
*/
|
*/
|
||||||
bool SpriteBatchNode::initWithTexture(Texture2D *tex, int capacity)
|
bool SpriteBatchNode::initWithTexture(Texture2D *tex, ssize_t capacity)
|
||||||
{
|
{
|
||||||
CCASSERT(capacity>=0, "Capacity must be >= 0");
|
CCASSERT(capacity>=0, "Capacity must be >= 0");
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ bool SpriteBatchNode::init()
|
||||||
/*
|
/*
|
||||||
* init with FileImage
|
* init with FileImage
|
||||||
*/
|
*/
|
||||||
bool SpriteBatchNode::initWithFile(const char* fileImage, int capacity)
|
bool SpriteBatchNode::initWithFile(const char* fileImage, ssize_t capacity)
|
||||||
{
|
{
|
||||||
Texture2D *texture2D = Director::getInstance()->getTextureCache()->addImage(fileImage);
|
Texture2D *texture2D = Director::getInstance()->getTextureCache()->addImage(fileImage);
|
||||||
return initWithTexture(texture2D, capacity);
|
return initWithTexture(texture2D, capacity);
|
||||||
|
@ -215,7 +215,7 @@ void SpriteBatchNode::removeChild(Node *child, bool cleanup)
|
||||||
Node::removeChild(sprite, cleanup);
|
Node::removeChild(sprite, cleanup);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpriteBatchNode::removeChildAtIndex(int index, bool doCleanup)
|
void SpriteBatchNode::removeChildAtIndex(ssize_t index, bool doCleanup)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && index < _children.size(), "Invalid index");
|
CCASSERT(index>=0 && index < _children.size(), "Invalid index");
|
||||||
removeChild(_children.at(index), doCleanup);
|
removeChild(_children.at(index), doCleanup);
|
||||||
|
@ -274,7 +274,7 @@ void SpriteBatchNode::sortAllChildren()
|
||||||
child->sortAllChildren();
|
child->sortAllChildren();
|
||||||
});
|
});
|
||||||
|
|
||||||
int index=0;
|
ssize_t index=0;
|
||||||
|
|
||||||
//fast dispatch, give every child a new atlasIndex based on their relative zOrder (keep parent -> child relations intact)
|
//fast dispatch, give every child a new atlasIndex based on their relative zOrder (keep parent -> child relations intact)
|
||||||
// and at the same time reorder descendants and the quads to the right index
|
// and at the same time reorder descendants and the quads to the right index
|
||||||
|
@ -288,12 +288,12 @@ void SpriteBatchNode::sortAllChildren()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpriteBatchNode::updateAtlasIndex(Sprite* sprite, int* curIndex)
|
void SpriteBatchNode::updateAtlasIndex(Sprite* sprite, ssize_t* curIndex)
|
||||||
{
|
{
|
||||||
auto& array = sprite->getChildren();
|
auto& array = sprite->getChildren();
|
||||||
auto count = array.size();
|
auto count = array.size();
|
||||||
|
|
||||||
int oldIndex = 0;
|
ssize_t oldIndex = 0;
|
||||||
|
|
||||||
if( count == 0 )
|
if( count == 0 )
|
||||||
{
|
{
|
||||||
|
@ -354,7 +354,7 @@ void SpriteBatchNode::updateAtlasIndex(Sprite* sprite, int* curIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpriteBatchNode::swap(int oldIndex, int newIndex)
|
void SpriteBatchNode::swap(ssize_t oldIndex, ssize_t newIndex)
|
||||||
{
|
{
|
||||||
CCASSERT(oldIndex>=0 && oldIndex < (int)_descendants.size() && newIndex >=0 && newIndex < (int)_descendants.size(), "Invalid index");
|
CCASSERT(oldIndex>=0 && oldIndex < (int)_descendants.size() && newIndex >=0 && newIndex < (int)_descendants.size(), "Invalid index");
|
||||||
|
|
||||||
|
@ -406,9 +406,9 @@ void SpriteBatchNode::increaseAtlasCapacity(void)
|
||||||
// if we're going beyond the current TextureAtlas's capacity,
|
// if we're going beyond the current TextureAtlas's capacity,
|
||||||
// all the previously initialized sprites will need to redo their texture coords
|
// all the previously initialized sprites will need to redo their texture coords
|
||||||
// this is likely computationally expensive
|
// this is likely computationally expensive
|
||||||
int quantity = (_textureAtlas->getCapacity() + 1) * 4 / 3;
|
ssize_t quantity = (_textureAtlas->getCapacity() + 1) * 4 / 3;
|
||||||
|
|
||||||
CCLOG("cocos2d: SpriteBatchNode: resizing TextureAtlas capacity from [%d] to [%d].",
|
CCLOG("cocos2d: SpriteBatchNode: resizing TextureAtlas capacity from [%zd] to [%zd].",
|
||||||
_textureAtlas->getCapacity(),
|
_textureAtlas->getCapacity(),
|
||||||
quantity);
|
quantity);
|
||||||
|
|
||||||
|
@ -420,7 +420,7 @@ void SpriteBatchNode::increaseAtlasCapacity(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SpriteBatchNode::rebuildIndexInOrder(Sprite *parent, int index)
|
ssize_t SpriteBatchNode::rebuildIndexInOrder(Sprite *parent, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && index < _children.size(), "Invalid index");
|
CCASSERT(index>=0 && index < _children.size(), "Invalid index");
|
||||||
|
|
||||||
|
@ -452,7 +452,7 @@ int SpriteBatchNode::rebuildIndexInOrder(Sprite *parent, int index)
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SpriteBatchNode::highestAtlasIndexInChild(Sprite *sprite)
|
ssize_t SpriteBatchNode::highestAtlasIndexInChild(Sprite *sprite)
|
||||||
{
|
{
|
||||||
auto& children = sprite->getChildren();
|
auto& children = sprite->getChildren();
|
||||||
|
|
||||||
|
@ -466,7 +466,7 @@ int SpriteBatchNode::highestAtlasIndexInChild(Sprite *sprite)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SpriteBatchNode::lowestAtlasIndexInChild(Sprite *sprite)
|
ssize_t SpriteBatchNode::lowestAtlasIndexInChild(Sprite *sprite)
|
||||||
{
|
{
|
||||||
auto& children = sprite->getChildren();
|
auto& children = sprite->getChildren();
|
||||||
|
|
||||||
|
@ -480,7 +480,7 @@ int SpriteBatchNode::lowestAtlasIndexInChild(Sprite *sprite)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SpriteBatchNode::atlasIndexForChild(Sprite *sprite, int nZ)
|
ssize_t SpriteBatchNode::atlasIndexForChild(Sprite *sprite, int nZ)
|
||||||
{
|
{
|
||||||
auto& siblings = sprite->getParent()->getChildren();
|
auto& siblings = sprite->getParent()->getChildren();
|
||||||
auto childIndex = siblings.getIndex(sprite);
|
auto childIndex = siblings.getIndex(sprite);
|
||||||
|
@ -627,7 +627,7 @@ void SpriteBatchNode::setTexture(Texture2D *texture)
|
||||||
// SpriteSheet Extension
|
// SpriteSheet Extension
|
||||||
//implementation SpriteSheet (TMXTiledMapExtension)
|
//implementation SpriteSheet (TMXTiledMapExtension)
|
||||||
|
|
||||||
void SpriteBatchNode::insertQuadFromSprite(Sprite *sprite, int index)
|
void SpriteBatchNode::insertQuadFromSprite(Sprite *sprite, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT( sprite != NULL, "Argument must be non-NULL");
|
CCASSERT( sprite != NULL, "Argument must be non-NULL");
|
||||||
CCASSERT( dynamic_cast<Sprite*>(sprite), "CCSpriteBatchNode only supports Sprites as children");
|
CCASSERT( dynamic_cast<Sprite*>(sprite), "CCSpriteBatchNode only supports Sprites as children");
|
||||||
|
@ -652,7 +652,7 @@ void SpriteBatchNode::insertQuadFromSprite(Sprite *sprite, int index)
|
||||||
sprite->updateTransform();
|
sprite->updateTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpriteBatchNode::updateQuadFromSprite(Sprite *sprite, int index)
|
void SpriteBatchNode::updateQuadFromSprite(Sprite *sprite, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(sprite != NULL, "Argument must be non-nil");
|
CCASSERT(sprite != NULL, "Argument must be non-nil");
|
||||||
CCASSERT(dynamic_cast<Sprite*>(sprite) != NULL, "CCSpriteBatchNode only supports Sprites as children");
|
CCASSERT(dynamic_cast<Sprite*>(sprite) != NULL, "CCSpriteBatchNode only supports Sprites as children");
|
||||||
|
|
|
@ -68,13 +68,13 @@ public:
|
||||||
/** creates a SpriteBatchNode with a texture2d and capacity of children.
|
/** creates a SpriteBatchNode with a texture2d and capacity of children.
|
||||||
The capacity will be increased in 33% in runtime if it run out of space.
|
The capacity will be increased in 33% in runtime if it run out of space.
|
||||||
*/
|
*/
|
||||||
static SpriteBatchNode* createWithTexture(Texture2D* tex, int capacity = DEFAULT_CAPACITY);
|
static SpriteBatchNode* createWithTexture(Texture2D* tex, ssize_t capacity = DEFAULT_CAPACITY);
|
||||||
|
|
||||||
/** creates a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and capacity of children.
|
/** creates a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and capacity of children.
|
||||||
The capacity will be increased in 33% in runtime if it run out of space.
|
The capacity will be increased in 33% in runtime if it run out of space.
|
||||||
The file will be loaded using the TextureMgr.
|
The file will be loaded using the TextureMgr.
|
||||||
*/
|
*/
|
||||||
static SpriteBatchNode* create(const char* fileImage, int capacity = DEFAULT_CAPACITY);
|
static SpriteBatchNode* create(const char* fileImage, ssize_t capacity = DEFAULT_CAPACITY);
|
||||||
/**
|
/**
|
||||||
* @js ctor
|
* @js ctor
|
||||||
*/
|
*/
|
||||||
|
@ -88,14 +88,14 @@ public:
|
||||||
/** initializes a SpriteBatchNode with a texture2d and capacity of children.
|
/** initializes a SpriteBatchNode with a texture2d and capacity of children.
|
||||||
The capacity will be increased in 33% in runtime if it run out of space.
|
The capacity will be increased in 33% in runtime if it run out of space.
|
||||||
*/
|
*/
|
||||||
bool initWithTexture(Texture2D *tex, int capacity);
|
bool initWithTexture(Texture2D *tex, ssize_t capacity);
|
||||||
/** initializes a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.
|
/** initializes a SpriteBatchNode with a file image (.png, .jpeg, .pvr, etc) and a capacity of children.
|
||||||
The capacity will be increased in 33% in runtime if it run out of space.
|
The capacity will be increased in 33% in runtime if it run out of space.
|
||||||
The file will be loaded using the TextureMgr.
|
The file will be loaded using the TextureMgr.
|
||||||
* @js init
|
* @js init
|
||||||
* @lua init
|
* @lua init
|
||||||
*/
|
*/
|
||||||
bool initWithFile(const char* fileImage, int capacity);
|
bool initWithFile(const char* fileImage, ssize_t capacity);
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
/** returns the TextureAtlas object */
|
/** returns the TextureAtlas object */
|
||||||
|
@ -121,15 +121,15 @@ public:
|
||||||
/** removes a child given a certain index. It will also cleanup the running actions depending on the cleanup parameter.
|
/** removes a child given a certain index. It will also cleanup the running actions depending on the cleanup parameter.
|
||||||
@warning Removing a child from a SpriteBatchNode is very slow
|
@warning Removing a child from a SpriteBatchNode is very slow
|
||||||
*/
|
*/
|
||||||
void removeChildAtIndex(int index, bool doCleanup);
|
void removeChildAtIndex(ssize_t index, bool doCleanup);
|
||||||
|
|
||||||
void appendChild(Sprite* sprite);
|
void appendChild(Sprite* sprite);
|
||||||
void removeSpriteFromAtlas(Sprite *sprite);
|
void removeSpriteFromAtlas(Sprite *sprite);
|
||||||
|
|
||||||
int rebuildIndexInOrder(Sprite *parent, int index);
|
ssize_t rebuildIndexInOrder(Sprite *parent, ssize_t index);
|
||||||
int highestAtlasIndexInChild(Sprite *sprite);
|
ssize_t highestAtlasIndexInChild(Sprite *sprite);
|
||||||
int lowestAtlasIndexInChild(Sprite *sprite);
|
ssize_t lowestAtlasIndexInChild(Sprite *sprite);
|
||||||
int atlasIndexForChild(Sprite *sprite, int z);
|
ssize_t atlasIndexForChild(Sprite *sprite, int z);
|
||||||
/* Sprites use this to start sortChildren, don't call this manually */
|
/* Sprites use this to start sortChildren, don't call this manually */
|
||||||
void reorderBatch(bool reorder);
|
void reorderBatch(bool reorder);
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ public:
|
||||||
// Overrides
|
// Overrides
|
||||||
//
|
//
|
||||||
// TextureProtocol
|
// TextureProtocol
|
||||||
virtual Texture2D* getTexture(void) const override;
|
virtual Texture2D* getTexture() const override;
|
||||||
virtual void setTexture(Texture2D *texture) override;
|
virtual void setTexture(Texture2D *texture) override;
|
||||||
/**
|
/**
|
||||||
*@code
|
*@code
|
||||||
|
@ -151,9 +151,9 @@ public:
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
virtual const BlendFunc& getBlendFunc(void) const override;
|
virtual const BlendFunc& getBlendFunc() const override;
|
||||||
|
|
||||||
virtual void visit(void) override;
|
virtual void visit() override;
|
||||||
virtual void addChild(Node* child) override{ Node::addChild(child);}
|
virtual void addChild(Node* child) override{ Node::addChild(child);}
|
||||||
virtual void addChild(Node * child, int zOrder) override { Node::addChild(child, zOrder);}
|
virtual void addChild(Node * child, int zOrder) override { Node::addChild(child, zOrder);}
|
||||||
virtual void addChild(Node * child, int zOrder, int tag) override;
|
virtual void addChild(Node * child, int zOrder, int tag) override;
|
||||||
|
@ -170,19 +170,19 @@ protected:
|
||||||
This method should be called only when you are dealing with very big AtlasSrite and when most of the Sprite won't be updated.
|
This method should be called only when you are dealing with very big AtlasSrite and when most of the Sprite won't be updated.
|
||||||
For example: a tile map (TMXMap) or a label with lots of characters (LabelBMFont)
|
For example: a tile map (TMXMap) or a label with lots of characters (LabelBMFont)
|
||||||
*/
|
*/
|
||||||
void insertQuadFromSprite(Sprite *sprite, int index);
|
void insertQuadFromSprite(Sprite *sprite, ssize_t index);
|
||||||
/** Updates a quad at a certain index into the texture atlas. The Sprite won't be added into the children array.
|
/** Updates a quad at a certain index into the texture atlas. The Sprite won't be added into the children array.
|
||||||
This method should be called only when you are dealing with very big AtlasSrite and when most of the Sprite won't be updated.
|
This method should be called only when you are dealing with very big AtlasSrite and when most of the Sprite won't be updated.
|
||||||
For example: a tile map (TMXMap) or a label with lots of characters (LabelBMFont)
|
For example: a tile map (TMXMap) or a label with lots of characters (LabelBMFont)
|
||||||
*/
|
*/
|
||||||
void updateQuadFromSprite(Sprite *sprite, int index);
|
void updateQuadFromSprite(Sprite *sprite, ssize_t index);
|
||||||
/* This is the opposite of "addQuadFromSprite.
|
/* This is the opposite of "addQuadFromSprite.
|
||||||
It add the sprite to the children and descendants array, but it doesn't update add it to the texture atlas
|
It add the sprite to the children and descendants array, but it doesn't update add it to the texture atlas
|
||||||
*/
|
*/
|
||||||
SpriteBatchNode * addSpriteWithoutQuad(Sprite *child, int z, int aTag);
|
SpriteBatchNode * addSpriteWithoutQuad(Sprite *child, int z, int aTag);
|
||||||
|
|
||||||
void updateAtlasIndex(Sprite* sprite, int* curIndex);
|
void updateAtlasIndex(Sprite* sprite, ssize_t* curIndex);
|
||||||
void swap(int oldIndex, int newIndex);
|
void swap(ssize_t oldIndex, ssize_t newIndex);
|
||||||
void updateBlendFunc();
|
void updateBlendFunc();
|
||||||
|
|
||||||
TextureAtlas *_textureAtlas;
|
TextureAtlas *_textureAtlas;
|
||||||
|
|
|
@ -340,8 +340,8 @@ Sprite * TMXLayer::getTileAt(const Point& pos)
|
||||||
tile->setAnchorPoint(Point::ZERO);
|
tile->setAnchorPoint(Point::ZERO);
|
||||||
tile->setOpacity(_opacity);
|
tile->setOpacity(_opacity);
|
||||||
|
|
||||||
unsigned int indexForZ = atlasIndexForExistantZ(z);
|
ssize_t indexForZ = atlasIndexForExistantZ(z);
|
||||||
this->addSpriteWithoutQuad(tile, indexForZ, z);
|
this->addSpriteWithoutQuad(tile, static_cast<int>(indexForZ), z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,7 +379,7 @@ Sprite * TMXLayer::insertTileForGID(unsigned int gid, const Point& pos)
|
||||||
setupTileSprite(tile, pos, gid);
|
setupTileSprite(tile, pos, gid);
|
||||||
|
|
||||||
// get atlas index
|
// get atlas index
|
||||||
unsigned int indexForZ = atlasIndexForNewZ(static_cast<int>(z));
|
ssize_t indexForZ = atlasIndexForNewZ(static_cast<int>(z));
|
||||||
|
|
||||||
// Optimization: add the quad without adding a child
|
// Optimization: add the quad without adding a child
|
||||||
this->insertQuadFromSprite(tile, indexForZ);
|
this->insertQuadFromSprite(tile, indexForZ);
|
||||||
|
@ -393,7 +393,7 @@ Sprite * TMXLayer::insertTileForGID(unsigned int gid, const Point& pos)
|
||||||
Sprite* sp = static_cast<Sprite*>(child);
|
Sprite* sp = static_cast<Sprite*>(child);
|
||||||
if (child)
|
if (child)
|
||||||
{
|
{
|
||||||
int ai = sp->getAtlasIndex();
|
ssize_t ai = sp->getAtlasIndex();
|
||||||
if ( ai >= indexForZ )
|
if ( ai >= indexForZ )
|
||||||
{
|
{
|
||||||
sp->setAtlasIndex(ai+1);
|
sp->setAtlasIndex(ai+1);
|
||||||
|
@ -416,7 +416,7 @@ Sprite * TMXLayer::updateTileForGID(unsigned int gid, const Point& pos)
|
||||||
setupTileSprite(tile ,pos ,gid);
|
setupTileSprite(tile ,pos ,gid);
|
||||||
|
|
||||||
// get atlas index
|
// get atlas index
|
||||||
unsigned int indexForZ = atlasIndexForExistantZ(z);
|
ssize_t indexForZ = atlasIndexForExistantZ(z);
|
||||||
tile->setAtlasIndex(indexForZ);
|
tile->setAtlasIndex(indexForZ);
|
||||||
tile->setDirty(true);
|
tile->setDirty(true);
|
||||||
tile->updateTransform();
|
tile->updateTransform();
|
||||||
|
@ -441,7 +441,7 @@ Sprite * TMXLayer::appendTileForGID(unsigned int gid, const Point& pos)
|
||||||
// optimization:
|
// optimization:
|
||||||
// The difference between appendTileForGID and insertTileforGID is that append is faster, since
|
// The difference between appendTileForGID and insertTileforGID is that append is faster, since
|
||||||
// it appends the tile at the end of the texture atlas
|
// it appends the tile at the end of the texture atlas
|
||||||
unsigned int indexForZ = _atlasIndexArray->num;
|
ssize_t indexForZ = _atlasIndexArray->num;
|
||||||
|
|
||||||
// don't add it using the "standard" way.
|
// don't add it using the "standard" way.
|
||||||
insertQuadFromSprite(tile, indexForZ);
|
insertQuadFromSprite(tile, indexForZ);
|
||||||
|
@ -458,24 +458,24 @@ static inline int compareInts(const void * a, const void * b)
|
||||||
return ((*(int*)a) - (*(int*)b));
|
return ((*(int*)a) - (*(int*)b));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int TMXLayer::atlasIndexForExistantZ(unsigned int z)
|
ssize_t TMXLayer::atlasIndexForExistantZ(unsigned int z)
|
||||||
{
|
{
|
||||||
int key=z;
|
int key=z;
|
||||||
int *item = (int*)bsearch((void*)&key, (void*)&_atlasIndexArray->arr[0], _atlasIndexArray->num, sizeof(void*), compareInts);
|
int *item = (int*)bsearch((void*)&key, (void*)&_atlasIndexArray->arr[0], _atlasIndexArray->num, sizeof(void*), compareInts);
|
||||||
|
|
||||||
CCASSERT(item, "TMX atlas index not found. Shall not happen");
|
CCASSERT(item, "TMX atlas index not found. Shall not happen");
|
||||||
|
|
||||||
int index = ((size_t)item - (size_t)_atlasIndexArray->arr) / sizeof(void*);
|
ssize_t index = ((size_t)item - (size_t)_atlasIndexArray->arr) / sizeof(void*);
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int TMXLayer::atlasIndexForNewZ(int z)
|
ssize_t TMXLayer::atlasIndexForNewZ(int z)
|
||||||
{
|
{
|
||||||
// XXX: This can be improved with a sort of binary search
|
// XXX: This can be improved with a sort of binary search
|
||||||
int i=0;
|
ssize_t i=0;
|
||||||
for (i=0; i< _atlasIndexArray->num ; i++)
|
for (i=0; i< _atlasIndexArray->num ; i++)
|
||||||
{
|
{
|
||||||
int val = (size_t) _atlasIndexArray->arr[i];
|
ssize_t val = (size_t) _atlasIndexArray->arr[i];
|
||||||
if (z < val)
|
if (z < val)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
@ -558,8 +558,8 @@ void TMXLayer::removeChild(Node* node, bool cleanup)
|
||||||
|
|
||||||
CCASSERT(_children.contains(sprite), "Tile does not belong to TMXLayer");
|
CCASSERT(_children.contains(sprite), "Tile does not belong to TMXLayer");
|
||||||
|
|
||||||
unsigned int atlasIndex = sprite->getAtlasIndex();
|
ssize_t atlasIndex = sprite->getAtlasIndex();
|
||||||
unsigned int zz = (size_t)_atlasIndexArray->arr[atlasIndex];
|
ssize_t zz = (ssize_t)_atlasIndexArray->arr[atlasIndex];
|
||||||
_tiles[zz] = 0;
|
_tiles[zz] = 0;
|
||||||
ccCArrayRemoveValueAtIndex(_atlasIndexArray, atlasIndex);
|
ccCArrayRemoveValueAtIndex(_atlasIndexArray, atlasIndex);
|
||||||
SpriteBatchNode::removeChild(sprite, cleanup);
|
SpriteBatchNode::removeChild(sprite, cleanup);
|
||||||
|
@ -575,7 +575,7 @@ void TMXLayer::removeTileAt(const Point& pos)
|
||||||
if (gid)
|
if (gid)
|
||||||
{
|
{
|
||||||
unsigned int z = (unsigned int)(pos.x + pos.y * _layerSize.width);
|
unsigned int z = (unsigned int)(pos.x + pos.y * _layerSize.width);
|
||||||
unsigned int atlasIndex = atlasIndexForExistantZ(z);
|
ssize_t atlasIndex = atlasIndexForExistantZ(z);
|
||||||
|
|
||||||
// remove tile from GID map
|
// remove tile from GID map
|
||||||
_tiles[z] = 0;
|
_tiles[z] = 0;
|
||||||
|
@ -598,7 +598,7 @@ void TMXLayer::removeTileAt(const Point& pos)
|
||||||
Sprite* child = static_cast<Sprite*>(obj);
|
Sprite* child = static_cast<Sprite*>(obj);
|
||||||
if (child)
|
if (child)
|
||||||
{
|
{
|
||||||
unsigned int ai = child->getAtlasIndex();
|
ssize_t ai = child->getAtlasIndex();
|
||||||
if ( ai >= atlasIndex )
|
if ( ai >= atlasIndex )
|
||||||
{
|
{
|
||||||
child->setAtlasIndex(ai-1);
|
child->setAtlasIndex(ai-1);
|
||||||
|
@ -706,7 +706,7 @@ int TMXLayer::getVertexZForPos(const Point& pos)
|
||||||
|
|
||||||
std::string TMXLayer::getDescription() const
|
std::string TMXLayer::getDescription() const
|
||||||
{
|
{
|
||||||
return StringUtils::format("<TMXLayer | tag = %d, size = %d,%d>", (int)_tag,_mapTileSize.width, (int)_mapTileSize.height);
|
return StringUtils::format("<TMXLayer | tag = %d, size = %d,%d>", _tag, (int)_mapTileSize.width, (int)_mapTileSize.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -209,8 +209,8 @@ private:
|
||||||
int getVertexZForPos(const Point& pos);
|
int getVertexZForPos(const Point& pos);
|
||||||
|
|
||||||
// index
|
// index
|
||||||
unsigned int atlasIndexForExistantZ(unsigned int z);
|
ssize_t atlasIndexForExistantZ(unsigned int z);
|
||||||
unsigned int atlasIndexForNewZ(int z);
|
ssize_t atlasIndexForNewZ(int z);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! name of the layer
|
//! name of the layer
|
||||||
|
|
|
@ -246,7 +246,7 @@ Value TMXTiledMap::getPropertiesForGID(int GID) const
|
||||||
|
|
||||||
std::string TMXTiledMap::getDescription() const
|
std::string TMXTiledMap::getDescription() const
|
||||||
{
|
{
|
||||||
return StringUtils::format("<TMXTiledMap | Tag = %d, Layers = %d", _tag, _children.size());
|
return StringUtils::format("<TMXTiledMap | Tag = %d, Layers = %zd", _tag, _children.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -74,12 +74,12 @@ TextureAtlas::~TextureAtlas()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int TextureAtlas::getTotalQuads() const
|
ssize_t TextureAtlas::getTotalQuads() const
|
||||||
{
|
{
|
||||||
return _totalQuads;
|
return _totalQuads;
|
||||||
}
|
}
|
||||||
|
|
||||||
int TextureAtlas::getCapacity() const
|
ssize_t TextureAtlas::getCapacity() const
|
||||||
{
|
{
|
||||||
return _capacity;
|
return _capacity;
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ void TextureAtlas::setQuads(V3F_C4B_T2F_Quad* quads)
|
||||||
|
|
||||||
// TextureAtlas - alloc & init
|
// TextureAtlas - alloc & init
|
||||||
|
|
||||||
TextureAtlas * TextureAtlas::create(const char* file, int capacity)
|
TextureAtlas * TextureAtlas::create(const char* file, ssize_t capacity)
|
||||||
{
|
{
|
||||||
TextureAtlas * textureAtlas = new TextureAtlas();
|
TextureAtlas * textureAtlas = new TextureAtlas();
|
||||||
if(textureAtlas && textureAtlas->initWithFile(file, capacity))
|
if(textureAtlas && textureAtlas->initWithFile(file, capacity))
|
||||||
|
@ -122,7 +122,7 @@ TextureAtlas * TextureAtlas::create(const char* file, int capacity)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
TextureAtlas * TextureAtlas::createWithTexture(Texture2D *texture, int capacity)
|
TextureAtlas * TextureAtlas::createWithTexture(Texture2D *texture, ssize_t capacity)
|
||||||
{
|
{
|
||||||
TextureAtlas * textureAtlas = new TextureAtlas();
|
TextureAtlas * textureAtlas = new TextureAtlas();
|
||||||
if (textureAtlas && textureAtlas->initWithTexture(texture, capacity))
|
if (textureAtlas && textureAtlas->initWithTexture(texture, capacity))
|
||||||
|
@ -134,7 +134,7 @@ TextureAtlas * TextureAtlas::createWithTexture(Texture2D *texture, int capacity)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextureAtlas::initWithFile(const char * file, int capacity)
|
bool TextureAtlas::initWithFile(const char * file, ssize_t capacity)
|
||||||
{
|
{
|
||||||
// retained in property
|
// retained in property
|
||||||
Texture2D *texture = Director::getInstance()->getTextureCache()->addImage(file);
|
Texture2D *texture = Director::getInstance()->getTextureCache()->addImage(file);
|
||||||
|
@ -150,7 +150,7 @@ bool TextureAtlas::initWithFile(const char * file, int capacity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TextureAtlas::initWithTexture(Texture2D *texture, int capacity)
|
bool TextureAtlas::initWithTexture(Texture2D *texture, ssize_t capacity)
|
||||||
{
|
{
|
||||||
CCASSERT(capacity>=0, "Capacity must be >= 0");
|
CCASSERT(capacity>=0, "Capacity must be >= 0");
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ void TextureAtlas::listenBackToForeground(Object *obj)
|
||||||
|
|
||||||
std::string TextureAtlas::getDescription() const
|
std::string TextureAtlas::getDescription() const
|
||||||
{
|
{
|
||||||
return String::createWithFormat("<TextureAtlas | totalQuads = %d>", _totalQuads)->getCString();
|
return String::createWithFormat("<TextureAtlas | totalQuads = %zd>", _totalQuads)->getCString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ void TextureAtlas::mapBuffers()
|
||||||
|
|
||||||
// TextureAtlas - Update, Insert, Move & Remove
|
// TextureAtlas - Update, Insert, Move & Remove
|
||||||
|
|
||||||
void TextureAtlas::updateQuad(V3F_C4B_T2F_Quad *quad, int index)
|
void TextureAtlas::updateQuad(V3F_C4B_T2F_Quad *quad, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT( index >= 0 && index < _capacity, "updateQuadWithTexture: Invalid index");
|
CCASSERT( index >= 0 && index < _capacity, "updateQuadWithTexture: Invalid index");
|
||||||
|
|
||||||
|
@ -330,7 +330,7 @@ void TextureAtlas::updateQuad(V3F_C4B_T2F_Quad *quad, int index)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::insertQuad(V3F_C4B_T2F_Quad *quad, int index)
|
void TextureAtlas::insertQuad(V3F_C4B_T2F_Quad *quad, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT( index>=0 && index<_capacity, "insertQuadWithTexture: Invalid index");
|
CCASSERT( index>=0 && index<_capacity, "insertQuadWithTexture: Invalid index");
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ void TextureAtlas::insertQuad(V3F_C4B_T2F_Quad *quad, int index)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::insertQuads(V3F_C4B_T2F_Quad* quads, int index, int amount)
|
void TextureAtlas::insertQuads(V3F_C4B_T2F_Quad* quads, ssize_t index, ssize_t amount)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && amount>=0 && index+amount<=_capacity, "insertQuadWithTexture: Invalid index + amount");
|
CCASSERT(index>=0 && amount>=0 && index+amount<=_capacity, "insertQuadWithTexture: Invalid index + amount");
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ void TextureAtlas::insertQuads(V3F_C4B_T2F_Quad* quads, int index, int amount)
|
||||||
|
|
||||||
auto max = index + amount;
|
auto max = index + amount;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (int i = index; i < max ; i++)
|
for (ssize_t i = index; i < max ; i++)
|
||||||
{
|
{
|
||||||
_quads[index] = quads[j];
|
_quads[index] = quads[j];
|
||||||
index++;
|
index++;
|
||||||
|
@ -385,7 +385,7 @@ void TextureAtlas::insertQuads(V3F_C4B_T2F_Quad* quads, int index, int amount)
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::insertQuadFromIndex(int oldIndex, int newIndex)
|
void TextureAtlas::insertQuadFromIndex(ssize_t oldIndex, ssize_t newIndex)
|
||||||
{
|
{
|
||||||
CCASSERT( newIndex >= 0 && newIndex < _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
CCASSERT( newIndex >= 0 && newIndex < _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
||||||
CCASSERT( oldIndex >= 0 && oldIndex < _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
CCASSERT( oldIndex >= 0 && oldIndex < _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
||||||
|
@ -414,7 +414,7 @@ void TextureAtlas::insertQuadFromIndex(int oldIndex, int newIndex)
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::removeQuadAtIndex(int index)
|
void TextureAtlas::removeQuadAtIndex(ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT( index>=0 && index<_totalQuads, "removeQuadAtIndex: Invalid index");
|
CCASSERT( index>=0 && index<_totalQuads, "removeQuadAtIndex: Invalid index");
|
||||||
|
|
||||||
|
@ -433,7 +433,7 @@ void TextureAtlas::removeQuadAtIndex(int index)
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::removeQuadsAtIndex(int index, int amount)
|
void TextureAtlas::removeQuadsAtIndex(ssize_t index, ssize_t amount)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && amount>=0 && index+amount<=_totalQuads, "removeQuadAtIndex: index + amount out of bounds");
|
CCASSERT(index>=0 && amount>=0 && index+amount<=_totalQuads, "removeQuadAtIndex: index + amount out of bounds");
|
||||||
|
|
||||||
|
@ -455,7 +455,7 @@ void TextureAtlas::removeAllQuads()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TextureAtlas - Resize
|
// TextureAtlas - Resize
|
||||||
bool TextureAtlas::resizeCapacity(int newCapacity)
|
bool TextureAtlas::resizeCapacity(ssize_t newCapacity)
|
||||||
{
|
{
|
||||||
CCASSERT(newCapacity>=0, "capacity >= 0");
|
CCASSERT(newCapacity>=0, "capacity >= 0");
|
||||||
if( newCapacity == _capacity )
|
if( newCapacity == _capacity )
|
||||||
|
@ -529,13 +529,13 @@ bool TextureAtlas::resizeCapacity(int newCapacity)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::increaseTotalQuadsWith(int amount)
|
void TextureAtlas::increaseTotalQuadsWith(ssize_t amount)
|
||||||
{
|
{
|
||||||
CCASSERT(amount>=0, "amount >= 0");
|
CCASSERT(amount>=0, "amount >= 0");
|
||||||
_totalQuads += amount;
|
_totalQuads += amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::moveQuadsFromIndex(int oldIndex, int amount, int newIndex)
|
void TextureAtlas::moveQuadsFromIndex(ssize_t oldIndex, ssize_t amount, ssize_t newIndex)
|
||||||
{
|
{
|
||||||
CCASSERT(oldIndex>=0 && amount>=0 && newIndex>=0, "values must be >= 0");
|
CCASSERT(oldIndex>=0 && amount>=0 && newIndex>=0, "values must be >= 0");
|
||||||
CCASSERT(newIndex + amount <= _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
CCASSERT(newIndex + amount <= _totalQuads, "insertQuadFromIndex:atIndex: Invalid index");
|
||||||
|
@ -567,7 +567,7 @@ void TextureAtlas::moveQuadsFromIndex(int oldIndex, int amount, int newIndex)
|
||||||
_dirty = true;
|
_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::moveQuadsFromIndex(int index, int newIndex)
|
void TextureAtlas::moveQuadsFromIndex(ssize_t index, ssize_t newIndex)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && newIndex>=0, "values must be >= 0");
|
CCASSERT(index>=0 && newIndex>=0, "values must be >= 0");
|
||||||
CCASSERT(newIndex + (_totalQuads - index) <= _capacity, "moveQuadsFromIndex move is out of bounds");
|
CCASSERT(newIndex + (_totalQuads - index) <= _capacity, "moveQuadsFromIndex move is out of bounds");
|
||||||
|
@ -575,14 +575,14 @@ void TextureAtlas::moveQuadsFromIndex(int index, int newIndex)
|
||||||
memmove(_quads + newIndex,_quads + index, (_totalQuads - index) * sizeof(_quads[0]));
|
memmove(_quads + newIndex,_quads + index, (_totalQuads - index) * sizeof(_quads[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::fillWithEmptyQuadsFromIndex(int index, int amount)
|
void TextureAtlas::fillWithEmptyQuadsFromIndex(ssize_t index, ssize_t amount)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && amount>=0, "values must be >= 0");
|
CCASSERT(index>=0 && amount>=0, "values must be >= 0");
|
||||||
V3F_C4B_T2F_Quad quad;
|
V3F_C4B_T2F_Quad quad;
|
||||||
memset(&quad, 0, sizeof(quad));
|
memset(&quad, 0, sizeof(quad));
|
||||||
|
|
||||||
auto to = index + amount;
|
auto to = index + amount;
|
||||||
for (int i = index ; i < to ; i++)
|
for (ssize_t i = index ; i < to ; i++)
|
||||||
{
|
{
|
||||||
_quads[i] = quad;
|
_quads[i] = quad;
|
||||||
}
|
}
|
||||||
|
@ -595,13 +595,13 @@ void TextureAtlas::drawQuads()
|
||||||
this->drawNumberOfQuads(_totalQuads, 0);
|
this->drawNumberOfQuads(_totalQuads, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::drawNumberOfQuads(int numberOfQuads)
|
void TextureAtlas::drawNumberOfQuads(ssize_t numberOfQuads)
|
||||||
{
|
{
|
||||||
CCASSERT(numberOfQuads>=0, "numberOfQuads must be >= 0");
|
CCASSERT(numberOfQuads>=0, "numberOfQuads must be >= 0");
|
||||||
this->drawNumberOfQuads(numberOfQuads, 0);
|
this->drawNumberOfQuads(numberOfQuads, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureAtlas::drawNumberOfQuads(int numberOfQuads, int start)
|
void TextureAtlas::drawNumberOfQuads(ssize_t numberOfQuads, ssize_t start)
|
||||||
{
|
{
|
||||||
CCASSERT(numberOfQuads>=0 && start>=0, "numberOfQuads and start must be >= 0");
|
CCASSERT(numberOfQuads>=0 && start>=0, "numberOfQuads and start must be >= 0");
|
||||||
|
|
||||||
|
|
|
@ -59,13 +59,13 @@ public:
|
||||||
/** creates a TextureAtlas with an filename and with an initial capacity for Quads.
|
/** creates a TextureAtlas with an filename and with an initial capacity for Quads.
|
||||||
* The TextureAtlas capacity can be increased in runtime.
|
* The TextureAtlas capacity can be increased in runtime.
|
||||||
*/
|
*/
|
||||||
static TextureAtlas* create(const char* file , int capacity);
|
static TextureAtlas* create(const char* file , ssize_t capacity);
|
||||||
|
|
||||||
/** creates a TextureAtlas with a previously initialized Texture2D object, and
|
/** creates a TextureAtlas with a previously initialized Texture2D object, and
|
||||||
* with an initial capacity for n Quads.
|
* with an initial capacity for n Quads.
|
||||||
* The TextureAtlas capacity can be increased in runtime.
|
* The TextureAtlas capacity can be increased in runtime.
|
||||||
*/
|
*/
|
||||||
static TextureAtlas* createWithTexture(Texture2D *texture, int capacity);
|
static TextureAtlas* createWithTexture(Texture2D *texture, ssize_t capacity);
|
||||||
/**
|
/**
|
||||||
* @js ctor
|
* @js ctor
|
||||||
*/
|
*/
|
||||||
|
@ -81,7 +81,7 @@ public:
|
||||||
*
|
*
|
||||||
* WARNING: Do not reinitialize the TextureAtlas because it will leak memory (issue #706)
|
* WARNING: Do not reinitialize the TextureAtlas because it will leak memory (issue #706)
|
||||||
*/
|
*/
|
||||||
bool initWithFile(const char* file, int capacity);
|
bool initWithFile(const char* file, ssize_t capacity);
|
||||||
|
|
||||||
/** initializes a TextureAtlas with a previously initialized Texture2D object, and
|
/** initializes a TextureAtlas with a previously initialized Texture2D object, and
|
||||||
* with an initial capacity for Quads.
|
* with an initial capacity for Quads.
|
||||||
|
@ -89,43 +89,43 @@ public:
|
||||||
*
|
*
|
||||||
* WARNING: Do not reinitialize the TextureAtlas because it will leak memory (issue #706)
|
* WARNING: Do not reinitialize the TextureAtlas because it will leak memory (issue #706)
|
||||||
*/
|
*/
|
||||||
bool initWithTexture(Texture2D *texture, int capacity);
|
bool initWithTexture(Texture2D *texture, ssize_t capacity);
|
||||||
|
|
||||||
/** updates a Quad (texture, vertex and color) at a certain index
|
/** updates a Quad (texture, vertex and color) at a certain index
|
||||||
* index must be between 0 and the atlas capacity - 1
|
* index must be between 0 and the atlas capacity - 1
|
||||||
@since v0.8
|
@since v0.8
|
||||||
*/
|
*/
|
||||||
void updateQuad(V3F_C4B_T2F_Quad* quad, int index);
|
void updateQuad(V3F_C4B_T2F_Quad* quad, ssize_t index);
|
||||||
|
|
||||||
/** Inserts a Quad (texture, vertex and color) at a certain index
|
/** Inserts a Quad (texture, vertex and color) at a certain index
|
||||||
index must be between 0 and the atlas capacity - 1
|
index must be between 0 and the atlas capacity - 1
|
||||||
@since v0.8
|
@since v0.8
|
||||||
*/
|
*/
|
||||||
void insertQuad(V3F_C4B_T2F_Quad* quad, int index);
|
void insertQuad(V3F_C4B_T2F_Quad* quad, ssize_t index);
|
||||||
|
|
||||||
/** Inserts a c array of quads at a given index
|
/** Inserts a c array of quads at a given index
|
||||||
index must be between 0 and the atlas capacity - 1
|
index must be between 0 and the atlas capacity - 1
|
||||||
this method doesn't enlarge the array when amount + index > totalQuads
|
this method doesn't enlarge the array when amount + index > totalQuads
|
||||||
@since v1.1
|
@since v1.1
|
||||||
*/
|
*/
|
||||||
void insertQuads(V3F_C4B_T2F_Quad* quads, int index, int amount);
|
void insertQuads(V3F_C4B_T2F_Quad* quads, ssize_t index, ssize_t amount);
|
||||||
|
|
||||||
/** Removes the quad that is located at a certain index and inserts it at a new index
|
/** Removes the quad that is located at a certain index and inserts it at a new index
|
||||||
This operation is faster than removing and inserting in a quad in 2 different steps
|
This operation is faster than removing and inserting in a quad in 2 different steps
|
||||||
@since v0.7.2
|
@since v0.7.2
|
||||||
*/
|
*/
|
||||||
void insertQuadFromIndex(int fromIndex, int newIndex);
|
void insertQuadFromIndex(ssize_t fromIndex, ssize_t newIndex);
|
||||||
|
|
||||||
/** removes a quad at a given index number.
|
/** removes a quad at a given index number.
|
||||||
The capacity remains the same, but the total number of quads to be drawn is reduced in 1
|
The capacity remains the same, but the total number of quads to be drawn is reduced in 1
|
||||||
@since v0.7.2
|
@since v0.7.2
|
||||||
*/
|
*/
|
||||||
void removeQuadAtIndex(int index);
|
void removeQuadAtIndex(ssize_t index);
|
||||||
|
|
||||||
/** removes a amount of quads starting from index
|
/** removes a amount of quads starting from index
|
||||||
@since 1.1
|
@since 1.1
|
||||||
*/
|
*/
|
||||||
void removeQuadsAtIndex(int index, int amount);
|
void removeQuadsAtIndex(ssize_t index, ssize_t amount);
|
||||||
/** removes all Quads.
|
/** removes all Quads.
|
||||||
The TextureAtlas capacity remains untouched. No memory is freed.
|
The TextureAtlas capacity remains untouched. No memory is freed.
|
||||||
The total number of quads to be drawn will be 0
|
The total number of quads to be drawn will be 0
|
||||||
|
@ -138,19 +138,19 @@ public:
|
||||||
* It returns true if the resize was successful.
|
* It returns true if the resize was successful.
|
||||||
* If it fails to resize the capacity it will return false with a new capacity of 0.
|
* If it fails to resize the capacity it will return false with a new capacity of 0.
|
||||||
*/
|
*/
|
||||||
bool resizeCapacity(int capacity);
|
bool resizeCapacity(ssize_t capacity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Used internally by ParticleBatchNode
|
Used internally by ParticleBatchNode
|
||||||
don't use this unless you know what you're doing
|
don't use this unless you know what you're doing
|
||||||
@since 1.1
|
@since 1.1
|
||||||
*/
|
*/
|
||||||
void increaseTotalQuadsWith(int amount);
|
void increaseTotalQuadsWith(ssize_t amount);
|
||||||
|
|
||||||
/** Moves an amount of quads from oldIndex at newIndex
|
/** Moves an amount of quads from oldIndex at newIndex
|
||||||
@since v1.1
|
@since v1.1
|
||||||
*/
|
*/
|
||||||
void moveQuadsFromIndex(int oldIndex, int amount, int newIndex);
|
void moveQuadsFromIndex(ssize_t oldIndex, ssize_t amount, ssize_t newIndex);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Moves quads from index till totalQuads to the newIndex
|
Moves quads from index till totalQuads to the newIndex
|
||||||
|
@ -158,26 +158,26 @@ public:
|
||||||
This method doesn't enlarge the array if newIndex + quads to be moved > capacity
|
This method doesn't enlarge the array if newIndex + quads to be moved > capacity
|
||||||
@since 1.1
|
@since 1.1
|
||||||
*/
|
*/
|
||||||
void moveQuadsFromIndex(int index, int newIndex);
|
void moveQuadsFromIndex(ssize_t index, ssize_t newIndex);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Ensures that after a realloc quads are still empty
|
Ensures that after a realloc quads are still empty
|
||||||
Used internally by ParticleBatchNode
|
Used internally by ParticleBatchNode
|
||||||
@since 1.1
|
@since 1.1
|
||||||
*/
|
*/
|
||||||
void fillWithEmptyQuadsFromIndex(int index, int amount);
|
void fillWithEmptyQuadsFromIndex(ssize_t index, ssize_t amount);
|
||||||
|
|
||||||
/** draws n quads
|
/** draws n quads
|
||||||
* n can't be greater than the capacity of the Atlas
|
* n can't be greater than the capacity of the Atlas
|
||||||
*/
|
*/
|
||||||
void drawNumberOfQuads(int n);
|
void drawNumberOfQuads(ssize_t n);
|
||||||
|
|
||||||
/** draws n quads from an index (offset).
|
/** draws n quads from an index (offset).
|
||||||
n + start can't be greater than the capacity of the atlas
|
n + start can't be greater than the capacity of the atlas
|
||||||
|
|
||||||
@since v1.0
|
@since v1.0
|
||||||
*/
|
*/
|
||||||
void drawNumberOfQuads(int numberOfQuads, int start);
|
void drawNumberOfQuads(ssize_t numberOfQuads, ssize_t start);
|
||||||
|
|
||||||
/** draws all the Atlas's Quads
|
/** draws all the Atlas's Quads
|
||||||
*/
|
*/
|
||||||
|
@ -197,10 +197,10 @@ public:
|
||||||
virtual std::string getDescription() const;
|
virtual std::string getDescription() const;
|
||||||
|
|
||||||
/** Gets the quantity of quads that are going to be drawn */
|
/** Gets the quantity of quads that are going to be drawn */
|
||||||
int getTotalQuads() const;
|
ssize_t getTotalQuads() const;
|
||||||
|
|
||||||
/** Gets the quantity of quads that can be stored with the current texture atlas size */
|
/** Gets the quantity of quads that can be stored with the current texture atlas size */
|
||||||
int getCapacity() const;
|
ssize_t getCapacity() const;
|
||||||
|
|
||||||
/** Gets the texture of the texture atlas */
|
/** Gets the texture of the texture atlas */
|
||||||
Texture2D* getTexture() const;
|
Texture2D* getTexture() const;
|
||||||
|
@ -228,9 +228,9 @@ protected:
|
||||||
GLuint _buffersVBO[2]; //0: vertex 1: indices
|
GLuint _buffersVBO[2]; //0: vertex 1: indices
|
||||||
bool _dirty; //indicates whether or not the array buffer of the VBO needs to be updated
|
bool _dirty; //indicates whether or not the array buffer of the VBO needs to be updated
|
||||||
/** quantity of quads that are going to be drawn */
|
/** quantity of quads that are going to be drawn */
|
||||||
int _totalQuads;
|
ssize_t _totalQuads;
|
||||||
/** quantity of quads that can be stored with the current texture atlas size */
|
/** quantity of quads that can be stored with the current texture atlas size */
|
||||||
int _capacity;
|
ssize_t _capacity;
|
||||||
/** Texture of the texture atlas */
|
/** Texture of the texture atlas */
|
||||||
Texture2D* _texture;
|
Texture2D* _texture;
|
||||||
/** Quads that are going to be rendered */
|
/** Quads that are going to be rendered */
|
||||||
|
|
|
@ -222,7 +222,7 @@ void TileMapAtlas::updateAtlasValueAt(const Point& pos, const Color3B& value, in
|
||||||
quad->bl.colors = color;
|
quad->bl.colors = color;
|
||||||
|
|
||||||
_textureAtlas->setDirty(true);
|
_textureAtlas->setDirty(true);
|
||||||
int totalQuads = _textureAtlas->getTotalQuads();
|
ssize_t totalQuads = _textureAtlas->getTotalQuads();
|
||||||
if (index + 1 > totalQuads) {
|
if (index + 1 > totalQuads) {
|
||||||
_textureAtlas->increaseTotalQuadsWith(index + 1 - totalQuads);
|
_textureAtlas->increaseTotalQuadsWith(index + 1 - totalQuads);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,10 +28,10 @@ THE SOFTWARE.
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
const int CC_INVALID_INDEX = -1;
|
const ssize_t CC_INVALID_INDEX = -1;
|
||||||
|
|
||||||
/** Allocates and initializes a new array with specified capacity */
|
/** Allocates and initializes a new array with specified capacity */
|
||||||
ccArray* ccArrayNew(int capacity)
|
ccArray* ccArrayNew(ssize_t capacity)
|
||||||
{
|
{
|
||||||
if (capacity == 0)
|
if (capacity == 0)
|
||||||
capacity = 7;
|
capacity = 7;
|
||||||
|
@ -68,11 +68,11 @@ void ccArrayDoubleCapacity(ccArray *arr)
|
||||||
arr->arr = newArr;
|
arr->arr = newArr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ccArrayEnsureExtraCapacity(ccArray *arr, int extra)
|
void ccArrayEnsureExtraCapacity(ccArray *arr, ssize_t extra)
|
||||||
{
|
{
|
||||||
while (arr->max < arr->num + extra)
|
while (arr->max < arr->num + extra)
|
||||||
{
|
{
|
||||||
CCLOG("cocos2d: ccCArray: resizing ccArray capacity from [%d] to [%d].",
|
CCLOG("cocos2d: ccCArray: resizing ccArray capacity from [%zd] to [%zd].",
|
||||||
arr->max,
|
arr->max,
|
||||||
arr->max*2);
|
arr->max*2);
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ void ccArrayEnsureExtraCapacity(ccArray *arr, int extra)
|
||||||
|
|
||||||
void ccArrayShrink(ccArray *arr)
|
void ccArrayShrink(ccArray *arr)
|
||||||
{
|
{
|
||||||
int newSize = 0;
|
ssize_t newSize = 0;
|
||||||
|
|
||||||
//only resize when necessary
|
//only resize when necessary
|
||||||
if (arr->max > arr->num && !(arr->num==0 && arr->max==1))
|
if (arr->max > arr->num && !(arr->num==0 && arr->max==1))
|
||||||
|
@ -104,11 +104,11 @@ void ccArrayShrink(ccArray *arr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns index of first occurrence of object, CC_INVALID_INDEX if object not found. */
|
/** Returns index of first occurrence of object, CC_INVALID_INDEX if object not found. */
|
||||||
int ccArrayGetIndexOfObject(ccArray *arr, Object* object)
|
ssize_t ccArrayGetIndexOfObject(ccArray *arr, Object* object)
|
||||||
{
|
{
|
||||||
const auto arrNum = arr->num;
|
const auto arrNum = arr->num;
|
||||||
Object** ptr = arr->arr;
|
Object** ptr = arr->arr;
|
||||||
for (int i = 0; i < arrNum; ++i, ++ptr)
|
for (ssize_t i = 0; i < arrNum; ++i, ++ptr)
|
||||||
{
|
{
|
||||||
if (*ptr == object)
|
if (*ptr == object)
|
||||||
return i;
|
return i;
|
||||||
|
@ -143,7 +143,7 @@ void ccArrayAppendObjectWithResize(ccArray *arr, Object* object)
|
||||||
enough capacity. */
|
enough capacity. */
|
||||||
void ccArrayAppendArray(ccArray *arr, ccArray *plusArr)
|
void ccArrayAppendArray(ccArray *arr, ccArray *plusArr)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < plusArr->num; i++)
|
for (ssize_t i = 0; i < plusArr->num; i++)
|
||||||
{
|
{
|
||||||
ccArrayAppendObject(arr, plusArr->arr[i]);
|
ccArrayAppendObject(arr, plusArr->arr[i]);
|
||||||
}
|
}
|
||||||
|
@ -157,14 +157,14 @@ void ccArrayAppendArrayWithResize(ccArray *arr, ccArray *plusArr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts an object at index */
|
/** Inserts an object at index */
|
||||||
void ccArrayInsertObjectAtIndex(ccArray *arr, Object* object, int index)
|
void ccArrayInsertObjectAtIndex(ccArray *arr, Object* object, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(index<=arr->num, "Invalid index. Out of bounds");
|
CCASSERT(index<=arr->num, "Invalid index. Out of bounds");
|
||||||
CCASSERT(object != NULL, "Invalid parameter!");
|
CCASSERT(object != NULL, "Invalid parameter!");
|
||||||
|
|
||||||
ccArrayEnsureExtraCapacity(arr, 1);
|
ccArrayEnsureExtraCapacity(arr, 1);
|
||||||
|
|
||||||
int remaining = arr->num - index;
|
ssize_t remaining = arr->num - index;
|
||||||
if (remaining > 0)
|
if (remaining > 0)
|
||||||
{
|
{
|
||||||
memmove((void *)&arr->arr[index+1], (void *)&arr->arr[index], sizeof(Object*) * remaining );
|
memmove((void *)&arr->arr[index+1], (void *)&arr->arr[index], sizeof(Object*) * remaining );
|
||||||
|
@ -176,7 +176,7 @@ void ccArrayInsertObjectAtIndex(ccArray *arr, Object* object, int index)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Swaps two objects */
|
/** Swaps two objects */
|
||||||
void ccArraySwapObjectsAtIndexes(ccArray *arr, int index1, int index2)
|
void ccArraySwapObjectsAtIndexes(ccArray *arr, ssize_t index1, ssize_t index2)
|
||||||
{
|
{
|
||||||
CCASSERT(index1>=0 && index1 < arr->num, "(1) Invalid index. Out of bounds");
|
CCASSERT(index1>=0 && index1 < arr->num, "(1) Invalid index. Out of bounds");
|
||||||
CCASSERT(index2>=0 && index2 < arr->num, "(2) Invalid index. Out of bounds");
|
CCASSERT(index2>=0 && index2 < arr->num, "(2) Invalid index. Out of bounds");
|
||||||
|
@ -198,7 +198,7 @@ void ccArrayRemoveAllObjects(ccArray *arr)
|
||||||
|
|
||||||
/** Removes object at specified index and pushes back all subsequent objects.
|
/** Removes object at specified index and pushes back all subsequent objects.
|
||||||
Behavior undefined if index outside [0, num-1]. */
|
Behavior undefined if index outside [0, num-1]. */
|
||||||
void ccArrayRemoveObjectAtIndex(ccArray *arr, int index, bool bReleaseObj/* = true*/)
|
void ccArrayRemoveObjectAtIndex(ccArray *arr, ssize_t index, bool bReleaseObj/* = true*/)
|
||||||
{
|
{
|
||||||
CCASSERT(arr && arr->num > 0 && index>=0 && index < arr->num, "Invalid index. Out of bounds");
|
CCASSERT(arr && arr->num > 0 && index>=0 && index < arr->num, "Invalid index. Out of bounds");
|
||||||
if (bReleaseObj)
|
if (bReleaseObj)
|
||||||
|
@ -208,7 +208,7 @@ void ccArrayRemoveObjectAtIndex(ccArray *arr, int index, bool bReleaseObj/* = tr
|
||||||
|
|
||||||
arr->num--;
|
arr->num--;
|
||||||
|
|
||||||
int remaining = arr->num - index;
|
ssize_t remaining = arr->num - index;
|
||||||
if(remaining>0)
|
if(remaining>0)
|
||||||
{
|
{
|
||||||
memmove((void *)&arr->arr[index], (void *)&arr->arr[index+1], remaining * sizeof(Object*));
|
memmove((void *)&arr->arr[index], (void *)&arr->arr[index+1], remaining * sizeof(Object*));
|
||||||
|
@ -218,7 +218,7 @@ void ccArrayRemoveObjectAtIndex(ccArray *arr, int index, bool bReleaseObj/* = tr
|
||||||
/** Removes object at specified index and fills the gap with the last object,
|
/** Removes object at specified index and fills the gap with the last object,
|
||||||
thereby avoiding the need to push back subsequent objects.
|
thereby avoiding the need to push back subsequent objects.
|
||||||
Behavior undefined if index outside [0, num-1]. */
|
Behavior undefined if index outside [0, num-1]. */
|
||||||
void ccArrayFastRemoveObjectAtIndex(ccArray *arr, int index)
|
void ccArrayFastRemoveObjectAtIndex(ccArray *arr, ssize_t index)
|
||||||
{
|
{
|
||||||
CC_SAFE_RELEASE(arr->arr[index]);
|
CC_SAFE_RELEASE(arr->arr[index]);
|
||||||
auto last = --arr->num;
|
auto last = --arr->num;
|
||||||
|
@ -249,7 +249,7 @@ void ccArrayRemoveObject(ccArray *arr, Object* object, bool bReleaseObj/* = true
|
||||||
first matching instance in arr will be removed. */
|
first matching instance in arr will be removed. */
|
||||||
void ccArrayRemoveArray(ccArray *arr, ccArray *minusArr)
|
void ccArrayRemoveArray(ccArray *arr, ccArray *minusArr)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < minusArr->num; i++)
|
for (ssize_t i = 0; i < minusArr->num; i++)
|
||||||
{
|
{
|
||||||
ccArrayRemoveObject(arr, minusArr->arr[i]);
|
ccArrayRemoveObject(arr, minusArr->arr[i]);
|
||||||
}
|
}
|
||||||
|
@ -259,9 +259,9 @@ void ccArrayRemoveArray(ccArray *arr, ccArray *minusArr)
|
||||||
matching instances in arr will be removed. */
|
matching instances in arr will be removed. */
|
||||||
void ccArrayFullRemoveArray(ccArray *arr, ccArray *minusArr)
|
void ccArrayFullRemoveArray(ccArray *arr, ccArray *minusArr)
|
||||||
{
|
{
|
||||||
int back = 0;
|
ssize_t back = 0;
|
||||||
|
|
||||||
for (int i = 0; i < arr->num; i++)
|
for (ssize_t i = 0; i < arr->num; i++)
|
||||||
{
|
{
|
||||||
if (ccArrayContainsObject(minusArr, arr->arr[i]))
|
if (ccArrayContainsObject(minusArr, arr->arr[i]))
|
||||||
{
|
{
|
||||||
|
@ -281,7 +281,7 @@ void ccArrayFullRemoveArray(ccArray *arr, ccArray *minusArr)
|
||||||
// #pragma mark ccCArray for Values (c structures)
|
// #pragma mark ccCArray for Values (c structures)
|
||||||
|
|
||||||
/** Allocates and initializes a new C array with specified capacity */
|
/** Allocates and initializes a new C array with specified capacity */
|
||||||
ccCArray* ccCArrayNew(int capacity)
|
ccCArray* ccCArrayNew(ssize_t capacity)
|
||||||
{
|
{
|
||||||
if (capacity == 0)
|
if (capacity == 0)
|
||||||
{
|
{
|
||||||
|
@ -316,15 +316,15 @@ void ccCArrayDoubleCapacity(ccCArray *arr)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Increases array capacity such that max >= num + extra. */
|
/** Increases array capacity such that max >= num + extra. */
|
||||||
void ccCArrayEnsureExtraCapacity(ccCArray *arr, int extra)
|
void ccCArrayEnsureExtraCapacity(ccCArray *arr, ssize_t extra)
|
||||||
{
|
{
|
||||||
ccArrayEnsureExtraCapacity((ccArray*)arr,extra);
|
ccArrayEnsureExtraCapacity((ccArray*)arr,extra);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns index of first occurrence of value, CC_INVALID_INDEX if value not found. */
|
/** Returns index of first occurrence of value, CC_INVALID_INDEX if value not found. */
|
||||||
int ccCArrayGetIndexOfValue(ccCArray *arr, void* value)
|
ssize_t ccCArrayGetIndexOfValue(ccCArray *arr, void* value)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < arr->num; i++)
|
for(ssize_t i = 0; i < arr->num; i++)
|
||||||
{
|
{
|
||||||
if( arr->arr[i] == value )
|
if( arr->arr[i] == value )
|
||||||
return i;
|
return i;
|
||||||
|
@ -339,7 +339,7 @@ bool ccCArrayContainsValue(ccCArray *arr, void* value)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts a value at a certain position. Behavior undefined if array doesn't have enough capacity */
|
/** Inserts a value at a certain position. Behavior undefined if array doesn't have enough capacity */
|
||||||
void ccCArrayInsertValueAtIndex( ccCArray *arr, void* value, int index)
|
void ccCArrayInsertValueAtIndex( ccCArray *arr, void* value, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT( index < arr->max, "ccCArrayInsertValueAtIndex: invalid index");
|
CCASSERT( index < arr->max, "ccCArrayInsertValueAtIndex: invalid index");
|
||||||
|
|
||||||
|
@ -384,7 +384,7 @@ void ccCArrayAppendValueWithResize(ccCArray *arr, void* value)
|
||||||
enough capacity. */
|
enough capacity. */
|
||||||
void ccCArrayAppendArray(ccCArray *arr, ccCArray *plusArr)
|
void ccCArrayAppendArray(ccCArray *arr, ccCArray *plusArr)
|
||||||
{
|
{
|
||||||
for( int i = 0; i < plusArr->num; i++)
|
for( ssize_t i = 0; i < plusArr->num; i++)
|
||||||
{
|
{
|
||||||
ccCArrayAppendValue(arr, plusArr->arr[i]);
|
ccCArrayAppendValue(arr, plusArr->arr[i]);
|
||||||
}
|
}
|
||||||
|
@ -407,9 +407,9 @@ void ccCArrayRemoveAllValues(ccCArray *arr)
|
||||||
Behavior undefined if index outside [0, num-1].
|
Behavior undefined if index outside [0, num-1].
|
||||||
@since v0.99.4
|
@since v0.99.4
|
||||||
*/
|
*/
|
||||||
void ccCArrayRemoveValueAtIndex(ccCArray *arr, int index)
|
void ccCArrayRemoveValueAtIndex(ccCArray *arr, ssize_t index)
|
||||||
{
|
{
|
||||||
for( int last = --arr->num; index < last; index++)
|
for( ssize_t last = --arr->num; index < last; index++)
|
||||||
{
|
{
|
||||||
arr->arr[index] = arr->arr[index + 1];
|
arr->arr[index] = arr->arr[index + 1];
|
||||||
}
|
}
|
||||||
|
@ -420,9 +420,9 @@ void ccCArrayRemoveValueAtIndex(ccCArray *arr, int index)
|
||||||
Behavior undefined if index outside [0, num-1].
|
Behavior undefined if index outside [0, num-1].
|
||||||
@since v0.99.4
|
@since v0.99.4
|
||||||
*/
|
*/
|
||||||
void ccCArrayFastRemoveValueAtIndex(ccCArray *arr, int index)
|
void ccCArrayFastRemoveValueAtIndex(ccCArray *arr, ssize_t index)
|
||||||
{
|
{
|
||||||
auto last = --arr->num;
|
ssize_t last = --arr->num;
|
||||||
arr->arr[index] = arr->arr[last];
|
arr->arr[index] = arr->arr[last];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ void ccCArrayRemoveValue(ccCArray *arr, void* value)
|
||||||
*/
|
*/
|
||||||
void ccCArrayRemoveArray(ccCArray *arr, ccCArray *minusArr)
|
void ccCArrayRemoveArray(ccCArray *arr, ccCArray *minusArr)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < minusArr->num; i++)
|
for(ssize_t i = 0; i < minusArr->num; i++)
|
||||||
{
|
{
|
||||||
ccCArrayRemoveValue(arr, minusArr->arr[i]);
|
ccCArrayRemoveValue(arr, minusArr->arr[i]);
|
||||||
}
|
}
|
||||||
|
@ -454,9 +454,9 @@ void ccCArrayRemoveArray(ccCArray *arr, ccCArray *minusArr)
|
||||||
*/
|
*/
|
||||||
void ccCArrayFullRemoveArray(ccCArray *arr, ccCArray *minusArr)
|
void ccCArrayFullRemoveArray(ccCArray *arr, ccCArray *minusArr)
|
||||||
{
|
{
|
||||||
int back = 0;
|
ssize_t back = 0;
|
||||||
|
|
||||||
for(int i = 0; i < arr->num; i++)
|
for(ssize_t i = 0; i < arr->num; i++)
|
||||||
{
|
{
|
||||||
if( ccCArrayContainsValue(minusArr, arr->arr[i]) )
|
if( ccCArrayContainsValue(minusArr, arr->arr[i]) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -51,20 +51,20 @@ THE SOFTWARE.
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
extern const int CC_INVALID_INDEX;
|
extern const ssize_t CC_INVALID_INDEX;
|
||||||
|
|
||||||
// Easy integration
|
// Easy integration
|
||||||
#define CCARRAYDATA_FOREACH(__array__, __object__) \
|
#define CCARRAYDATA_FOREACH(__array__, __object__) \
|
||||||
__object__=__array__->arr[0]; for(int i=0, num=__array__->num; i<num; i++, __object__=__array__->arr[i]) \
|
__object__=__array__->arr[0]; for(ssize_t i=0, num=__array__->num; i<num; i++, __object__=__array__->arr[i]) \
|
||||||
|
|
||||||
|
|
||||||
typedef struct _ccArray {
|
typedef struct _ccArray {
|
||||||
int num, max;
|
ssize_t num, max;
|
||||||
Object** arr;
|
Object** arr;
|
||||||
} ccArray;
|
} ccArray;
|
||||||
|
|
||||||
/** Allocates and initializes a new array with specified capacity */
|
/** Allocates and initializes a new array with specified capacity */
|
||||||
ccArray* ccArrayNew(int capacity);
|
ccArray* ccArrayNew(ssize_t capacity);
|
||||||
|
|
||||||
/** Frees array after removing all remaining objects. Silently ignores nil arr. */
|
/** Frees array after removing all remaining objects. Silently ignores nil arr. */
|
||||||
void ccArrayFree(ccArray*& arr);
|
void ccArrayFree(ccArray*& arr);
|
||||||
|
@ -73,13 +73,13 @@ void ccArrayFree(ccArray*& arr);
|
||||||
void ccArrayDoubleCapacity(ccArray *arr);
|
void ccArrayDoubleCapacity(ccArray *arr);
|
||||||
|
|
||||||
/** Increases array capacity such that max >= num + extra. */
|
/** Increases array capacity such that max >= num + extra. */
|
||||||
void ccArrayEnsureExtraCapacity(ccArray *arr, int extra);
|
void ccArrayEnsureExtraCapacity(ccArray *arr, ssize_t extra);
|
||||||
|
|
||||||
/** shrinks the array so the memory footprint corresponds with the number of items */
|
/** shrinks the array so the memory footprint corresponds with the number of items */
|
||||||
void ccArrayShrink(ccArray *arr);
|
void ccArrayShrink(ccArray *arr);
|
||||||
|
|
||||||
/** Returns index of first occurrence of object, NSNotFound if object not found. */
|
/** Returns index of first occurrence of object, NSNotFound if object not found. */
|
||||||
int ccArrayGetIndexOfObject(ccArray *arr, Object* object);
|
ssize_t ccArrayGetIndexOfObject(ccArray *arr, Object* object);
|
||||||
|
|
||||||
/** Returns a Boolean value that indicates whether object is present in array. */
|
/** Returns a Boolean value that indicates whether object is present in array. */
|
||||||
bool ccArrayContainsObject(ccArray *arr, Object* object);
|
bool ccArrayContainsObject(ccArray *arr, Object* object);
|
||||||
|
@ -98,22 +98,22 @@ void ccArrayAppendArray(ccArray *arr, ccArray *plusArr);
|
||||||
void ccArrayAppendArrayWithResize(ccArray *arr, ccArray *plusArr);
|
void ccArrayAppendArrayWithResize(ccArray *arr, ccArray *plusArr);
|
||||||
|
|
||||||
/** Inserts an object at index */
|
/** Inserts an object at index */
|
||||||
void ccArrayInsertObjectAtIndex(ccArray *arr, Object* object, int index);
|
void ccArrayInsertObjectAtIndex(ccArray *arr, Object* object, ssize_t index);
|
||||||
|
|
||||||
/** Swaps two objects */
|
/** Swaps two objects */
|
||||||
void ccArraySwapObjectsAtIndexes(ccArray *arr, int index1, int index2);
|
void ccArraySwapObjectsAtIndexes(ccArray *arr, ssize_t index1, ssize_t index2);
|
||||||
|
|
||||||
/** Removes all objects from arr */
|
/** Removes all objects from arr */
|
||||||
void ccArrayRemoveAllObjects(ccArray *arr);
|
void ccArrayRemoveAllObjects(ccArray *arr);
|
||||||
|
|
||||||
/** Removes object at specified index and pushes back all subsequent objects.
|
/** Removes object at specified index and pushes back all subsequent objects.
|
||||||
Behavior undefined if index outside [0, num-1]. */
|
Behavior undefined if index outside [0, num-1]. */
|
||||||
void ccArrayRemoveObjectAtIndex(ccArray *arr, int index, bool bReleaseObj = true);
|
void ccArrayRemoveObjectAtIndex(ccArray *arr, ssize_t index, bool bReleaseObj = true);
|
||||||
|
|
||||||
/** Removes object at specified index and fills the gap with the last object,
|
/** Removes object at specified index and fills the gap with the last object,
|
||||||
thereby avoiding the need to push back subsequent objects.
|
thereby avoiding the need to push back subsequent objects.
|
||||||
Behavior undefined if index outside [0, num-1]. */
|
Behavior undefined if index outside [0, num-1]. */
|
||||||
void ccArrayFastRemoveObjectAtIndex(ccArray *arr, int index);
|
void ccArrayFastRemoveObjectAtIndex(ccArray *arr, ssize_t index);
|
||||||
|
|
||||||
void ccArrayFastRemoveObject(ccArray *arr, Object* object);
|
void ccArrayFastRemoveObject(ccArray *arr, Object* object);
|
||||||
|
|
||||||
|
@ -133,12 +133,12 @@ void ccArrayFullRemoveArray(ccArray *arr, ccArray *minusArr);
|
||||||
// #pragma mark ccCArray for Values (c structures)
|
// #pragma mark ccCArray for Values (c structures)
|
||||||
|
|
||||||
typedef struct _ccCArray {
|
typedef struct _ccCArray {
|
||||||
int num, max;
|
ssize_t num, max;
|
||||||
void** arr;
|
void** arr;
|
||||||
} ccCArray;
|
} ccCArray;
|
||||||
|
|
||||||
/** Allocates and initializes a new C array with specified capacity */
|
/** Allocates and initializes a new C array with specified capacity */
|
||||||
ccCArray* ccCArrayNew(int capacity);
|
ccCArray* ccCArrayNew(ssize_t capacity);
|
||||||
|
|
||||||
/** Frees C array after removing all remaining values. Silently ignores nil arr. */
|
/** Frees C array after removing all remaining values. Silently ignores nil arr. */
|
||||||
void ccCArrayFree(ccCArray *arr);
|
void ccCArrayFree(ccCArray *arr);
|
||||||
|
@ -147,16 +147,16 @@ void ccCArrayFree(ccCArray *arr);
|
||||||
void ccCArrayDoubleCapacity(ccCArray *arr);
|
void ccCArrayDoubleCapacity(ccCArray *arr);
|
||||||
|
|
||||||
/** Increases array capacity such that max >= num + extra. */
|
/** Increases array capacity such that max >= num + extra. */
|
||||||
void ccCArrayEnsureExtraCapacity(ccCArray *arr, int extra);
|
void ccCArrayEnsureExtraCapacity(ccCArray *arr, ssize_t extra);
|
||||||
|
|
||||||
/** Returns index of first occurrence of value, NSNotFound if value not found. */
|
/** Returns index of first occurrence of value, NSNotFound if value not found. */
|
||||||
int ccCArrayGetIndexOfValue(ccCArray *arr, void* value);
|
ssize_t ccCArrayGetIndexOfValue(ccCArray *arr, void* value);
|
||||||
|
|
||||||
/** Returns a Boolean value that indicates whether value is present in the C array. */
|
/** Returns a Boolean value that indicates whether value is present in the C array. */
|
||||||
bool ccCArrayContainsValue(ccCArray *arr, void* value);
|
bool ccCArrayContainsValue(ccCArray *arr, void* value);
|
||||||
|
|
||||||
/** Inserts a value at a certain position. Behavior undefined if array doesn't have enough capacity */
|
/** Inserts a value at a certain position. Behavior undefined if array doesn't have enough capacity */
|
||||||
void ccCArrayInsertValueAtIndex( ccCArray *arr, void* value, int index);
|
void ccCArrayInsertValueAtIndex( ccCArray *arr, void* value, ssize_t index);
|
||||||
|
|
||||||
/** Appends an value. Behavior undefined if array doesn't have enough capacity. */
|
/** Appends an value. Behavior undefined if array doesn't have enough capacity. */
|
||||||
void ccCArrayAppendValue(ccCArray *arr, void* value);
|
void ccCArrayAppendValue(ccCArray *arr, void* value);
|
||||||
|
@ -178,14 +178,14 @@ void ccCArrayRemoveAllValues(ccCArray *arr);
|
||||||
Behavior undefined if index outside [0, num-1].
|
Behavior undefined if index outside [0, num-1].
|
||||||
@since v0.99.4
|
@since v0.99.4
|
||||||
*/
|
*/
|
||||||
void ccCArrayRemoveValueAtIndex(ccCArray *arr, int index);
|
void ccCArrayRemoveValueAtIndex(ccCArray *arr, ssize_t index);
|
||||||
|
|
||||||
/** Removes value at specified index and fills the gap with the last value,
|
/** Removes value at specified index and fills the gap with the last value,
|
||||||
thereby avoiding the need to push back subsequent values.
|
thereby avoiding the need to push back subsequent values.
|
||||||
Behavior undefined if index outside [0, num-1].
|
Behavior undefined if index outside [0, num-1].
|
||||||
@since v0.99.4
|
@since v0.99.4
|
||||||
*/
|
*/
|
||||||
void ccCArrayFastRemoveValueAtIndex(ccCArray *arr, int index);
|
void ccCArrayFastRemoveValueAtIndex(ccCArray *arr, ssize_t index);
|
||||||
|
|
||||||
/** Searches for the first occurrence of value and removes it. If value is not found the function has no effect.
|
/** Searches for the first occurrence of value and removes it. If value is not found the function has no effect.
|
||||||
@since v0.99.4
|
@since v0.99.4
|
||||||
|
|
|
@ -196,11 +196,11 @@ bool __Array::initWithArray(__Array* otherArray)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __Array::getIndexOfObject(Object* object) const
|
ssize_t __Array::getIndexOfObject(Object* object) const
|
||||||
{
|
{
|
||||||
auto it = data.begin();
|
auto it = data.begin();
|
||||||
|
|
||||||
for (int i = 0; it != data.end(); ++it, ++i)
|
for (ssize_t i = 0; it != data.end(); ++it, ++i)
|
||||||
{
|
{
|
||||||
if (it->get() == object)
|
if (it->get() == object)
|
||||||
{
|
{
|
||||||
|
@ -232,13 +232,13 @@ Object* __Array::getRandomObject()
|
||||||
|
|
||||||
bool __Array::containsObject(Object* object) const
|
bool __Array::containsObject(Object* object) const
|
||||||
{
|
{
|
||||||
auto i = this->getIndexOfObject(object);
|
ssize_t i = this->getIndexOfObject(object);
|
||||||
return (i >= 0);
|
return (i >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool __Array::isEqualToArray(__Array* otherArray)
|
bool __Array::isEqualToArray(__Array* otherArray)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < this->count(); ++i)
|
for (ssize_t i = 0; i < this->count(); ++i)
|
||||||
{
|
{
|
||||||
if (!this->getObjectAtIndex(i)->isEqual(otherArray->getObjectAtIndex(i)))
|
if (!this->getObjectAtIndex(i)->isEqual(otherArray->getObjectAtIndex(i)))
|
||||||
{
|
{
|
||||||
|
@ -279,7 +279,7 @@ void __Array::removeObject(Object* object, bool releaseObj /* ignored */)
|
||||||
data.erase(std::remove(data.begin(), data.end(), object));
|
data.erase(std::remove(data.begin(), data.end(), object));
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::removeObjectAtIndex(int index, bool releaseObj /* ignored */)
|
void __Array::removeObjectAtIndex(ssize_t index, bool releaseObj /* ignored */)
|
||||||
{
|
{
|
||||||
auto obj = data[index];
|
auto obj = data[index];
|
||||||
data.erase(data.begin() + index);
|
data.erase(data.begin() + index);
|
||||||
|
@ -307,15 +307,15 @@ void __Array::fastRemoveObject(Object* object)
|
||||||
|
|
||||||
void __Array::exchangeObject(Object* object1, Object* object2)
|
void __Array::exchangeObject(Object* object1, Object* object2)
|
||||||
{
|
{
|
||||||
auto idx1 = getIndexOfObject(object1);
|
ssize_t idx1 = getIndexOfObject(object1);
|
||||||
auto idx2 = getIndexOfObject(object2);
|
ssize_t idx2 = getIndexOfObject(object2);
|
||||||
|
|
||||||
CCASSERT(idx1 >= 0 && idx2 >= 2, "invalid object index");
|
CCASSERT(idx1 >= 0 && idx2 >= 2, "invalid object index");
|
||||||
|
|
||||||
std::swap(data[idx1], data[idx2]);
|
std::swap(data[idx1], data[idx2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::exchangeObjectAtIndex(int index1, int index2)
|
void __Array::exchangeObjectAtIndex(ssize_t index1, ssize_t index2)
|
||||||
{
|
{
|
||||||
std::swap(data[index1], data[index2]);
|
std::swap(data[index1], data[index2]);
|
||||||
}
|
}
|
||||||
|
@ -448,7 +448,7 @@ __Array* __Array::createWithArray(__Array* otherArray)
|
||||||
return otherArray->clone();
|
return otherArray->clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
__Array* __Array::createWithCapacity(int capacity)
|
__Array* __Array::createWithCapacity(ssize_t capacity)
|
||||||
{
|
{
|
||||||
CCASSERT(capacity>=0, "Invalid capacity");
|
CCASSERT(capacity>=0, "Invalid capacity");
|
||||||
|
|
||||||
|
@ -539,7 +539,7 @@ bool __Array::initWithObjects(Object* object, ...)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool __Array::initWithCapacity(int capacity)
|
bool __Array::initWithCapacity(ssize_t capacity)
|
||||||
{
|
{
|
||||||
CCASSERT(capacity>=0 && !data, "Array cannot be re-initialized");
|
CCASSERT(capacity>=0 && !data, "Array cannot be re-initialized");
|
||||||
|
|
||||||
|
@ -563,7 +563,7 @@ bool __Array::initWithArray(__Array* otherArray)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __Array::getIndexOfObject(Object* object) const
|
ssize_t __Array::getIndexOfObject(Object* object) const
|
||||||
{
|
{
|
||||||
return ccArrayGetIndexOfObject(data, object);
|
return ccArrayGetIndexOfObject(data, object);
|
||||||
}
|
}
|
||||||
|
@ -614,13 +614,13 @@ void __Array::addObjectsFromArray(__Array* otherArray)
|
||||||
ccArrayAppendArrayWithResize(data, otherArray->data);
|
ccArrayAppendArrayWithResize(data, otherArray->data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::insertObject(Object* object, int index)
|
void __Array::insertObject(Object* object, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(data, "Array not initialized");
|
CCASSERT(data, "Array not initialized");
|
||||||
ccArrayInsertObjectAtIndex(data, object, index);
|
ccArrayInsertObjectAtIndex(data, object, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::setObject(Object* object, int index)
|
void __Array::setObject(Object* object, ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(index >= 0 && index < count(), "Invalid index");
|
CCASSERT(index >= 0 && index < count(), "Invalid index");
|
||||||
|
|
||||||
|
@ -643,7 +643,7 @@ void __Array::removeObject(Object* object, bool releaseObj/* = true*/)
|
||||||
ccArrayRemoveObject(data, object, releaseObj);
|
ccArrayRemoveObject(data, object, releaseObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::removeObjectAtIndex(int index, bool releaseObj)
|
void __Array::removeObjectAtIndex(ssize_t index, bool releaseObj)
|
||||||
{
|
{
|
||||||
ccArrayRemoveObjectAtIndex(data, index, releaseObj);
|
ccArrayRemoveObjectAtIndex(data, index, releaseObj);
|
||||||
}
|
}
|
||||||
|
@ -658,7 +658,7 @@ void __Array::removeAllObjects()
|
||||||
ccArrayRemoveAllObjects(data);
|
ccArrayRemoveAllObjects(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::fastRemoveObjectAtIndex(int index)
|
void __Array::fastRemoveObjectAtIndex(ssize_t index)
|
||||||
{
|
{
|
||||||
ccArrayFastRemoveObjectAtIndex(data, index);
|
ccArrayFastRemoveObjectAtIndex(data, index);
|
||||||
}
|
}
|
||||||
|
@ -685,12 +685,12 @@ void __Array::exchangeObject(Object* object1, Object* object2)
|
||||||
ccArraySwapObjectsAtIndexes(data, index1, index2);
|
ccArraySwapObjectsAtIndexes(data, index1, index2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::exchangeObjectAtIndex(int index1, int index2)
|
void __Array::exchangeObjectAtIndex(ssize_t index1, ssize_t index2)
|
||||||
{
|
{
|
||||||
ccArraySwapObjectsAtIndexes(data, index1, index2);
|
ccArraySwapObjectsAtIndexes(data, index1, index2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __Array::replaceObjectAtIndex(int index, Object* object, bool releaseObject/* = true*/)
|
void __Array::replaceObjectAtIndex(ssize_t index, Object* object, bool releaseObject/* = true*/)
|
||||||
{
|
{
|
||||||
ccArrayInsertObjectAtIndex(data, object, index);
|
ccArrayInsertObjectAtIndex(data, object, index);
|
||||||
ccArrayRemoveObjectAtIndex(data, index + 1);
|
ccArrayRemoveObjectAtIndex(data, index + 1);
|
||||||
|
@ -701,10 +701,10 @@ void __Array::reverseObjects()
|
||||||
if (data->num > 1)
|
if (data->num > 1)
|
||||||
{
|
{
|
||||||
// floorf(), since in the case of an even number, the number of swaps stays the same
|
// floorf(), since in the case of an even number, the number of swaps stays the same
|
||||||
auto count = static_cast<int>(floorf(data->num/2.f));
|
auto count = static_cast<ssize_t>(floorf(data->num/2.f));
|
||||||
auto maxIndex = data->num - 1;
|
ssize_t maxIndex = data->num - 1;
|
||||||
|
|
||||||
for (int i = 0; i < count ; ++i)
|
for (ssize_t i = 0; i < count ; ++i)
|
||||||
{
|
{
|
||||||
ccArraySwapObjectsAtIndexes(data, i, maxIndex);
|
ccArraySwapObjectsAtIndexes(data, i, maxIndex);
|
||||||
--maxIndex;
|
--maxIndex;
|
||||||
|
|
|
@ -250,7 +250,7 @@ public:
|
||||||
/** Create an array with a default capacity
|
/** Create an array with a default capacity
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
static __Array* createWithCapacity(int capacity);
|
static __Array* createWithCapacity(ssize_t capacity);
|
||||||
/** Create an array with from an existing array
|
/** Create an array with from an existing array
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
|
@ -295,7 +295,7 @@ public:
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
bool initWithCapacity(int capacity);
|
bool initWithCapacity(ssize_t capacity);
|
||||||
/** Initializes an array with an existing array
|
/** Initializes an array with an existing array
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
|
@ -307,7 +307,7 @@ public:
|
||||||
/** Returns element count of the array
|
/** Returns element count of the array
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
int count() const
|
ssize_t count() const
|
||||||
{
|
{
|
||||||
#if CC_USE_ARRAY_VECTOR
|
#if CC_USE_ARRAY_VECTOR
|
||||||
return data.size();
|
return data.size();
|
||||||
|
@ -318,7 +318,7 @@ public:
|
||||||
/** Returns capacity of the array
|
/** Returns capacity of the array
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
int capacity() const
|
ssize_t capacity() const
|
||||||
{
|
{
|
||||||
#if CC_USE_ARRAY_VECTOR
|
#if CC_USE_ARRAY_VECTOR
|
||||||
return data.capacity();
|
return data.capacity();
|
||||||
|
@ -330,17 +330,17 @@ public:
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
int getIndexOfObject(Object* object) const;
|
ssize_t getIndexOfObject(Object* object) const;
|
||||||
/**
|
/**
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
CC_DEPRECATED_ATTRIBUTE int indexOfObject(Object* object) const { return getIndexOfObject(object); }
|
CC_DEPRECATED_ATTRIBUTE ssize_t indexOfObject(Object* object) const { return getIndexOfObject(object); }
|
||||||
|
|
||||||
/** Returns an element with a certain index
|
/** Returns an element with a certain index
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
Object* getObjectAtIndex(int index)
|
Object* getObjectAtIndex(ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(index>=0 && index < count(), "index out of range in getObjectAtIndex()");
|
CCASSERT(index>=0 && index < count(), "index out of range in getObjectAtIndex()");
|
||||||
#if CC_USE_ARRAY_VECTOR
|
#if CC_USE_ARRAY_VECTOR
|
||||||
|
@ -349,7 +349,7 @@ public:
|
||||||
return data->arr[index];
|
return data->arr[index];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
CC_DEPRECATED_ATTRIBUTE Object* objectAtIndex(int index) { return getObjectAtIndex(index); }
|
CC_DEPRECATED_ATTRIBUTE Object* objectAtIndex(ssize_t index) { return getObjectAtIndex(index); }
|
||||||
/** Returns the last element of the array
|
/** Returns the last element of the array
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
|
@ -401,17 +401,17 @@ public:
|
||||||
/** Insert a certain object at a certain index
|
/** Insert a certain object at a certain index
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
void insertObject(Object* object, int index);
|
void insertObject(Object* object, ssize_t index);
|
||||||
/** sets a certain object at a certain index
|
/** sets a certain object at a certain index
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
void setObject(Object* object, int index);
|
void setObject(Object* object, ssize_t index);
|
||||||
/** sets a certain object at a certain index without retaining. Use it with caution
|
/** sets a certain object at a certain index without retaining. Use it with caution
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
void fastSetObject(Object* object, int index)
|
void fastSetObject(Object* object, ssize_t index)
|
||||||
{
|
{
|
||||||
#if CC_USE_ARRAY_VECTOR
|
#if CC_USE_ARRAY_VECTOR
|
||||||
setObject(object, index);
|
setObject(object, index);
|
||||||
|
@ -424,7 +424,7 @@ public:
|
||||||
* @js NA
|
* @js NA
|
||||||
* @lua NA
|
* @lua NA
|
||||||
*/
|
*/
|
||||||
void swap( int indexOne, int indexTwo )
|
void swap( ssize_t indexOne, ssize_t indexTwo )
|
||||||
{
|
{
|
||||||
CCASSERT(indexOne >=0 && indexOne < count() && indexTwo >= 0 && indexTwo < count(), "Invalid indices");
|
CCASSERT(indexOne >=0 && indexOne < count() && indexTwo >= 0 && indexTwo < count(), "Invalid indices");
|
||||||
#if CC_USE_ARRAY_VECTOR
|
#if CC_USE_ARRAY_VECTOR
|
||||||
|
@ -447,7 +447,7 @@ public:
|
||||||
/** Remove an element with a certain index
|
/** Remove an element with a certain index
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
void removeObjectAtIndex(int index, bool releaseObj = true);
|
void removeObjectAtIndex(ssize_t index, bool releaseObj = true);
|
||||||
/** Remove all elements
|
/** Remove all elements
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
|
@ -463,7 +463,7 @@ public:
|
||||||
/** Fast way to remove an element with a certain index
|
/** Fast way to remove an element with a certain index
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
void fastRemoveObjectAtIndex(int index);
|
void fastRemoveObjectAtIndex(ssize_t index);
|
||||||
|
|
||||||
// Rearranging Content
|
// Rearranging Content
|
||||||
|
|
||||||
|
@ -474,12 +474,12 @@ public:
|
||||||
/** Swap two elements with certain indexes
|
/** Swap two elements with certain indexes
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
void exchangeObjectAtIndex(int index1, int index2);
|
void exchangeObjectAtIndex(ssize_t index1, ssize_t index2);
|
||||||
|
|
||||||
/** Replace object at index with another object.
|
/** Replace object at index with another object.
|
||||||
* @js NA
|
* @js NA
|
||||||
*/
|
*/
|
||||||
void replaceObjectAtIndex(int index, Object* object, bool releaseObject = true);
|
void replaceObjectAtIndex(ssize_t index, Object* object, bool releaseObject = true);
|
||||||
|
|
||||||
/** Revers the array
|
/** Revers the array
|
||||||
* @js NA
|
* @js NA
|
||||||
|
|
|
@ -51,7 +51,7 @@ void AutoreleasePool::removeObject(Object* object)
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < object->_autoReleaseCount; ++i)
|
for (unsigned int i = 0; i < object->_autoReleaseCount; ++i)
|
||||||
{
|
{
|
||||||
_managedObjectArray.erase(object, false);
|
_managedObjectArray.eraseObject(object, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ void PoolManager::pop()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int count = _releasePoolStack.size();
|
ssize_t count = _releasePoolStack.size();
|
||||||
|
|
||||||
_curReleasePool->clear();
|
_curReleasePool->clear();
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
Copyright (c) 2012 - 2013 cocos2d-x.org
|
Copyright (c) 2012 - 2013 cocos2d-x.org
|
||||||
|
|
||||||
http://www.cocos2d-x.org
|
http://www.cocos2d-x.org
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
in the Software without restriction, including without limitation the rights
|
in the Software without restriction, including without limitation the rights
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
furnished to do so, subject to the following conditions:
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
The above copyright notice and this permission notice shall be included in
|
||||||
all copies or substantial portions of the Software.
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef __CCMAP_H__
|
#ifndef __CCMAP_H__
|
||||||
#define __CCMAP_H__
|
#define __CCMAP_H__
|
||||||
|
@ -67,7 +67,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Contructor with capacity */
|
/** Contructor with capacity */
|
||||||
explicit Map<K, V>(int capacity)
|
explicit Map<K, V>(ssize_t capacity)
|
||||||
: _data()
|
: _data()
|
||||||
{
|
{
|
||||||
CCLOGINFO("In the constructor with capacity of Map!");
|
CCLOGINFO("In the constructor with capacity of Map!");
|
||||||
|
@ -99,19 +99,19 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sets capacity of the map */
|
/** Sets capacity of the map */
|
||||||
void reserve(int capacity)
|
void reserve(ssize_t capacity)
|
||||||
{
|
{
|
||||||
_data.reserve(capacity);
|
_data.reserve(capacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns capacity of the map */
|
/** Returns capacity of the map */
|
||||||
size_t capacity() const
|
ssize_t capacity() const
|
||||||
{
|
{
|
||||||
return _data.capacity();
|
return _data.capacity();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The number of elements in the map. */
|
/** The number of elements in the map. */
|
||||||
size_t size() const
|
ssize_t size() const
|
||||||
{
|
{
|
||||||
return _data.size();
|
return _data.size();
|
||||||
}
|
}
|
||||||
|
@ -267,36 +267,36 @@ public:
|
||||||
{
|
{
|
||||||
if (!_data.empty())
|
if (!_data.empty())
|
||||||
{
|
{
|
||||||
int randIdx = rand() % _data.size();
|
ssize_t randIdx = rand() % _data.size();
|
||||||
return (_data.begin() + randIdx)->second;
|
return (_data.begin() + randIdx)->second;
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't uses operator since we could not decide whether it needs 'retain'/'release'.
|
// Don't uses operator since we could not decide whether it needs 'retain'/'release'.
|
||||||
// V& operator[] ( const K& key )
|
// V& operator[] ( const K& key )
|
||||||
// {
|
// {
|
||||||
// CCLOG("copy: [] ref");
|
// CCLOG("copy: [] ref");
|
||||||
// return _data[key];
|
// return _data[key];
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// V& operator[] ( K&& key )
|
// V& operator[] ( K&& key )
|
||||||
// {
|
// {
|
||||||
// CCLOG("move [] ref");
|
// CCLOG("move [] ref");
|
||||||
// return _data[key];
|
// return _data[key];
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// const V& operator[] ( const K& key ) const
|
// const V& operator[] ( const K& key ) const
|
||||||
// {
|
// {
|
||||||
// CCLOG("const copy []");
|
// CCLOG("const copy []");
|
||||||
// return _data.at(key);
|
// return _data.at(key);
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// const V& operator[] ( K&& key ) const
|
// const V& operator[] ( K&& key ) const
|
||||||
// {
|
// {
|
||||||
// CCLOG("const move []");
|
// CCLOG("const move []");
|
||||||
// return _data.at(key);
|
// return _data.at(key);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/** Copy assignment operator */
|
/** Copy assignment operator */
|
||||||
Map<K, V>& operator= ( const Map<K, V>& other )
|
Map<K, V>& operator= ( const Map<K, V>& other )
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Constructor with a capacity */
|
/** Constructor with a capacity */
|
||||||
explicit Vector<T>(int capacity)
|
explicit Vector<T>(ssize_t capacity)
|
||||||
: _data()
|
: _data()
|
||||||
{
|
{
|
||||||
CCLOGINFO("In the default constructor with capacity of Vector.");
|
CCLOGINFO("In the default constructor with capacity of Vector.");
|
||||||
|
@ -135,7 +135,7 @@ public:
|
||||||
* If n is greater than the current vector capacity,
|
* If n is greater than the current vector capacity,
|
||||||
* the function causes the container to reallocate its storage increasing its capacity to n (or greater).
|
* the function causes the container to reallocate its storage increasing its capacity to n (or greater).
|
||||||
*/
|
*/
|
||||||
void reserve(int n)
|
void reserve(ssize_t n)
|
||||||
{
|
{
|
||||||
_data.reserve(n);
|
_data.reserve(n);
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ public:
|
||||||
* It can be equal or greater, with the extra space allowing to accommodate for growth without the need to reallocate on each insertion.
|
* It can be equal or greater, with the extra space allowing to accommodate for growth without the need to reallocate on each insertion.
|
||||||
* @return The size of the currently allocated storage capacity in the vector, measured in terms of the number elements it can hold.
|
* @return The size of the currently allocated storage capacity in the vector, measured in terms of the number elements it can hold.
|
||||||
*/
|
*/
|
||||||
int capacity() const
|
ssize_t capacity() const
|
||||||
{
|
{
|
||||||
return _data.capacity();
|
return _data.capacity();
|
||||||
}
|
}
|
||||||
|
@ -154,9 +154,9 @@ public:
|
||||||
* @note This is the number of actual objects held in the vector, which is not necessarily equal to its storage capacity.
|
* @note This is the number of actual objects held in the vector, which is not necessarily equal to its storage capacity.
|
||||||
* @return The number of elements in the container.
|
* @return The number of elements in the container.
|
||||||
*/
|
*/
|
||||||
int size() const
|
ssize_t size() const
|
||||||
{
|
{
|
||||||
return static_cast<int>(_data.size());
|
return _data.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @brief Returns whether the vector is empty (i.e. whether its size is 0).
|
/** @brief Returns whether the vector is empty (i.e. whether its size is 0).
|
||||||
|
@ -168,13 +168,13 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the maximum number of elements that the vector can hold. */
|
/** Returns the maximum number of elements that the vector can hold. */
|
||||||
size_t max_size() const
|
ssize_t max_size() const
|
||||||
{
|
{
|
||||||
return _data.max_size();
|
return _data.max_size();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns index of a certain object, return UINT_MAX if doesn't contain the object */
|
/** Returns index of a certain object, return UINT_MAX if doesn't contain the object */
|
||||||
int getIndex(T object) const
|
ssize_t getIndex(T object) const
|
||||||
{
|
{
|
||||||
auto iter = std::find(_data.begin(), _data.end(), object);
|
auto iter = std::find(_data.begin(), _data.end(), object);
|
||||||
if (iter != _data.end())
|
if (iter != _data.end())
|
||||||
|
@ -198,7 +198,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the element at position 'index' in the vector. */
|
/** Returns the element at position 'index' in the vector. */
|
||||||
T at(int index) const
|
T at(ssize_t index) const
|
||||||
{
|
{
|
||||||
CCASSERT( index >= 0 && index < size(), "index out of range in getObjectAtIndex()");
|
CCASSERT( index >= 0 && index < size(), "index out of range in getObjectAtIndex()");
|
||||||
return _data[index];
|
return _data[index];
|
||||||
|
@ -221,7 +221,7 @@ public:
|
||||||
{
|
{
|
||||||
if (!_data.empty())
|
if (!_data.empty())
|
||||||
{
|
{
|
||||||
int randIdx = rand() % _data.size();
|
ssize_t randIdx = rand() % _data.size();
|
||||||
return *(_data.begin() + randIdx);
|
return *(_data.begin() + randIdx);
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -236,11 +236,11 @@ public:
|
||||||
/** Returns true if the two vectors are equal */
|
/** Returns true if the two vectors are equal */
|
||||||
bool equals(const Vector<T> &other)
|
bool equals(const Vector<T> &other)
|
||||||
{
|
{
|
||||||
size_t s = this->size();
|
ssize_t s = this->size();
|
||||||
if (s != other.size())
|
if (s != other.size())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (int i = 0; i < s; i++)
|
for (ssize_t i = 0; i < s; i++)
|
||||||
{
|
{
|
||||||
if (!this->at(i)->isEqual(other.at(i)))
|
if (!this->at(i)->isEqual(other.at(i)))
|
||||||
{
|
{
|
||||||
|
@ -279,7 +279,7 @@ public:
|
||||||
* This causes an automatic reallocation of the allocated storage space
|
* This causes an automatic reallocation of the allocated storage space
|
||||||
* if -and only if- the new vector size surpasses the current vector capacity.
|
* if -and only if- the new vector size surpasses the current vector capacity.
|
||||||
*/
|
*/
|
||||||
void insert(int index, T object)
|
void insert(ssize_t index, T object)
|
||||||
{
|
{
|
||||||
CCASSERT(index >= 0 && index <= size(), "Invalid index!");
|
CCASSERT(index >= 0 && index <= size(), "Invalid index!");
|
||||||
CCASSERT(object != nullptr, "The object should not be nullptr");
|
CCASSERT(object != nullptr, "The object should not be nullptr");
|
||||||
|
@ -304,7 +304,7 @@ public:
|
||||||
* @param object The object to be removed.
|
* @param object The object to be removed.
|
||||||
* @param toRelease Whether to decrease the referece count of the deleted object.
|
* @param toRelease Whether to decrease the referece count of the deleted object.
|
||||||
*/
|
*/
|
||||||
void erase(T object, bool toRelease = true)
|
void eraseObject(T object, bool toRelease = true)
|
||||||
{
|
{
|
||||||
CCASSERT(object != nullptr, "The object should not be nullptr");
|
CCASSERT(object != nullptr, "The object should not be nullptr");
|
||||||
auto iter = std::find(_data.begin(), _data.end(), object);
|
auto iter = std::find(_data.begin(), _data.end(), object);
|
||||||
|
@ -347,7 +347,7 @@ public:
|
||||||
* @return An iterator pointing to the new location of the element that followed the last element erased by the function call.
|
* @return An iterator pointing to the new location of the element that followed the last element erased by the function call.
|
||||||
* This is the container end if the operation erased the last element in the sequence.
|
* This is the container end if the operation erased the last element in the sequence.
|
||||||
*/
|
*/
|
||||||
iterator erase(int index)
|
iterator erase(ssize_t index)
|
||||||
{
|
{
|
||||||
CCASSERT(!_data.empty() && index >=0 && index < size(), "Invalid index!");
|
CCASSERT(!_data.empty() && index >=0 && index < size(), "Invalid index!");
|
||||||
auto it = std::next( begin(), index );
|
auto it = std::next( begin(), index );
|
||||||
|
@ -371,8 +371,8 @@ public:
|
||||||
/** Swap two elements */
|
/** Swap two elements */
|
||||||
void swap(T object1, T object2)
|
void swap(T object1, T object2)
|
||||||
{
|
{
|
||||||
auto idx1 = getIndex(object1);
|
ssize_t idx1 = getIndex(object1);
|
||||||
auto idx2 = getIndex(object2);
|
ssize_t idx2 = getIndex(object2);
|
||||||
|
|
||||||
CCASSERT(idx1>=0 && idx2>=0, "invalid object index");
|
CCASSERT(idx1>=0 && idx2>=0, "invalid object index");
|
||||||
|
|
||||||
|
@ -380,7 +380,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Swap two elements with certain indexes */
|
/** Swap two elements with certain indexes */
|
||||||
void swap(int index1, int index2)
|
void swap(ssize_t index1, ssize_t index2)
|
||||||
{
|
{
|
||||||
CCASSERT(index1 >=0 && index1 < size() && index2 >= 0 && index2 < size(), "Invalid indices");
|
CCASSERT(index1 >=0 && index1 < size() && index2 >= 0 && index2 < size(), "Invalid indices");
|
||||||
|
|
||||||
|
@ -388,7 +388,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace object at index with another object. */
|
/** Replace object at index with another object. */
|
||||||
void replace(int index, T object)
|
void replace(ssize_t index, T object)
|
||||||
{
|
{
|
||||||
CCASSERT(index >= 0 && index < size(), "Invalid index!");
|
CCASSERT(index >= 0 && index < size(), "Invalid index!");
|
||||||
CCASSERT(object != nullptr, "The object should not be nullptr");
|
CCASSERT(object != nullptr, "The object should not be nullptr");
|
||||||
|
|
|
@ -623,7 +623,7 @@ Object* CCBAnimationManager::actionForCallbackChannel(CCBSequenceProperty* chann
|
||||||
|
|
||||||
Vector<FiniteTimeAction*> actions;
|
Vector<FiniteTimeAction*> actions;
|
||||||
auto& keyframes = channel->getKeyframes();
|
auto& keyframes = channel->getKeyframes();
|
||||||
int numKeyframes = keyframes.size();
|
ssize_t numKeyframes = keyframes.size();
|
||||||
|
|
||||||
for (long i = 0; i < numKeyframes; ++i)
|
for (long i = 0; i < numKeyframes; ++i)
|
||||||
{
|
{
|
||||||
|
@ -712,7 +712,7 @@ Object* CCBAnimationManager::actionForSoundChannel(CCBSequenceProperty* channel)
|
||||||
|
|
||||||
Vector<FiniteTimeAction*> actions;
|
Vector<FiniteTimeAction*> actions;
|
||||||
auto& keyframes = channel->getKeyframes();
|
auto& keyframes = channel->getKeyframes();
|
||||||
int numKeyframes = keyframes.size();
|
ssize_t numKeyframes = keyframes.size();
|
||||||
|
|
||||||
for (int i = 0; i < numKeyframes; ++i)
|
for (int i = 0; i < numKeyframes; ++i)
|
||||||
{
|
{
|
||||||
|
@ -753,7 +753,7 @@ Object* CCBAnimationManager::actionForSoundChannel(CCBSequenceProperty* channel)
|
||||||
void CCBAnimationManager::runAction(Node *pNode, CCBSequenceProperty *pSeqProp, float fTweenDuration)
|
void CCBAnimationManager::runAction(Node *pNode, CCBSequenceProperty *pSeqProp, float fTweenDuration)
|
||||||
{
|
{
|
||||||
auto& keyframes = pSeqProp->getKeyframes();
|
auto& keyframes = pSeqProp->getKeyframes();
|
||||||
int numKeyframes = keyframes.size();
|
ssize_t numKeyframes = keyframes.size();
|
||||||
|
|
||||||
if (numKeyframes > 1)
|
if (numKeyframes > 1)
|
||||||
{
|
{
|
||||||
|
@ -768,7 +768,7 @@ void CCBAnimationManager::runAction(Node *pNode, CCBSequenceProperty *pSeqProp,
|
||||||
actions.pushBack(DelayTime::create(timeFirst));
|
actions.pushBack(DelayTime::create(timeFirst));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < numKeyframes - 1; ++i)
|
for (ssize_t i = 0; i < numKeyframes - 1; ++i)
|
||||||
{
|
{
|
||||||
CCBKeyframe *kf0 = keyframes.at(i);
|
CCBKeyframe *kf0 = keyframes.at(i);
|
||||||
CCBKeyframe *kf1 = keyframes.at(i+1);
|
CCBKeyframe *kf1 = keyframes.at(i+1);
|
||||||
|
|
|
@ -970,9 +970,9 @@ Node * NodeLoader::parsePropTypeCCBFile(Node * pNode, Node * pParent, CCBReader
|
||||||
if (!ownerCallbackNames.empty() && !ownerCallbackNodes.empty())
|
if (!ownerCallbackNames.empty() && !ownerCallbackNodes.empty())
|
||||||
{
|
{
|
||||||
CCASSERT(ownerCallbackNames.size() == ownerCallbackNodes.size(), "");
|
CCASSERT(ownerCallbackNames.size() == ownerCallbackNodes.size(), "");
|
||||||
int nCount = ownerCallbackNames.size();
|
ssize_t nCount = ownerCallbackNames.size();
|
||||||
|
|
||||||
for (int i = 0 ; i < nCount; i++)
|
for (ssize_t i = 0 ; i < nCount; i++)
|
||||||
{
|
{
|
||||||
pCCBReader->addOwnerCallbackName(ownerCallbackNames[i].asString());
|
pCCBReader->addOwnerCallbackName(ownerCallbackNames[i].asString());
|
||||||
pCCBReader->addOwnerCallbackNode(ownerCallbackNodes.at(i));
|
pCCBReader->addOwnerCallbackNode(ownerCallbackNodes.at(i));
|
||||||
|
@ -984,9 +984,9 @@ Node * NodeLoader::parsePropTypeCCBFile(Node * pNode, Node * pParent, CCBReader
|
||||||
if (!ownerOutletNames.empty() && !ownerOutletNodes.empty())
|
if (!ownerOutletNames.empty() && !ownerOutletNodes.empty())
|
||||||
{
|
{
|
||||||
CCASSERT(ownerOutletNames.size() == ownerOutletNodes.size(), "");
|
CCASSERT(ownerOutletNames.size() == ownerOutletNodes.size(), "");
|
||||||
int nCount = ownerOutletNames.size();
|
ssize_t nCount = ownerOutletNames.size();
|
||||||
|
|
||||||
for (int i = 0 ; i < nCount; i++)
|
for (ssize_t i = 0 ; i < nCount; i++)
|
||||||
{
|
{
|
||||||
pCCBReader->addOwnerOutletName(ownerOutletNames.at(i).asString());
|
pCCBReader->addOwnerOutletName(ownerOutletNames.at(i).asString());
|
||||||
pCCBReader->addOwnerOutletNode(ownerOutletNodes.at(i));
|
pCCBReader->addOwnerOutletNode(ownerOutletNodes.at(i));
|
||||||
|
|
|
@ -312,7 +312,7 @@ void Armature::changeBoneParent(Bone *bone, const char *parentName)
|
||||||
|
|
||||||
if(bone->getParentBone())
|
if(bone->getParentBone())
|
||||||
{
|
{
|
||||||
bone->getParentBone()->getChildren().erase(bone);
|
bone->getParentBone()->getChildren().eraseObject(bone);
|
||||||
bone->setParentBone(nullptr);
|
bone->setParentBone(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -335,7 +335,7 @@ void Bone::removeChildBone(Bone *bone, bool recursion)
|
||||||
|
|
||||||
bone->getDisplayManager()->setCurrentDecorativeDisplay(nullptr);
|
bone->getDisplayManager()->setCurrentDecorativeDisplay(nullptr);
|
||||||
|
|
||||||
_children.erase(bone);
|
_children.eraseObject(bone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ void SkeletonJson_dispose (SkeletonJson* self) {
|
||||||
|
|
||||||
void _SkeletonJson_setError (SkeletonJson* self, Json* root, const char* value1, const char* value2) {
|
void _SkeletonJson_setError (SkeletonJson* self, Json* root, const char* value1, const char* value2) {
|
||||||
char message[256];
|
char message[256];
|
||||||
int length;
|
size_t length;
|
||||||
FREE(self->error);
|
FREE(self->error);
|
||||||
strcpy(message, value1);
|
strcpy(message, value1);
|
||||||
length = strlen(value1);
|
length = strlen(value1);
|
||||||
|
|
|
@ -50,10 +50,10 @@ void _setFree (void (*free) (void* ptr)) {
|
||||||
freeFunc = free;
|
freeFunc = free;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* _readFile (const char* path, int* length) {
|
char* _readFile (const char* path, ssize_t* length) {
|
||||||
char *data;
|
char *data;
|
||||||
FILE *file = fopen(path, "rb");
|
FILE *file = fopen(path, "rb");
|
||||||
int readBytes = 0;
|
ssize_t readBytes = 0;
|
||||||
if (!file) return 0;
|
if (!file) return 0;
|
||||||
|
|
||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
|
|
|
@ -114,7 +114,7 @@ void _free (void* ptr);
|
||||||
void _setMalloc (void* (*_malloc) (size_t size));
|
void _setMalloc (void* (*_malloc) (size_t size));
|
||||||
void _setFree (void (*_free) (void* ptr));
|
void _setFree (void (*_free) (void* ptr));
|
||||||
|
|
||||||
char* _readFile (const char* path, int* length);
|
char* _readFile (const char* path, ssize_t* length);
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
/** Get the size of request data back */
|
/** Get the size of request data back */
|
||||||
inline int getRequestDataSize()
|
inline ssize_t getRequestDataSize()
|
||||||
{
|
{
|
||||||
return _requestData.size();
|
return _requestData.size();
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ public:
|
||||||
/** Get the http response errorCode
|
/** Get the http response errorCode
|
||||||
* I know that you want to see http 200 :)
|
* I know that you want to see http 200 :)
|
||||||
*/
|
*/
|
||||||
inline int getResponseCode()
|
inline long getResponseCode()
|
||||||
{
|
{
|
||||||
return _responseCode;
|
return _responseCode;
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ public:
|
||||||
|
|
||||||
/** Set the http response errorCode
|
/** Set the http response errorCode
|
||||||
*/
|
*/
|
||||||
inline void setResponseCode(int value)
|
inline void setResponseCode(long value)
|
||||||
{
|
{
|
||||||
_responseCode = value;
|
_responseCode = value;
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ protected:
|
||||||
bool _succeed; /// to indecate if the http reqeust is successful simply
|
bool _succeed; /// to indecate if the http reqeust is successful simply
|
||||||
std::vector<char> _responseData; /// the returned raw data. You can also dump it as a string
|
std::vector<char> _responseData; /// the returned raw data. You can also dump it as a string
|
||||||
std::vector<char> _responseHeader; /// the returned raw header data. You can also dump it as a string
|
std::vector<char> _responseHeader; /// the returned raw header data. You can also dump it as a string
|
||||||
int _responseCode; /// the status code returned from libcurl, e.g. 200, 404
|
long _responseCode; /// the status code returned from libcurl, e.g. 200, 404
|
||||||
std::string _errorBuffer; /// if _responseCode != 200, please read _errorBuffer to find the reason
|
std::string _errorBuffer; /// if _responseCode != 200, please read _errorBuffer to find the reason
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -672,7 +672,7 @@ void PhysicsBody::removeShape(PhysicsShape* shape, bool reduceMassAndMoment/* =
|
||||||
// set shape->_body = nullptr make the shape->setBody will not trigger the _body->removeShape function call.
|
// set shape->_body = nullptr make the shape->setBody will not trigger the _body->removeShape function call.
|
||||||
shape->_body = nullptr;
|
shape->_body = nullptr;
|
||||||
shape->setBody(nullptr);
|
shape->setBody(nullptr);
|
||||||
_shapes.erase(shape);
|
_shapes.eraseObject(shape);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -714,7 +714,7 @@ void PhysicsWorld::removeBody(PhysicsBody* body)
|
||||||
body->_joints.clear();
|
body->_joints.clear();
|
||||||
|
|
||||||
removeBodyOrDelay(body);
|
removeBodyOrDelay(body);
|
||||||
_bodies.erase(body);
|
_bodies.eraseObject(body);
|
||||||
body->_world = nullptr;
|
body->_world = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +723,7 @@ void PhysicsWorld::removeBodyOrDelay(PhysicsBody* body)
|
||||||
{
|
{
|
||||||
if (_delayAddBodies.getIndex(body) != CC_INVALID_INDEX)
|
if (_delayAddBodies.getIndex(body) != CC_INVALID_INDEX)
|
||||||
{
|
{
|
||||||
_delayAddBodies.erase(body);
|
_delayAddBodies.eraseObject(body);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit a9af1cbc151fdc39a619e92180e43d1f8cf04f83
|
Subproject commit f4de47ad7f5320151933233d3bcba60c8662586f
|
|
@ -533,7 +533,7 @@ JSBool ScriptingCore::runScript(const char *path, JSObject* global, JSContext* c
|
||||||
|
|
||||||
// a) check jsc file first
|
// a) check jsc file first
|
||||||
std::string byteCodePath = RemoveFileExt(std::string(path)) + BYTE_CODE_FILE_EXT;
|
std::string byteCodePath = RemoveFileExt(std::string(path)) + BYTE_CODE_FILE_EXT;
|
||||||
long length = 0;
|
ssize_t length = 0;
|
||||||
unsigned char* data = futil->getFileData(byteCodePath.c_str(),
|
unsigned char* data = futil->getFileData(byteCodePath.c_str(),
|
||||||
"rb",
|
"rb",
|
||||||
&length);
|
&length);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
7a245db1098d7ced5947aca62f43e67f06d1492d
|
6ea6ffc183c8a15eae0641c73c9886b90172266f
|
|
@ -248,7 +248,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Size tableCellSizeForIndex(TableView *table, long idx)
|
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx)
|
||||||
{
|
{
|
||||||
jsval ret;
|
jsval ret;
|
||||||
bool ok = callJSDelegate(table, idx, "tableCellSizeForIndex", ret);
|
bool ok = callJSDelegate(table, idx, "tableCellSizeForIndex", ret);
|
||||||
|
@ -268,7 +268,7 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual TableViewCell* tableCellAtIndex(TableView *table, long idx)
|
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
|
||||||
{
|
{
|
||||||
jsval ret;
|
jsval ret;
|
||||||
bool ok = callJSDelegate(table, idx, "tableCellAtIndex", ret);
|
bool ok = callJSDelegate(table, idx, "tableCellAtIndex", ret);
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
4604aa76ce1cd72165190c09b5eba4faf2efca40
|
9104cc5ff14c7548ea6924a2785400db7526c1e1
|
|
@ -219,6 +219,7 @@ static void tolua_reg_script_handler_mgr_type(lua_State* tolua_S)
|
||||||
tolua_usertype(tolua_S, "ScheduleHandlerDelegate");
|
tolua_usertype(tolua_S, "ScheduleHandlerDelegate");
|
||||||
tolua_usertype(tolua_S, "ScriptHandlerMgr");
|
tolua_usertype(tolua_S, "ScriptHandlerMgr");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* method: getInstance of class ScriptHandlerMgr */
|
/* method: getInstance of class ScriptHandlerMgr */
|
||||||
#ifndef TOLUA_DISABLE_tolua_Cocos2d_ScriptHandlerMgr_getInstance00
|
#ifndef TOLUA_DISABLE_tolua_Cocos2d_ScriptHandlerMgr_getInstance00
|
||||||
static int tolua_Cocos2d_ScriptHandlerMgr_getInstance00(lua_State* tolua_S)
|
static int tolua_Cocos2d_ScriptHandlerMgr_getInstance00(lua_State* tolua_S)
|
||||||
|
@ -243,6 +244,101 @@ tolua_lerror:
|
||||||
}
|
}
|
||||||
#endif //#ifndef TOLUA_DISABLE
|
#endif //#ifndef TOLUA_DISABLE
|
||||||
|
|
||||||
|
/* method: registerScriptHandler of class ScriptHandlerMgr */
|
||||||
|
static int tolua_Cocos2d_ScriptHandlerMgr_registerScriptHandler00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (!tolua_isusertype(tolua_S,1,"ScriptHandlerMgr",0,&tolua_err) ||
|
||||||
|
!tolua_isusertype(tolua_S, 2, "Object", 0, &tolua_err) ||
|
||||||
|
!toluafix_isfunction(tolua_S, 3, "LUA_FUNCTION", 0, &tolua_err) ||
|
||||||
|
!tolua_isnumber(tolua_S, 4, 0, &tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,5,&tolua_err) )
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
cocos2d::ScriptHandlerMgr* scriptHanlderMgr = static_cast<cocos2d::ScriptHandlerMgr*>(tolua_tousertype(tolua_S,1,0));
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
if (nullptr == scriptHanlderMgr)
|
||||||
|
{
|
||||||
|
tolua_error(tolua_S,"invalid 'scriptHanlderMgr' in function 'tolua_Cocos2d_ScriptHandlerMgr_registerScriptHandler00'\n", NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
LUA_FUNCTION handler = toluafix_ref_function(tolua_S,3,0);
|
||||||
|
ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)tolua_tonumber(tolua_S, 4, 0);
|
||||||
|
scriptHanlderMgr->addObjectHandler(tolua_tousertype(tolua_S, 2, 0), handler,handlerType);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'registerScriptHandler'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* method: unregisterScriptHandler of class ScriptHandlerMgr */
|
||||||
|
static int tolua_Cocos2d_ScriptHandlerMgr_unregisterScriptHandler00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (!tolua_isusertype(tolua_S,1,"ScriptHandlerMgr",0,&tolua_err) ||
|
||||||
|
!tolua_isusertype(tolua_S, 2, "Object", 0, &tolua_err) ||
|
||||||
|
!tolua_isnumber(tolua_S, 3, 0, &tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,4,&tolua_err) )
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
cocos2d::ScriptHandlerMgr* scriptHanlderMgr = static_cast<cocos2d::ScriptHandlerMgr*>(tolua_tousertype(tolua_S,1,0));
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
if (nullptr == scriptHanlderMgr)
|
||||||
|
{
|
||||||
|
tolua_error(tolua_S,"invalid 'scriptHanlderMgr' in function 'tolua_Cocos2d_ScriptHandlerMgr_unregisterScriptHandler00'\n", NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
ScriptHandlerMgr::HandlerType handlerType = (ScriptHandlerMgr::HandlerType)tolua_tonumber(tolua_S, 3, 0);
|
||||||
|
scriptHanlderMgr->removeObjectHandler(tolua_tousertype(tolua_S, 2, 0), handlerType);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'unregisterScriptHandler'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* method: removeObjectAllHandlers of class ScriptHandlerMgr */
|
||||||
|
static int tolua_Cocos2d_ScriptHandlerMgr_removeObjectAllHandlers00(lua_State* tolua_S)
|
||||||
|
{
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_Error tolua_err;
|
||||||
|
if (!tolua_isusertype(tolua_S,1,"ScriptHandlerMgr",0,&tolua_err) ||
|
||||||
|
!tolua_isusertype(tolua_S, 2, "Object", 0, &tolua_err) ||
|
||||||
|
!tolua_isnoobj(tolua_S,3,&tolua_err) )
|
||||||
|
goto tolua_lerror;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
cocos2d::ScriptHandlerMgr* scriptHanlderMgr = static_cast<cocos2d::ScriptHandlerMgr*>(tolua_tousertype(tolua_S,1,0));
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
if (nullptr == scriptHanlderMgr)
|
||||||
|
{
|
||||||
|
tolua_error(tolua_S,"invalid 'scriptHanlderMgr' in function 'tolua_Cocos2d_ScriptHandlerMgr_removeObjectAllHandlers00'\n", NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
scriptHanlderMgr->removeObjectAllHandlers(tolua_tousertype(tolua_S, 2, 0));
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
#ifndef TOLUA_RELEASE
|
||||||
|
tolua_lerror:
|
||||||
|
tolua_error(tolua_S,"#ferror in function 'removeObjectAllHandlers'.",&tolua_err);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
TOLUA_API int tolua_script_handler_mgr_open(lua_State* tolua_S)
|
TOLUA_API int tolua_script_handler_mgr_open(lua_State* tolua_S)
|
||||||
{
|
{
|
||||||
|
@ -253,6 +349,9 @@ TOLUA_API int tolua_script_handler_mgr_open(lua_State* tolua_S)
|
||||||
tolua_cclass(tolua_S,"ScriptHandlerMgr","ScriptHandlerMgr","",NULL);
|
tolua_cclass(tolua_S,"ScriptHandlerMgr","ScriptHandlerMgr","",NULL);
|
||||||
tolua_beginmodule(tolua_S, "ScriptHandlerMgr");
|
tolua_beginmodule(tolua_S, "ScriptHandlerMgr");
|
||||||
tolua_function(tolua_S, "getInstance", tolua_Cocos2d_ScriptHandlerMgr_getInstance00);
|
tolua_function(tolua_S, "getInstance", tolua_Cocos2d_ScriptHandlerMgr_getInstance00);
|
||||||
|
tolua_function(tolua_S, "registerScriptHandler", tolua_Cocos2d_ScriptHandlerMgr_registerScriptHandler00);
|
||||||
|
tolua_function(tolua_S, "unregisterScriptHandler", tolua_Cocos2d_ScriptHandlerMgr_unregisterScriptHandler00);
|
||||||
|
tolua_function(tolua_S, "removeObjectAllHandlers", tolua_Cocos2d_ScriptHandlerMgr_removeObjectAllHandlers00);
|
||||||
tolua_endmodule(tolua_S);
|
tolua_endmodule(tolua_S);
|
||||||
tolua_endmodule(tolua_S);
|
tolua_endmodule(tolua_S);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -134,9 +134,6 @@ private:
|
||||||
|
|
||||||
NS_CC_END
|
NS_CC_END
|
||||||
|
|
||||||
TOLUA_API int tolua_Cocos2d_GLNode_registerScriptDrawHandler00(lua_State* tolua_S);
|
|
||||||
TOLUA_API int tolua_Cocos2d_GLNode_unregisterScriptDrawHandler00(lua_State* tolua_S);
|
|
||||||
|
|
||||||
TOLUA_API int tolua_script_handler_mgr_open(lua_State* tolua_S);
|
TOLUA_API int tolua_script_handler_mgr_open(lua_State* tolua_S);
|
||||||
|
|
||||||
#endif //__LUA_SCRIPT_HANDLER_MGR_H__
|
#endif //__LUA_SCRIPT_HANDLER_MGR_H__
|
||||||
|
|
|
@ -289,3 +289,41 @@ cc.ASSETSMANAGER_PROTOCOL_PROGRESS = 0
|
||||||
cc.ASSETSMANAGER_PROTOCOL_SUCCESS = 1
|
cc.ASSETSMANAGER_PROTOCOL_SUCCESS = 1
|
||||||
cc.ASSETSMANAGER_PROTOCOL_ERROR = 2
|
cc.ASSETSMANAGER_PROTOCOL_ERROR = 2
|
||||||
|
|
||||||
|
cc.HANDLERTYPE_NODE = 0
|
||||||
|
cc.HANDLERTYPE_MENU_CLICKED = 1
|
||||||
|
cc.HANDLERTYPE_NOTIFICATION = 2
|
||||||
|
cc.HANDLERTYPE_CALLFUNC = 3
|
||||||
|
cc.HANDLERTYPE_SCHEDULE = 4
|
||||||
|
cc.HANDLERTYPE_TOUCHES = 5
|
||||||
|
cc.HANDLERTYPE_KEYPAD = 6
|
||||||
|
cc.HANDLERTYPE_ACCELEROMETER = 7
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_DOWN = 8
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_DRAG_INSIDE = 9
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_DRAG_OUTSIDE = 10
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_DRAG_ENTER = 11
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_DRAG_EXIT = 12
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_UP_INSIDE = 13
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_UP_OUTSIDE = 14
|
||||||
|
cc.HANDLERTYPE_CONTROL_TOUCH_UP_CANCEL = 15
|
||||||
|
cc.HANDLERTYPE_CONTROL_VALUE_CHANGED = 16
|
||||||
|
cc.HANDLERTYPE_WEBSOCKET_OPEN = 17
|
||||||
|
cc.HANDLERTYPE_WEBSOCKET_MESSAGE = 18
|
||||||
|
cc.HANDLERTYPE_WEBSOCKET_CLOSE = 19
|
||||||
|
cc.HANDLERTYPE_WEBSOCKET_ERROR = 20
|
||||||
|
cc.HANDLERTYPE_GL_NODE_DRAW = 21
|
||||||
|
cc.HANDLERTYPE_SCROLLVIEW_SCROLL = 22
|
||||||
|
cc.HANDLERTYPE_SCROLLVIEW_ZOOM = 23
|
||||||
|
cc.HANDLERTYPE_TABLECELL_TOUCHED = 24
|
||||||
|
cc.HANDLERTYPE_TABLECELL_HIGHLIGHT = 25
|
||||||
|
cc.HANDLERTYPE_TABLECELL_UNHIGHLIGHT = 26
|
||||||
|
cc.HANDLERTYPE_TABLECELL_WILL_RECYCLE = 27
|
||||||
|
cc.HANDLERTYPE_TABLECELL_SIZE_FOR_INDEX = 28
|
||||||
|
cc.HANDLERTYPE_TABLECELL_AT_INDEX = 29
|
||||||
|
cc.HANDLERTYPE_TABLEVIEW_NUMS_OF_CELLS = 30
|
||||||
|
cc.HANDLERTYPE_XMLHTTPREQUEST_READY_STATE_CHANGE = 31
|
||||||
|
cc.HANDLERTYPE_ASSETSMANAGER_PROGRESS = 32
|
||||||
|
cc.HANDLERTYPE_ASSETSMANAGER_SUCCESS = 33
|
||||||
|
cc.HANDLERTYPE_ASSETSMANAGER_ERROR = 34
|
||||||
|
cc.HANDLERTYPE_EVENT_LISTENER = 35
|
||||||
|
cc.HANDLERTYPE_ARMATURE_EVENT = 36
|
||||||
|
|
|
@ -207,7 +207,7 @@ void Control::removeTargetWithActionForControlEvent(Object* target, Handler acti
|
||||||
// Remove the corresponding invocation object
|
// Remove the corresponding invocation object
|
||||||
if (shouldBeRemoved)
|
if (shouldBeRemoved)
|
||||||
{
|
{
|
||||||
eventInvocationList.erase(invocation, bDeleteObjects);
|
eventInvocationList.eraseObject(invocation, bDeleteObjects);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ bool TableView::initWithViewSize(Size size, Node* container/* = NULL*/)
|
||||||
{
|
{
|
||||||
if (ScrollView::initWithViewSize(size,container))
|
if (ScrollView::initWithViewSize(size,container))
|
||||||
{
|
{
|
||||||
_indices = new std::set<long>();
|
_indices = new std::set<ssize_t>();
|
||||||
_vordering = VerticalFillOrder::BOTTOM_UP;
|
_vordering = VerticalFillOrder::BOTTOM_UP;
|
||||||
this->setDirection(Direction::VERTICAL);
|
this->setDirection(Direction::VERTICAL);
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ void TableView::reloadData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TableViewCell *TableView::cellAtIndex(long idx)
|
TableViewCell *TableView::cellAtIndex(ssize_t idx)
|
||||||
{
|
{
|
||||||
if (_indices->find(idx) != _indices->end())
|
if (_indices->find(idx) != _indices->end())
|
||||||
{
|
{
|
||||||
|
@ -139,7 +139,7 @@ TableViewCell *TableView::cellAtIndex(long idx)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TableView::updateCellAtIndex(long idx)
|
void TableView::updateCellAtIndex(ssize_t idx)
|
||||||
{
|
{
|
||||||
if (idx == CC_INVALID_INDEX)
|
if (idx == CC_INVALID_INDEX)
|
||||||
{
|
{
|
||||||
|
@ -161,7 +161,7 @@ void TableView::updateCellAtIndex(long idx)
|
||||||
this->_addCellIfNecessary(cell);
|
this->_addCellIfNecessary(cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TableView::insertCellAtIndex(long idx)
|
void TableView::insertCellAtIndex(ssize_t idx)
|
||||||
{
|
{
|
||||||
if (idx == CC_INVALID_INDEX)
|
if (idx == CC_INVALID_INDEX)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +197,7 @@ void TableView::insertCellAtIndex(long idx)
|
||||||
this->_updateContentSize();
|
this->_updateContentSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TableView::removeCellAtIndex(long idx)
|
void TableView::removeCellAtIndex(ssize_t idx)
|
||||||
{
|
{
|
||||||
if (idx == CC_INVALID_INDEX)
|
if (idx == CC_INVALID_INDEX)
|
||||||
{
|
{
|
||||||
|
@ -210,7 +210,7 @@ void TableView::removeCellAtIndex(long idx)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int newIdx = 0;
|
ssize_t newIdx = 0;
|
||||||
|
|
||||||
TableViewCell* cell = this->cellAtIndex(idx);
|
TableViewCell* cell = this->cellAtIndex(idx);
|
||||||
if (!cell)
|
if (!cell)
|
||||||
|
@ -226,7 +226,7 @@ void TableView::removeCellAtIndex(long idx)
|
||||||
_indices->erase(idx);
|
_indices->erase(idx);
|
||||||
this->_updateCellPositions();
|
this->_updateCellPositions();
|
||||||
|
|
||||||
for (int i = _cellsUsed.size()-1; i > newIdx; i--)
|
for (ssize_t i = _cellsUsed.size()-1; i > newIdx; i--)
|
||||||
{
|
{
|
||||||
cell = _cellsUsed.at(i);
|
cell = _cellsUsed.at(i);
|
||||||
this->_setIndexForCell(cell->getIdx()-1, cell);
|
this->_setIndexForCell(cell->getIdx()-1, cell);
|
||||||
|
@ -262,7 +262,7 @@ void TableView::_addCellIfNecessary(TableViewCell * cell)
|
||||||
void TableView::_updateContentSize()
|
void TableView::_updateContentSize()
|
||||||
{
|
{
|
||||||
Size size = Size::ZERO;
|
Size size = Size::ZERO;
|
||||||
unsigned int cellsCount = _dataSource->numberOfCellsInTableView(this);
|
ssize_t cellsCount = _dataSource->numberOfCellsInTableView(this);
|
||||||
|
|
||||||
if (cellsCount > 0)
|
if (cellsCount > 0)
|
||||||
{
|
{
|
||||||
|
@ -296,7 +296,7 @@ void TableView::_updateContentSize()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Point TableView::_offsetFromIndex(long index)
|
Point TableView::_offsetFromIndex(ssize_t index)
|
||||||
{
|
{
|
||||||
Point offset = this->__offsetFromIndex(index);
|
Point offset = this->__offsetFromIndex(index);
|
||||||
|
|
||||||
|
@ -308,7 +308,7 @@ Point TableView::_offsetFromIndex(long index)
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
Point TableView::__offsetFromIndex(long index)
|
Point TableView::__offsetFromIndex(ssize_t index)
|
||||||
{
|
{
|
||||||
Point offset;
|
Point offset;
|
||||||
Size cellSize;
|
Size cellSize;
|
||||||
|
@ -397,7 +397,7 @@ void TableView::_moveCellOutOfSight(TableViewCell *cell)
|
||||||
}
|
}
|
||||||
|
|
||||||
_cellsFreed.pushBack(cell);
|
_cellsFreed.pushBack(cell);
|
||||||
_cellsUsed.erase(cell);
|
_cellsUsed.eraseObject(cell);
|
||||||
_isUsedCellsDirty = true;
|
_isUsedCellsDirty = true;
|
||||||
|
|
||||||
_indices->erase(cell->getIdx());
|
_indices->erase(cell->getIdx());
|
||||||
|
@ -409,7 +409,7 @@ void TableView::_moveCellOutOfSight(TableViewCell *cell)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TableView::_setIndexForCell(long index, TableViewCell *cell)
|
void TableView::_setIndexForCell(ssize_t index, TableViewCell *cell)
|
||||||
{
|
{
|
||||||
cell->setAnchorPoint(Point(0.0f, 0.0f));
|
cell->setAnchorPoint(Point(0.0f, 0.0f));
|
||||||
cell->setPosition(this->_offsetFromIndex(index));
|
cell->setPosition(this->_offsetFromIndex(index));
|
||||||
|
@ -464,7 +464,7 @@ void TableView::scrollViewDidScroll(ScrollView* view)
|
||||||
_tableViewDelegate->scrollViewDidScroll(this);
|
_tableViewDelegate->scrollViewDidScroll(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
long startIdx = 0, endIdx = 0, idx = 0, maxIdx = 0;
|
ssize_t startIdx = 0, endIdx = 0, idx = 0, maxIdx = 0;
|
||||||
Point offset = this->getContentOffset() * -1;
|
Point offset = this->getContentOffset() * -1;
|
||||||
maxIdx = MAX(countOfItems-1, 0);
|
maxIdx = MAX(countOfItems-1, 0);
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ public:
|
||||||
* @param idx the index of a cell to get a size
|
* @param idx the index of a cell to get a size
|
||||||
* @return size of a cell at given index
|
* @return size of a cell at given index
|
||||||
*/
|
*/
|
||||||
virtual Size tableCellSizeForIndex(TableView *table, long idx) {
|
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
|
||||||
return cellSizeForTable(table);
|
return cellSizeForTable(table);
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
|
@ -123,7 +123,7 @@ public:
|
||||||
* @param idx index to search for a cell
|
* @param idx index to search for a cell
|
||||||
* @return cell found at idx
|
* @return cell found at idx
|
||||||
*/
|
*/
|
||||||
virtual TableViewCell* tableCellAtIndex(TableView *table, long idx) = 0;
|
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx) = 0;
|
||||||
/**
|
/**
|
||||||
* Returns number of cells in a given table view.
|
* Returns number of cells in a given table view.
|
||||||
*
|
*
|
||||||
|
@ -228,19 +228,19 @@ public:
|
||||||
*
|
*
|
||||||
* @param idx index to find a cell
|
* @param idx index to find a cell
|
||||||
*/
|
*/
|
||||||
void updateCellAtIndex(long idx);
|
void updateCellAtIndex(ssize_t idx);
|
||||||
/**
|
/**
|
||||||
* Inserts a new cell at a given index
|
* Inserts a new cell at a given index
|
||||||
*
|
*
|
||||||
* @param idx location to insert
|
* @param idx location to insert
|
||||||
*/
|
*/
|
||||||
void insertCellAtIndex(long idx);
|
void insertCellAtIndex(ssize_t idx);
|
||||||
/**
|
/**
|
||||||
* Removes a cell at a given index
|
* Removes a cell at a given index
|
||||||
*
|
*
|
||||||
* @param idx index to find a cell
|
* @param idx index to find a cell
|
||||||
*/
|
*/
|
||||||
void removeCellAtIndex(long idx);
|
void removeCellAtIndex(ssize_t idx);
|
||||||
/**
|
/**
|
||||||
* reloads data from data source. the view will be refreshed.
|
* reloads data from data source. the view will be refreshed.
|
||||||
*/
|
*/
|
||||||
|
@ -258,7 +258,7 @@ public:
|
||||||
* @param idx index
|
* @param idx index
|
||||||
* @return a cell at a given index
|
* @return a cell at a given index
|
||||||
*/
|
*/
|
||||||
TableViewCell *cellAtIndex(long idx);
|
TableViewCell *cellAtIndex(ssize_t idx);
|
||||||
|
|
||||||
// Overrides
|
// Overrides
|
||||||
virtual void scrollViewDidScroll(ScrollView* view) override;
|
virtual void scrollViewDidScroll(ScrollView* view) override;
|
||||||
|
@ -271,11 +271,11 @@ public:
|
||||||
protected:
|
protected:
|
||||||
long __indexFromOffset(Point offset);
|
long __indexFromOffset(Point offset);
|
||||||
long _indexFromOffset(Point offset);
|
long _indexFromOffset(Point offset);
|
||||||
Point __offsetFromIndex(long index);
|
Point __offsetFromIndex(ssize_t index);
|
||||||
Point _offsetFromIndex(long index);
|
Point _offsetFromIndex(ssize_t index);
|
||||||
|
|
||||||
void _moveCellOutOfSight(TableViewCell *cell);
|
void _moveCellOutOfSight(TableViewCell *cell);
|
||||||
void _setIndexForCell(long index, TableViewCell *cell);
|
void _setIndexForCell(ssize_t index, TableViewCell *cell);
|
||||||
void _addCellIfNecessary(TableViewCell * cell);
|
void _addCellIfNecessary(TableViewCell * cell);
|
||||||
|
|
||||||
void _updateCellPositions();
|
void _updateCellPositions();
|
||||||
|
@ -290,7 +290,7 @@ protected:
|
||||||
/**
|
/**
|
||||||
* index set to query the indexes of the cells used.
|
* index set to query the indexes of the cells used.
|
||||||
*/
|
*/
|
||||||
std::set<long>* _indices;
|
std::set<ssize_t>* _indices;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* vector with all cell positions
|
* vector with all cell positions
|
||||||
|
|
|
@ -116,7 +116,7 @@ std::string valueToQuotedString( const char *value )
|
||||||
// We have to walk value and escape any special characters.
|
// We have to walk value and escape any special characters.
|
||||||
// Appending to std::string is not efficient, but this should be rare.
|
// Appending to std::string is not efficient, but this should be rare.
|
||||||
// (Note: forward slashes are *not* rare, but I am not escaping them.)
|
// (Note: forward slashes are *not* rare, but I am not escaping them.)
|
||||||
unsigned maxsize = strlen(value)*2 + 3; // allescaped+quotes+NULL
|
size_t maxsize = strlen(value)*2 + 3; // allescaped+quotes+NULL
|
||||||
std::string result;
|
std::string result;
|
||||||
result.reserve(maxsize); // to avoid lots of mallocs
|
result.reserve(maxsize); // to avoid lots of mallocs
|
||||||
result += "\"";
|
result += "\"";
|
||||||
|
|
Loading…
Reference in New Issue