axmol/tests/cpp-tests/Classes/controller.cpp

545 lines
17 KiB
C++
Raw Normal View History

2015-04-03 11:54:39 +08:00
#include "controller.h"
#include <functional>
2014-02-28 23:41:01 +08:00
#include <chrono>
#include "BaseTest.h"
#include "tests.h"
2015-04-03 11:54:39 +08:00
USING_NS_CC;
#define TEST_TIME_OUT 50
2015-04-03 11:54:39 +08:00
#define CREATE_TIME_OUT 25
#define LOG_INDENTATION " "
#define LOG_TAG "[TestController]"
static void initCrashCatch();
static void disableCrashCatch();
2015-04-03 11:54:39 +08:00
class RootTests : public TestList
{
public:
RootTests()
{
2015-05-07 16:22:30 +08:00
addTest("Node: Scene3D", [](){return new (std::nothrow) Scene3DTests(); });
2015-04-03 11:54:39 +08:00
addTest("ActionManager", [](){return new (std::nothrow) ActionManagerTests(); });
addTest("Actions - Basic", [](){ return new (std::nothrow) ActionsTests(); });
addTest("Actions - Ease", [](){return new (std::nothrow) ActionsEaseTests(); });
addTest("Actions - Progress", [](){return new (std::nothrow) ActionsProgressTests(); });
addTest("Allocator - Basic", [](){return new (std::nothrow) AllocatorTests(); });
addTest("Audio - CocosDenshion", []() { return new (std::nothrow) CocosDenshionTests(); });
addTest("Audio - NewAudioEngine", []() { return new (std::nothrow) AudioEngineTests(); });
#if CC_ENABLE_BOX2D_INTEGRATION
2015-04-03 11:54:39 +08:00
addTest("Box2d - Basic", []() { return new (std::nothrow) Box2DTests(); });
addTest("Box2d - TestBed", []() { return new (std::nothrow) Box2dTestBedSuite(); });
#endif
2015-04-03 11:54:39 +08:00
addTest("Bugs", []() { return new BugsTests(); });
addTest("Chipmunk", []() { return new ChipmunkTests(); });
addTest("Click and Move", [](){return new ClickAndMoveTest(); });
addTest("Configuration", []() { return new ConfigurationTests(); });
addTest("Console", []() { return new ConsoleTests(); });
#if (CC_TARGET_PLATFORM != CC_PLATFORM_IOS) && (CC_TARGET_PLATFORM != CC_PLATFORM_ANDROID)
// android and ios don't use CURL
2015-04-03 11:54:39 +08:00
addTest("Curl", []() { return new CurlTests(); });
#endif
2015-04-03 11:54:39 +08:00
addTest("Current Language", []() { return new CurrentLanguageTests(); });
Squashed commit of the following: commit 2c810a8e931e07b06498c07db37cbf20a2bcfc92 Merge: 61788a0 082caaf Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 13 00:13:38 2015 -0700 Merge branch 'v3' into downloader_decouple commit 61788a0b34188fed5367cab121817db97198bcd8 Merge: 8c1e211 5e21580 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 20:45:12 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8c1e2119a5c671c00da5ce1fb244029f2bfab09f Merge: 2ea66af 8d73883 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 20:42:04 2015 -0700 Merge pull request #6 from minggo/downloader_decouple fix js binding error commit 8d7388302ff1d8da575b277e47a3f8ceb1017e98 Author: minggo <ming@cocos2d-x.org> Date: Thu Aug 13 11:09:58 2015 +0800 fix js binding error commit 2ea66af7684f5ec8a20067b1a49347920dbbbb40 Merge: 8cdb0b6 bc964e8 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 09:14:22 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8cdb0b6e4b83210b1f68b4568c74ccb36f504806 Merge: 9272765 08eeca9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 20:11:46 2015 -0700 Merge pull request #5 from minggo/downloader_decouple fix lua-binding error commit 08eeca9d99b5160c48bac1bfecf03b459d05ed15 Author: minggo <ming@cocos2d-x.org> Date: Wed Aug 12 10:34:05 2015 +0800 fix lua-binding error commit 927276589d57432477f8ffc033e19a21a215b246 Merge: 8252464 6f4ed8a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 10:39:22 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8252464020dbe86da4e5e5aa6e4e45f6997f6b9b Merge: 5dddbb6 138df42 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 06:53:48 2015 -0700 Merge pull request #4 from minggo/downloader_decouple fix linking error in lua-tests on Android commit 138df42a3acfdcfae29eeab1b03ef5dd062f0145 Author: minggo <ming@cocos2d-x.org> Date: Tue Aug 11 16:23:53 2015 +0800 fix link error in lua-tests commit 5dddbb61a1bcda96aa93bfcbe78f42c639eb6247 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 23:22:50 2015 -0700 works for real on win32 commit ddadaf82231b60c8e343718561c0d78657afe7c2 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 22:26:59 2015 -0700 compiles on win32 commit 733f1d4c2e4f8382ff19f1793f7f09950774fe78 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 21:57:49 2015 -0700 compiles on iOS!! commit f706f97962eb393bf7dfec79739ff8dfdec103d5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 21:27:03 2015 -0700 compiles and runs Ok on windows. Tested all downloadertests + assetmanagertest commit 5e333f4407952d9c2e71e18cb9393d8b6cd170b4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 20:24:28 2015 -0700 updates windows projects commit e77fd8a278594fefc24ff13cbee038508429294d Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 19:56:10 2015 -0700 compiles on Android commit 5f515e3519a0688d11476ea6ef235007e8378c96 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 18:34:33 2015 -0700 trying to fix a compile issue on iOS WIP commit b144ea67dfe7a06e7bfb515adf16f536ba2ead98 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 18:25:11 2015 -0700 make bug fixes adds public `getHeader` commit a228799ba74eb8642c43d215a802f811a576a4aa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 17:42:19 2015 -0700 some linux fixes commit 2cab23d87acc138823ebe9dcec9d42f827690d99 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 16:58:53 2015 -0700 Squashed commit of the following: commit 86227e9138c1fb523bd28186d355de65cc64c588 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 16:55:17 2015 -0700 works %100 and uses less memory than before commit a9cafa6f2fe7847e279934d2c162287680760dda Merge: 0bbc62e 0cbd71f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 15:49:33 2015 -0700 Merge branch 'v3' into cocos_net commit 0bbc62ee1fbfd107a935131d5d93994e87865afa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 15:46:55 2015 -0700 more tests... and works but there is huge bug. ProgData <vector> needs the position of DownloadUnits <unordered_map> but <unordered_map> does not guaranty the order. So in my next commit I"ll merge DownloadUnit with ProgressData commit 389ed8639a1942f628773616a8e340bc66a0c1d7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 13:47:07 2015 -0700 debugging info commit af0dc45bb9c4705934ced2c1d67e5afc06b6f317 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 11:47:31 2015 -0700 sync and async tests working ok commit 999fa7a7bfb28565492f47b39caef7f1a079c183 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 11:38:38 2015 -0700 adding tests commit 91ee294942510718400edc0d00d3c744d00339ee Merge: 76ab703 7f215e9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 10:03:50 2015 -0700 Merge branch 'v3' into cocos_net commit 76ab7032d3a21156f05395a021391a16649f755a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 00:22:20 2015 -0700 Downloader tests commit b65c4dad7089660bfe697c0dab3e9290d1a6d013 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 6 21:34:54 2015 -0700 compiles on Xcode 7 commit ec0d66340b8daf0b042d36333dff759cd424f465 Merge: 878e4b5 0d77838 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 6 11:02:24 2015 -0700 Merge branch 'v3' into cocos_net commit 878e4b5d0f87bc6d5d6e507102ab15e2c24a1c8f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 18:07:02 2015 -0700 working, yeah! commit ad1e7637a5ac2e6bff44d35429f5556ea1cb8a4c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 17:49:59 2015 -0700 code is more thread-safe friendly commit 8c6baaee6b898d4b90e5d8988a174d8a33702f60 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 16:39:02 2015 -0700 fixes callbacks commit ddab4d753106c6ff11304c1c69739c5611e3f20a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 15:43:51 2015 -0700 cleaner code runs callbacks in cocos2d thread only if needed commit ef75844aaa010633e6e27ae6e69460174460d5c7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 11:58:04 2015 -0700 removed weak_ptr<> from ProgressData that logic of the code is added in the callbacks commit d9c7436cbadc611592b3c80ca2a3a9edeaa00853 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 11:54:07 2015 -0700 checks whether or not the callbacks are in the cocos2d thread commit ae6594a6f866f6b5015ba293db23343887063d2f Merge: 4c61069 6831e24 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 10:48:34 2015 -0700 Merge branch 'v3' into cocos_net commit 4c61069a7e0e33fa0332df700cc8df4807178caf Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 21:36:50 2015 -0700 almost there... Downloader has std::vector<FILE*> instead of FileDescriptors code cleaner... commit c34d04a8218d2be5c316e0487e5ac46792bbed76 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 20:38:44 2015 -0700 passes progressData to batch no need to alloc memory for each ProgressData commit f7e8bbd8b85f214b919bce6118d4158dd6d26368 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 17:47:23 2015 -0700 tidier code and more optimizations commit a486dc78aedcf9c6178e490292edd572f8a7b374 Merge: 4178327 a06421b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 14:03:22 2015 -0700 Merge branch 'v3' into cocos_net commit 417832705910a6ebd16a876cd98064ea16f0f45c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 18:13:13 2015 -0700 not finished yet... ...but trying to have a common inteface with batched and non-batched downloads commit 1d0e4652763c2e1511ac102a62defae6c6a89220 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 16:29:39 2015 -0700 ErrorCallback compiles starting the batching code commit 6645a287c47dc01cbf1f2d80e9c0fdd2b16e3e18 Merge: c180425 8d836da Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 10:28:51 2015 -0700 Merge branch 'v3' into cocos_net commit c180425d8181b8e6f53be766d8d2b94f908ae168 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 15:35:53 2015 -0700 More progress on migrating multiple-file downloader to the implementation file commit 5fa273e265963af3c0cb6338bf49dc5e1b54173b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 14:00:02 2015 -0700 Dowloader moved to `cocos2d::network` commit 14b1d0825106701b5435a266b255f09291b6486b Merge: 13cfc8d f744383 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 11:13:55 2015 -0700 Merge branch 'v3' into cocos_net commit 13cfc8de4eb4835ffb8f8d671d3d070c411b0a2e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 11:11:45 2015 -0700 DownloadUnits belong to network commit e6e17564ead1fb7f6f7df343b0627a104cd756f8 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 12:23:36 2015 -0700 adds `check for option` commit 5cb76dfaaed42011a0c536d01b82a0a94487d6aa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 10:37:51 2015 -0700 Downloader: using URLDownload in one case. 3 more to go. Not tested yet commit 9b26e9cfac425635027189ccab835054b68bc83d Merge: 20fe063 253d9c4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 08:35:53 2015 -0700 Merge branch 'v3' into cocos_net commit 20fe0636e36ae7f1da048545b3345f526d5b64de Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 17:36:07 2015 -0700 URLDownload: initial commit HttpAsyncConnection -> HttpAsyncConnection-apple: follows the cocos2d guidelines Adds `CCIRULDownload` interface. Adds `CCURLDownload` implementation based on libcurl. Not working yet. `Downloader` uses `URLDownload` for some of its functions. WIP commit 3a5d3b83838bee53e3bbea182f3ad09d7bec32d0 Merge: e408fe0 642ccac Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 14:00:43 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into cocos_net commit e408fe0b9303813d20bab2f7bf548f3b7af416a6 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 13:59:46 2015 -0700 Adds more files to Xcode project ...even if they are not being compiled. Much easier to add missing functionality to the rest of the platforms commit 11d86acebeb61348e4ccf7e6af9a2eaf1b6bb534 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 11:36:57 2015 -0700 removes unneeded headers
2015-08-13 15:14:10 +08:00
addTest("Downloader Test", []() { return new DownloaderTests(); });
2015-04-03 11:54:39 +08:00
addTest("EventDispatcher", []() { return new EventDispatcherTests(); });
addTest("Effects - Advanced", []() { return new EffectAdvanceTests(); });
addTest("Effects - Basic", [](){return new EffectTests(); });
addTest("Extensions", []() { return new ExtensionsTests(); });
addTest("FileUtils", []() { return new FileUtilsTests(); });
addTest("Fonts", []() { return new FontTests(); });
addTest("Interval", [](){return new IntervalTests(); });
2015-11-08 04:57:05 +08:00
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
addTest("JNIHelper", []() { return new JNITests(); });
#endif
Squashed commit of the following: commit 3676fd8b4fe09be74fe10a6e2b8d6043cd016a2a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue May 5 11:46:57 2015 -0700 compiles on win32 commit 0b8d30a3f8b2656e714846a62ca8a94b303efbdc Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue May 5 11:01:04 2015 -0700 compiles on windows! commit 8cad22273ec2d9b74ef22196afcb8aa2f2bd8a6c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue May 5 10:20:13 2015 -0700 windows fix CALLBACK is defined in windows. Use CALLBACK_FN instead commit 33eff5c09c30e5ba6c8e61a69d1be0696d0b5d15 Merge: 17c5102 f843466 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue May 5 09:51:02 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 17c5102215e60c9e9b8b69ceb6b61b84b657ec91 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon May 4 17:05:49 2015 -0700 Material system works Ok. Deftaul states are being applyied to RenderState::StateBlock::_default state as well! commit 3f5285102ef95c77c505d0f2174f8f77b9bd86e1 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon May 4 15:52:09 2015 -0700 more fixes for material blending works as expected commit 347eaea42248eb07bc77844dcee56dcbcf0fbcb2 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon May 4 12:14:00 2015 -0700 compiles on Android compiles on Android commit 5feef67410a6e8408414230887c177a5cc3d8c35 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon May 4 11:01:46 2015 -0700 Cmakefiles works with Cmake again commit 1366da20efd4f63f683ac9264e18aa71d84bcc71 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sat May 2 18:17:50 2015 -0700 Particle3D working Ok with its own uniforms commit c6cfa32e1f693e6d71d00e0cd9dd9610ca1e7663 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri May 1 17:32:00 2015 -0700 MeshCommand now works 100% on Material! commit 92d641e29675ffc58daba48fcdcc5ec6459be02f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri May 1 15:49:14 2015 -0700 multiple meshes work Ok commit 842927d18b5605b2fd1bd3a679fc25418c7eeab8 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri May 1 13:43:56 2015 -0700 Adds `clone` to GLProgramState commit c4b8e222f8e852254b1f23f0e17c16dfca7cc5ca Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 18:54:34 2015 -0700 adds comment about the glprogramstate bug commit 2d008ec90557025507e0b17284e60b39fc9b42d3 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 18:28:39 2015 -0700 some uniforms moved to Material commit 11f59f87079a6cb698c7e9b5a55735f6d51cf420 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 16:52:07 2015 -0700 depth test moved to Material! commit 4dabb53641c293bfe8c417fe3491ec33b33ffc4e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 13:12:28 2015 -0700 Material/Technique/Pass subclass of RenderState Inheritance of RenderState. Code from GamePlay3D commit a8b888dc30cf7ab4fae186acec2a366dfb967116 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 12:05:26 2015 -0700 same as v3 commit c026de5318a2a03beed1de6d7a0efda431569a5c Merge: 4561e3f 254a4b0 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 30 11:37:40 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 4561e3f5763849872d888a3be9ebbdcfb1a7bf9d Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 18:02:21 2015 -0700 fixes on blending commit 1b4cd8fd1c7b2a489b6a52ab6d42548eb7c7fac0 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 17:51:05 2015 -0700 better defaults for StateBlock commit 3a661c35908aa075754d7b9dfac45be1af3b38e9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 17:46:36 2015 -0700 RenderState::bind() binds lots of states commit 074d5fb4a485e4ac32996c345e314594806e3cf0 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 16:40:07 2015 -0700 Adds REnderState parsing in .material commit 7c0f098b7e2e198aa4a821bfbdec661eeba2587e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 16:06:31 2015 -0700 RenderState added into RenderState Code based on GamePlay3D. Adds GamePlay3d License. commit 04a6295ca5839e2e1202881b8a10733685c113d6 Merge: 52c916f 5671818 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 29 11:27:55 2015 -0700 Merge branch 'v3' into material_system commit 52c916fb4df04558433b1370102a5e9269f73607 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 18:15:12 2015 -0700 order files alphabetically order files alphabetically commit a5f54f0c1ca5d997a87e0231ce1b28d3c8d9ca64 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 17:46:07 2015 -0700 Adds cmake and android support commit 2432b1dd2ec3c7db78d4d9e5e7b9fbe491b95884 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 16:33:50 2015 -0700 for some reason the callback was crashing ... bug in the callback code? in any case, we didn't need it and it was making the code slower. commit 7844d32d04cb411ddae139d9598adcb04b899606 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 14:00:24 2015 -0700 more little fixes commit 2992a5e0f4a8dfac87d6aab37e101154f8b41519 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 12:11:28 2015 -0700 MeshCommand using Material internally works commit 67a435d66b4e554b4d24e462ca2ad42408157e69 Merge: 6dee7ca b9a994f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 28 10:34:03 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 6dee7cac6a51b4c123aabb111b0f8951082b1507 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 27 17:41:27 2015 -0700 improved readebility of MeshCommand code commit 3a57eb200f7cba4a17f512060dd3f121d83e32fd Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 27 15:41:07 2015 -0700 mesh supports Material `Mesh` supports `Material` Now `MeshCommand` needs to implement it correctly. commit 2fc745c787555fbd5c6b100b0a2833ef0e65ad73 Merge: 05b16f5 bd5f4e0 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 27 11:23:28 2015 -0700 Merge branch 'v3' into material_system commit 05b16f5c6f783ff38b4ae54528f9b949d8bb39a4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 17:40:48 2015 -0700 Adding Material into Mesh WIP. commit bc62f1a146ff9ad9864d8ff317f6a9540760066a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 16:39:54 2015 -0700 cosmetic commit 2f86d50cee15c6af20abb512368aa36dc4ed3ccf Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 16:26:41 2015 -0700 moves even more code form Sprite3D to Mesh commit 04643bed3c277f0a775e962a5c87f550b1a59e74 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 16:15:21 2015 -0700 Moves "draw" from `Sprite3D` to `Mesh` commit 4bf884cdcb1a8df7522adeab364368493aba11e0 Merge: 2f305fc 2199bf1 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 15:00:50 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 2f305fc68ad847fd4bdf855611c6f6f6a4bf63d2 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 24 14:46:28 2015 -0700 cosmetic commit a697b43a96e5f9440787aa2a1c4e178d98b2e5bc Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 23 16:44:21 2015 -0700 revert my changes... ...actually the GLProgramState code was Ok... ouch commit 36323c62eae2f8dbdcd7e13075758752cce44132 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 23 15:40:54 2015 -0700 parsing GLProgramState validates the attributes commit a406d6236a78244f73e81ded0b4148199a8677e5 Merge: 3be7fde cf177bb Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 23 12:10:31 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 3be7fdee9d88a14916b4f25b1c0b6f50cb619c04 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 22 17:45:34 2015 -0700 little progress on Sprite3D + Material GLProgramState needs to decouple Uniforms from Attributes in `applyGLProgram`. binding the attributes is something that needs to be done at a different order. Perhaps the attributes are part of a VAO or something else. the method `applyAttributes()` has a variable to avoid that... but everything looks very hackish. commit f82496c61c9cb5a0787f883a4fb2d475889fa711 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 22 15:46:02 2015 -0700 doesn't crash :) but doesn't show anything either commit 0593fb09dc987aa2dd22af3a6c3aa8241fedfe5f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 22 13:35:45 2015 -0700 adding sprit3d test commit e716da63fe053b48db06f2aed9e0280256dd5f1b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 22 12:10:32 2015 -0700 MeshCommand: initial draw with Material commit d758041d81c3e6275997205e6395c46006bcc4ca Merge: 8cdc99f ca1a95f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 22 10:41:05 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 8cdc99fca664b0c9c2a536d431ffcc7844d69b3e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 21 21:57:28 2015 -0700 adding Material to MeshCommand commit 0121872709c5e584b9b9f102e0f8dfc9c836841b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 21 19:39:09 2015 -0700 pre commit before merging MeshCommand commit 06c0ac2a67e303bde98dff75ac436ec22de59263 Merge: 736feb1 0287b42 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 21 18:19:00 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 736feb1b6495b7411525afb130015bdb31b5c471 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 20 17:22:03 2015 -0700 Pass conforms to create()/init() pattern commit 6103ffbb8479681b6665e81f0572bc3287919d07 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 20 17:04:19 2015 -0700 defines are strings better error checking when creating objects autorelase added in Pass, Material, Technique commit 1efcbab63c7ca4259d50825144184baee1b577ac Merge: 5b233bc fd3e38b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 20 11:23:47 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 5b233bc879bd65123092d366257843465ec1d306 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 17 15:31:37 2015 -0700 blur effect works with alpha commit 836d3c4a0dcc3a363e1b0290e628b7ac2a973c89 Merge: e4c1dd2 425b2b6 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 17 15:04:35 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit e4c1dd23d8b28f2631efe30f6cc9da9eda4501bb Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 17 15:04:07 2015 -0700 Material, Technique, Pass: they have parent commit 7c3f258a1c9e4ff319db4e3eebfd39006d673d91 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 16 21:48:06 2015 -0700 multipass works commit b73ede73b72d8305f6f9d7898b4a5aa2336e9e32 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 16 17:31:04 2015 -0700 yeah! more materials... a lot to do yet commit d54d24ed185071ce1350bbf71914a64c9f6f228e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 16 17:06:46 2015 -0700 yeah! works! commit 1e70cb553148e6c136df42a789bf85184e73762d Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 16 16:43:54 2015 -0700 simple test of material system works!!! commit c8581dfe9e970a3004254987416d75cccc644ccd Merge: 83aeec4 5d5fa3d Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 16 13:51:45 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into material_system commit 83aeec41c7933ee46f5763ad64dcdc71a50885dc Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 15 18:04:23 2015 -0700 JSON file curated fixes minor bugs commit 35f669e7fad6257ff6e60023e95ec757fdfe23f5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 15 17:22:36 2015 -0700 parsers shaders! including uniforms commit 3f58bad0b2bc7ebbcfcf74e1eb02048f9d574340 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 14 23:24:18 2015 -0700 Material parses texture commit 1f678faf9d6c25f6405591f052da511281be8768 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 14 18:22:33 2015 -0700 material parsing almost working commit 9a79c45fe4d735a772d5e6d9e1f8bcb02546560d Merge: d0ff296 d54ddbd Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Apr 14 09:23:23 2015 -0700 Merge branch 'v3' into material_system commit d0ff2960f4f9edc4714f9d3edf921f3365d305c7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 13 18:42:42 2015 -0700 json parsing broken ha... I need to parse the content of the file, to the name of the file. to be fixed tomorrow commit e5aab39e5774d997f848155fc7209e9fbbd03bbc Merge: 81e93fa bc34554 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Apr 13 10:19:11 2015 -0700 Merge branch 'v3' into material_system commit 81e93faac9d80888e975ee19d7412c54daf439a0 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 10 17:41:12 2015 -0700 Adds more dummy files for material commit 5552a1e099bcf960d962c5369973ea663f802895 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 10 17:01:16 2015 -0700 adds empty test commit 7027c85fb24109f1ed4c50877dbec35618b5b39c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 10 15:36:24 2015 -0700 more material fixes multiple passes added in renderer commit db6745ead9879c6ce66b1921f32bf927421c54d9 Merge: 58d2412 8a160d7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 10 11:52:30 2015 -0700 Merge branch 'v3' into material_system commit 58d241266bdbd88162bb7ae9a7e868af173e6375 Merge: 0eccb23 b409f20 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 9 15:42:35 2015 -0700 Merge branch 'v3' into material_system commit 0eccb236aa933eb471416258c5bb55a7ca3a24f0 Merge: 83494de 967f35a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 9 15:18:34 2015 -0700 Merge branch 'cpp_compiles_on_mac' into material_system commit 83494dedd0f4e7092f0267187cf07bd7de7723c2 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 9 15:09:59 2015 -0700 compiles on Mac commit cca5b060164182b67df21fa330dce938e17fb324 Merge: dfc3740 09c50c4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 9 13:54:59 2015 -0700 Merge branch 'v3' into material_system commit dfc374099ca02e547478d24fa8fd61817a85862c Merge: fa2152b 64c45fa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Apr 8 14:16:27 2015 -0700 Merge branch 'v3' into material_system commit fa2152b3402e3519d35f98309c4acc03b6790370 Merge: 90b7b6f b648d1f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 3 10:15:28 2015 +0800 Merge branch 'v3' into material_system commit 90b7b6f6540edff156e22fdf38021a5c83194deb Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Apr 3 10:13:24 2015 +0800 little changes to pass commit 7f8b83017f03572a3698f431b6af497d62fcfa25 Merge: 7460614 0779d05 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 2 08:36:43 2015 +0800 Merge branch 'v3' into material_system commit 7460614dd8b7eff5d8c759be54dd205333b26033 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Apr 2 08:23:17 2015 +0800 small changes commit fa0354e74983795adafad3bedc9c50f6e8e328c9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Mar 26 18:20:46 2015 -0700 initial Material system
2015-05-06 04:07:32 +08:00
addTest("Material System", [](){return new MaterialSystemTest(); });
2015-05-29 16:45:33 +08:00
addTest("Navigation Mesh", [](){return new NavMeshTests(); });
2015-04-03 11:54:39 +08:00
addTest("Node: BillBoard Test", [](){ return new BillBoardTests(); });
addTest("Node: Camera 3D Test", [](){ return new Camera3DTests(); });
addTest("Node: Clipping", []() { return new ClippingNodeTests(); });
addTest("Node: Draw", [](){return new DrawPrimitivesTests(); });
addTest("Node: Label - New API", [](){return new NewLabelTests(); });
addTest("Node: Label - Old API", [](){return new LabelTests(); });
addTest("Node: Layer", [](){return new LayerTests(); });
addTest("Node: Light", [](){return new LightTests(); });
addTest("Node: Menu", [](){return new MenuTests(); });
addTest("Node: MotionStreak", [](){return new MotionStreakTests(); });
addTest("Node: Node", [](){return new CocosNodeTests(); });
addTest("Node: Parallax", [](){return new ParallaxTests(); });
addTest("Node: Particles", [](){return new ParticleTests(); });
2015-04-07 11:43:02 +08:00
addTest("Node: Particle3D (PU)", [](){return new Particle3DTests(); });
2015-09-08 09:54:01 +08:00
#if CC_USE_PHYSICS
2015-04-03 11:54:39 +08:00
addTest("Node: Physics", []() { return new PhysicsTests(); });
2015-09-08 09:54:01 +08:00
#endif
Squashed commit of the following: commit 2c810a8e931e07b06498c07db37cbf20a2bcfc92 Merge: 61788a0 082caaf Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 13 00:13:38 2015 -0700 Merge branch 'v3' into downloader_decouple commit 61788a0b34188fed5367cab121817db97198bcd8 Merge: 8c1e211 5e21580 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 20:45:12 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8c1e2119a5c671c00da5ce1fb244029f2bfab09f Merge: 2ea66af 8d73883 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 20:42:04 2015 -0700 Merge pull request #6 from minggo/downloader_decouple fix js binding error commit 8d7388302ff1d8da575b277e47a3f8ceb1017e98 Author: minggo <ming@cocos2d-x.org> Date: Thu Aug 13 11:09:58 2015 +0800 fix js binding error commit 2ea66af7684f5ec8a20067b1a49347920dbbbb40 Merge: 8cdb0b6 bc964e8 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 12 09:14:22 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8cdb0b6e4b83210b1f68b4568c74ccb36f504806 Merge: 9272765 08eeca9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 20:11:46 2015 -0700 Merge pull request #5 from minggo/downloader_decouple fix lua-binding error commit 08eeca9d99b5160c48bac1bfecf03b459d05ed15 Author: minggo <ming@cocos2d-x.org> Date: Wed Aug 12 10:34:05 2015 +0800 fix lua-binding error commit 927276589d57432477f8ffc033e19a21a215b246 Merge: 8252464 6f4ed8a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 10:39:22 2015 -0700 Merge branch 'v3' into downloader_decouple commit 8252464020dbe86da4e5e5aa6e4e45f6997f6b9b Merge: 5dddbb6 138df42 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 11 06:53:48 2015 -0700 Merge pull request #4 from minggo/downloader_decouple fix linking error in lua-tests on Android commit 138df42a3acfdcfae29eeab1b03ef5dd062f0145 Author: minggo <ming@cocos2d-x.org> Date: Tue Aug 11 16:23:53 2015 +0800 fix link error in lua-tests commit 5dddbb61a1bcda96aa93bfcbe78f42c639eb6247 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 23:22:50 2015 -0700 works for real on win32 commit ddadaf82231b60c8e343718561c0d78657afe7c2 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 22:26:59 2015 -0700 compiles on win32 commit 733f1d4c2e4f8382ff19f1793f7f09950774fe78 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 21:57:49 2015 -0700 compiles on iOS!! commit f706f97962eb393bf7dfec79739ff8dfdec103d5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 21:27:03 2015 -0700 compiles and runs Ok on windows. Tested all downloadertests + assetmanagertest commit 5e333f4407952d9c2e71e18cb9393d8b6cd170b4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 20:24:28 2015 -0700 updates windows projects commit e77fd8a278594fefc24ff13cbee038508429294d Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 19:56:10 2015 -0700 compiles on Android commit 5f515e3519a0688d11476ea6ef235007e8378c96 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 18:34:33 2015 -0700 trying to fix a compile issue on iOS WIP commit b144ea67dfe7a06e7bfb515adf16f536ba2ead98 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 18:25:11 2015 -0700 make bug fixes adds public `getHeader` commit a228799ba74eb8642c43d215a802f811a576a4aa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 17:42:19 2015 -0700 some linux fixes commit 2cab23d87acc138823ebe9dcec9d42f827690d99 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 16:58:53 2015 -0700 Squashed commit of the following: commit 86227e9138c1fb523bd28186d355de65cc64c588 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 16:55:17 2015 -0700 works %100 and uses less memory than before commit a9cafa6f2fe7847e279934d2c162287680760dda Merge: 0bbc62e 0cbd71f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 15:49:33 2015 -0700 Merge branch 'v3' into cocos_net commit 0bbc62ee1fbfd107a935131d5d93994e87865afa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 15:46:55 2015 -0700 more tests... and works but there is huge bug. ProgData <vector> needs the position of DownloadUnits <unordered_map> but <unordered_map> does not guaranty the order. So in my next commit I"ll merge DownloadUnit with ProgressData commit 389ed8639a1942f628773616a8e340bc66a0c1d7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 13:47:07 2015 -0700 debugging info commit af0dc45bb9c4705934ced2c1d67e5afc06b6f317 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 11:47:31 2015 -0700 sync and async tests working ok commit 999fa7a7bfb28565492f47b39caef7f1a079c183 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 11:38:38 2015 -0700 adding tests commit 91ee294942510718400edc0d00d3c744d00339ee Merge: 76ab703 7f215e9 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 10:03:50 2015 -0700 Merge branch 'v3' into cocos_net commit 76ab7032d3a21156f05395a021391a16649f755a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Aug 7 00:22:20 2015 -0700 Downloader tests commit b65c4dad7089660bfe697c0dab3e9290d1a6d013 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 6 21:34:54 2015 -0700 compiles on Xcode 7 commit ec0d66340b8daf0b042d36333dff759cd424f465 Merge: 878e4b5 0d77838 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Aug 6 11:02:24 2015 -0700 Merge branch 'v3' into cocos_net commit 878e4b5d0f87bc6d5d6e507102ab15e2c24a1c8f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 18:07:02 2015 -0700 working, yeah! commit ad1e7637a5ac2e6bff44d35429f5556ea1cb8a4c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 17:49:59 2015 -0700 code is more thread-safe friendly commit 8c6baaee6b898d4b90e5d8988a174d8a33702f60 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 16:39:02 2015 -0700 fixes callbacks commit ddab4d753106c6ff11304c1c69739c5611e3f20a Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 15:43:51 2015 -0700 cleaner code runs callbacks in cocos2d thread only if needed commit ef75844aaa010633e6e27ae6e69460174460d5c7 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 11:58:04 2015 -0700 removed weak_ptr<> from ProgressData that logic of the code is added in the callbacks commit d9c7436cbadc611592b3c80ca2a3a9edeaa00853 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 11:54:07 2015 -0700 checks whether or not the callbacks are in the cocos2d thread commit ae6594a6f866f6b5015ba293db23343887063d2f Merge: 4c61069 6831e24 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Aug 5 10:48:34 2015 -0700 Merge branch 'v3' into cocos_net commit 4c61069a7e0e33fa0332df700cc8df4807178caf Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 21:36:50 2015 -0700 almost there... Downloader has std::vector<FILE*> instead of FileDescriptors code cleaner... commit c34d04a8218d2be5c316e0487e5ac46792bbed76 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 20:38:44 2015 -0700 passes progressData to batch no need to alloc memory for each ProgressData commit f7e8bbd8b85f214b919bce6118d4158dd6d26368 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 17:47:23 2015 -0700 tidier code and more optimizations commit a486dc78aedcf9c6178e490292edd572f8a7b374 Merge: 4178327 a06421b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Tue Aug 4 14:03:22 2015 -0700 Merge branch 'v3' into cocos_net commit 417832705910a6ebd16a876cd98064ea16f0f45c Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 18:13:13 2015 -0700 not finished yet... ...but trying to have a common inteface with batched and non-batched downloads commit 1d0e4652763c2e1511ac102a62defae6c6a89220 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 16:29:39 2015 -0700 ErrorCallback compiles starting the batching code commit 6645a287c47dc01cbf1f2d80e9c0fdd2b16e3e18 Merge: c180425 8d836da Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Mon Aug 3 10:28:51 2015 -0700 Merge branch 'v3' into cocos_net commit c180425d8181b8e6f53be766d8d2b94f908ae168 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 15:35:53 2015 -0700 More progress on migrating multiple-file downloader to the implementation file commit 5fa273e265963af3c0cb6338bf49dc5e1b54173b Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 14:00:02 2015 -0700 Dowloader moved to `cocos2d::network` commit 14b1d0825106701b5435a266b255f09291b6486b Merge: 13cfc8d f744383 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 11:13:55 2015 -0700 Merge branch 'v3' into cocos_net commit 13cfc8de4eb4835ffb8f8d671d3d070c411b0a2e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Fri Jul 31 11:11:45 2015 -0700 DownloadUnits belong to network commit e6e17564ead1fb7f6f7df343b0627a104cd756f8 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 12:23:36 2015 -0700 adds `check for option` commit 5cb76dfaaed42011a0c536d01b82a0a94487d6aa Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 10:37:51 2015 -0700 Downloader: using URLDownload in one case. 3 more to go. Not tested yet commit 9b26e9cfac425635027189ccab835054b68bc83d Merge: 20fe063 253d9c4 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Thu Jul 30 08:35:53 2015 -0700 Merge branch 'v3' into cocos_net commit 20fe0636e36ae7f1da048545b3345f526d5b64de Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 17:36:07 2015 -0700 URLDownload: initial commit HttpAsyncConnection -> HttpAsyncConnection-apple: follows the cocos2d guidelines Adds `CCIRULDownload` interface. Adds `CCURLDownload` implementation based on libcurl. Not working yet. `Downloader` uses `URLDownload` for some of its functions. WIP commit 3a5d3b83838bee53e3bbea182f3ad09d7bec32d0 Merge: e408fe0 642ccac Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 14:00:43 2015 -0700 Merge remote-tracking branch 'cocos2d/v3' into cocos_net commit e408fe0b9303813d20bab2f7bf548f3b7af416a6 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 13:59:46 2015 -0700 Adds more files to Xcode project ...even if they are not being compiled. Much easier to add missing functionality to the rest of the platforms commit 11d86acebeb61348e4ccf7e6af9a2eaf1b6bb534 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Wed Jul 29 11:36:57 2015 -0700 removes unneeded headers
2015-08-13 15:14:10 +08:00
addTest("Node: Physics3D", []() { return new Physics3DTests(); } );
2015-04-03 11:54:39 +08:00
addTest("Node: RenderTexture", [](){return new RenderTextureTests(); });
addTest("Node: Scene", [](){return new SceneTests(); });
2015-04-07 11:43:02 +08:00
addTest("Node: Spine", [](){return new SpineTests(); });
2015-04-03 11:54:39 +08:00
addTest("Node: Sprite", [](){return new SpriteTests(); });
addTest("Node: Sprite3D", [](){ return new Sprite3DTests(); });
2015-05-06 08:17:41 +08:00
addTest("Node: SpritePolygon", [](){return new (std::nothrow) SpritePolygonTest(); });
addTest("Node: Terrain", [](){ return new TerrainTests(); });
2015-04-03 11:54:39 +08:00
addTest("Node: TileMap", [](){return new TileMapTests(); });
addTest("Node: FastTileMap", [](){return new FastTileMapTests(); });
addTest("Node: Text Input", [](){return new TextInputTests(); });
addTest("Node: UI", [](){ return new UITests(); });
addTest("Mouse", []() { return new MouseTests(); });
addTest("MultiTouch", []() { return new MutiTouchTests(); });
addTest("Renderer", []() { return new NewRendererTests(); });
addTest("ReleasePool", [](){ return new ReleasePoolTests(); });
addTest("Rotate World", [](){return new RotateWorldTests(); });
2015-08-25 10:28:18 +08:00
addTest("Scheduler", [](){return new SchedulerTests(); });
2015-04-03 11:54:39 +08:00
addTest("Shader - Basic", []() { return new ShaderTests(); });
addTest("Shader - Sprite", []() { return new Shader2Tests(); });
addTest("Texture2D", [](){return new Texture2DTests(); });
addTest("TextureCache", []() { return new TextureCacheTests(); });
addTest("TexturePacker Encryption", []() { return new TextureAtlasEncryptionTests(); });
addTest("Touches", [](){return new TouchesTests(); });
addTest("Transitions", [](){return new TransitionsTests(); });
addTest("Unit Test", []() { return new UnitTests(); });
addTest("URL Open Test", []() { return new OpenURLTests(); });
addTest("UserDefault", []() { return new UserDefaultTests(); });
addTest("Vibrate", []() { return new VibrateTests(); });
2015-04-03 11:54:39 +08:00
addTest("Zwoptex", []() { return new ZwoptexTests(); });
addTest("SpriteFrameCache", []() { return new SpriteFrameCacheTests(); });
2015-04-03 11:54:39 +08:00
}
};
TestController::TestController()
2015-04-03 11:54:39 +08:00
: _stopAutoTest(true)
, _isRunInBackground(false)
, _testSuite(nullptr)
{
2015-05-07 16:22:30 +08:00
_rootTestList = new (std::nothrow) RootTests;
2015-04-03 11:54:39 +08:00
_rootTestList->runThisTest();
_director = Director::getInstance();
2015-04-03 11:54:39 +08:00
_touchListener = EventListenerTouchOneByOne::create();
_touchListener->onTouchBegan = CC_CALLBACK_2(TestController::blockTouchBegan, this);
_touchListener->setSwallowTouches(true);
2015-04-03 11:54:39 +08:00
_director->getEventDispatcher()->addEventListenerWithFixedPriority(_touchListener, -200);
}
TestController::~TestController()
{
2015-04-03 11:54:39 +08:00
_director->getEventDispatcher()->removeEventListener(_touchListener);
_rootTestList->release();
_rootTestList = nullptr;
}
2015-04-03 11:54:39 +08:00
void TestController::startAutoTest()
{
2015-04-03 11:54:39 +08:00
if (!_autoTestThread.joinable())
{
2015-04-03 11:54:39 +08:00
_stopAutoTest = false;
_logIndentation = "";
_autoTestThread = std::thread(&TestController::traverseThreadFunc, this);
2015-04-03 11:54:39 +08:00
_autoTestThread.detach();
}
}
2015-04-03 11:54:39 +08:00
void TestController::stopAutoTest()
{
2015-04-03 11:54:39 +08:00
_stopAutoTest = true;
if (_autoTestThread.joinable()) {
_sleepCondition.notify_all();
_autoTestThread.join();
}
}
void TestController::traverseThreadFunc()
{
std::mutex sleepMutex;
auto lock = std::unique_lock<std::mutex>(sleepMutex);
_sleepUniqueLock = &lock;
traverseTestList(_rootTestList);
_sleepUniqueLock = nullptr;
}
2015-04-03 11:54:39 +08:00
void TestController::traverseTestList(TestList* testList)
{
2015-04-03 11:54:39 +08:00
if (testList == _rootTestList)
{
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(500));
}
2015-04-03 11:54:39 +08:00
else
{
2015-04-03 11:54:39 +08:00
_logIndentation += LOG_INDENTATION;
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(500));
}
2015-04-03 11:54:39 +08:00
logEx("%s%sBegin traverse TestList:%s", LOG_TAG, _logIndentation.c_str(), testList->getTestName().c_str());
2015-04-03 11:54:39 +08:00
auto scheduler = _director->getScheduler();
int testIndex = 0;
for (auto& callback : testList->_testCallbacks)
{
if (_stopAutoTest) break;
while (_isRunInBackground)
{
logEx("_director is paused");
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(500));
2015-04-03 11:54:39 +08:00
}
if (callback)
{
auto test = callback();
test->setTestParent(testList);
test->setTestName(testList->_childTestNames[testIndex++]);
if (test->isTestList())
{
scheduler->performFunctionInCocosThread([&](){
test->runThisTest();
});
2015-04-03 11:54:39 +08:00
traverseTestList((TestList*)test);
}
else
{
traverseTestSuite((TestSuite*)test);
}
}
}
2015-04-03 11:54:39 +08:00
if (testList == _rootTestList)
{
2015-04-03 11:54:39 +08:00
_stopAutoTest = true;
}
2015-04-03 11:54:39 +08:00
else
{
2015-04-03 11:54:39 +08:00
if (!_stopAutoTest)
{
//Backs up one level and release TestList object.
scheduler->performFunctionInCocosThread([&](){
testList->_parentTest->runThisTest();
});
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(500));
2015-04-03 11:54:39 +08:00
testList->release();
}
_logIndentation.erase(_logIndentation.rfind(LOG_INDENTATION));
}
2013-10-31 14:19:36 +08:00
}
2014-02-19 16:13:32 +08:00
2015-04-03 11:54:39 +08:00
void TestController::traverseTestSuite(TestSuite* testSuite)
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
auto scheduler = _director->getScheduler();
int testIndex = 0;
float testCaseDuration = 0.0f;
_logIndentation += LOG_INDENTATION;
logEx("%s%sBegin traverse TestSuite:%s", LOG_TAG, _logIndentation.c_str(), testSuite->getTestName().c_str());
2014-05-19 13:46:17 +08:00
2015-04-03 11:54:39 +08:00
_logIndentation += LOG_INDENTATION;
2015-08-25 10:28:18 +08:00
testSuite->_currTestIndex = -1;
2014-05-19 13:46:17 +08:00
2015-04-03 11:54:39 +08:00
auto logIndentation = _logIndentation;
for (auto& callback : testSuite->_testCallbacks)
{
auto testName = testSuite->_childTestNames[testIndex++];
Scene* testScene = nullptr;
TestCase* testCase = nullptr;
TransitionScene* transitionScene = nullptr;
if (_stopAutoTest) break;
2015-08-25 10:28:18 +08:00
2015-04-03 11:54:39 +08:00
while (_isRunInBackground)
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
logEx("_director is paused");
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(500));
2014-05-19 13:46:17 +08:00
}
2015-04-03 11:54:39 +08:00
//Run test case in the cocos[GL] thread.
scheduler->performFunctionInCocosThread([&, logIndentation, testName](){
if (_stopAutoTest) return;
logEx("%s%sRun test:%s.", LOG_TAG, logIndentation.c_str(), testName.c_str());
2014-05-19 13:46:17 +08:00
2015-04-03 11:54:39 +08:00
auto scene = callback();
if (_stopAutoTest) return;
if (scene)
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
transitionScene = dynamic_cast<TransitionScene*>(scene);
if (transitionScene)
{
testCase = (TestCase*)transitionScene->getInScene();
testCaseDuration = transitionScene->getDuration() + 0.5f;
}
else
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
testCase = (TestCase*)scene;
testCaseDuration = testCase->getDuration();
2014-05-19 13:46:17 +08:00
}
2015-08-25 10:28:18 +08:00
testSuite->_currTestIndex++;
2015-04-03 11:54:39 +08:00
testCase->setTestSuite(testSuite);
testCase->setTestCaseName(testName);
_director->replaceScene(scene);
testScene = scene;
}
});
if (_stopAutoTest) break;
//Wait for the test case be created.
float waitTime = 0.0f;
while (!testScene && !_stopAutoTest)
{
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(50));
2015-04-03 11:54:39 +08:00
if (!_isRunInBackground)
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
waitTime += 0.05f;
2014-05-19 13:46:17 +08:00
}
2015-04-03 11:54:39 +08:00
if (waitTime > CREATE_TIME_OUT)
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
logEx("%sCreate test %s time out", LOG_TAG, testName.c_str());
_stopAutoTest = true;
2014-05-19 13:46:17 +08:00
break;
}
}
2015-04-03 11:54:39 +08:00
if (_stopAutoTest) break;
//Wait for test completed.
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(int(1000 * testCaseDuration)));
2015-04-03 11:54:39 +08:00
if (transitionScene == nullptr)
2014-02-19 16:13:32 +08:00
{
2015-04-03 11:54:39 +08:00
waitTime = 0.0f;
while (!_stopAutoTest && testCase->getRunTime() < testCaseDuration)
2014-02-19 17:55:32 +08:00
{
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(50));
2015-04-03 11:54:39 +08:00
if (!_isRunInBackground)
2014-02-19 17:55:32 +08:00
{
2015-04-03 11:54:39 +08:00
waitTime += 0.05f;
2014-02-19 17:55:32 +08:00
}
2015-04-03 11:54:39 +08:00
if (waitTime > TEST_TIME_OUT)
{
2015-04-03 11:54:39 +08:00
logEx("%sRun test %s time out", LOG_TAG, testName.c_str());
_stopAutoTest = true;
break;
}
}
2015-04-03 11:54:39 +08:00
if (!_stopAutoTest)
2014-02-28 23:02:22 +08:00
{
2015-04-03 11:54:39 +08:00
//Check the result of test.
checkTest(testCase);
2014-05-19 13:46:17 +08:00
}
2015-04-03 11:54:39 +08:00
}
}
if (!_stopAutoTest)
{
//Backs up one level and release TestSuite object.
auto parentTest = testSuite->_parentTest;
scheduler->performFunctionInCocosThread([&](){
parentTest->runThisTest();
});
_sleepCondition.wait_for(*_sleepUniqueLock, std::chrono::milliseconds(1000));
2015-04-03 11:54:39 +08:00
testSuite->release();
}
_logIndentation.erase(_logIndentation.rfind(LOG_INDENTATION));
_logIndentation.erase(_logIndentation.rfind(LOG_INDENTATION));
}
2014-02-28 23:02:22 +08:00
2015-04-03 11:54:39 +08:00
bool TestController::checkTest(TestCase* testCase)
{
if (testCase)
{
switch (testCase->getTestType())
{
case TestCase::Type::UNIT:
{
if (testCase && testCase->getExpectedOutput() != testCase->getActualOutput())
2014-05-19 13:46:17 +08:00
{
2015-04-03 11:54:39 +08:00
logEx("%s %s test fail", LOG_TAG, testCase->getTestCaseName().c_str());
2014-02-28 23:02:22 +08:00
}
2015-04-03 11:54:39 +08:00
else
2014-02-19 16:13:32 +08:00
{
2015-04-03 11:54:39 +08:00
logEx("%s %s test pass", LOG_TAG, testCase->getTestCaseName().c_str());
2014-02-19 16:13:32 +08:00
}
2015-04-03 11:54:39 +08:00
break;
2014-02-19 16:13:32 +08:00
}
2015-04-03 11:54:39 +08:00
case TestCase::Type::ROBUSTNESS:
{
break;
}
case TestCase::Type::MANUAL:
{
break;
}
default:
break;
}
}
return true;
}
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
void TestController::handleCrash()
2014-05-12 21:47:55 +08:00
{
disableCrashCatch();
logEx("%sCatch an crash event", LOG_TAG);
if (!_stopAutoTest)
{
stopAutoTest();
}
2014-05-12 21:47:55 +08:00
}
2015-04-03 11:54:39 +08:00
void TestController::onEnterBackground()
{
2015-04-03 11:54:39 +08:00
_isRunInBackground = true;
}
2015-04-03 11:54:39 +08:00
void TestController::onEnterForeground()
2014-05-12 21:47:55 +08:00
{
2015-04-03 11:54:39 +08:00
_isRunInBackground = false;
}
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
void TestController::logEx(const char * format, ...)
{
char buff[1024];
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
va_list args;
va_start(args, format);
vsnprintf(buff, 1020, format, args);
strcat(buff, "\n");
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", buff);
2014-05-12 21:47:55 +08:00
2015-05-09 00:19:13 +08:00
#elif CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_WINRT
2015-04-03 11:54:39 +08:00
WCHAR wszBuf[1024] = { 0 };
MultiByteToWideChar(CP_UTF8, 0, buff, -1, wszBuf, sizeof(wszBuf));
OutputDebugStringW(wszBuf);
2014-05-12 21:47:55 +08:00
#else
2015-04-03 11:54:39 +08:00
// Linux, Mac, iOS, etc
fprintf(stdout, "%s", buff);
fflush(stdout);
2014-05-12 21:47:55 +08:00
#endif
2015-04-03 11:54:39 +08:00
va_end(args);
}
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
static TestController* s_testController = nullptr;
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
TestController* TestController::getInstance()
{
if (s_testController == nullptr)
{
s_testController = new (std::nothrow) TestController;
initCrashCatch();
2015-04-03 11:54:39 +08:00
}
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
return s_testController;
}
2014-05-12 21:47:55 +08:00
2015-04-03 11:54:39 +08:00
void TestController::destroyInstance()
{
if (s_testController)
2014-05-13 14:16:06 +08:00
{
2015-04-03 11:54:39 +08:00
s_testController->stopAutoTest();
delete s_testController;
s_testController = nullptr;
2014-05-13 14:16:06 +08:00
}
disableCrashCatch();
2014-05-12 21:47:55 +08:00
}
2015-04-03 11:54:39 +08:00
bool TestController::blockTouchBegan(Touch* touch, Event* event)
{
return !_stopAutoTest;
}
//==================================================================================================
#if CC_TARGET_PLATFORM == CC_PLATFORM_WIN32
#include <windows.h>
static long __stdcall windowExceptionFilter(_EXCEPTION_POINTERS* excp)
{
if (s_testController)
{
s_testController->handleCrash();
}
return EXCEPTION_EXECUTE_HANDLER;
}
static void initCrashCatch()
{
SetUnhandledExceptionFilter(windowExceptionFilter);
}
static void disableCrashCatch()
{
SetUnhandledExceptionFilter(UnhandledExceptionFilter);
}
#elif CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
static int s_fatal_signals[] = {
SIGILL,
SIGABRT,
SIGBUS,
SIGFPE,
SIGSEGV,
SIGSTKFLT,
SIGPIPE,
};
#else
static int s_fatal_signals[] = {
SIGABRT,
SIGBUS,
SIGFPE,
SIGILL,
SIGSEGV,
SIGTRAP,
SIGTERM,
SIGKILL,
};
#endif
static void signalHandler(int sig)
{
if (s_testController)
{
s_testController->handleCrash();
}
}
static void initCrashCatch()
{
for (auto sig : s_fatal_signals)
{
signal(sig, signalHandler);
}
}
static void disableCrashCatch()
{
for (auto sig : s_fatal_signals)
{
signal(sig, SIG_DFL);
}
}
#else
static void initCrashCatch()
{
}
static void disableCrashCatch()
{
}
#endif