From b854c251030c20ced19a3d351012f55284a1fb8c Mon Sep 17 00:00:00 2001 From: zhangbin Date: Mon, 2 Sep 2013 16:10:08 +0800 Subject: [PATCH 1/4] Add parameter in method cocos_android_app_init() to initialize plugin. --- cocos2dx/platform/android/nativeactivity.cpp | 10 +++++----- .../proj.android/jni/hellocpp/main.cpp | 2 +- .../Cpp/HelloCpp/proj.android/jni/hellocpp/main.cpp | 2 +- .../Cpp/SimpleGame/proj.android/jni/hellocpp/main.cpp | 2 +- samples/Cpp/TestCpp/proj.android/jni/testcpp/main.cpp | 2 +- .../proj.android/jni/cocosdragonjs/main.cpp | 2 +- .../proj.android/jni/crystalcraze/main.cpp | 2 +- .../proj.android/jni/moonwarriors/main.cpp | 2 +- .../proj.android/jni/testjavascript/main.cpp | 2 +- .../proj.android/jni/watermelonwithme/main.cpp | 2 +- .../Lua/HelloLua/proj.android/jni/hellolua/main.cpp | 2 +- samples/Lua/TestLua/proj.android/jni/testlua/main.cpp | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cocos2dx/platform/android/nativeactivity.cpp b/cocos2dx/platform/android/nativeactivity.cpp index 44f063c798..c039817d9c 100644 --- a/cocos2dx/platform/android/nativeactivity.cpp +++ b/cocos2dx/platform/android/nativeactivity.cpp @@ -35,7 +35,7 @@ #define LOG_EVENTS_DEBUG(...) // #define LOG_EVENTS_DEBUG(...) ((void)__android_log_print(ANDROID_LOG_INFO, "cocos2dx/nativeactivity.cpp", __VA_ARGS__)) -void cocos_android_app_init(void); +void cocos_android_app_init(struct android_app* app); /** * Our saved state data. @@ -72,19 +72,19 @@ typedef struct cocos_dimensions { int h; } cocos_dimensions; -static void cocos_init(cocos_dimensions d, AAssetManager* assetmanager) { +static void cocos_init(cocos_dimensions d, struct android_app* app) { LOGI("cocos_init(...)"); pthread_t thisthread = pthread_self(); LOGI("pthread_self() = %X", thisthread); - cocos2d::FileUtilsAndroid::setassetmanager(assetmanager); + cocos2d::FileUtilsAndroid::setassetmanager(app->activity->assetManager); if (!cocos2d::Director::getInstance()->getOpenGLView()) { cocos2d::EGLView *view = cocos2d::EGLView::getInstance(); view->setFrameSize(d.w, d.h); - cocos_android_app_init(); + cocos_android_app_init(app); cocos2d::Application::getInstance()->run(); } @@ -431,7 +431,7 @@ static void engine_handle_cmd(struct android_app* app, int32_t cmd) { ccxhelperInit.methodID, app->activity->clazz); - cocos_init(d, app->activity->assetManager); + cocos_init(d, app); } engine->animating = 1; engine_draw_frame(engine); diff --git a/samples/Cpp/AssetsManagerTest/proj.android/jni/hellocpp/main.cpp b/samples/Cpp/AssetsManagerTest/proj.android/jni/hellocpp/main.cpp index 788ad27bf8..0d0564246f 100644 --- a/samples/Cpp/AssetsManagerTest/proj.android/jni/hellocpp/main.cpp +++ b/samples/Cpp/AssetsManagerTest/proj.android/jni/hellocpp/main.cpp @@ -8,7 +8,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Cpp/HelloCpp/proj.android/jni/hellocpp/main.cpp b/samples/Cpp/HelloCpp/proj.android/jni/hellocpp/main.cpp index 0f773af375..2b344d9e04 100644 --- a/samples/Cpp/HelloCpp/proj.android/jni/hellocpp/main.cpp +++ b/samples/Cpp/HelloCpp/proj.android/jni/hellocpp/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Cpp/SimpleGame/proj.android/jni/hellocpp/main.cpp b/samples/Cpp/SimpleGame/proj.android/jni/hellocpp/main.cpp index 25e2b97ad3..ab92fe0f5a 100644 --- a/samples/Cpp/SimpleGame/proj.android/jni/hellocpp/main.cpp +++ b/samples/Cpp/SimpleGame/proj.android/jni/hellocpp/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Cpp/TestCpp/proj.android/jni/testcpp/main.cpp b/samples/Cpp/TestCpp/proj.android/jni/testcpp/main.cpp index ca56f8d7ff..a8b36b317d 100644 --- a/samples/Cpp/TestCpp/proj.android/jni/testcpp/main.cpp +++ b/samples/Cpp/TestCpp/proj.android/jni/testcpp/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Javascript/CocosDragonJS/proj.android/jni/cocosdragonjs/main.cpp b/samples/Javascript/CocosDragonJS/proj.android/jni/cocosdragonjs/main.cpp index 3d2a59ddfc..9793beefb1 100644 --- a/samples/Javascript/CocosDragonJS/proj.android/jni/cocosdragonjs/main.cpp +++ b/samples/Javascript/CocosDragonJS/proj.android/jni/cocosdragonjs/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Javascript/CrystalCraze/proj.android/jni/crystalcraze/main.cpp b/samples/Javascript/CrystalCraze/proj.android/jni/crystalcraze/main.cpp index 3d2a59ddfc..9793beefb1 100644 --- a/samples/Javascript/CrystalCraze/proj.android/jni/crystalcraze/main.cpp +++ b/samples/Javascript/CrystalCraze/proj.android/jni/crystalcraze/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Javascript/MoonWarriors/proj.android/jni/moonwarriors/main.cpp b/samples/Javascript/MoonWarriors/proj.android/jni/moonwarriors/main.cpp index 3d2a59ddfc..9793beefb1 100644 --- a/samples/Javascript/MoonWarriors/proj.android/jni/moonwarriors/main.cpp +++ b/samples/Javascript/MoonWarriors/proj.android/jni/moonwarriors/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Javascript/TestJavascript/proj.android/jni/testjavascript/main.cpp b/samples/Javascript/TestJavascript/proj.android/jni/testjavascript/main.cpp index 3d2a59ddfc..9793beefb1 100644 --- a/samples/Javascript/TestJavascript/proj.android/jni/testjavascript/main.cpp +++ b/samples/Javascript/TestJavascript/proj.android/jni/testjavascript/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Javascript/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp b/samples/Javascript/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp index 3d2a59ddfc..9793beefb1 100644 --- a/samples/Javascript/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp +++ b/samples/Javascript/WatermelonWithMe/proj.android/jni/watermelonwithme/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Lua/HelloLua/proj.android/jni/hellolua/main.cpp b/samples/Lua/HelloLua/proj.android/jni/hellolua/main.cpp index 94b9fafef9..20e2ea1f45 100644 --- a/samples/Lua/HelloLua/proj.android/jni/hellolua/main.cpp +++ b/samples/Lua/HelloLua/proj.android/jni/hellolua/main.cpp @@ -9,7 +9,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } diff --git a/samples/Lua/TestLua/proj.android/jni/testlua/main.cpp b/samples/Lua/TestLua/proj.android/jni/testlua/main.cpp index ca56f8d7ff..a8b36b317d 100644 --- a/samples/Lua/TestLua/proj.android/jni/testlua/main.cpp +++ b/samples/Lua/TestLua/proj.android/jni/testlua/main.cpp @@ -10,7 +10,7 @@ using namespace cocos2d; -void cocos_android_app_init (void) { +void cocos_android_app_init (struct android_app* app) { LOGD("cocos_android_app_init"); AppDelegate *pAppDelegate = new AppDelegate(); } From 088a11ad0dc4e067eb54c9c33008d6ddef65c024 Mon Sep 17 00:00:00 2001 From: Ricardo Quesada Date: Mon, 2 Sep 2013 16:44:25 -0700 Subject: [PATCH 2/4] Little performance improvements in SpriteBatchNode _descendants: Array -> std::vector since retain/release is no needed Code is cleaner Removes unused method (bug inherited from cocos2d-iphone) Adds more doxygen strings --- cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp | 115 +++++------------- cocos2dx/sprite_nodes/CCSpriteBatchNode.h | 29 +++-- .../SpriteTest/SpriteTest.cpp.REMOVED.git-id | 2 +- 3 files changed, 49 insertions(+), 97 deletions(-) diff --git a/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp b/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp index a9cad56cc0..e50721586d 100644 --- a/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp +++ b/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp @@ -94,8 +94,7 @@ bool SpriteBatchNode::initWithTexture(Texture2D *tex, int capacity) _children = new Array(); _children->initWithCapacity(capacity); - _descendants = new Array(); - _descendants->initWithCapacity(capacity); + _descendants.reserve(capacity); setShaderProgram(ShaderCache::getInstance()->programForKey(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR)); return true; @@ -119,14 +118,12 @@ bool SpriteBatchNode::initWithFile(const char* fileImage, int capacity) SpriteBatchNode::SpriteBatchNode() : _textureAtlas(NULL) -, _descendants(NULL) { } SpriteBatchNode::~SpriteBatchNode() { CC_SAFE_RELEASE(_textureAtlas); - CC_SAFE_RELEASE(_descendants); } // override visit @@ -184,16 +181,6 @@ void SpriteBatchNode::addChild(Node *child, int zOrder, int tag) appendChild(sprite); } -void SpriteBatchNode::addChild(Node *child) -{ - Node::addChild(child); -} - -void SpriteBatchNode::addChild(Node *child, int zOrder) -{ - Node::addChild(child, zOrder); -} - // override reorderChild void SpriteBatchNode::reorderChild(Node *child, int zOrder) { @@ -238,11 +225,13 @@ void SpriteBatchNode::removeAllChildrenWithCleanup(bool doCleanup) { // Invalidate atlas index. issue #569 // useSelfRender should be performed on all descendants. issue #1216 - arrayMakeObjectsPerformSelectorWithObject(_descendants, setBatchNode, NULL, Sprite*); + std::for_each(_descendants.begin(), _descendants.end(), [](Sprite* sprite) { + sprite->setBatchNode(nullptr); + }); Node::removeAllChildrenWithCleanup(doCleanup); - _descendants->removeAllObjects(); + _descendants.clear(); _textureAtlas->removeAllQuads(); } @@ -374,15 +363,20 @@ void SpriteBatchNode::updateAtlasIndex(Sprite* sprite, int* curIndex) void SpriteBatchNode::swap(int oldIndex, int newIndex) { - CCASSERT(oldIndex>=0 && oldIndex < _descendants->count() && newIndex >=0 && newIndex < _descendants->count(), "Invalid index"); + CCASSERT(oldIndex>=0 && oldIndex < _descendants.size() && newIndex >=0 && newIndex < _descendants.size(), "Invalid index"); V3F_C4B_T2F_Quad* quads = _textureAtlas->getQuads(); + std::swap( quads[oldIndex], quads[newIndex] ); //update the index of other swapped item - static_cast( _descendants->getObjectAtIndex(newIndex) )->setAtlasIndex(oldIndex); - std::swap( quads[oldIndex], quads[newIndex] ); - _descendants->swap( oldIndex, newIndex ); + auto oldIt = std::next( _descendants.begin(), oldIndex ); + auto newIt = std::next( _descendants.begin(), newIndex ); + + (*newIt)->setAtlasIndex(oldIndex); + (*oldIt)->setAtlasIndex(newIndex); + + std::swap( *oldIt, *newIt ); } void SpriteBatchNode::reorderBatch(bool reorder) @@ -560,43 +554,6 @@ int SpriteBatchNode::atlasIndexForChild(Sprite *sprite, int nZ) return 0; } -// add child helper - -void SpriteBatchNode::insertChild(Sprite *sprite, int index) -{ - sprite->setBatchNode(this); - sprite->setAtlasIndex(index); - sprite->setDirty(true); - - if(_textureAtlas->getTotalQuads() == _textureAtlas->getCapacity()) - { - increaseAtlasCapacity(); - } - - V3F_C4B_T2F_Quad quad = sprite->getQuad(); - _textureAtlas->insertQuad(&quad, index); - - _descendants->insertObject(sprite, index); - - // update indices - int i = index+1; - - Sprite* child = nullptr; - for(; i < _descendants->count(); i++){ - child = static_cast(_descendants->getObjectAtIndex(i)); - child->setAtlasIndex(child->getAtlasIndex() + 1); - } - - // add children recursively - Object* obj = nullptr; - CCARRAY_FOREACH(sprite->getChildren(), obj) - { - child = static_cast(obj); - int idx = atlasIndexForChild(child, child->getZOrder()); - insertChild(child, idx); - } -} - // addChild helper, faster than insertChild void SpriteBatchNode::appendChild(Sprite* sprite) { @@ -608,8 +565,8 @@ void SpriteBatchNode::appendChild(Sprite* sprite) increaseAtlasCapacity(); } - _descendants->addObject(sprite); - int index=_descendants->count()-1; + _descendants.push_back(sprite); + int index = _descendants.size()-1; sprite->setAtlasIndex(index); @@ -634,19 +591,16 @@ void SpriteBatchNode::removeSpriteFromAtlas(Sprite *sprite) // Cleanup sprite. It might be reused (issue #569) sprite->setBatchNode(NULL); - int index = _descendants->getIndexOfObject(sprite); - if (index != -1) + auto it = std::find(_descendants.begin(), _descendants.end(), sprite ); + if( it != _descendants.end() ) { - _descendants->removeObjectAtIndex(index); + auto next = std::next(it); - // update all sprites beyond this one - int count = _descendants->count(); - - for(; index < count; ++index) - { - Sprite* s = static_cast(_descendants->getObjectAtIndex(index)); - s->setAtlasIndex( s->getAtlasIndex() - 1 ); - } + std::for_each(next, _descendants.end(), [](Sprite *sprite) { + sprite->setAtlasIndex( sprite->getAtlasIndex() - 1 ); + }); + + _descendants.erase(it); } // remove children recursively @@ -754,22 +708,17 @@ SpriteBatchNode * SpriteBatchNode::addSpriteWithoutQuad(Sprite*child, int z, int child->setAtlasIndex(z); // XXX: optimize with a binary search - int i=0; - - Object* object = NULL; - CCARRAY_FOREACH(_descendants, object) - { - Sprite* child = static_cast(object); - if (child && (child->getAtlasIndex() >= z)) - { - ++i; - } - } - - _descendants->insertObject(child, i); + auto it = std::begin(_descendants); + std::for_each(_descendants.begin(), _descendants.end(), [&](Sprite *sprite) { + if(sprite->getAtlasIndex() >= z) + std::next(it); + }); + + _descendants.insert(it, child); // IMPORTANT: Call super, and not self. Avoid adding it to the texture atlas array Node::addChild(child, z, aTag); + //#issue 1262 don't use lazy sorting, tiles are added as quads not as sprites, so sprites need to be added in order reorderBatch(false); diff --git a/cocos2dx/sprite_nodes/CCSpriteBatchNode.h b/cocos2dx/sprite_nodes/CCSpriteBatchNode.h index 20e90d17bc..7fd9289452 100644 --- a/cocos2dx/sprite_nodes/CCSpriteBatchNode.h +++ b/cocos2dx/sprite_nodes/CCSpriteBatchNode.h @@ -28,11 +28,12 @@ THE SOFTWARE. #ifndef __CC_SPRITE_BATCH_NODE_H__ #define __CC_SPRITE_BATCH_NODE_H__ +#include + #include "base_nodes/CCNode.h" #include "CCProtocols.h" #include "textures/CCTextureAtlas.h" #include "ccMacros.h" -#include "cocoa/CCArray.h" NS_CC_BEGIN @@ -89,11 +90,11 @@ public: bool initWithFile(const char* fileImage, int capacity); bool init(); - // property - - // retain + /** returns the TextureAtlas object */ inline TextureAtlas* getTextureAtlas(void) { return _textureAtlas; } - inline void setTextureAtlas(TextureAtlas* textureAtlas) + + /** sets the TextureAtlas object */ + inline void setTextureAtlas(TextureAtlas* textureAtlas) { if (textureAtlas != _textureAtlas) { @@ -103,7 +104,9 @@ public: } } - inline Array* getDescendants(void) { return _descendants; } + /** returns an array with the descendants (children, gran children, etc.). + This is specific to BatchNode. In order to use the children, use getChildren() instead */ + inline const std::vector& getDescendants() const { return _descendants; } void increaseAtlasCapacity(); @@ -112,7 +115,6 @@ public: */ void removeChildAtIndex(int index, bool doCleanup); - void insertChild(Sprite *child, int index); void appendChild(Sprite* sprite); void removeSpriteFromAtlas(Sprite *sprite); @@ -133,12 +135,11 @@ public: virtual const BlendFunc& getBlendFunc(void) const override; virtual void visit(void) override; - virtual void addChild(Node * child) override; - virtual void addChild(Node * child, int zOrder) override; + using Node::addChild; virtual void addChild(Node * child, int zOrder, int tag) override; - virtual void reorderChild(Node * child, int zOrder) override; + virtual void reorderChild(Node *child, int zOrder) override; - virtual void removeChild(Node* child, bool cleanup) override; + virtual void removeChild(Node *child, bool cleanup) override; virtual void removeAllChildrenWithCleanup(bool cleanup) override; virtual void sortAllChildren() override; virtual void draw(void) override; @@ -157,7 +158,7 @@ protected: /* 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 */ - SpriteBatchNode * addSpriteWithoutQuad(Sprite*child, int z, int aTag); + SpriteBatchNode * addSpriteWithoutQuad(Sprite *child, int z, int aTag); private: void updateAtlasIndex(Sprite* sprite, int* curIndex); @@ -169,7 +170,9 @@ protected: BlendFunc _blendFunc; // all descendants: children, grand children, etc... - Array* _descendants; + // There is not need to retain/release these objects, since they are already retained by _children + // So, using std::vector is slightly faster than using cocos2d::Array for this particular case + std::vector _descendants; }; // end of sprite_nodes group diff --git a/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id b/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id index adcf29b25a..58215d9f8e 100644 --- a/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id +++ b/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id @@ -1 +1 @@ -7b8ff30c1fc482c4d7485032c73c1145a60168b4 \ No newline at end of file +22839ab8136de5dfc0b45e2ab4535ebc83d988dc \ No newline at end of file From ee638b9c8b1c92b945ffbee1c9137cc78b9ddc61 Mon Sep 17 00:00:00 2001 From: Ricardo Quesada Date: Mon, 2 Sep 2013 16:56:14 -0700 Subject: [PATCH 3/4] removes 'private' section from SpriteBatchNode --- cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp | 6 +++--- cocos2dx/sprite_nodes/CCSpriteBatchNode.h | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp b/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp index e50721586d..51dec0fa63 100644 --- a/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp +++ b/cocos2dx/sprite_nodes/CCSpriteBatchNode.cpp @@ -350,10 +350,10 @@ void SpriteBatchNode::updateAtlasIndex(Sprite* sprite, int* curIndex) if (needNewIndex) {//all children have a zOrder < 0) - oldIndex=sprite->getAtlasIndex(); + oldIndex = sprite->getAtlasIndex(); sprite->setAtlasIndex(*curIndex); sprite->setOrderOfArrival(0); - if (oldIndex!=*curIndex) { + if (oldIndex != *curIndex) { swap(oldIndex, *curIndex); } (*curIndex)++; @@ -374,7 +374,7 @@ void SpriteBatchNode::swap(int oldIndex, int newIndex) auto newIt = std::next( _descendants.begin(), newIndex ); (*newIt)->setAtlasIndex(oldIndex); - (*oldIt)->setAtlasIndex(newIndex); +// (*oldIt)->setAtlasIndex(newIndex); std::swap( *oldIt, *newIt ); } diff --git a/cocos2dx/sprite_nodes/CCSpriteBatchNode.h b/cocos2dx/sprite_nodes/CCSpriteBatchNode.h index 7fd9289452..7559ffaba0 100644 --- a/cocos2dx/sprite_nodes/CCSpriteBatchNode.h +++ b/cocos2dx/sprite_nodes/CCSpriteBatchNode.h @@ -160,12 +160,10 @@ protected: */ SpriteBatchNode * addSpriteWithoutQuad(Sprite *child, int z, int aTag); -private: void updateAtlasIndex(Sprite* sprite, int* curIndex); void swap(int oldIndex, int newIndex); void updateBlendFunc(); -protected: TextureAtlas *_textureAtlas; BlendFunc _blendFunc; From befcf722b6718a74c0e42f0070ee8c0ce5235522 Mon Sep 17 00:00:00 2001 From: Ricardo Quesada Date: Tue, 3 Sep 2013 10:17:25 -0700 Subject: [PATCH 4/4] compiles Linux / Windows --- .../TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id b/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id index 58215d9f8e..0aa62ae640 100644 --- a/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id +++ b/samples/Cpp/TestCpp/Classes/SpriteTest/SpriteTest.cpp.REMOVED.git-id @@ -1 +1 @@ -22839ab8136de5dfc0b45e2ab4535ebc83d988dc \ No newline at end of file +71e41ffe1784a179756e14a9745e8b4c6e389d95 \ No newline at end of file