ccb 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +20 -0
  3. data/README.md +31 -0
  4. data/bin/ccb +4 -0
  5. data/lib/ccb/builder/project_builder.rb +14 -0
  6. data/lib/ccb/builder/scene_builder.rb +9 -0
  7. data/lib/ccb/builder/templates/project/GameConfig.js.tt +21 -0
  8. data/lib/ccb/builder/templates/project/_cocos-project.json +4 -0
  9. data/lib/ccb/builder/templates/project/folder/CMakeLists.txt +295 -0
  10. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/Base64Images.js +32 -0
  11. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCBoot.js +2271 -0
  12. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/CCDebugger.js +336 -0
  13. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCAction.js +694 -0
  14. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCamera.js +293 -0
  15. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionCatmullRom.js +605 -0
  16. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionEase.js +3681 -0
  17. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInstant.js +757 -0
  18. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionInterval.js +3554 -0
  19. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions/CCActionTween.js +166 -0
  20. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid.js +372 -0
  21. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionGrid3D.js +1257 -0
  22. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionPageTurn3D.js +113 -0
  23. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/actions3d/CCActionTiledGrid.js +1289 -0
  24. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/audio/CCAudio.js +1024 -0
  25. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNode.js +224 -0
  26. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeCanvasRenderCmd.js +227 -0
  27. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/clipping-nodes/CCClippingNodeWebGLRenderCmd.js +226 -0
  28. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/ZipUtils.js +82 -0
  29. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/base64.js +95 -0
  30. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/gzip.js +731 -0
  31. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/compression/zlib.min.js +55 -0
  32. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCActionManager.js +378 -0
  33. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCCamera.js +290 -0
  34. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCConfiguration.js +294 -0
  35. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirector.js +1019 -0
  36. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDirectorWebGL.js +329 -0
  37. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesCanvas.js +438 -0
  38. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCDrawingPrimitivesWebGL.js +464 -0
  39. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/CCScheduler.js +744 -0
  40. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/BaseNodesPropertyDefine.js +127 -0
  41. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNode.js +294 -0
  42. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeCanvasRenderCmd.js +138 -0
  43. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCAtlasNodeWebGLRenderCmd.js +145 -0
  44. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNode.js +2386 -0
  45. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeCanvasRenderCmd.js +504 -0
  46. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/base-nodes/CCNodeWebGLRenderCmd.js +254 -0
  47. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCAffineTransform.js +259 -0
  48. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/cocoa/CCGeometry.js +327 -0
  49. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEvent.js +449 -0
  50. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventExtension.js +126 -0
  51. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventListener.js +519 -0
  52. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCEventManager.js +1025 -0
  53. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/event-manager/CCTouch.js +175 -0
  54. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTF.js +829 -0
  55. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFCanvasRenderCmd.js +420 -0
  56. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/CCLabelTTFWebGLRenderCmd.js +101 -0
  57. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/labelttf/LabelTTFPropertyDefine.js +88 -0
  58. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayer.js +642 -0
  59. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerCanvasRenderCmd.js +434 -0
  60. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/layers/CCLayerWebGLRenderCmd.js +248 -0
  61. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCClass.js +333 -0
  62. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCCommon.js +303 -0
  63. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCConfig.js +303 -0
  64. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCEGLView.js +1245 -0
  65. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputExtension.js +135 -0
  66. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCInputManager.js +616 -0
  67. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCLoaders.js +142 -0
  68. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCMacro.js +830 -0
  69. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCSAXParser.js +160 -0
  70. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCScreen.js +155 -0
  71. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypes.js +374 -0
  72. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesPropertyDefine.js +165 -0
  73. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCTypesWebGL.js +689 -0
  74. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/CCVisibleRect.js +100 -0
  75. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/platform/miniFramework.js +264 -0
  76. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererCanvas.js +274 -0
  77. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/renderer/RendererWebGL.js +137 -0
  78. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCLoaderScene.js +149 -0
  79. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/scenes/CCScene.js +62 -0
  80. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimation.js +477 -0
  81. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCAnimationCache.js +213 -0
  82. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCBakeSprite.js +71 -0
  83. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSprite.js +1014 -0
  84. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNode.js +676 -0
  85. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeCanvasRenderCmd.js +101 -0
  86. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteBatchNodeWebGLRenderCmd.js +243 -0
  87. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteCanvasRenderCmd.js +518 -0
  88. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrame.js +420 -0
  89. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteFrameCache.js +341 -0
  90. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/CCSpriteWebGLRenderCmd.js +493 -0
  91. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/sprites/SpritesPropertyDefine.js +67 -0
  92. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCPointExtension.js +515 -0
  93. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/CCVertex.js +170 -0
  94. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/support/TransformUtils.js +62 -0
  95. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTexture2D.js +455 -0
  96. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureAtlas.js +653 -0
  97. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/CCTextureCache.js +371 -0
  98. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesPropertyDefine.js +221 -0
  99. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/textures/TexturesWebGL.js +899 -0
  100. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/core/utils/BinaryLoader.js +151 -0
  101. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrabber.js +110 -0
  102. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/effects/CCGrid.js +737 -0
  103. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/aabb.js +68 -0
  104. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/mat4stack.js +59 -0
  105. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/gl/matrix.js +169 -0
  106. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat3.js +329 -0
  107. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/mat4.js +810 -0
  108. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/plane.js +184 -0
  109. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/quaternion.js +497 -0
  110. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/ray2.js +163 -0
  111. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/utility.js +76 -0
  112. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec2.js +107 -0
  113. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec3.js +205 -0
  114. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/kazmath/vec4.js +158 -0
  115. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlas.js +239 -0
  116. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasCanvasRenderCmd.js +95 -0
  117. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelAtlasWebGLRenderCmd.js +132 -0
  118. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFont.js +958 -0
  119. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontCanvasRenderCmd.js +142 -0
  120. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/labels/CCLabelBMFontWebGLRenderCmd.js +87 -0
  121. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenu.js +600 -0
  122. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/menus/CCMenuItem.js +1422 -0
  123. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreak.js +517 -0
  124. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/motion-streak/CCMotionStreakWebGLRenderCmd.js +66 -0
  125. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGrid.js +129 -0
  126. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/node-grid/CCNodeGridWebGLRenderCmd.js +98 -0
  127. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNode.js +252 -0
  128. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/parallax/CCParallaxNodeRenderCmd.js +69 -0
  129. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCPNGReader.js +330 -0
  130. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNode.js +527 -0
  131. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeCanvasRenderCmd.js +38 -0
  132. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleBatchNodeWebGLRenderCmd.js +74 -0
  133. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleExamples.js +1006 -0
  134. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystem.js +2294 -0
  135. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemCanvasRenderCmd.js +217 -0
  136. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCParticleSystemWebGLRenderCmd.js +402 -0
  137. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/particle/CCTIFFReader.js +692 -0
  138. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNode.js +212 -0
  139. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeCanvasRenderCmd.js +52 -0
  140. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsDebugNodeWebGLRenderCmd.js +53 -0
  141. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSprite.js +447 -0
  142. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteCanvasRenderCmd.js +93 -0
  143. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/physics/CCPhysicsSpriteWebGLRenderCmd.js +87 -0
  144. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCActionProgressTimer.js +227 -0
  145. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimer.js +345 -0
  146. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerCanvasRenderCmd.js +270 -0
  147. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/progress-timer/CCProgressTimerWebGLRenderCmd.js +486 -0
  148. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTexture.js +395 -0
  149. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureCanvasRenderCmd.js +105 -0
  150. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/render-texture/CCRenderTextureWebGLRenderCmd.js +367 -0
  151. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLProgram.js +767 -0
  152. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCGLStateCache.js +340 -0
  153. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaderCache.js +301 -0
  154. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shaders/CCShaders.js +280 -0
  155. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNode.js +940 -0
  156. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeCanvasRenderCmd.js +129 -0
  157. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/shape-nodes/CCDrawNodeWebGLRenderCmd.js +41 -0
  158. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCIMEDispatcher.js +526 -0
  159. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/text-input/CCTextFieldTTF.js +472 -0
  160. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTGAlib.js +437 -0
  161. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayer.js +914 -0
  162. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerCanvasRenderCmd.js +232 -0
  163. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXLayerWebGLRenderCmd.js +67 -0
  164. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXObjectGroup.js +146 -0
  165. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXTiledMap.js +479 -0
  166. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/tilemap/CCTMXXMLParser.js +950 -0
  167. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransition.js +1971 -0
  168. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionPageTurn.js +152 -0
  169. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/cocos2d/transitions/CCTransitionProgress.js +458 -0
  170. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBAnimationManager.js +770 -0
  171. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBKeyframe.js +60 -0
  172. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReader.js +1129 -0
  173. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBReaderUtil.js +61 -0
  174. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBRelativePositioning.js +90 -0
  175. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBSequence.js +114 -0
  176. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCBValue.js +81 -0
  177. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCControlLoader.js +318 -0
  178. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoader.js +905 -0
  179. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCNodeLoaderLibrary.js +101 -0
  180. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccb-reader/CCSpriteLoader.js +544 -0
  181. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccpool/CCPool.js +146 -0
  182. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNode.js +305 -0
  183. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeCanvasRenderCmd.js +246 -0
  184. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/CCProtectedNodeWebGLRenderCmd.js +159 -0
  185. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9Sprite.js +1105 -0
  186. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteCanvasRenderCmd.js +142 -0
  187. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIScale9SpriteWebGLRenderCmd.js +129 -0
  188. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidget.js +2059 -0
  189. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/base-classes/UIWidgetRenderCmd.js +100 -0
  190. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIHBox.js +80 -0
  191. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayout.js +1558 -0
  192. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutCanvasRenderCmd.js +179 -0
  193. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutComponent.js +585 -0
  194. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutManager.js +457 -0
  195. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutParameter.js +576 -0
  196. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UILayoutWebGLRenderCmd.js +240 -0
  197. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIRelativeBox.js +79 -0
  198. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/layouts/UIVBox.js +79 -0
  199. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/CocosGUI.js +62 -0
  200. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/system/UIHelper.js +164 -0
  201. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIButton.js +987 -0
  202. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UICheckBox.js +737 -0
  203. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIImageView.js +337 -0
  204. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UILoadingBar.js +432 -0
  205. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIRichText.js +579 -0
  206. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UISlider.js +762 -0
  207. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UIText.js +512 -0
  208. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextAtlas.js +229 -0
  209. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextBMFont.js +216 -0
  210. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/UITextField.js +915 -0
  211. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIListView.js +602 -0
  212. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIPageView.js +657 -0
  213. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/ccui/uiwidgets/scroll-widget/UIScrollView.js +1884 -0
  214. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/CocoStudio.js +68 -0
  215. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionFrame.js +528 -0
  216. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionManager.js +112 -0
  217. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionNode.js +417 -0
  218. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/action/CCActionObject.js +263 -0
  219. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmature.js +579 -0
  220. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureCanvasRenderCmd.js +190 -0
  221. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCArmatureWebGLRenderCmd.js +167 -0
  222. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/CCBone.js +711 -0
  223. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCArmatureAnimation.js +669 -0
  224. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCProcessBase.js +365 -0
  225. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/animation/CCTween.js +448 -0
  226. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/datas/CCDatas.js +807 -0
  227. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDecorativeDisplay.js +118 -0
  228. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayFactory.js +220 -0
  229. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCDisplayManager.js +465 -0
  230. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkin.js +215 -0
  231. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinCanvasRenderCmd.js +58 -0
  232. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/display/CCSkinWebGLRenderCmd.js +146 -0
  233. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/physics/CCColliderDetector.js +397 -0
  234. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDataManager.js +325 -0
  235. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCArmatureDefine.js +45 -0
  236. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCDataReaderHelper.js +1223 -0
  237. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCSpriteFrameCacheHelper.js +68 -0
  238. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTransformHelp.js +183 -0
  239. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCTweenFunction.js +501 -0
  240. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/armature/utils/CCUtilMath.js +69 -0
  241. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAttribute.js +210 -0
  242. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComAudio.js +285 -0
  243. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComController.js +76 -0
  244. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComRender.js +91 -0
  245. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponent.js +136 -0
  246. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/components/CCComponentContainer.js +159 -0
  247. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/load.js +221 -0
  248. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-1.x.js +238 -0
  249. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/action-2.x.js +266 -0
  250. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/compatible.js +251 -0
  251. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/scene-1.x.js +262 -0
  252. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-1.x.js +292 -0
  253. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/timelineParser-2.x.js +1288 -0
  254. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/loader/parsers/uiParser-1.x.js +680 -0
  255. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/ActionTimeline.js +448 -0
  256. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Frame.js +1268 -0
  257. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/timeline/Timeline.js +321 -0
  258. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/ObjectFactory.js +99 -0
  259. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerBase.js +49 -0
  260. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerMng.js +301 -0
  261. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/cocostudio/trigger/TriggerObj.js +263 -0
  262. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCEditBox.js +716 -0
  263. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/editbox/CCdomNode.js +657 -0
  264. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControl.js +381 -0
  265. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlButton.js +688 -0
  266. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlColourPicker.js +187 -0
  267. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlHuePicker.js +218 -0
  268. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlPotentiometer.js +300 -0
  269. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSaturationBrightnessPicker.js +257 -0
  270. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSlider.js +308 -0
  271. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlStepper.js +390 -0
  272. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlSwitch.js +425 -0
  273. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCControlUtils.js +177 -0
  274. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCInvocation.js +65 -0
  275. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCMenuPassive.js +415 -0
  276. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9Sprite.js +1099 -0
  277. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteCanvasRenderCmd.js +142 -0
  278. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/control-extension/CCScale9SpriteWebGLRenderCmd.js +129 -0
  279. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollView.js +827 -0
  280. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewCanvasRenderCmd.js +79 -0
  281. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCScrollViewWebGLRenderCmd.js +108 -0
  282. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCSorting.js +239 -0
  283. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/gui/scrollview/CCTableView.js +718 -0
  284. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeleton.js +357 -0
  285. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonAnimation.js +340 -0
  286. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonCanvasRenderCmd.js +165 -0
  287. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/CCSkeletonWebGLRenderCmd.js +165 -0
  288. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/extensions/spine/Spine.js +2239 -0
  289. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/box2d/box2d.js +10882 -0
  290. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/chipmunk/chipmunk.js +6196 -0
  291. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/Plugin.js +254 -0
  292. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook.js +557 -0
  293. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/pluginx/platform/facebook_sdk.js +151 -0
  294. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/external/socketio/socket.io.min.js +2 -0
  295. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/jsb_apis.js +618 -0
  296. data/lib/ccb/builder/templates/project/folder/frameworks/cocos2d-html5/moduleConfig.json +453 -0
  297. data/lib/ccb/builder/templates/project/folder/project.json +42 -0
  298. data/lib/ccb/builder/templates/project/folder/res/CloseNormal.png +0 -0
  299. data/lib/ccb/builder/templates/project/folder/res/CloseSelected.png +0 -0
  300. data/lib/ccb/builder/templates/project/folder/res/HelloWorld.png +0 -0
  301. data/lib/ccb/builder/templates/project/folder/res/favicon.ico +0 -0
  302. data/lib/ccb/builder/templates/project/folder/res/gameOver/cocos2d-html5.png +0 -0
  303. data/lib/ccb/builder/templates/project/folder/res/gameOver/gameOver.png +0 -0
  304. data/lib/ccb/builder/templates/project/folder/res/mainMenu/bg.png +0 -0
  305. data/lib/ccb/builder/templates/project/folder/res/mainMenu/menu.png +0 -0
  306. data/lib/ccb/builder/templates/project/folder/res/setting/menuTitle.png +0 -0
  307. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.fnt +182 -0
  308. data/lib/ccb/builder/templates/project/folder/res/shared/arial-14.png +0 -0
  309. data/lib/ccb/builder/templates/project/folder/res/sound/music/bgMusic.mp3 +0 -0
  310. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABBackgroundLayer.js +23 -0
  311. data/lib/ccb/builder/templates/project/folder/src/about/layer/ABTouchLayer.js +51 -0
  312. data/lib/ccb/builder/templates/project/folder/src/about/scene/About.js +36 -0
  313. data/lib/ccb/builder/templates/project/folder/src/config/Level.js +7 -0
  314. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOBackgroundLayer.js +50 -0
  315. data/lib/ccb/builder/templates/project/folder/src/gameOver/layer/GOTouchLayer.js +51 -0
  316. data/lib/ccb/builder/templates/project/folder/src/gameOver/scene/GameOver.js +38 -0
  317. data/lib/ccb/builder/templates/project/folder/src/gamePlay/classes/LevelManager.js +21 -0
  318. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPBackgroundLayer.js +25 -0
  319. data/lib/ccb/builder/templates/project/folder/src/gamePlay/layer/GPTouchLayer.js +51 -0
  320. data/lib/ccb/builder/templates/project/folder/src/gamePlay/scene/GamePlay.js +44 -0
  321. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMBackgroundLayer.js +43 -0
  322. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMMainMenuLayer.js +38 -0
  323. data/lib/ccb/builder/templates/project/folder/src/mainMenu/layer/MMTouchLayer.js +96 -0
  324. data/lib/ccb/builder/templates/project/folder/src/mainMenu/scene/MainMenu.js +45 -0
  325. data/lib/ccb/builder/templates/project/folder/src/resource.js +29 -0
  326. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STBackgroundLayer.js +25 -0
  327. data/lib/ccb/builder/templates/project/folder/src/setting/layer/STTouchLayer.js +89 -0
  328. data/lib/ccb/builder/templates/project/folder/src/setting/scene/Setting.js +40 -0
  329. data/lib/ccb/builder/templates/project/index.html.tt +27 -0
  330. data/lib/ccb/builder/templates/project/main.js.tt +62 -0
  331. data/lib/ccb/cli.rb +32 -0
  332. data/lib/ccb/ext/method_hooker.rb +68 -0
  333. data/lib/ccb/ext/string_extention.rb +7 -0
  334. data/lib/ccb.rb +1 -0
  335. metadata +449 -0
@@ -0,0 +1,767 @@
1
+ /****************************************************************************
2
+ Copyright (c) 2008-2010 Ricardo Quesada
3
+ Copyright (c) 2011-2012 cocos2d-x.org
4
+ Copyright (c) 2013-2014 Chukong Technologies Inc.
5
+ Copyright 2011 Jeff Lamarche
6
+ Copyright 2012 Goffredo Marocchi
7
+
8
+ http://www.cocos2d-x.org
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in
18
+ all copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
26
+ THE SOFTWARE.
27
+ ****************************************************************************/
28
+
29
+ cc.HashUniformEntry = function (value, location, hh) {
30
+ this.value = value;
31
+ this.location = location;
32
+ this.hh = hh || {};
33
+ };
34
+
35
+ /**
36
+ * Class that implements a WebGL program
37
+ * @class
38
+ * @extends cc.Class
39
+ */
40
+ cc.GLProgram = cc.Class.extend(/** @lends cc.GLProgram# */{
41
+ _glContext: null,
42
+ _programObj: null,
43
+ _vertShader: null,
44
+ _fragShader: null,
45
+ _uniforms: null,
46
+ _hashForUniforms: null,
47
+ _usesTime: false,
48
+
49
+ // Uniform cache
50
+ _updateUniformLocation: function (location, data, bytes) {
51
+ if (location == null)
52
+ return false;
53
+
54
+ var updated = true;
55
+ var element = null;
56
+ for (var i = 0; i < this._hashForUniforms.length; i++)
57
+ if (this._hashForUniforms[i].location == location)
58
+ element = this._hashForUniforms[i];
59
+
60
+ if (!element) {
61
+ element = new cc.HashUniformEntry();
62
+ // key
63
+ element.location = location;
64
+ // value
65
+ element.value = data;
66
+ this._hashForUniforms.push(element);
67
+ } else {
68
+ if (element.value == data)
69
+ updated = false;
70
+ else
71
+ element.value = data;
72
+ }
73
+
74
+ return updated;
75
+ },
76
+
77
+ _description: function () {
78
+ return "<CCGLProgram = " + this.toString() + " | Program = " + this._programObj.toString() + ", VertexShader = " +
79
+ this._vertShader.toString() + ", FragmentShader = " + this._fragShader.toString() + ">";
80
+ },
81
+
82
+ _compileShader: function (shader, type, source) {
83
+ if (!source || !shader)
84
+ return false;
85
+
86
+ var preStr = cc.GLProgram._isHighpSupported() ? "precision highp float;\n" : "precision mediump float;\n";
87
+ source = preStr
88
+ + "uniform mat4 CC_PMatrix; \n"
89
+ + "uniform mat4 CC_MVMatrix; \n"
90
+ + "uniform mat4 CC_MVPMatrix; \n"
91
+ + "uniform vec4 CC_Time; \n"
92
+ + "uniform vec4 CC_SinTime; \n"
93
+ + "uniform vec4 CC_CosTime; \n"
94
+ + "uniform vec4 CC_Random01; \n"
95
+ + "uniform sampler2D CC_Texture0; \n"
96
+ + "//CC INCLUDES END \n" + source;
97
+
98
+ this._glContext.shaderSource(shader, source);
99
+ this._glContext.compileShader(shader);
100
+ var status = this._glContext.getShaderParameter(shader, this._glContext.COMPILE_STATUS);
101
+
102
+ if (!status) {
103
+ cc.log("cocos2d: ERROR: Failed to compile shader:\n" + this._glContext.getShaderSource(shader));
104
+ if (type == this._glContext.VERTEX_SHADER)
105
+ cc.log("cocos2d: \n" + this.vertexShaderLog());
106
+ else
107
+ cc.log("cocos2d: \n" + this.fragmentShaderLog());
108
+ }
109
+ return ( status == 1 );
110
+ },
111
+
112
+ /**
113
+ * Create a cc.GLProgram object
114
+ * @param {String} vShaderFileName
115
+ * @param {String} fShaderFileName
116
+ * @returns {cc.GLProgram}
117
+ */
118
+ ctor: function (vShaderFileName, fShaderFileName, glContext) {
119
+ this._uniforms = [];
120
+ this._hashForUniforms = [];
121
+ this._glContext = glContext || cc._renderContext;
122
+
123
+ vShaderFileName && fShaderFileName && this.init(vShaderFileName, fShaderFileName);
124
+ },
125
+
126
+ /**
127
+ * destroy program
128
+ */
129
+ destroyProgram: function () {
130
+ this._vertShader = null;
131
+ this._fragShader = null;
132
+ this._uniforms = null;
133
+ this._hashForUniforms = null;
134
+
135
+ this._glContext.deleteProgram(this._programObj);
136
+ },
137
+
138
+ /**
139
+ * Initializes the cc.GLProgram with a vertex and fragment with string
140
+ * @param {String} vertShaderStr
141
+ * @param {String} fragShaderStr
142
+ * @return {Boolean}
143
+ */
144
+ initWithVertexShaderByteArray: function (vertShaderStr, fragShaderStr) {
145
+ var locGL = this._glContext;
146
+ this._programObj = locGL.createProgram();
147
+ //cc.checkGLErrorDebug();
148
+
149
+ this._vertShader = null;
150
+ this._fragShader = null;
151
+
152
+ if (vertShaderStr) {
153
+ this._vertShader = locGL.createShader(locGL.VERTEX_SHADER);
154
+ if (!this._compileShader(this._vertShader, locGL.VERTEX_SHADER, vertShaderStr)) {
155
+ cc.log("cocos2d: ERROR: Failed to compile vertex shader");
156
+ }
157
+ }
158
+
159
+ // Create and compile fragment shader
160
+ if (fragShaderStr) {
161
+ this._fragShader = locGL.createShader(locGL.FRAGMENT_SHADER);
162
+ if (!this._compileShader(this._fragShader, locGL.FRAGMENT_SHADER, fragShaderStr)) {
163
+ cc.log("cocos2d: ERROR: Failed to compile fragment shader");
164
+ }
165
+ }
166
+
167
+ if (this._vertShader)
168
+ locGL.attachShader(this._programObj, this._vertShader);
169
+ cc.checkGLErrorDebug();
170
+
171
+ if (this._fragShader)
172
+ locGL.attachShader(this._programObj, this._fragShader);
173
+ this._hashForUniforms.length = 0;
174
+
175
+ cc.checkGLErrorDebug();
176
+ return true;
177
+ },
178
+
179
+ /**
180
+ * Initializes the cc.GLProgram with a vertex and fragment with string
181
+ * @param {String} vertShaderStr
182
+ * @param {String} fragShaderStr
183
+ * @return {Boolean}
184
+ */
185
+ initWithString: function (vertShaderStr, fragShaderStr) {
186
+ return this.initWithVertexShaderByteArray(vertShaderStr, fragShaderStr);
187
+ },
188
+
189
+ /**
190
+ * Initializes the CCGLProgram with a vertex and fragment with contents of filenames
191
+ * @param {String} vShaderFilename
192
+ * @param {String} fShaderFileName
193
+ * @return {Boolean}
194
+ */
195
+ initWithVertexShaderFilename: function (vShaderFilename, fShaderFileName) {
196
+ var vertexSource = cc.loader.getRes(vShaderFilename);
197
+ if(!vertexSource) throw "Please load the resource firset : " + vShaderFilename;
198
+ var fragmentSource = cc.loader.getRes(fShaderFileName);
199
+ if(!fragmentSource) throw "Please load the resource firset : " + fShaderFileName;
200
+ return this.initWithVertexShaderByteArray(vertexSource, fragmentSource);
201
+ },
202
+
203
+ /**
204
+ * Initializes the CCGLProgram with a vertex and fragment with contents of filenames
205
+ * @param {String} vShaderFilename
206
+ * @param {String} fShaderFileName
207
+ * @return {Boolean}
208
+ */
209
+ init: function (vShaderFilename, fShaderFileName) {
210
+ return this.initWithVertexShaderFilename(vShaderFilename, fShaderFileName);
211
+ },
212
+
213
+ /**
214
+ * It will add a new attribute to the shader
215
+ * @param {String} attributeName
216
+ * @param {Number} index
217
+ */
218
+ addAttribute: function (attributeName, index) {
219
+ this._glContext.bindAttribLocation(this._programObj, index, attributeName);
220
+ },
221
+
222
+ /**
223
+ * links the glProgram
224
+ * @return {Boolean}
225
+ */
226
+ link: function () {
227
+ if(!this._programObj) {
228
+ cc.log("cc.GLProgram.link(): Cannot link invalid program");
229
+ return false;
230
+ }
231
+
232
+ this._glContext.linkProgram(this._programObj);
233
+
234
+ if (this._vertShader)
235
+ this._glContext.deleteShader(this._vertShader);
236
+ if (this._fragShader)
237
+ this._glContext.deleteShader(this._fragShader);
238
+
239
+ this._vertShader = null;
240
+ this._fragShader = null;
241
+
242
+ if (cc.game.config[cc.game.CONFIG_KEY.debugMode]) {
243
+ var status = this._glContext.getProgramParameter(this._programObj, this._glContext.LINK_STATUS);
244
+ if (!status) {
245
+ cc.log("cocos2d: ERROR: Failed to link program: " + this._glContext.getProgramInfoLog(this._programObj));
246
+ cc.glDeleteProgram(this._programObj);
247
+ this._programObj = null;
248
+ return false;
249
+ }
250
+ }
251
+
252
+ return true;
253
+ },
254
+
255
+ /**
256
+ * it will call glUseProgram()
257
+ */
258
+ use: function () {
259
+ cc.glUseProgram(this._programObj);
260
+ },
261
+
262
+ /**
263
+ * It will create 4 uniforms:
264
+ * cc.UNIFORM_PMATRIX
265
+ * cc.UNIFORM_MVMATRIX
266
+ * cc.UNIFORM_MVPMATRIX
267
+ * cc.UNIFORM_SAMPLER
268
+ */
269
+ updateUniforms: function () {
270
+ this._uniforms[cc.UNIFORM_PMATRIX] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_PMATRIX_S);
271
+ this._uniforms[cc.UNIFORM_MVMATRIX] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_MVMATRIX_S);
272
+ this._uniforms[cc.UNIFORM_MVPMATRIX] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_MVPMATRIX_S);
273
+ this._uniforms[cc.UNIFORM_TIME] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_TIME_S);
274
+ this._uniforms[cc.UNIFORM_SINTIME] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_SINTIME_S);
275
+ this._uniforms[cc.UNIFORM_COSTIME] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_COSTIME_S);
276
+
277
+ this._usesTime = (this._uniforms[cc.UNIFORM_TIME] != null || this._uniforms[cc.UNIFORM_SINTIME] != null || this._uniforms[cc.UNIFORM_COSTIME] != null);
278
+
279
+ this._uniforms[cc.UNIFORM_RANDOM01] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_RANDOM01_S);
280
+ this._uniforms[cc.UNIFORM_SAMPLER] = this._glContext.getUniformLocation(this._programObj, cc.UNIFORM_SAMPLER_S);
281
+
282
+ this.use();
283
+ // Since sample most probably won't change, set it to 0 now.
284
+ this.setUniformLocationWith1i(this._uniforms[cc.UNIFORM_SAMPLER], 0);
285
+ },
286
+
287
+ /**
288
+ * calls retrieves the named uniform location for this shader program.
289
+ * @param {String} name
290
+ * @returns {Number}
291
+ */
292
+ getUniformLocationForName:function(name){
293
+ if(!name)
294
+ throw "cc.GLProgram.getUniformLocationForName(): uniform name should be non-null";
295
+ if(!this._programObj)
296
+ throw "cc.GLProgram.getUniformLocationForName(): Invalid operation. Cannot get uniform location when program is not initialized";
297
+
298
+ return this._glContext.getUniformLocation(this._programObj, name);
299
+ },
300
+
301
+ /**
302
+ * get uniform MVP matrix
303
+ * @returns {WebGLUniformLocation}
304
+ */
305
+ getUniformMVPMatrix: function () {
306
+ return this._uniforms[cc.UNIFORM_MVPMATRIX];
307
+ },
308
+
309
+ /**
310
+ * get uniform sampler
311
+ * @returns {WebGLUniformLocation}
312
+ */
313
+ getUniformSampler: function () {
314
+ return this._uniforms[cc.UNIFORM_SAMPLER];
315
+ },
316
+
317
+ /**
318
+ * calls glUniform1i only if the values are different than the previous call for this same shader program.
319
+ * @param {WebGLUniformLocation} location
320
+ * @param {Number} i1
321
+ */
322
+ setUniformLocationWith1i: function (location, i1) {
323
+ var updated = this._updateUniformLocation(location, i1);
324
+ if (updated)
325
+ this._glContext.uniform1i(location, i1);
326
+ },
327
+
328
+ /**
329
+ * calls glUniform2i only if the values are different than the previous call for this same shader program.
330
+ * @param {WebGLUniformLocation} location
331
+ * @param {Number} i1
332
+ * @param {Number} i2
333
+ */
334
+ setUniformLocationWith2i:function(location, i1,i2){
335
+ var intArray= [i1,i2];
336
+ var updated = this._updateUniformLocation(location, intArray);
337
+
338
+ if( updated )
339
+ this._glContext.uniform2i(location, i1, i2);
340
+ },
341
+
342
+ /**
343
+ * calls glUniform3i only if the values are different than the previous call for this same shader program.
344
+ * @param {WebGLUniformLocation} location
345
+ * @param {Number} i1
346
+ * @param {Number} i2
347
+ * @param {Number} i3
348
+ */
349
+ setUniformLocationWith3i:function(location, i1, i2, i3){
350
+ var intArray = [i1,i2,i3];
351
+ var updated = this._updateUniformLocation(location, intArray);
352
+
353
+ if( updated )
354
+ this._glContext.uniform3i(location, i1, i2, i3);
355
+ },
356
+
357
+ /**
358
+ * calls glUniform4i only if the values are different than the previous call for this same shader program.
359
+ * @param {WebGLUniformLocation} location
360
+ * @param {Number} i1
361
+ * @param {Number} i2
362
+ * @param {Number} i3
363
+ * @param {Number} i4
364
+ */
365
+ setUniformLocationWith4i:function(location, i1, i2, i3, i4){
366
+ var intArray = [i1,i2,i3,i4];
367
+ var updated = this._updateUniformLocation(location, intArray);
368
+
369
+ if( updated )
370
+ this._glContext.uniform4i(location, i1, i2, i3, i4);
371
+ },
372
+
373
+ /**
374
+ * calls glUniform2iv only if the values are different than the previous call for this same shader program.
375
+ * @param {WebGLUniformLocation} location
376
+ * @param {Int32Array} intArray
377
+ * @param {Number} numberOfArrays
378
+ */
379
+ setUniformLocationWith2iv:function(location, intArray, numberOfArrays){
380
+ var updated = this._updateUniformLocation(location, intArray);
381
+
382
+ if( updated )
383
+ this._glContext.uniform2iv(location, intArray);
384
+ },
385
+
386
+ /**
387
+ * calls glUniform3iv only if the values are different than the previous call for this same shader program.
388
+ * @param {WebGLUniformLocation} location
389
+ * @param {Int32Array} intArray
390
+ * @param {Number} numberOfArrays
391
+ */
392
+ setUniformLocationWith3iv:function(location, intArray, numberOfArrays){
393
+ var updated = this._updateUniformLocation(location, intArray);
394
+
395
+ if( updated )
396
+ this._glContext.uniform3iv(location, intArray);
397
+ },
398
+
399
+ /**
400
+ * calls glUniform4iv only if the values are different than the previous call for this same shader program.
401
+ * @param {WebGLUniformLocation} location
402
+ * @param {Int32Array} intArray
403
+ * @param {Number} numberOfArrays
404
+ */
405
+ setUniformLocationWith4iv:function(location, intArray, numberOfArrays){
406
+ var updated = this._updateUniformLocation(location, intArray);
407
+
408
+ if( updated )
409
+ this._glContext.uniform4iv(location, intArray);
410
+ },
411
+
412
+ /**
413
+ * calls glUniform1i only if the values are different than the previous call for this same shader program.
414
+ * @param {WebGLUniformLocation} location
415
+ * @param {Number} i1
416
+ */
417
+ setUniformLocationI32: function (location, i1) {
418
+ this.setUniformLocationWith1i(arguments[0], arguments[1]);
419
+ },
420
+
421
+ /**
422
+ * calls glUniform1f only if the values are different than the previous call for this same shader program.
423
+ * @param {WebGLUniformLocation} location
424
+ * @param {Number} f1
425
+ */
426
+ setUniformLocationWith1f: function (location, f1) {
427
+ var updated = this._updateUniformLocation(location, f1);
428
+ if (updated)
429
+ this._glContext.uniform1f(location, f1);
430
+ },
431
+
432
+ /**
433
+ * calls glUniform2f only if the values are different than the previous call for this same shader program.
434
+ * @param {WebGLUniformLocation} location
435
+ * @param {Number} f1
436
+ * @param {Number} f2
437
+ */
438
+ setUniformLocationWith2f: function (location, f1, f2) {
439
+ var floats = [f1, f2];
440
+ var updated = this._updateUniformLocation(location, floats);
441
+ if (updated)
442
+ this._glContext.uniform2f(location, f1, f2);
443
+ },
444
+
445
+ /**
446
+ * calls glUniform3f only if the values are different than the previous call for this same shader program.
447
+ * @param {WebGLUniformLocation} location
448
+ * @param {Number} f1
449
+ * @param {Number} f2
450
+ * @param {Number} f3
451
+ */
452
+ setUniformLocationWith3f: function (location, f1, f2, f3) {
453
+ var floats = [f1, f2, f3];
454
+ var updated = this._updateUniformLocation(location, floats);
455
+ if (updated)
456
+ this._glContext.uniform3f(location, f1, f2, f3);
457
+ },
458
+
459
+ /**
460
+ * calls glUniform4f only if the values are different than the previous call for this same shader program.
461
+ * @param {WebGLUniformLocation} location
462
+ * @param {Number} f1
463
+ * @param {Number} f2
464
+ * @param {Number} f3
465
+ * @param {Number} f4
466
+ */
467
+ setUniformLocationWith4f: function (location, f1, f2, f3, f4) {
468
+ var floats = [f1, f2, f3, f4];
469
+ var updated = this._updateUniformLocation(location, floats);
470
+ if (updated)
471
+ this._glContext.uniform4f(location, f1, f2, f3, f4);
472
+ },
473
+
474
+ /**
475
+ * calls glUniform2fv only if the values are different than the previous call for this same shader program.
476
+ * @param {WebGLUniformLocation} location
477
+ * @param {Float32Array} floatArray
478
+ * @param {Number} numberOfArrays
479
+ */
480
+ setUniformLocationWith2fv: function (location, floatArray, numberOfArrays) {
481
+ var updated = this._updateUniformLocation(location, floatArray);
482
+ if (updated)
483
+ this._glContext.uniform2fv(location, floatArray);
484
+ },
485
+
486
+ /**
487
+ * calls glUniform3fv only if the values are different than the previous call for this same shader program.
488
+ * @param {WebGLUniformLocation} location
489
+ * @param {Float32Array} floatArray
490
+ * @param {Number} numberOfArrays
491
+ */
492
+ setUniformLocationWith3fv: function (location, floatArray, numberOfArrays) {
493
+ var updated = this._updateUniformLocation(location, floatArray);
494
+ if (updated)
495
+ this._glContext.uniform3fv(location, floatArray);
496
+ },
497
+
498
+ /**
499
+ * calls glUniform4fv only if the values are different than the previous call for this same shader program.
500
+ * @param {WebGLUniformLocation} location
501
+ * @param {Float32Array} floatArray
502
+ * @param {Number} numberOfArrays
503
+ */
504
+ setUniformLocationWith4fv: function (location, floatArray, numberOfArrays) {
505
+ var updated = this._updateUniformLocation(location, floatArray);
506
+ if (updated)
507
+ this._glContext.uniform4fv(location, floatArray);
508
+ },
509
+
510
+ /**
511
+ * calls glUniformMatrix4fv only if the values are different than the previous call for this same shader program.
512
+ * @param {WebGLUniformLocation} location
513
+ * @param {Float32Array} matrixArray
514
+ * @param {Number} numberOfMatrices
515
+ */
516
+ setUniformLocationWithMatrix4fv: function (location, matrixArray, numberOfMatrices) {
517
+ var updated = this._updateUniformLocation(location, matrixArray);
518
+ if (updated)
519
+ this._glContext.uniformMatrix4fv(location, false, matrixArray);
520
+ },
521
+
522
+ setUniformLocationF32: function () {
523
+ if (arguments.length < 2)
524
+ return;
525
+
526
+ switch (arguments.length) {
527
+ case 2:
528
+ this.setUniformLocationWith1f(arguments[0], arguments[1]);
529
+ break;
530
+ case 3:
531
+ this.setUniformLocationWith2f(arguments[0], arguments[1], arguments[2]);
532
+ break;
533
+ case 4:
534
+ this.setUniformLocationWith3f(arguments[0], arguments[1], arguments[2], arguments[3]);
535
+ break;
536
+ case 5:
537
+ this.setUniformLocationWith4f(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
538
+ break;
539
+ }
540
+ },
541
+
542
+ /**
543
+ * will update the builtin uniforms if they are different than the previous call for this same shader program.
544
+ */
545
+ setUniformsForBuiltins: function () {
546
+ var matrixP = new cc.kmMat4();
547
+ var matrixMV = new cc.kmMat4();
548
+ var matrixMVP = new cc.kmMat4();
549
+
550
+ cc.kmGLGetMatrix(cc.KM_GL_PROJECTION, matrixP);
551
+ cc.kmGLGetMatrix(cc.KM_GL_MODELVIEW, matrixMV);
552
+
553
+ cc.kmMat4Multiply(matrixMVP, matrixP, matrixMV);
554
+
555
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_PMATRIX], matrixP.mat, 1);
556
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_MVMATRIX], matrixMV.mat, 1);
557
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_MVPMATRIX], matrixMVP.mat, 1);
558
+
559
+ if (this._usesTime) {
560
+ var director = cc.director;
561
+ // This doesn't give the most accurate global time value.
562
+ // Cocos2D doesn't store a high precision time value, so this will have to do.
563
+ // Getting Mach time per frame per shader using time could be extremely expensive.
564
+ var time = director.getTotalFrames() * director.getAnimationInterval();
565
+
566
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_TIME], time / 10.0, time, time * 2, time * 4);
567
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_SINTIME], time / 8.0, time / 4.0, time / 2.0, Math.sin(time));
568
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_COSTIME], time / 8.0, time / 4.0, time / 2.0, Math.cos(time));
569
+ }
570
+
571
+ if (this._uniforms[cc.UNIFORM_RANDOM01] != -1)
572
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_RANDOM01], Math.random(), Math.random(), Math.random(), Math.random());
573
+ },
574
+
575
+ _setUniformsForBuiltinsForRenderer: function (node) {
576
+ if(!node || !node._renderCmd)
577
+ return;
578
+
579
+ var matrixP = new cc.kmMat4();
580
+ //var matrixMV = new cc.kmMat4();
581
+ var matrixMVP = new cc.kmMat4();
582
+
583
+ cc.kmGLGetMatrix(cc.KM_GL_PROJECTION, matrixP);
584
+ //cc.kmGLGetMatrix(cc.KM_GL_MODELVIEW, node._stackMatrix);
585
+
586
+ cc.kmMat4Multiply(matrixMVP, matrixP, node._renderCmd._stackMatrix);
587
+
588
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_PMATRIX], matrixP.mat, 1);
589
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_MVMATRIX], node._renderCmd._stackMatrix.mat, 1);
590
+ this.setUniformLocationWithMatrix4fv(this._uniforms[cc.UNIFORM_MVPMATRIX], matrixMVP.mat, 1);
591
+
592
+ if (this._usesTime) {
593
+ var director = cc.director;
594
+ // This doesn't give the most accurate global time value.
595
+ // Cocos2D doesn't store a high precision time value, so this will have to do.
596
+ // Getting Mach time per frame per shader using time could be extremely expensive.
597
+ var time = director.getTotalFrames() * director.getAnimationInterval();
598
+
599
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_TIME], time / 10.0, time, time * 2, time * 4);
600
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_SINTIME], time / 8.0, time / 4.0, time / 2.0, Math.sin(time));
601
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_COSTIME], time / 8.0, time / 4.0, time / 2.0, Math.cos(time));
602
+ }
603
+
604
+ if (this._uniforms[cc.UNIFORM_RANDOM01] != -1)
605
+ this.setUniformLocationWith4f(this._uniforms[cc.UNIFORM_RANDOM01], Math.random(), Math.random(), Math.random(), Math.random());
606
+ },
607
+
608
+ /**
609
+ * will update the MVP matrix on the MVP uniform if it is different than the previous call for this same shader program.
610
+ */
611
+ setUniformForModelViewProjectionMatrix: function () {
612
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_MVPMATRIX], false,
613
+ cc.getMat4MultiplyValue(cc.projection_matrix_stack.top, cc.modelview_matrix_stack.top));
614
+ },
615
+
616
+ setUniformForModelViewProjectionMatrixWithMat4: function (swapMat4) {
617
+ cc.kmMat4Multiply(swapMat4, cc.projection_matrix_stack.top, cc.modelview_matrix_stack.top);
618
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_MVPMATRIX], false, swapMat4.mat);
619
+ },
620
+
621
+ setUniformForModelViewAndProjectionMatrixWithMat4: function () {
622
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_MVMATRIX], false, cc.modelview_matrix_stack.top.mat);
623
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_PMATRIX], false, cc.projection_matrix_stack.top.mat);
624
+ },
625
+
626
+ _setUniformForMVPMatrixWithMat4: function(modelViewMatrix){
627
+ if(!modelViewMatrix)
628
+ throw "modelView matrix is undefined.";
629
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_MVMATRIX], false, modelViewMatrix.mat);
630
+ this._glContext.uniformMatrix4fv(this._uniforms[cc.UNIFORM_PMATRIX], false, cc.projection_matrix_stack.top.mat);
631
+ },
632
+
633
+ /**
634
+ * returns the vertexShader error log
635
+ * @return {String}
636
+ */
637
+ vertexShaderLog: function () {
638
+ return this._glContext.getShaderInfoLog(this._vertShader);
639
+ },
640
+
641
+ /**
642
+ * returns the vertexShader error log
643
+ * @return {String}
644
+ */
645
+ getVertexShaderLog: function () {
646
+ return this._glContext.getShaderInfoLog(this._vertShader);
647
+ },
648
+
649
+ /**
650
+ * returns the fragmentShader error log
651
+ * @returns {String}
652
+ */
653
+ getFragmentShaderLog: function () {
654
+ return this._glContext.getShaderInfoLog(this._vertShader);
655
+ },
656
+
657
+ /**
658
+ * returns the fragmentShader error log
659
+ * @return {String}
660
+ */
661
+ fragmentShaderLog: function () {
662
+ return this._glContext.getShaderInfoLog(this._fragShader);
663
+ },
664
+
665
+ /**
666
+ * returns the program error log
667
+ * @return {String}
668
+ */
669
+ programLog: function () {
670
+ return this._glContext.getProgramInfoLog(this._programObj);
671
+ },
672
+
673
+ /**
674
+ * returns the program error log
675
+ * @return {String}
676
+ */
677
+ getProgramLog: function () {
678
+ return this._glContext.getProgramInfoLog(this._programObj);
679
+ },
680
+
681
+ /**
682
+ * reload all shaders, this function is designed for android <br/>
683
+ * when opengl context lost, so don't call it.
684
+ */
685
+ reset: function () {
686
+ this._vertShader = null;
687
+ this._fragShader = null;
688
+ this._uniforms.length = 0;
689
+
690
+ // it is already deallocated by android
691
+ //ccGLDeleteProgram(m_uProgram);
692
+ this._glContext.deleteProgram(this._programObj);
693
+ this._programObj = null;
694
+
695
+ // Purge uniform hash
696
+ for (var i = 0; i < this._hashForUniforms.length; i++) {
697
+ this._hashForUniforms[i].value = null;
698
+ this._hashForUniforms[i] = null;
699
+ }
700
+
701
+ this._hashForUniforms.length = 0;
702
+ },
703
+
704
+ /**
705
+ * get WebGLProgram object
706
+ * @return {WebGLProgram}
707
+ */
708
+ getProgram: function () {
709
+ return this._programObj;
710
+ },
711
+
712
+ /**
713
+ * Currently JavaScript Bindings (JSB), in some cases, needs to use retain and release. This is a bug in JSB,
714
+ * and the ugly workaround is to use retain/release. So, these 2 methods were added to be compatible with JSB.
715
+ * This is a hack, and should be removed once JSB fixes the retain/release bug
716
+ */
717
+ retain: function () {
718
+ },
719
+ release: function () {
720
+ }
721
+ });
722
+
723
+ /**
724
+ * Create a cc.GLProgram object
725
+ * @deprecated since v3.0, please use new cc.GLProgram(vShaderFileName, fShaderFileName) instead
726
+ * @param {String} vShaderFileName
727
+ * @param {String} fShaderFileName
728
+ * @returns {cc.GLProgram}
729
+ */
730
+ cc.GLProgram.create = function (vShaderFileName, fShaderFileName) {
731
+ return new cc.GLProgram(vShaderFileName, fShaderFileName);
732
+ };
733
+
734
+ cc.GLProgram._highpSupported = null;
735
+
736
+ cc.GLProgram._isHighpSupported = function(){
737
+ if(cc.GLProgram._highpSupported == null){
738
+ var ctx = cc._renderContext;
739
+ var highp = ctx.getShaderPrecisionFormat(ctx.FRAGMENT_SHADER, ctx.HIGH_FLOAT);
740
+ cc.GLProgram._highpSupported = highp.precision != 0;
741
+ }
742
+ return cc.GLProgram._highpSupported;
743
+ };
744
+
745
+ /**
746
+ * <p>
747
+ * Sets the shader program for this node
748
+ *
749
+ * Since v2.0, each rendering node must set its shader program.
750
+ * It should be set in initialize phase.
751
+ * </p>
752
+ * @function
753
+ * @param {cc.Node} node
754
+ * @param {cc.GLProgram} program The shader program which fetches from CCShaderCache.
755
+ * @example
756
+ * cc.setGLProgram(node, cc.shaderCache.programForKey(cc.SHADER_POSITION_TEXTURECOLOR));
757
+ */
758
+ cc.setProgram = function (node, program) {
759
+ node.shaderProgram = program;
760
+
761
+ var children = node.children;
762
+ if (!children)
763
+ return;
764
+
765
+ for (var i = 0; i < children.length; i++)
766
+ cc.setProgram(children[i], program);
767
+ };