axmol/cocos/3d/CCObjLoader.cpp

716 lines
19 KiB
C++
Raw Normal View History

Squashed commit of the following: commit 64722e414c6cacc108fa6015d6af84bd9a4d79ec Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 14:03:53 2014 -0700 More WP8 fixes commit 7934be32741cddee6d04cd4f32c7e9718ba83b4c Merge: c2b1619 fea335f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 12:19:41 2014 -0700 Merge branch 'mesh3d' of github.com:ricardoquesada/cocos2d-x into mesh3d commit c2b1619005b5a62ef77afe727429584d6a57010e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 12:19:19 2014 -0700 Adds missing resources for Windows Phone 8 commit fea335f573f975d9d2f6eafeb3ad4d3ea8095ee5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:54:15 2014 -0700 Updates CHANGELOG commit b8b93da914de97662c9df55cfc351ad8b74ea779 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:48:59 2014 -0700 Adds Sprite3d files and tests commit 059c842938e19068427bb2276d52f3e0ea1cc51f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:16:13 2014 -0700 fixes compiler warnings for windows commit d3299f4cf443c9603f9120e431dbcb6ce8b8e26f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 10:53:34 2014 -0700 fixes for Sprite3D Adds copyright header removes compilation warnings cleans code a bit commit 1377787a4bcebdf349f9de0a05c329066c6eb626 Merge: f89725f 9a3c2d0 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 20:46:26 2014 -0700 Merge pull request #34 from dumganhar/pull/6731 fix compilation error of missing bind Mesh for luabindings. commit f89725f65ca604efb9abbcfe336c9d50135016b2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:45:12 2014 -0700 use const & and changed typo commit 9a3c2d0df9abcd76292cc1f71b6615931aa807d5 Author: James Chen <jianhua.chen@cocos2d-x.org> Date: Sat May 17 11:43:10 2014 +0800 fix compilation error of missing bind Mesh for luabindings. commit 59524b3850b27342f3cb4c390751bdf97362a794 Merge: ee4ec94 5c5a6b9 Author: James Chen <jianhua.chen@cocos2d-x.org> Date: Sat May 17 11:33:01 2014 +0800 Merge commit 'refs/pull/6731/head' of git://github.com/cocos2d/cocos2d-x into pull/6731 commit 5c5a6b9bde410027db948b539bc3111dc243cf0b Merge: d4285e3 5f41732 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:23:58 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit d4285e336808699f828b82c6b90a83b1b0c0978c Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:22:49 2014 -0700 remove empty lines commit 5f4173271101e2411ffb6cbf600066e204df98d3 Merge: e272583 ac8cf25 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 20:15:44 2014 -0700 Merge pull request #33 from dabingnn/mesh3d_work Mesh3d work commit ac8cf2571d92b03c9632d0415078d08526322289 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:14:01 2014 -0700 added mesh3d file to template commit e272583cb8a7f41d8d74dbf7d7db71584187a779 Merge: 6a1b847 5d3a955 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 19:10:45 2014 -0700 Merge pull request #32 from dabingnn/mesh3d_work Mesh3d work commit 5d3a95543f66f7ec90bf06e6e1761722b8a33cca Merge: 4feae11 97cae73 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 18:18:13 2014 -0700 Merge branch 'v3' into mesh3d_work commit 6a1b847065a1b9d369892ab011478c47e80c9195 Merge: 4feae11 4ece4b3 Author: Trace0429 <yangtuo0429@gmail.com> Date: Fri May 16 17:15:39 2014 -0700 Merge pull request #31 from Trace0429/mesh3d_work windows work now commit 4ece4b3255d84f2749298fdbdecc5ad0302c36a3 Author: Trace0429 <yangtuo@chukong-inc.com> Date: Sat May 17 08:12:46 2014 +0800 windows work now commit 4feae11577f64c3aff943af51adc37dcb987bdc1 Merge: 510fc0c fdf82d3 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 16:32:58 2014 -0700 Merge pull request #30 from dabingnn/mesh3d_work Mesh3d work commit fdf82d36d97ab68fdb7bab54241fdd94f18a53eb Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:32:00 2014 -0700 fix compile error after merge (MAC can work) commit 4bef832c3f4d5e5f3c19ca36f13ceba9e4ff1dbe Merge: 510fc0c d19de29 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:24:11 2014 -0700 Merge branch 'v3' into mesh3d_work Conflicts: build/cocos2d_libs.xcodeproj/project.pbxproj cocos/2d/cocos2d.vcxproj cocos/2d/cocos2d.vcxproj.filters cocos/Android.mk cocos/CMakeLists.txt cocos/renderer/CMakeLists.txt commit 510fc0cea76bdedfae858bb930d98715ce54f7e9 Merge: e098ed7 7fea347 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 16:11:39 2014 -0700 Merge pull request #29 from dabingnn/mesh3d_work Mesh3d work commit 7fea34782f30ef0498a7a993016f45fcb786b771 Merge: a8a409a e098ed7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:08:01 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit a8a409a7d5280b1075eb6258ee556611a5cba7b3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:05:37 2014 -0700 bind ARRAY_BUFFER and ELEMENT_ARRAY_BUFFER to 0 after draw commit e098ed7a5c187256be8313ec5d66294d3554c914 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 16:02:27 2014 -0700 bind buffer to 0 when finish draw commit d13f637a3777e81085e0285faf00105c58229d7c Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 14:00:38 2014 -0700 fix outline width commit 8a79c98b163ad862a2e09cbcc19a939f06556358 Merge: e208712 a0cf4ef Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 13:47:17 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit e20871233915f8b6010e59595c38793ec3d6956e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 13:47:12 2014 -0700 make some member protected commit a0cf4efc48af801636a55d1c330fb6841896d33b Merge: c0b8902 8b723e8 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 13:06:17 2014 -0700 Merge branch 'mesh3d' of github.com:super626/cocos2d-x into mesh3d commit c0b89021cbbdb13db00b8844aac1f4ff9c90e968 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 13:04:27 2014 -0700 linux work now commit 8b723e82d81cbffd78e7378cab6d11df30baa044 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:48:34 2014 -0700 inc drawcall commit 5d0b6304b3e5c9bcb2354c3245511706438dc23c Merge: 1e7032b e783da9 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:31:44 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit e783da91fe6c14c8594d3da865e965256376dd10 Merge: 5da20fd 8f7a19a Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 12:31:31 2014 -0700 Merge pull request #28 from dabingnn/mesh3d_work Mesh3d work commit 1e7032b448bc79d76a445258f2b0c5bd6dba5fea Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:30:01 2014 -0700 optimize code commit 8f7a19a7b643ac63cbcd776095d6e8a2adb7ca64 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 12:29:37 2014 -0700 adjust code style commit 5da20fd2e75001451ec790f775fc4fe9cb87aa1b Merge: 659fbd6 553acfb Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 12:06:53 2014 -0700 Merge pull request #27 from dabingnn/mesh3d_work Mesh3d work commit 553acfb3ee685f5461a6d2a68779200abcca8670 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 12:06:02 2014 -0700 fix visual error for outline commit 659fbd652aa7f4c2d3629fe446051c3dd0377510 Merge: 056c3e1 c617bb7 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 11:54:54 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 056c3e1394b9c1588395ac8a7f70db1e63c88c31 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 11:54:47 2014 -0700 fix shader, add multiple sprite to Sprite3DEffectTest commit c617bb74b6bc1e691ee488fd9ca43fa618710bfa Merge: 94d7896 7b19c56 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 11:33:31 2014 -0700 Merge pull request #26 from dabingnn/mesh3d_work Mesh3d work commit 7b19c564e4053ad883617873b11043df1fb98a45 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:30:34 2014 -0700 share the same glprogram in effect3DOutline commit 377d3bccd85dc566554c4fe7b529a9d0e82199e7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:19:56 2014 -0700 add class static variable for EffectOutline commit d4913bf735dbc74a21bd8327af0b74325bbf9d1d Merge: 213bbb0 6837cea Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:07:04 2014 -0700 Merge branch 'v3' into mesh3d_work commit 213bbb0c289e579895e92620153b95a8cf374521 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:55:28 2014 -0700 add mesh.h in cocos2d.h commit 94d789610c9d4426b14e655a73197c652afc74f6 Merge: fa69e09 9af9da5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 10:41:24 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit fa69e09ce0265b1fe3f4e76fa4dbc952abf17812 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 10:41:05 2014 -0700 remove namespace commit 9af9da50a91804d11537cffe0750e486cf95c8a5 Merge: ff15926 8a38a38 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 10:30:23 2014 -0700 Merge pull request #25 from dabingnn/mesh3d_work Mesh3d work commit 8a38a384742ba130946de8ad1759b61ed2f70495 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:27:28 2014 -0700 remove redundant uniform CC_Texture0 commit db80bf7c7597fd20a1ca5e4ca89ad067b527f034 Merge: ff15926 511295e Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:20:01 2014 -0700 Merge branch 'v3' into mesh3d_work commit ff15926f47edfbb1250440b060c1d887cfecd033 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 09:11:36 2014 -0700 warning more than one texture commit 5debbf8d6de4563361974b67aa52e572f7df9dd6 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 08:45:03 2014 -0700 remove redundant line commit ed357e7484a63bc3eb208d589943f802b7832e4d Merge: a1e2306 25dd07e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 22:53:10 2014 -0700 Merge pull request #24 from dabingnn/mesh3d_work Mesh3d work commit 25dd07edb7005f593003e90120d6e6439686e5f6 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:52:33 2014 -0700 fix memory leak commit 945ae3444fc2d5eb7c6293960e9c11dfbc5b7cb3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:49:04 2014 -0700 remove unused member variable commit a1e23064140328f4c9bbe434383ca6f25fcb7548 Merge: bac54fc 712e816 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 22:37:16 2014 -0700 Merge pull request #23 from dabingnn/mesh3d_work Mesh3d work commit 712e81606f2782ac41276c1e8a87d32217ac9d28 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:35:48 2014 -0700 fix memory leak commit bac54fce097edd4040b0a7cd522d15644e6b482a Merge: 8ed28c4 54538e8 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 20:01:49 2014 -0700 Merge pull request #22 from dabingnn/mesh3d_work Mesh3d work commit 54538e89a2bf33ad6936130d1cbb3ef153db01a5 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 20:01:29 2014 -0700 android work now commit a6cc0f77875e045d169758adf0cde87360f41475 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:53:39 2014 -0700 remove sprite3dEffect include commit d8482fda09d414de76d1dc1a28c0d0b8bcc5aa32 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:50:17 2014 -0700 remove unused Sprite3dEffect commit c5e2d5579daca64b0e9394a2b07613352847eca8 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:48:12 2014 -0700 remove unused outline shader files commit 09a100cf388d80aa1389d96994ae189cbb0652b2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:43:17 2014 -0700 fix error on IOS commit 8ed28c4854d0b51ed0251f09c27a5ce328599ad5 Merge: d23ffe3 c0e8ea2 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 18:47:37 2014 -0700 Merge pull request #21 from dabingnn/mesh3d_work Mesh3d work commit c0e8ea26ff29fc6a3cd04e7f9e122d4ea0a67e2c Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:46:54 2014 -0700 adjust indent, and line to the end of the file commit 661ceb72831d6eccfa522a09cedf994541af6f88 Merge: 8e764e7 d23ffe3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:35:18 2014 -0700 Merge branch 'mesh3d' into mesh3d_work Conflicts: cocos/3d/CCSprite3D.cpp cocos/3d/CCSprite3D.h tests/cpp-tests/Classes/Sprite3DTest/Sprite3DTest.cpp commit 8e764e74dd019852a0ef35b257895a7e79cd9a14 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:31:06 2014 -0700 add testCase for outline commit c2ced288851892299fd7258e51f32303959b374d Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:03:34 2014 -0700 extract base class Effect3D commit d23ffe3167476d10740df321e579bf647a3698d0 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 18:02:45 2014 -0700 RendeMeshData member rename commit fb8f25553cd317a277c1b924da2c11b9f3188666 Merge: 73cb4b4 819db70 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 17:57:29 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 819db702d5ffa9461fc9d1d232cea7d373536664 Merge: 2676911 b408f43 Author: Trace0429 <yangtuo0429@gmail.com> Date: Thu May 15 17:54:24 2014 -0700 Merge pull request #20 from Trace0429/mesh3d_work Mesh3d work commit 73cb4b444b222d34e135b0d09b426b9c73c1b790 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 17:54:03 2014 -0700 android meshcommand commit b408f4343e47766416b19a583bc6bb5167439693 Author: Trace0429 <yangtuo@chukong-inc.com> Date: Fri May 16 08:50:38 2014 +0800 windows work now commit afbde9c25cfcdc4a6600a9e7607bc9489ea6b6f9 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 17:38:41 2014 -0700 raw EffectSprite commit 2676911bb71ef92b3d9cf198021169d9e4466525 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 16:37:20 2014 -0700 remove SpriteEffect from Sprite3D commit 83dc4cfc3609d14024c3966e49ee34bf36bbd77f Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 16:34:36 2014 -0700 raw effectSpriteTest commit 39e372ef2037090317c9c4a2287b06cadf83c9c5 Merge: 734633e 6d27912 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 16:14:57 2014 -0700 use meshcommand commit 734633ec1ffc66e590b2ad2da94f6477d78146f2 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 15:38:30 2014 -0700 use meshcommand commit 4ec56afaa9a660e8eaad6afe18ffded8ca858eb1 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 15:31:43 2014 -0700 comment out effect framework commit 6d27912f148e03acc07da3e3b4d0c565af8afefa Merge: d6f6f63 61a9011 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 15:11:25 2014 -0700 Merge pull request #19 from dabingnn/mesh3d_work Mesh3d work commit 61a9011d6c78ea6918664bb608dc51344e0236e5 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:55:06 2014 -0700 fix compile error in testcases commit 5f2f585bb8584590ecd3ebcefbb49de45b8f4bed Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:52:43 2014 -0700 fix compile error after merge with v3 commit 1a0de47740be51e586cc5615bc28e44ec8a1fc47 Merge: d6f6f63 760ee57 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:48:19 2014 -0700 Merge branch 'v3' into mesh3d_work commit d6f6f633927eb00df984ec4239555f9ce2c7e44d Merge: c6fbd6e 76d2523 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 14:26:40 2014 -0700 Merge pull request #18 from dabingnn/mesh3d_work Mesh3d work commit 76d2523ae735384533a1e37f06e370cb3481b0f2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:25:40 2014 -0700 move 3d shaders to shader cache commit 9b68032c809dc6667ffd5c1af37b7ad4d84fe2de Merge: 2c9a573 c6fbd6e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 13:56:00 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 2c9a5738c2d24c33d4994e8e44e32fcc8d9ceece Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 13:55:49 2014 -0700 meshcommand commit 0631a51c5d9c0aae55447105b962a888e1158cd3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 13:21:36 2014 -0700 add mesh rebuild when come to foreground in android commit 8695016869ab56f3a046f488485f9fdfb6532417 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 13:13:59 2014 -0700 android work now commit c6fbd6e67d29b2fdfeed74f96de0ff5a6cdae1f5 Merge: cd7b235 0466a38 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 12:21:40 2014 -0700 Merge pull request #17 from dabingnn/mesh3d_work Mesh3d work commit 0466a38e77ca1bc6be09bf18b42a6290db8dace8 Merge: e349e4e cd7b235 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:19:24 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit e349e4e0a7047ed49c2bfa9b2e3e5cae5cbc8f67 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:18:49 2014 -0700 commit the changed IOS/MAC project file commit a7c9a65d5603622b1d40cc009dfceee60c376f50 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:17:57 2014 -0700 remove MeshPart commit cd7b235b5ec5b3ce21bc856888d383e6224fd047 Merge: e666045 3b7b406 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 11:03:54 2014 -0700 Merge pull request #16 from dabingnn/mesh3d_work Mesh3d work commit 3b7b406caff0b6f79fe044612a32e909f778d1e3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 10:59:10 2014 -0700 raw version of single Mesh commit e666045aa4768199c530f494f0a1fb402f2ce922 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 10:44:04 2014 -0700 fix outline commit 5d4f304c5f9e5b35dbb1d1176232ab5189c98c0e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 10:09:45 2014 -0700 without normal no outline effect commit 3f6bd0ffbca804dd9ca6776c8cc2b37643911d63 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 22:39:03 2014 -0700 android listenBackToForeground commit 6bec670319ea154474c32c941c250bc3909a7e2e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:58:09 2014 -0700 add boss1 with normal commit 35c1b8d5fcec188cbef92457e24721ae53820328 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:54:20 2014 -0700 change cache commit 076166fba142d5432bbadaf3e75d6c35bcb6905a Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:35:59 2014 -0700 depress no .mtl crash commit 498c9693a7e7009615382c5769b7493c3ff6be68 Merge: 8a63b49 d4fd946 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:58:50 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 8a63b4959cbb5e2b749d7f63f5b4ebe2bc5a6970 Merge: b4a8fee f395cc5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:58:36 2014 -0700 merge dabingnn commit d4fd946fc8afdc95741f6a170e489d3dca9e2519 Merge: f395cc5 a17f074 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 15:53:58 2014 -0700 Merge pull request #15 from dabingnn/mesh3d_work Mesh3d work commit a17f074302d10ff03881cba7e634e094d31feb0a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:52:58 2014 -0700 android can work now commit b4a8fee4b9735e16331a5656055572db9e551367 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:33:07 2014 -0700 refactoring render code commit f395cc50cdd8f2f15204ad9a126338d5c2fa72d2 Merge: f129e02 a2c12df Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 15:27:21 2014 -0700 Merge pull request #14 from dabingnn/mesh3d_work Mesh3d work commit a2c12df8d8908abe4dcb1a0c91711a28d9f05cac Merge: 1932e22 f129e02 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:26:19 2014 -0700 Merge branch 'mesh3d' of github.com:super626/cocos2d-x into mesh3d_work commit 1932e22962a79530adf583f24070efcee32251d3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:25:55 2014 -0700 android can compile now(can not work) commit f129e02ef21a0d44b8517c53d8c6bed0aaf85def Merge: ae2aa0d c0d9097 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 14:21:09 2014 -0700 Merge pull request #13 from dabingnn/mesh3d_work Mesh3d work commit c0d90973c2b87582e99966256c74dcdf23712d6a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 14:15:16 2014 -0700 include Sprite3DEffect in the cocos2d header commit ae2aa0dd705bf1a961164f9059eec4e5c2281bb5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 12:51:09 2014 -0700 outline sprite commit e7a542d9c95c145241314fc63fbe12ba0b80ec6a Merge: 1c76d4c 48e9f39 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 10:48:55 2014 -0700 meshvertexattrib work commit 1c76d4ca319c15dadd7243ce4230fa35dfb7a1bb Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 10:40:55 2014 -0700 use meshvertexattribute commit 48e9f3991dd7aafc90e99e1721d04f28d01f94e6 Merge: b70bf52 e0d87a9 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 09:41:57 2014 -0700 Merge pull request #12 from dabingnn/mesh3d_work Mesh3d work commit e0d87a99f42f808429917c8b586509ca75e8a5e2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:40:14 2014 -0700 remove compile error commit c445e07c895fc2352f1220459d91f41f77690cd8 Merge: b70bf52 86fb75a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:31:14 2014 -0700 Merge branch 'v3' into mesh3d_work commit b70bf522ef139da670cf41791a3d0ddad3dfa1cc Merge: da24c48 5a2127d Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 00:25:47 2014 -0700 vertex attrib commit da24c48c981029493900bcd2143495e546faa75e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 23:49:09 2014 -0700 mesh vertex attribute commit 5a2127d718e6a9cb9f2ca3e1ac353ce1e5c0ebfd Merge: d98adb7 5148f76 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 19:06:38 2014 -0700 Merge pull request #11 from dabingnn/mesh3d_work Mesh3d work commit 5148f76c43bf1e3dc5a49ad6bf112d166d6b1c93 Merge: 02deb39 d98adb7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 19:05:40 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 02deb399314f01ec1222d78f2383a65614e33a34 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 19:04:15 2014 -0700 fix texcoord y flipped commit d98adb7d9d906f8376e45a2ba57bffc4e17e1775 Merge: 300eb4e 946283b Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 18:35:08 2014 -0700 Merge pull request #10 from dabingnn/mesh3d_work Mesh3d work commit 946283b83218de893c727dc9780291fe1683a4f9 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 18:22:16 2014 -0700 added blendFunc commit 300eb4e31783452cf16b77f85c3ef6f9dba19fc6 Merge: da7d6a0 ccc0baf Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 16:03:01 2014 -0700 Merge pull request #9 from dabingnn/mesh3d_work Mesh3d work commit ccc0bafd32b3375c2fe2163e0eb32714d06f8525 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 16:01:59 2014 -0700 fix compile error after merge commit 5bfc30b2b930131d23058d99a6862061c2217f38 Merge: da7d6a0 0171e27 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 15:56:46 2014 -0700 Merge branch 'v3' into mesh3d_work commit da7d6a087f22f4a11827ff3410fbcd2561f155fc Merge: 0caad32 f413b4e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 14:19:24 2014 -0700 Merge pull request #8 from dabingnn/mesh3d_work Mesh3d work commit f413b4e55764d27863ae6978f1dbb2a0a3ca35e0 Merge: f47cfc6 0caad32 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 14:17:01 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit f47cfc67041ed4655a916623a6731876758a5182 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 14:15:06 2014 -0700 add new interface for createSprite3D commit 0caad32f2aa40c45e42d5d61c83419ee06e65a97 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 13:58:35 2014 -0700 default GLProgram to object commit 901ccef93593e2c39cca190784b4fc9684dfa9d0 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 13:13:24 2014 -0700 remove compile warning commit a6f9cdfcdd001d4486eb8206c3bd9d85e9fc9bc8 Merge: 68bdd0b 3eef54c Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 13:01:20 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 68bdd0be68e3a11bb7bc5312e61ba5fb628c439b Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 12:59:59 2014 -0700 rename init->initWithFile in Sprite3D commit 3eef54ca06c83f72e248ce91fe639a8446ef1be5 Merge: f719f45 1c8773c Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 12:58:23 2014 -0700 Merge pull request #7 from super626/mesh3d_tmp Mesh3d commit 1c8773c53ff0bb87cb249d6392a900cd572dac1e Merge: 23e8786 f719f45 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 12:56:06 2014 -0700 Merge branch 'mesh3d_tmp' into mesh3d commit f719f45aba37791ffdfe107569350a1af94cbeb0 Merge: 6bd3f28 1b76467 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:59:46 2014 -0700 Merge pull request #6 from dabingnn/mesh3d_work Mesh3d work commit 1b7646759d9efcdf0942a42c0c22964a99309853 Merge: 6bd3f28 87adf9d Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:53:17 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 87adf9df61e76f765f78a2bae4ec980ffb73ce57 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:52:41 2014 -0700 adjust line indent and header file define commit 23e8786892b89e25d1add091a7c3bc618990e579 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 11:44:22 2014 -0700 using vbo commit 6bd3f28440eca3530379b4610d6f87cc88eb54c5 Merge: 56fc0f4 a239a7e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:42:10 2014 -0700 Merge pull request #5 from dabingnn/mesh3d_work Mesh3d work commit a239a7e35a82f497c337d96a025125b92c8daefd Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:39:06 2014 -0700 add CCSprite3d include into cocos2d.h commit 8d580c28a084c1dab2a5ce925871f3361e6b970a Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:33:18 2014 -0700 remove cocos2d.h include in Sprite3DTest.h commit 56fc0f4cbccb07cda972efda302ff6689b958ab2 Merge: ab16a26 8bb75e3 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:28:47 2014 -0700 Merge pull request #4 from dabingnn/mesh3d Mesh3d commit 8bb75e3dd96131da1c2dd9bc622d7bdbb2ad0514 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:26:40 2014 -0700 fix compile error after rename commit 230a73132c09c66b449efbacbc417974616694c6 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:07:30 2014 -0700 rename FileXXX to CCFileXXX commit ab16a26376f7deddf1a82f3085668e3fd9f09a12 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 10:52:36 2014 -0700 rename _model to _mesh commit 92ac7f75d06ad081282bbddcad5920a1f7584264 Merge: 6b911b5 df147d1 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Mon May 12 22:23:59 2014 -0700 Merge pull request #3 from dabingnn/mesh3d Mesh3d commit df147d14ddb8e61d907a44c6f03f404c8a68103f Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 22:21:22 2014 -0700 fix retain/release in sprite3D commit 0b38939fd79168699ab737a8dc8e97c9417cf4ce Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 20:04:16 2014 -0700 remove compile warnings commit 090f81b8198d18bc0b31bbba28c3e2e6d73e9f92 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 19:16:25 2014 -0700 using glprogramstate work ok commit 0b4f36a964c28f5f4b3224522f27402e0efbe123 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 18:38:52 2014 -0700 add obj commit e8917d7427f3ff0e7c3d874b908e0058adecf2f7 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 18:33:23 2014 -0700 use glprogramstate commit 6b911b52c86cd79e1fd3efc0536a5ca7ab04ab7a Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 13:01:56 2014 -0700 sprite3d commit 2a490c344f2db27d467506cf28c910410bb892e6 Merge: 23a5232 01b015d Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Mon May 12 10:52:17 2014 -0700 Merge pull request #1 from dabingnn/newcode Newcode commit 01b015d1238c89b6837ea276a95ce359cf0da5a7 Merge: 23a5232 5d24b3d Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 10:50:14 2014 -0700 Merge branch 'v3' into newcode commit 23a5232fe5bb4c0b0bc821d1945426486dafe253 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 09:44:41 2014 -0700 3d mesh initial code
2014-05-19 05:49:16 +08:00
//
// Copyright 2012-2013, Syoyo Fujita.
//
// Licensed under 2-clause BSD liecense.
//
//
// version 0.9.6: Support Ni(index of refraction) mtl parameter.
// Parse transmittance material parameter correctly.
// version 0.9.5: Parse multiple group name.
// Add support of specifying the base path to load material file.
// version 0.9.4: Initial suupport of group tag(g)
// version 0.9.3: Fix parsing triple 'x/y/z'
// version 0.9.2: Add more .mtl load support
// version 0.9.1: Add initial .mtl load support
// version 0.9.0: Initial
//
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <string>
#include <vector>
#include <map>
#include <fstream>
#include <sstream>
#include "CCObjLoader.h"
#include "platform/CCFileUtils.h"
NS_CC_BEGIN
struct vertex_index
{
int v_idx, vt_idx, vn_idx;
vertex_index() {};
vertex_index(int idx) : v_idx(idx), vt_idx(idx), vn_idx(idx) {};
vertex_index(int vidx, int vtidx, int vnidx) : v_idx(vidx), vt_idx(vtidx), vn_idx(vnidx) {};
};
// for std::map
static inline bool operator<(const vertex_index& a, const vertex_index& b)
{
if (a.v_idx != b.v_idx) return (a.v_idx < b.v_idx);
if (a.vn_idx != b.vn_idx) return (a.vn_idx < b.vn_idx);
if (a.vt_idx != b.vt_idx) return (a.vt_idx < b.vt_idx);
return false;
}
struct obj_shape
{
std::vector<float> v;
std::vector<float> vn;
std::vector<float> vt;
};
static inline bool isSpace(const char c)
{
return (c == ' ') || (c == '\t');
}
static inline bool isNewLine(const char c)
{
return (c == '\r') || (c == '\n') || (c == '\0');
}
// Make index zero-base, and also support relative index.
static inline int fixIndex(int idx, int n)
{
int i;
if (idx > 0) {
i = idx - 1;
} else if (idx == 0) {
i = 0;
} else { // negative value = relative
i = n + idx;
}
return i;
}
static inline std::string parseString(const char*& token)
{
std::string s;
auto b = strspn(token, " \t");
auto e = strcspn(token, " \t\r");
s = std::string(&token[b], &token[e]);
token += (e - b);
return s;
}
static inline int parseInt(const char*& token)
{
token += strspn(token, " \t");
int i = atoi(token);
token += strcspn(token, " \t\r");
return i;
}
static inline float parseFloat(const char*& token)
{
token += strspn(token, " \t");
float f = (float)atof(token);
token += strcspn(token, " \t\r");
return f;
}
static inline void parseFloat2(float& x, float& y, const char*& token)
{
x = parseFloat(token);
y = parseFloat(token);
}
static inline void parseFloat3(float& x, float& y, float& z, const char*& token)
{
x = parseFloat(token);
y = parseFloat(token);
z = parseFloat(token);
}
// Parse triples: i, i/j/k, i//k, i/j
static vertex_index parseTriple(const char* &token, int vsize, int vnsize, int vtsize)
{
vertex_index vi(-1);
vi.v_idx = fixIndex(atoi(token), vsize);
token += strcspn(token, "/ \t\r");
if (token[0] != '/') {
return vi;
}
token++;
// i//k
if (token[0] == '/') {
token++;
vi.vn_idx = fixIndex(atoi(token), vnsize);
token += strcspn(token, "/ \t\r");
return vi;
}
// i/j/k or i/j
vi.vt_idx = fixIndex(atoi(token), vtsize);
token += strcspn(token, "/ \t\r");
if (token[0] != '/') {
return vi;
}
// i/j/k
token++; // skip '/'
vi.vn_idx = fixIndex(atoi(token), vnsize);
token += strcspn(token, "/ \t\r");
return vi;
}
static ssize_t updateVertex( std::map<vertex_index, ssize_t>& vertexCache, std::vector<float>& positions, std::vector<float>& normals,
std::vector<float>& texcoords, const std::vector<float>& in_positions, const std::vector<float>& in_normals, const std::vector<float>& in_texcoords,
const vertex_index& i)
{
const auto it = vertexCache.find(i);
if (it != vertexCache.end())
{
// found cache
return it->second;
}
assert(in_positions.size() > (3*i.v_idx+2));
positions.push_back(in_positions[3*i.v_idx+0]);
positions.push_back(in_positions[3*i.v_idx+1]);
positions.push_back(in_positions[3*i.v_idx+2]);
if (i.vn_idx >= 0)
{
normals.push_back(in_normals[3*i.vn_idx+0]);
normals.push_back(in_normals[3*i.vn_idx+1]);
normals.push_back(in_normals[3*i.vn_idx+2]);
}
if (i.vt_idx >= 0)
{
texcoords.push_back(in_texcoords[2*i.vt_idx+0]);
texcoords.push_back(in_texcoords[2*i.vt_idx+1]);
}
auto idx = positions.size() / 3 - 1;
vertexCache[i] = idx;
return idx;
}
static bool exportFaceGroupToShape( std::map<vertex_index, ssize_t>& vertexCache, ObjLoader::shapes_t& shapes, const std::vector<float> &in_positions,
const std::vector<float> &in_normals, const std::vector<float> &in_texcoords, const std::vector<std::vector<vertex_index> >& faceGroup,
const ObjLoader::material_t &material, const std::string &name)
{
if (faceGroup.empty())
{
return false;
}
// Flattened version of vertex data
std::vector<float>& positions = shapes.positions;
std::vector<float>& normals = shapes.normals;
std::vector<float>& texcoords = shapes.texcoords;
std::vector<unsigned short> indices;
// Flatten vertices and indices
for (size_t i = 0; i < faceGroup.size(); i++)
{
const std::vector<vertex_index>& face = faceGroup[i];
vertex_index i0 = face[0];
vertex_index i1(-1);
vertex_index i2 = face[1];
size_t npolys = face.size();
// Polygon -> triangle fan conversion
for (size_t k = 2; k < npolys; k++)
{
i1 = i2;
i2 = face[k];
unsigned short v0 = updateVertex(vertexCache, positions, normals, texcoords, in_positions, in_normals, in_texcoords, i0);
unsigned short v1 = updateVertex(vertexCache, positions, normals, texcoords, in_positions, in_normals, in_texcoords, i1);
unsigned short v2 = updateVertex(vertexCache, positions, normals, texcoords, in_positions, in_normals, in_texcoords, i2);
indices.push_back(v0);
indices.push_back(v1);
indices.push_back(v2);
}
}
ObjLoader::shape_t shape;
shape.name = name;
shape.material = material;
shape.mesh.indices.swap(indices);
shapes.shapes.push_back(shape);
return true;
}
std::string trim(const std::string& str)
{
if (str.empty())
return str;
auto len = str.length();
char c = str[len - 1];
while (c == '\r' || c == '\n')
{
len--;
c = str[len - 1];
}
return str.substr(0, len);
}
void InitMaterial(ObjLoader::material_t& material)
{
material.name = "";
material.ambient_texname = "";
material.diffuse_texname = "";
material.specular_texname = "";
material.normal_texname = "";
for (int i = 0; i < 3; i ++)
{
material.ambient[i] = 0.f;
material.diffuse[i] = 0.f;
material.specular[i] = 0.f;
material.transmittance[i] = 0.f;
material.emission[i] = 0.f;
}
material.illum = 0;
material.dissolve = 1.f;
material.shininess = 1.f;
material.unknown_parameter.clear();
}
std::string LoadMtl ( std::map<std::string, ObjLoader::material_t>& material_map, const char* filename, const char* mtl_basepath)
{
material_map.clear();
std::stringstream err;
std::string filepath;
if (mtl_basepath)
{
filepath = std::string(mtl_basepath) + std::string(filename);
}
else
{
filepath = std::string(filename);
}
std::ifstream ifs(filepath.c_str());
if (!ifs)
{
err << "Cannot open file [" << filepath << "]" << std::endl;
return err.str();
}
ObjLoader::material_t material;
int maxchars = 8192; // Alloc enough size.
std::vector<char> buf(maxchars); // Alloc enough size.
while (ifs.peek() != -1)
{
ifs.getline(&buf[0], maxchars);
std::string linebuf(&buf[0]);
// Trim newline '\r\n' or '\r'
if (linebuf.size() > 0)
{
if (linebuf[linebuf.size()-1] == '\n') linebuf.erase(linebuf.size()-1);
}
if (linebuf.size() > 0)
{
if (linebuf[linebuf.size()-1] == '\n') linebuf.erase(linebuf.size()-1);
}
// Skip if empty line.
if (linebuf.empty())
{
continue;
}
// Skip leading space.
const char* token = linebuf.c_str();
token += strspn(token, " \t");
assert(token);
if (token[0] == '\0') continue; // empty line
if (token[0] == '#') continue; // comment line
// new mtl
if ((0 == strncmp(token, "newmtl", 6)) && isSpace((token[6])))
{
// flush previous material.
material_map.insert(std::pair<std::string, ObjLoader::material_t>(material.name, material));
// initial temporary material
InitMaterial(material);
// set new mtl name
char namebuf[4096];
token += 7;
sscanf(token, "%s", namebuf);
material.name = namebuf;
continue;
}
// ambient
if (token[0] == 'K' && token[1] == 'a' && isSpace((token[2])))
{
token += 2;
float r, g, b;
parseFloat3(r, g, b, token);
material.ambient[0] = r;
material.ambient[1] = g;
material.ambient[2] = b;
continue;
}
// diffuse
if (token[0] == 'K' && token[1] == 'd' && isSpace((token[2])))
{
token += 2;
float r, g, b;
parseFloat3(r, g, b, token);
material.diffuse[0] = r;
material.diffuse[1] = g;
material.diffuse[2] = b;
continue;
}
// specular
if (token[0] == 'K' && token[1] == 's' && isSpace((token[2])))
{
token += 2;
float r, g, b;
parseFloat3(r, g, b, token);
material.specular[0] = r;
material.specular[1] = g;
material.specular[2] = b;
continue;
}
// transmittance
if (token[0] == 'K' && token[1] == 't' && isSpace((token[2])))
{
token += 2;
float r, g, b;
parseFloat3(r, g, b, token);
material.transmittance[0] = r;
material.transmittance[1] = g;
material.transmittance[2] = b;
continue;
}
// ior(index of refraction)
if (token[0] == 'N' && token[1] == 'i' && isSpace((token[2])))
{
token += 2;
material.ior = parseFloat(token);
continue;
}
// emission
if(token[0] == 'K' && token[1] == 'e' && isSpace(token[2]))
{
token += 2;
float r, g, b;
parseFloat3(r, g, b, token);
material.emission[0] = r;
material.emission[1] = g;
material.emission[2] = b;
continue;
}
// shininess
if(token[0] == 'N' && token[1] == 's' && isSpace(token[2]))
{
token += 2;
material.shininess = parseFloat(token);
continue;
}
// illum model
if (0 == strncmp(token, "illum", 5) && isSpace(token[5]))
{
token += 6;
material.illum = parseInt(token);
continue;
}
// dissolve
if ((token[0] == 'd' && isSpace(token[1])))
{
token += 1;
material.dissolve = parseFloat(token);
continue;
}
if (token[0] == 'T' && token[1] == 'r' && isSpace(token[2]))
{
token += 2;
material.dissolve = parseFloat(token);
continue;
}
// ambient texture
if ((0 == strncmp(token, "map_Ka", 6)) && isSpace(token[6]))
{
token += 7;
material.ambient_texname = trim(token);
continue;
}
// diffuse texture
if ((0 == strncmp(token, "map_Kd", 6)) && isSpace(token[6]))
{
token += 7;
material.diffuse_texname = trim(token);
continue;
}
// specular texture
if ((0 == strncmp(token, "map_Ks", 6)) && isSpace(token[6]))
{
token += 7;
material.specular_texname = trim(token);
continue;
}
// normal texture
if ((0 == strncmp(token, "map_Ns", 6)) && isSpace(token[6]))
{
token += 7;
material.normal_texname = trim(token);
continue;
}
// unknown parameter
const char* _space = strchr(token, ' ');
if(!_space)
{
_space = strchr(token, '\t');
}
if(_space)
{
auto len = _space - token;
std::string key(token, len);
std::string value = _space + 1;
material.unknown_parameter.insert(std::pair<std::string, std::string>(key, value));
}
}
// flush last material.
material_map.insert(std::pair<std::string, ObjLoader::material_t>(material.name, material));
return err.str();
}
std::string ObjLoader::LoadObj(shapes_t& shapes, const char* filename, const char* mtl_basepath)
{
shapes.reset();
std::stringstream err;
std::istringstream ifs(FileUtils::getInstance()->getStringFromFile(filename));
std::map<vertex_index, ssize_t> vertexCache;
//std::ifstream ifs(filename);
if (!ifs)
{
err << "Cannot open file [" << filename << "]" << std::endl;
return err.str();
}
std::vector<float> v;
std::vector<float> vn;
std::vector<float> vt;
std::vector<std::vector<vertex_index> > faceGroup;
std::string name;
// material
std::map<std::string, material_t> material_map;
material_t material;
int maxchars = 8192; // Alloc enough size.
std::vector<char> buf(maxchars); // Alloc enough size.
while (ifs.peek() != -1)
{
ifs.getline(&buf[0], maxchars);
std::string linebuf(&buf[0]);
// Trim newline '\r\n' or '\r'
if (linebuf.size() > 0)
{
if (linebuf[linebuf.size()-1] == '\n') linebuf.erase(linebuf.size()-1);
}
if (linebuf.size() > 0)
{
if (linebuf[linebuf.size()-1] == '\n') linebuf.erase(linebuf.size()-1);
}
// Skip if empty line.
if (linebuf.empty())
{
continue;
}
// Skip leading space.
const char* token = linebuf.c_str();
token += strspn(token, " \t");
assert(token);
if (token[0] == '\0') continue; // empty line
if (token[0] == '#') continue; // comment line
// vertex
if (token[0] == 'v' && isSpace((token[1])))
{
token += 2;
float x, y, z;
parseFloat3(x, y, z, token);
v.push_back(x);
v.push_back(y);
v.push_back(z);
continue;
}
// normal
if (token[0] == 'v' && token[1] == 'n' && isSpace((token[2])))
{
token += 3;
float x, y, z;
parseFloat3(x, y, z, token);
vn.push_back(x);
vn.push_back(y);
vn.push_back(z);
continue;
}
// texcoord
if (token[0] == 'v' && token[1] == 't' && isSpace((token[2])))
{
token += 3;
float x, y;
parseFloat2(x, y, token);
vt.push_back(x);
vt.push_back(y);
continue;
}
// face
if (token[0] == 'f' && isSpace((token[1])))
{
token += 2;
token += strspn(token, " \t");
std::vector<vertex_index> face;
while (!isNewLine(token[0])) {
// fix warning, cast to int, i think int is enough
vertex_index vi = parseTriple(token, (int)v.size() / 3, (int)vn.size() / 3, (int)vt.size() / 2);
Squashed commit of the following: commit 64722e414c6cacc108fa6015d6af84bd9a4d79ec Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 14:03:53 2014 -0700 More WP8 fixes commit 7934be32741cddee6d04cd4f32c7e9718ba83b4c Merge: c2b1619 fea335f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 12:19:41 2014 -0700 Merge branch 'mesh3d' of github.com:ricardoquesada/cocos2d-x into mesh3d commit c2b1619005b5a62ef77afe727429584d6a57010e Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 12:19:19 2014 -0700 Adds missing resources for Windows Phone 8 commit fea335f573f975d9d2f6eafeb3ad4d3ea8095ee5 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:54:15 2014 -0700 Updates CHANGELOG commit b8b93da914de97662c9df55cfc351ad8b74ea779 Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:48:59 2014 -0700 Adds Sprite3d files and tests commit 059c842938e19068427bb2276d52f3e0ea1cc51f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 11:16:13 2014 -0700 fixes compiler warnings for windows commit d3299f4cf443c9603f9120e431dbcb6ce8b8e26f Author: Ricardo Quesada <ricardoquesada@gmail.com> Date: Sun May 18 10:53:34 2014 -0700 fixes for Sprite3D Adds copyright header removes compilation warnings cleans code a bit commit 1377787a4bcebdf349f9de0a05c329066c6eb626 Merge: f89725f 9a3c2d0 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 20:46:26 2014 -0700 Merge pull request #34 from dumganhar/pull/6731 fix compilation error of missing bind Mesh for luabindings. commit f89725f65ca604efb9abbcfe336c9d50135016b2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:45:12 2014 -0700 use const & and changed typo commit 9a3c2d0df9abcd76292cc1f71b6615931aa807d5 Author: James Chen <jianhua.chen@cocos2d-x.org> Date: Sat May 17 11:43:10 2014 +0800 fix compilation error of missing bind Mesh for luabindings. commit 59524b3850b27342f3cb4c390751bdf97362a794 Merge: ee4ec94 5c5a6b9 Author: James Chen <jianhua.chen@cocos2d-x.org> Date: Sat May 17 11:33:01 2014 +0800 Merge commit 'refs/pull/6731/head' of git://github.com/cocos2d/cocos2d-x into pull/6731 commit 5c5a6b9bde410027db948b539bc3111dc243cf0b Merge: d4285e3 5f41732 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:23:58 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit d4285e336808699f828b82c6b90a83b1b0c0978c Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:22:49 2014 -0700 remove empty lines commit 5f4173271101e2411ffb6cbf600066e204df98d3 Merge: e272583 ac8cf25 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 20:15:44 2014 -0700 Merge pull request #33 from dabingnn/mesh3d_work Mesh3d work commit ac8cf2571d92b03c9632d0415078d08526322289 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 20:14:01 2014 -0700 added mesh3d file to template commit e272583cb8a7f41d8d74dbf7d7db71584187a779 Merge: 6a1b847 5d3a955 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 19:10:45 2014 -0700 Merge pull request #32 from dabingnn/mesh3d_work Mesh3d work commit 5d3a95543f66f7ec90bf06e6e1761722b8a33cca Merge: 4feae11 97cae73 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 18:18:13 2014 -0700 Merge branch 'v3' into mesh3d_work commit 6a1b847065a1b9d369892ab011478c47e80c9195 Merge: 4feae11 4ece4b3 Author: Trace0429 <yangtuo0429@gmail.com> Date: Fri May 16 17:15:39 2014 -0700 Merge pull request #31 from Trace0429/mesh3d_work windows work now commit 4ece4b3255d84f2749298fdbdecc5ad0302c36a3 Author: Trace0429 <yangtuo@chukong-inc.com> Date: Sat May 17 08:12:46 2014 +0800 windows work now commit 4feae11577f64c3aff943af51adc37dcb987bdc1 Merge: 510fc0c fdf82d3 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 16:32:58 2014 -0700 Merge pull request #30 from dabingnn/mesh3d_work Mesh3d work commit fdf82d36d97ab68fdb7bab54241fdd94f18a53eb Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:32:00 2014 -0700 fix compile error after merge (MAC can work) commit 4bef832c3f4d5e5f3c19ca36f13ceba9e4ff1dbe Merge: 510fc0c d19de29 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:24:11 2014 -0700 Merge branch 'v3' into mesh3d_work Conflicts: build/cocos2d_libs.xcodeproj/project.pbxproj cocos/2d/cocos2d.vcxproj cocos/2d/cocos2d.vcxproj.filters cocos/Android.mk cocos/CMakeLists.txt cocos/renderer/CMakeLists.txt commit 510fc0cea76bdedfae858bb930d98715ce54f7e9 Merge: e098ed7 7fea347 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 16:11:39 2014 -0700 Merge pull request #29 from dabingnn/mesh3d_work Mesh3d work commit 7fea34782f30ef0498a7a993016f45fcb786b771 Merge: a8a409a e098ed7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:08:01 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit a8a409a7d5280b1075eb6258ee556611a5cba7b3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 16:05:37 2014 -0700 bind ARRAY_BUFFER and ELEMENT_ARRAY_BUFFER to 0 after draw commit e098ed7a5c187256be8313ec5d66294d3554c914 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 16:02:27 2014 -0700 bind buffer to 0 when finish draw commit d13f637a3777e81085e0285faf00105c58229d7c Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 14:00:38 2014 -0700 fix outline width commit 8a79c98b163ad862a2e09cbcc19a939f06556358 Merge: e208712 a0cf4ef Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 13:47:17 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit e20871233915f8b6010e59595c38793ec3d6956e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 13:47:12 2014 -0700 make some member protected commit a0cf4efc48af801636a55d1c330fb6841896d33b Merge: c0b8902 8b723e8 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 13:06:17 2014 -0700 Merge branch 'mesh3d' of github.com:super626/cocos2d-x into mesh3d commit c0b89021cbbdb13db00b8844aac1f4ff9c90e968 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 13:04:27 2014 -0700 linux work now commit 8b723e82d81cbffd78e7378cab6d11df30baa044 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:48:34 2014 -0700 inc drawcall commit 5d0b6304b3e5c9bcb2354c3245511706438dc23c Merge: 1e7032b e783da9 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:31:44 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit e783da91fe6c14c8594d3da865e965256376dd10 Merge: 5da20fd 8f7a19a Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 12:31:31 2014 -0700 Merge pull request #28 from dabingnn/mesh3d_work Mesh3d work commit 1e7032b448bc79d76a445258f2b0c5bd6dba5fea Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 12:30:01 2014 -0700 optimize code commit 8f7a19a7b643ac63cbcd776095d6e8a2adb7ca64 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 12:29:37 2014 -0700 adjust code style commit 5da20fd2e75001451ec790f775fc4fe9cb87aa1b Merge: 659fbd6 553acfb Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 12:06:53 2014 -0700 Merge pull request #27 from dabingnn/mesh3d_work Mesh3d work commit 553acfb3ee685f5461a6d2a68779200abcca8670 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 12:06:02 2014 -0700 fix visual error for outline commit 659fbd652aa7f4c2d3629fe446051c3dd0377510 Merge: 056c3e1 c617bb7 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 11:54:54 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 056c3e1394b9c1588395ac8a7f70db1e63c88c31 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 11:54:47 2014 -0700 fix shader, add multiple sprite to Sprite3DEffectTest commit c617bb74b6bc1e691ee488fd9ca43fa618710bfa Merge: 94d7896 7b19c56 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 11:33:31 2014 -0700 Merge pull request #26 from dabingnn/mesh3d_work Mesh3d work commit 7b19c564e4053ad883617873b11043df1fb98a45 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:30:34 2014 -0700 share the same glprogram in effect3DOutline commit 377d3bccd85dc566554c4fe7b529a9d0e82199e7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:19:56 2014 -0700 add class static variable for EffectOutline commit d4913bf735dbc74a21bd8327af0b74325bbf9d1d Merge: 213bbb0 6837cea Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 11:07:04 2014 -0700 Merge branch 'v3' into mesh3d_work commit 213bbb0c289e579895e92620153b95a8cf374521 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:55:28 2014 -0700 add mesh.h in cocos2d.h commit 94d789610c9d4426b14e655a73197c652afc74f6 Merge: fa69e09 9af9da5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 10:41:24 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit fa69e09ce0265b1fe3f4e76fa4dbc952abf17812 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 10:41:05 2014 -0700 remove namespace commit 9af9da50a91804d11537cffe0750e486cf95c8a5 Merge: ff15926 8a38a38 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Fri May 16 10:30:23 2014 -0700 Merge pull request #25 from dabingnn/mesh3d_work Mesh3d work commit 8a38a384742ba130946de8ad1759b61ed2f70495 Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:27:28 2014 -0700 remove redundant uniform CC_Texture0 commit db80bf7c7597fd20a1ca5e4ca89ad067b527f034 Merge: ff15926 511295e Author: Huabing.Xu <dabingnn@gmail.com> Date: Fri May 16 10:20:01 2014 -0700 Merge branch 'v3' into mesh3d_work commit ff15926f47edfbb1250440b060c1d887cfecd033 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 09:11:36 2014 -0700 warning more than one texture commit 5debbf8d6de4563361974b67aa52e572f7df9dd6 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Fri May 16 08:45:03 2014 -0700 remove redundant line commit ed357e7484a63bc3eb208d589943f802b7832e4d Merge: a1e2306 25dd07e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 22:53:10 2014 -0700 Merge pull request #24 from dabingnn/mesh3d_work Mesh3d work commit 25dd07edb7005f593003e90120d6e6439686e5f6 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:52:33 2014 -0700 fix memory leak commit 945ae3444fc2d5eb7c6293960e9c11dfbc5b7cb3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:49:04 2014 -0700 remove unused member variable commit a1e23064140328f4c9bbe434383ca6f25fcb7548 Merge: bac54fc 712e816 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 22:37:16 2014 -0700 Merge pull request #23 from dabingnn/mesh3d_work Mesh3d work commit 712e81606f2782ac41276c1e8a87d32217ac9d28 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 22:35:48 2014 -0700 fix memory leak commit bac54fce097edd4040b0a7cd522d15644e6b482a Merge: 8ed28c4 54538e8 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 20:01:49 2014 -0700 Merge pull request #22 from dabingnn/mesh3d_work Mesh3d work commit 54538e89a2bf33ad6936130d1cbb3ef153db01a5 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 20:01:29 2014 -0700 android work now commit a6cc0f77875e045d169758adf0cde87360f41475 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:53:39 2014 -0700 remove sprite3dEffect include commit d8482fda09d414de76d1dc1a28c0d0b8bcc5aa32 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:50:17 2014 -0700 remove unused Sprite3dEffect commit c5e2d5579daca64b0e9394a2b07613352847eca8 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:48:12 2014 -0700 remove unused outline shader files commit 09a100cf388d80aa1389d96994ae189cbb0652b2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 19:43:17 2014 -0700 fix error on IOS commit 8ed28c4854d0b51ed0251f09c27a5ce328599ad5 Merge: d23ffe3 c0e8ea2 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 18:47:37 2014 -0700 Merge pull request #21 from dabingnn/mesh3d_work Mesh3d work commit c0e8ea26ff29fc6a3cd04e7f9e122d4ea0a67e2c Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:46:54 2014 -0700 adjust indent, and line to the end of the file commit 661ceb72831d6eccfa522a09cedf994541af6f88 Merge: 8e764e7 d23ffe3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:35:18 2014 -0700 Merge branch 'mesh3d' into mesh3d_work Conflicts: cocos/3d/CCSprite3D.cpp cocos/3d/CCSprite3D.h tests/cpp-tests/Classes/Sprite3DTest/Sprite3DTest.cpp commit 8e764e74dd019852a0ef35b257895a7e79cd9a14 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:31:06 2014 -0700 add testCase for outline commit c2ced288851892299fd7258e51f32303959b374d Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 18:03:34 2014 -0700 extract base class Effect3D commit d23ffe3167476d10740df321e579bf647a3698d0 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 18:02:45 2014 -0700 RendeMeshData member rename commit fb8f25553cd317a277c1b924da2c11b9f3188666 Merge: 73cb4b4 819db70 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 17:57:29 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 819db702d5ffa9461fc9d1d232cea7d373536664 Merge: 2676911 b408f43 Author: Trace0429 <yangtuo0429@gmail.com> Date: Thu May 15 17:54:24 2014 -0700 Merge pull request #20 from Trace0429/mesh3d_work Mesh3d work commit 73cb4b444b222d34e135b0d09b426b9c73c1b790 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 17:54:03 2014 -0700 android meshcommand commit b408f4343e47766416b19a583bc6bb5167439693 Author: Trace0429 <yangtuo@chukong-inc.com> Date: Fri May 16 08:50:38 2014 +0800 windows work now commit afbde9c25cfcdc4a6600a9e7607bc9489ea6b6f9 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 17:38:41 2014 -0700 raw EffectSprite commit 2676911bb71ef92b3d9cf198021169d9e4466525 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 16:37:20 2014 -0700 remove SpriteEffect from Sprite3D commit 83dc4cfc3609d14024c3966e49ee34bf36bbd77f Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 16:34:36 2014 -0700 raw effectSpriteTest commit 39e372ef2037090317c9c4a2287b06cadf83c9c5 Merge: 734633e 6d27912 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 16:14:57 2014 -0700 use meshcommand commit 734633ec1ffc66e590b2ad2da94f6477d78146f2 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 15:38:30 2014 -0700 use meshcommand commit 4ec56afaa9a660e8eaad6afe18ffded8ca858eb1 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 15:31:43 2014 -0700 comment out effect framework commit 6d27912f148e03acc07da3e3b4d0c565af8afefa Merge: d6f6f63 61a9011 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 15:11:25 2014 -0700 Merge pull request #19 from dabingnn/mesh3d_work Mesh3d work commit 61a9011d6c78ea6918664bb608dc51344e0236e5 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:55:06 2014 -0700 fix compile error in testcases commit 5f2f585bb8584590ecd3ebcefbb49de45b8f4bed Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:52:43 2014 -0700 fix compile error after merge with v3 commit 1a0de47740be51e586cc5615bc28e44ec8a1fc47 Merge: d6f6f63 760ee57 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:48:19 2014 -0700 Merge branch 'v3' into mesh3d_work commit d6f6f633927eb00df984ec4239555f9ce2c7e44d Merge: c6fbd6e 76d2523 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 14:26:40 2014 -0700 Merge pull request #18 from dabingnn/mesh3d_work Mesh3d work commit 76d2523ae735384533a1e37f06e370cb3481b0f2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 14:25:40 2014 -0700 move 3d shaders to shader cache commit 9b68032c809dc6667ffd5c1af37b7ad4d84fe2de Merge: 2c9a573 c6fbd6e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 13:56:00 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 2c9a5738c2d24c33d4994e8e44e32fcc8d9ceece Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 13:55:49 2014 -0700 meshcommand commit 0631a51c5d9c0aae55447105b962a888e1158cd3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 13:21:36 2014 -0700 add mesh rebuild when come to foreground in android commit 8695016869ab56f3a046f488485f9fdfb6532417 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 13:13:59 2014 -0700 android work now commit c6fbd6e67d29b2fdfeed74f96de0ff5a6cdae1f5 Merge: cd7b235 0466a38 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 12:21:40 2014 -0700 Merge pull request #17 from dabingnn/mesh3d_work Mesh3d work commit 0466a38e77ca1bc6be09bf18b42a6290db8dace8 Merge: e349e4e cd7b235 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:19:24 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit e349e4e0a7047ed49c2bfa9b2e3e5cae5cbc8f67 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:18:49 2014 -0700 commit the changed IOS/MAC project file commit a7c9a65d5603622b1d40cc009dfceee60c376f50 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 12:17:57 2014 -0700 remove MeshPart commit cd7b235b5ec5b3ce21bc856888d383e6224fd047 Merge: e666045 3b7b406 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Thu May 15 11:03:54 2014 -0700 Merge pull request #16 from dabingnn/mesh3d_work Mesh3d work commit 3b7b406caff0b6f79fe044612a32e909f778d1e3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Thu May 15 10:59:10 2014 -0700 raw version of single Mesh commit e666045aa4768199c530f494f0a1fb402f2ce922 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 10:44:04 2014 -0700 fix outline commit 5d4f304c5f9e5b35dbb1d1176232ab5189c98c0e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Thu May 15 10:09:45 2014 -0700 without normal no outline effect commit 3f6bd0ffbca804dd9ca6776c8cc2b37643911d63 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 22:39:03 2014 -0700 android listenBackToForeground commit 6bec670319ea154474c32c941c250bc3909a7e2e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:58:09 2014 -0700 add boss1 with normal commit 35c1b8d5fcec188cbef92457e24721ae53820328 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:54:20 2014 -0700 change cache commit 076166fba142d5432bbadaf3e75d6c35bcb6905a Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 21:35:59 2014 -0700 depress no .mtl crash commit 498c9693a7e7009615382c5769b7493c3ff6be68 Merge: 8a63b49 d4fd946 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:58:50 2014 -0700 Merge branch 'mesh3d' of https://github.com/super626/cocos2d-x into mesh3d commit 8a63b4959cbb5e2b749d7f63f5b4ebe2bc5a6970 Merge: b4a8fee f395cc5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:58:36 2014 -0700 merge dabingnn commit d4fd946fc8afdc95741f6a170e489d3dca9e2519 Merge: f395cc5 a17f074 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 15:53:58 2014 -0700 Merge pull request #15 from dabingnn/mesh3d_work Mesh3d work commit a17f074302d10ff03881cba7e634e094d31feb0a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:52:58 2014 -0700 android can work now commit b4a8fee4b9735e16331a5656055572db9e551367 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 15:33:07 2014 -0700 refactoring render code commit f395cc50cdd8f2f15204ad9a126338d5c2fa72d2 Merge: f129e02 a2c12df Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 15:27:21 2014 -0700 Merge pull request #14 from dabingnn/mesh3d_work Mesh3d work commit a2c12df8d8908abe4dcb1a0c91711a28d9f05cac Merge: 1932e22 f129e02 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:26:19 2014 -0700 Merge branch 'mesh3d' of github.com:super626/cocos2d-x into mesh3d_work commit 1932e22962a79530adf583f24070efcee32251d3 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 15:25:55 2014 -0700 android can compile now(can not work) commit f129e02ef21a0d44b8517c53d8c6bed0aaf85def Merge: ae2aa0d c0d9097 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 14:21:09 2014 -0700 Merge pull request #13 from dabingnn/mesh3d_work Mesh3d work commit c0d90973c2b87582e99966256c74dcdf23712d6a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 14:15:16 2014 -0700 include Sprite3DEffect in the cocos2d header commit ae2aa0dd705bf1a961164f9059eec4e5c2281bb5 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 12:51:09 2014 -0700 outline sprite commit e7a542d9c95c145241314fc63fbe12ba0b80ec6a Merge: 1c76d4c 48e9f39 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 10:48:55 2014 -0700 meshvertexattrib work commit 1c76d4ca319c15dadd7243ce4230fa35dfb7a1bb Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 10:40:55 2014 -0700 use meshvertexattribute commit 48e9f3991dd7aafc90e99e1721d04f28d01f94e6 Merge: b70bf52 e0d87a9 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Wed May 14 09:41:57 2014 -0700 Merge pull request #12 from dabingnn/mesh3d_work Mesh3d work commit e0d87a99f42f808429917c8b586509ca75e8a5e2 Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:40:14 2014 -0700 remove compile error commit c445e07c895fc2352f1220459d91f41f77690cd8 Merge: b70bf52 86fb75a Author: Huabing.Xu <dabingnn@gmail.com> Date: Wed May 14 09:31:14 2014 -0700 Merge branch 'v3' into mesh3d_work commit b70bf522ef139da670cf41791a3d0ddad3dfa1cc Merge: da24c48 5a2127d Author: yangxiao <yangxiao@cocos2d-x.org> Date: Wed May 14 00:25:47 2014 -0700 vertex attrib commit da24c48c981029493900bcd2143495e546faa75e Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 23:49:09 2014 -0700 mesh vertex attribute commit 5a2127d718e6a9cb9f2ca3e1ac353ce1e5c0ebfd Merge: d98adb7 5148f76 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 19:06:38 2014 -0700 Merge pull request #11 from dabingnn/mesh3d_work Mesh3d work commit 5148f76c43bf1e3dc5a49ad6bf112d166d6b1c93 Merge: 02deb39 d98adb7 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 19:05:40 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 02deb399314f01ec1222d78f2383a65614e33a34 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 19:04:15 2014 -0700 fix texcoord y flipped commit d98adb7d9d906f8376e45a2ba57bffc4e17e1775 Merge: 300eb4e 946283b Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 18:35:08 2014 -0700 Merge pull request #10 from dabingnn/mesh3d_work Mesh3d work commit 946283b83218de893c727dc9780291fe1683a4f9 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 18:22:16 2014 -0700 added blendFunc commit 300eb4e31783452cf16b77f85c3ef6f9dba19fc6 Merge: da7d6a0 ccc0baf Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 16:03:01 2014 -0700 Merge pull request #9 from dabingnn/mesh3d_work Mesh3d work commit ccc0bafd32b3375c2fe2163e0eb32714d06f8525 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 16:01:59 2014 -0700 fix compile error after merge commit 5bfc30b2b930131d23058d99a6862061c2217f38 Merge: da7d6a0 0171e27 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 15:56:46 2014 -0700 Merge branch 'v3' into mesh3d_work commit da7d6a087f22f4a11827ff3410fbcd2561f155fc Merge: 0caad32 f413b4e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 14:19:24 2014 -0700 Merge pull request #8 from dabingnn/mesh3d_work Mesh3d work commit f413b4e55764d27863ae6978f1dbb2a0a3ca35e0 Merge: f47cfc6 0caad32 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 14:17:01 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit f47cfc67041ed4655a916623a6731876758a5182 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 14:15:06 2014 -0700 add new interface for createSprite3D commit 0caad32f2aa40c45e42d5d61c83419ee06e65a97 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 13:58:35 2014 -0700 default GLProgram to object commit 901ccef93593e2c39cca190784b4fc9684dfa9d0 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 13:13:24 2014 -0700 remove compile warning commit a6f9cdfcdd001d4486eb8206c3bd9d85e9fc9bc8 Merge: 68bdd0b 3eef54c Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 13:01:20 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 68bdd0be68e3a11bb7bc5312e61ba5fb628c439b Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 12:59:59 2014 -0700 rename init->initWithFile in Sprite3D commit 3eef54ca06c83f72e248ce91fe639a8446ef1be5 Merge: f719f45 1c8773c Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 12:58:23 2014 -0700 Merge pull request #7 from super626/mesh3d_tmp Mesh3d commit 1c8773c53ff0bb87cb249d6392a900cd572dac1e Merge: 23e8786 f719f45 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 12:56:06 2014 -0700 Merge branch 'mesh3d_tmp' into mesh3d commit f719f45aba37791ffdfe107569350a1af94cbeb0 Merge: 6bd3f28 1b76467 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:59:46 2014 -0700 Merge pull request #6 from dabingnn/mesh3d_work Mesh3d work commit 1b7646759d9efcdf0942a42c0c22964a99309853 Merge: 6bd3f28 87adf9d Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:53:17 2014 -0700 Merge branch 'mesh3d' into mesh3d_work commit 87adf9df61e76f765f78a2bae4ec980ffb73ce57 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:52:41 2014 -0700 adjust line indent and header file define commit 23e8786892b89e25d1add091a7c3bc618990e579 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 11:44:22 2014 -0700 using vbo commit 6bd3f28440eca3530379b4610d6f87cc88eb54c5 Merge: 56fc0f4 a239a7e Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:42:10 2014 -0700 Merge pull request #5 from dabingnn/mesh3d_work Mesh3d work commit a239a7e35a82f497c337d96a025125b92c8daefd Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:39:06 2014 -0700 add CCSprite3d include into cocos2d.h commit 8d580c28a084c1dab2a5ce925871f3361e6b970a Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:33:18 2014 -0700 remove cocos2d.h include in Sprite3DTest.h commit 56fc0f4cbccb07cda972efda302ff6689b958ab2 Merge: ab16a26 8bb75e3 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Tue May 13 11:28:47 2014 -0700 Merge pull request #4 from dabingnn/mesh3d Mesh3d commit 8bb75e3dd96131da1c2dd9bc622d7bdbb2ad0514 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:26:40 2014 -0700 fix compile error after rename commit 230a73132c09c66b449efbacbc417974616694c6 Author: Huabing.Xu <dabingnn@gmail.com> Date: Tue May 13 11:07:30 2014 -0700 rename FileXXX to CCFileXXX commit ab16a26376f7deddf1a82f3085668e3fd9f09a12 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Tue May 13 10:52:36 2014 -0700 rename _model to _mesh commit 92ac7f75d06ad081282bbddcad5920a1f7584264 Merge: 6b911b5 df147d1 Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Mon May 12 22:23:59 2014 -0700 Merge pull request #3 from dabingnn/mesh3d Mesh3d commit df147d14ddb8e61d907a44c6f03f404c8a68103f Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 22:21:22 2014 -0700 fix retain/release in sprite3D commit 0b38939fd79168699ab737a8dc8e97c9417cf4ce Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 20:04:16 2014 -0700 remove compile warnings commit 090f81b8198d18bc0b31bbba28c3e2e6d73e9f92 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 19:16:25 2014 -0700 using glprogramstate work ok commit 0b4f36a964c28f5f4b3224522f27402e0efbe123 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 18:38:52 2014 -0700 add obj commit e8917d7427f3ff0e7c3d874b908e0058adecf2f7 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 18:33:23 2014 -0700 use glprogramstate commit 6b911b52c86cd79e1fd3efc0536a5ca7ab04ab7a Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 13:01:56 2014 -0700 sprite3d commit 2a490c344f2db27d467506cf28c910410bb892e6 Merge: 23a5232 01b015d Author: Huabing.Xu <huabing.xu@cocos2d-x.org> Date: Mon May 12 10:52:17 2014 -0700 Merge pull request #1 from dabingnn/newcode Newcode commit 01b015d1238c89b6837ea276a95ce359cf0da5a7 Merge: 23a5232 5d24b3d Author: Huabing.Xu <dabingnn@gmail.com> Date: Mon May 12 10:50:14 2014 -0700 Merge branch 'v3' into newcode commit 23a5232fe5bb4c0b0bc821d1945426486dafe253 Author: yangxiao <yangxiao@cocos2d-x.org> Date: Mon May 12 09:44:41 2014 -0700 3d mesh initial code
2014-05-19 05:49:16 +08:00
face.push_back(vi);
auto n = strspn(token, " \t\r");
token += n;
}
faceGroup.push_back(face);
continue;
}
// use mtl
if ((0 == strncmp(token, "usemtl", 6)) && isSpace((token[6])))
{
char namebuf[4096];
token += 7;
sscanf(token, "%s", namebuf);
if (material_map.find(namebuf) != material_map.end())
{
material = material_map[namebuf];
}
else
{
// { error!! material not found }
InitMaterial(material);
}
continue;
}
// load mtl
if ((0 == strncmp(token, "mtllib", 6)) && isSpace((token[6])))
{
char namebuf[4096];
token += 7;
sscanf(token, "%s", namebuf);
std::string err_mtl = LoadMtl(material_map, namebuf, mtl_basepath);
if (!err_mtl.empty())
{
faceGroup.clear(); // for safety
//return err_mtl;
}
continue;
}
// group name
if (token[0] == 'g' && isSpace((token[1])))
{
// flush previous face group.
shape_t shape;
exportFaceGroupToShape(vertexCache, shapes, v, vn, vt, faceGroup, material, name);
faceGroup.clear();
std::vector<std::string> names;
while (!isNewLine(token[0]))
{
std::string str = parseString(token);
names.push_back(str);
token += strspn(token, " \t\r"); // skip tag
}
assert(names.size() > 0);
// names[0] must be 'g', so skipt 0th element.
if (names.size() > 1)
{
name = names[1];
}
else
{
name = "";
}
continue;
}
// object name
if (token[0] == 'o' && isSpace((token[1])))
{
// flush previous face group.
shape_t shape;
exportFaceGroupToShape(vertexCache, shapes, v, vn, vt, faceGroup, material, name);
faceGroup.clear();
// @todo { multiple object name? }
char namebuf[4096];
token += 2;
sscanf(token, "%s", namebuf);
name = std::string(namebuf);
continue;
}
// Ignore unknown command.
}
shape_t shape;
exportFaceGroupToShape(vertexCache, shapes, v, vn, vt, faceGroup, material, name);
faceGroup.clear(); // for safety
return err.str();
}
NS_CC_END