PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/js-memory-gc-tests/project/Classes/AppDelegate.cpp

https://gitlab.com/blackbit0/cocos2d-x
C++ | 185 lines | 147 code | 34 blank | 4 comment | 42 complexity | 596e645ae67bd4917fc8302e1c52fc8c MD5 | raw file
  1. #include "AppDelegate.h"
  2. #include "cocos2d.h"
  3. #include "SimpleAudioEngine.h"
  4. #include "ScriptingCore.h"
  5. #include "jsb_cocos2dx_auto.hpp"
  6. #include "jsb_cocos2dx_extension_auto.hpp"
  7. #include "jsb_cocos2dx_builder_auto.hpp"
  8. #include "jsb_cocos2dx_spine_auto.hpp"
  9. #include "jsb_cocos2dx_3d_auto.hpp"
  10. #include "jsb_cocos2dx_3d_extension_auto.hpp"
  11. #include "jsb_cocos2dx_physics3d_auto.hpp"
  12. #include "physics3d/jsb_cocos2dx_physics3d_manual.h"
  13. #include "jsb_cocos2dx_navmesh_auto.hpp"
  14. #include "navmesh/jsb_cocos2dx_navmesh_manual.h"
  15. #include "3d/jsb_cocos2dx_3d_manual.h"
  16. #include "extension/jsb_cocos2dx_extension_manual.h"
  17. #include "cocostudio/jsb_cocos2dx_studio_manual.h"
  18. #include "jsb_cocos2dx_studio_auto.hpp"
  19. #include "jsb_cocos2dx_ui_auto.hpp"
  20. #include "ui/jsb_cocos2dx_ui_manual.h"
  21. #include "spine/jsb_cocos2dx_spine_manual.h"
  22. #include "cocos2d_specifics.hpp"
  23. #include "cocosbuilder/cocosbuilder_specifics.hpp"
  24. #include "chipmunk/js_bindings_chipmunk_registration.h"
  25. #include "localstorage/js_bindings_system_registration.h"
  26. #include "jsb_opengl_registration.h"
  27. #include "network/XMLHTTPRequest.h"
  28. #include "network/jsb_websocket.h"
  29. #include "network/jsb_socketio.h"
  30. #include "cocosbuilder/js_bindings_ccbreader.h"
  31. #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  32. #include "platform/android/CCJavascriptJavaBridge.h"
  33. #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
  34. #include "platform/ios/JavaScriptObjCBridge.h"
  35. #endif
  36. #include "js_Effect3D_bindings.h"
  37. #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  38. #include "jsb_cocos2dx_experimental_webView_auto.hpp"
  39. #include "experimental/jsb_cocos2dx_experimental_webView_manual.h"
  40. #endif
  41. #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  42. #include "jsb_cocos2dx_experimental_video_auto.hpp"
  43. #include "experimental/jsb_cocos2dx_experimental_video_manual.h"
  44. #endif
  45. #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
  46. #include "jsb_cocos2dx_audioengine_auto.hpp"
  47. #endif
  48. USING_NS_CC;
  49. USING_NS_CC_EXT;
  50. using namespace CocosDenshion;
  51. AppDelegate::AppDelegate()
  52. {
  53. }
  54. AppDelegate::~AppDelegate()
  55. {
  56. ScriptEngineManager::destroyInstance();
  57. }
  58. void AppDelegate::initGLContextAttrs()
  59. {
  60. GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};
  61. GLView::setGLContextAttrs(glContextAttrs);
  62. }
  63. bool AppDelegate::applicationDidFinishLaunching()
  64. {
  65. // initialize director
  66. auto director = Director::getInstance();
  67. auto glview = director->getOpenGLView();
  68. if(!glview) {
  69. #if(CC_TARGET_PLATFORM == CC_PLATFORM_WINRT)
  70. glview = cocos2d::GLViewImpl::create("js-tests");
  71. #else
  72. glview = cocos2d::GLViewImpl::createWithRect("js-tests", Rect(0,0,900,640));
  73. #endif
  74. director->setOpenGLView(glview);
  75. }
  76. // set FPS. the default value is 1.0/60 if you don't call this
  77. director->setAnimationInterval(1.0 / 60);
  78. ScriptingCore* sc = ScriptingCore::getInstance();
  79. sc->addRegisterCallback(register_all_cocos2dx);
  80. sc->addRegisterCallback(register_cocos2dx_js_core);
  81. sc->addRegisterCallback(jsb_register_system);
  82. sc->addRegisterCallback(register_all_cocos2dx_extension);
  83. sc->addRegisterCallback(register_all_cocos2dx_extension_manual);
  84. sc->addRegisterCallback(jsb_register_chipmunk);
  85. sc->addRegisterCallback(JSB_register_opengl);
  86. sc->addRegisterCallback(MinXmlHttpRequest::_js_register);
  87. sc->addRegisterCallback(register_jsb_websocket);
  88. sc->addRegisterCallback(register_jsb_socketio);
  89. sc->addRegisterCallback(register_all_cocos2dx_builder);
  90. sc->addRegisterCallback(register_CCBuilderReader);
  91. sc->addRegisterCallback(register_all_cocos2dx_ui);
  92. sc->addRegisterCallback(register_all_cocos2dx_ui_manual);
  93. sc->addRegisterCallback(register_all_cocos2dx_studio);
  94. sc->addRegisterCallback(register_all_cocos2dx_studio_manual);
  95. sc->addRegisterCallback(register_all_cocos2dx_spine);
  96. sc->addRegisterCallback(register_all_cocos2dx_spine_manual);
  97. sc->addRegisterCallback(register_all_cocos2dx_3d);
  98. sc->addRegisterCallback(register_all_cocos2dx_3d_manual);
  99. sc->addRegisterCallback(register_all_cocos2dx_3d_extension);
  100. #if CC_USE_3D_PHYSICS && CC_ENABLE_BULLET_INTEGRATION
  101. sc->addRegisterCallback(register_all_cocos2dx_physics3d);
  102. sc->addRegisterCallback(register_all_cocos2dx_physics3d_manual);
  103. #endif
  104. #if CC_USE_NAVMESH
  105. sc->addRegisterCallback(register_all_cocos2dx_navmesh);
  106. sc->addRegisterCallback(register_all_cocos2dx_navmesh_manual);
  107. #endif
  108. #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  109. sc->addRegisterCallback(JavascriptJavaBridge::_js_register);
  110. #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
  111. sc->addRegisterCallback(JavaScriptObjCBridge::_js_register);
  112. #endif
  113. #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  114. sc->addRegisterCallback(register_all_cocos2dx_experimental_webView);
  115. sc->addRegisterCallback(register_all_cocos2dx_experimental_webView_manual);
  116. #endif
  117. #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  118. sc->addRegisterCallback(register_all_cocos2dx_experimental_video);
  119. sc->addRegisterCallback(register_all_cocos2dx_experimental_video_manual);
  120. #endif
  121. #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID || CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
  122. sc->addRegisterCallback(register_all_cocos2dx_audioengine);
  123. #endif
  124. sc->start();
  125. sc->runScript("script/jsb_boot.js");
  126. #if defined(COCOS2D_DEBUG) && (COCOS2D_DEBUG > 0)
  127. sc->enableDebugger();
  128. #endif
  129. auto pEngine = ScriptingCore::getInstance();
  130. ScriptEngineManager::getInstance()->setScriptEngine(pEngine);
  131. ScriptingCore::getInstance()->runScript("main.js");
  132. return true;
  133. }
  134. // This function will be called when the app is inactive. When comes a phone call,it's be invoked too
  135. void AppDelegate::applicationDidEnterBackground()
  136. {
  137. auto director = Director::getInstance();
  138. director->stopAnimation();
  139. director->getEventDispatcher()->dispatchCustomEvent("game_on_hide");
  140. SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
  141. SimpleAudioEngine::getInstance()->pauseAllEffects();
  142. }
  143. // this function will be called when the app is active again
  144. void AppDelegate::applicationWillEnterForeground()
  145. {
  146. auto director = Director::getInstance();
  147. director->startAnimation();
  148. director->getEventDispatcher()->dispatchCustomEvent("game_on_show");
  149. SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
  150. SimpleAudioEngine::getInstance()->resumeAllEffects();
  151. }