android.html 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <title>Android Support in the jMonkeyEngine :: jMonkeyEngine Docs</title>
  7. <link rel="canonical" href="https://wiki.jmonkeyengine.org/docs/3.8/sdk/android.html">
  8. <link rel="prev" href="default_build_script.html">
  9. <link rel="next" href="android_cheat_sheet.html">
  10. <meta name="keywords" content="documentation, sdk, android, deployment, tool">
  11. <meta name="generator" content="Antora 3.0.1">
  12. <link rel="stylesheet" href="../../../_/css/site.css">
  13. <meta property="og:image" content="https://wiki.jmonkeyengine.org/_/img/iconx128.png">
  14. <meta property="og:description" content="Android Support in the jMonkeyEngine">
  15. <meta property="og:title" content="jMonkeyEngine Docs">
  16. <link rel="stylesheet" href="../../../_/css/site-extra.css">
  17. <link rel="stylesheet" href="../../../_/css/vendor/docsearch.min.css">
  18. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css -->
  19. <link rel="icon" href="../../../_/img/favicon.ico" type="image/x-icon">
  20. </head>
  21. <body class="article">
  22. <header class="header">
  23. <nav class="navbar">
  24. <div class="navbar-brand">
  25. <a class="navbar-item" href="https://wiki.jmonkeyengine.org">
  26. <img alt="" src="../../../_/img/jme-logo.png" height="32" type="image/x-icon">
  27. </a>
  28. <div class="navbar-item hide-for-print">
  29. <input id="search-input" type="text" placeholder="Search docs">
  30. </div>
  31. <button class="navbar-burger" data-target="topbar-nav">
  32. <span></span>
  33. <span></span>
  34. <span></span>
  35. </button>
  36. </div>
  37. <div id="topbar-nav" class="navbar-menu">
  38. <div class="navbar-end">
  39. <div class="navbar-item theme-switch-wrapper">
  40. <label class="theme-switch" for="checkbox">
  41. <input type="checkbox" id="checkbox" />
  42. <div class="slider round"></div>
  43. </label>
  44. </div>
  45. <a class="navbar-item" href="https://github.com/jmonkeyengine/wiki">Github</a>
  46. </div>
  47. </div>
  48. </nav>
  49. </header>
  50. <div class="body">
  51. <div class="nav-container" data-component="docs" data-version="3.8">
  52. <aside class="nav">
  53. <div class="panels">
  54. <div class="nav-panel-menu is-active" data-panel="menu">
  55. <nav class="nav-menu">
  56. <h3 class="title"><a href="../documentation.html">JME</a></h3>
  57. <ul class="nav-list">
  58. <li class="nav-item" data-depth="0">
  59. <ul class="nav-list">
  60. <li class="nav-item" data-depth="1">
  61. <a class="nav-link" href="../documentation.html">Getting Started</a>
  62. </li>
  63. <li class="nav-item" data-depth="1">
  64. <a class="nav-link" href="https://javadoc.jmonkeyengine.org/v3.4.1-stable">JavaDoc</a>
  65. </li>
  66. <li class="nav-item" data-depth="1">
  67. <a class="nav-link" href="../release.html">Release Guide</a>
  68. </li>
  69. </ul>
  70. </li>
  71. <li class="nav-item" data-depth="0">
  72. <ul class="nav-list">
  73. <li class="nav-item" data-depth="1">
  74. <button class="nav-item-toggle"></button>
  75. <a class="nav-link" href="../tutorials/beginner/beginner.html">Beginner Tutorials</a>
  76. <ul class="nav-list">
  77. <li class="nav-item" data-depth="2">
  78. <a class="nav-link" href="../tutorials/beginner/hello_simpleapplication.html">Hello SimpleApplication</a>
  79. </li>
  80. <li class="nav-item" data-depth="2">
  81. <a class="nav-link" href="../tutorials/beginner/hello_node.html">Hello Node</a>
  82. </li>
  83. <li class="nav-item" data-depth="2">
  84. <a class="nav-link" href="../tutorials/beginner/hello_asset.html">Hello Asset</a>
  85. </li>
  86. <li class="nav-item" data-depth="2">
  87. <a class="nav-link" href="../tutorials/beginner/hello_main_event_loop.html">Hello Update Loop</a>
  88. </li>
  89. <li class="nav-item" data-depth="2">
  90. <a class="nav-link" href="../tutorials/beginner/hello_input_system.html">Hello Input System</a>
  91. </li>
  92. <li class="nav-item" data-depth="2">
  93. <a class="nav-link" href="../tutorials/beginner/hello_material.html">Hello Material</a>
  94. </li>
  95. <li class="nav-item" data-depth="2">
  96. <a class="nav-link" href="../tutorials/beginner/hello_animation.html">Hello Animation</a>
  97. </li>
  98. <li class="nav-item" data-depth="2">
  99. <a class="nav-link" href="../tutorials/beginner/hello_picking.html">Hello Picking</a>
  100. </li>
  101. <li class="nav-item" data-depth="2">
  102. <a class="nav-link" href="../tutorials/beginner/hello_collision.html">Hello Collision</a>
  103. </li>
  104. <li class="nav-item" data-depth="2">
  105. <a class="nav-link" href="../tutorials/beginner/hello_terrain.html">Hello Terrain</a>
  106. </li>
  107. <li class="nav-item" data-depth="2">
  108. <a class="nav-link" href="../tutorials/beginner/hello_audio.html">Hello Audio</a>
  109. </li>
  110. <li class="nav-item" data-depth="2">
  111. <a class="nav-link" href="../tutorials/beginner/hello_effects.html">Hello Effects</a>
  112. </li>
  113. <li class="nav-item" data-depth="2">
  114. <a class="nav-link" href="../tutorials/beginner/hello_physics.html">Hello Physics</a>
  115. </li>
  116. </ul>
  117. </li>
  118. <li class="nav-item" data-depth="1">
  119. <button class="nav-item-toggle"></button>
  120. <span class="nav-text">Key Concepts</span>
  121. <ul class="nav-list">
  122. <li class="nav-item" data-depth="2">
  123. <a class="nav-link" href="../tutorials/concepts/best_practices.html">Best Practices</a>
  124. </li>
  125. <li class="nav-item" data-depth="2">
  126. <a class="nav-link" href="../tutorials/concepts/optimization.html">Optimization</a>
  127. </li>
  128. <li class="nav-item" data-depth="2">
  129. <a class="nav-link" href="../tutorials/concepts/faq.html">Frequently Asked Questions</a>
  130. </li>
  131. <li class="nav-item" data-depth="2">
  132. <a class="nav-link" href="../tutorials/concepts/math_for_dummies.html">Math for Dummies</a>
  133. </li>
  134. <li class="nav-item" data-depth="2">
  135. <a class="nav-link" href="../tutorials/concepts/math.html">Math overview</a>
  136. </li>
  137. <li class="nav-item" data-depth="2">
  138. <a class="nav-link" href="../tutorials/concepts/math_cheet_sheet.html">3D math "cheat sheet"</a>
  139. </li>
  140. <li class="nav-item" data-depth="2">
  141. <a class="nav-link" href="../tutorials/concepts/rotate.html">3-D Rotation</a>
  142. </li>
  143. <li class="nav-item" data-depth="2">
  144. <a class="nav-link" href="../tutorials/concepts/math_video_tutorials.html">Math video tutorial series</a>
  145. </li>
  146. <li class="nav-item" data-depth="2">
  147. <a class="nav-link" href="../tutorials/concepts/multi-media_asset_pipeline.html">Multi-Media Asset Pipeline</a>
  148. </li>
  149. <li class="nav-item" data-depth="2">
  150. <a class="nav-link" href="../tutorials/concepts/the_scene_graph.html">The Scene Graph</a>
  151. </li>
  152. <li class="nav-item" data-depth="2">
  153. <a class="nav-link" href="../tutorials/concepts/scenegraph_for_dummies.html">Scene Graph for Dummies</a>
  154. </li>
  155. <li class="nav-item" data-depth="2">
  156. <a class="nav-link" href="../tutorials/concepts/terminology.html">3D Graphics Terminology</a>
  157. </li>
  158. <li class="nav-item" data-depth="2">
  159. <a class="nav-link" href="../tutorials/concepts/transparency_sorting.html">Transparency Sorting</a>
  160. </li>
  161. </ul>
  162. </li>
  163. <li class="nav-item" data-depth="1">
  164. <button class="nav-item-toggle"></button>
  165. <span class="nav-text">Articles and How-to&#8217;s</span>
  166. <ul class="nav-list">
  167. <li class="nav-item" data-depth="2">
  168. <button class="nav-item-toggle"></button>
  169. <span class="nav-text">How to Model</span>
  170. <ul class="nav-list">
  171. <li class="nav-item" data-depth="3">
  172. <a class="nav-link" href="../tutorials/how-to/modeling/3dsmax/3dsmax.html">3dsmax</a>
  173. </li>
  174. <li class="nav-item" data-depth="3">
  175. <button class="nav-item-toggle"></button>
  176. <a class="nav-link" href="../tutorials/how-to/modeling/blender/blender.html">Blender</a>
  177. <ul class="nav-list">
  178. <li class="nav-item" data-depth="4">
  179. <a class="nav-link" href="../tutorials/how-to/modeling/blender/blender_buffer_clearing.html">Buffer Clearing</a>
  180. </li>
  181. <li class="nav-item" data-depth="4">
  182. <a class="nav-link" href="../tutorials/how-to/modeling/blender/blender_gltf.html">Export as GlTF</a>
  183. </li>
  184. <li class="nav-item" data-depth="4">
  185. <a class="nav-link" href="../tutorials/how-to/modeling/blender/blender_ogre_export.html">Export as Ogre XML</a>
  186. </li>
  187. <li class="nav-item" data-depth="4">
  188. <a class="nav-link" href="../tutorials/how-to/modeling/blender/blender_ogre_compatibility.html">Ogre Compatibility</a>
  189. </li>
  190. <li class="nav-item" data-depth="4">
  191. <a class="nav-link" href="../tutorials/how-to/modeling/blender/makehuman.html">MakeHuman</a>
  192. </li>
  193. <li class="nav-item" data-depth="4">
  194. <a class="nav-link" href="../tutorials/how-to/modeling/blender/makehuman_blender_ogrexml_toolchain.html">MakeHuman toolchain</a>
  195. </li>
  196. </ul>
  197. </li>
  198. </ul>
  199. </li>
  200. <li class="nav-item" data-depth="2">
  201. <button class="nav-item-toggle"></button>
  202. <span class="nav-text">How to Animate</span>
  203. <ul class="nav-list">
  204. <li class="nav-item" data-depth="3">
  205. <button class="nav-item-toggle"></button>
  206. <span class="nav-text">Mixamo</span>
  207. <ul class="nav-list">
  208. <li class="nav-item" data-depth="4">
  209. <a class="nav-link" href="../tutorials/how-to/modeling/blender/mixamo.html">Blender Models</a>
  210. </li>
  211. </ul>
  212. </li>
  213. </ul>
  214. </li>
  215. <li class="nav-item" data-depth="2">
  216. <a class="nav-link" href="../tutorials/how-to/debugging.html">Debugging with Wireframes</a>
  217. </li>
  218. <li class="nav-item" data-depth="2">
  219. <a class="nav-link" href="../tutorials/how-to/util/free_skymaps.html">How to create free skymaps</a>
  220. </li>
  221. <li class="nav-item" data-depth="2">
  222. <button class="nav-item-toggle"></button>
  223. <span class="nav-text">Java Tips</span>
  224. <ul class="nav-list">
  225. <li class="nav-item" data-depth="3">
  226. <a class="nav-link" href="../tutorials/how-to/java/localization.html">Localization</a>
  227. </li>
  228. <li class="nav-item" data-depth="3">
  229. <a class="nav-link" href="../tutorials/how-to/java/swing_canvas.html">Swing Canvas</a>
  230. </li>
  231. <li class="nav-item" data-depth="3">
  232. <a class="nav-link" href="../tutorials/how-to/java/logging.html">Logging</a>
  233. </li>
  234. <li class="nav-item" data-depth="3">
  235. <a class="nav-link" href="../tutorials/how-to/java/read_graphic_card_capabilites.html">Read Graphics Capabilities</a>
  236. </li>
  237. </ul>
  238. </li>
  239. <li class="nav-item" data-depth="2">
  240. <button class="nav-item-toggle"></button>
  241. <span class="nav-text">Articles</span>
  242. <ul class="nav-list">
  243. <li class="nav-item" data-depth="3">
  244. <button class="nav-item-toggle"></button>
  245. <span class="nav-text">Physically Based Rendering</span>
  246. <ul class="nav-list">
  247. <li class="nav-item" data-depth="4">
  248. <a class="nav-link" href="../tutorials/how-to/articles/pbr/pbr_part1.html">PBR – Part one</a>
  249. </li>
  250. <li class="nav-item" data-depth="4">
  251. <a class="nav-link" href="../tutorials/how-to/articles/pbr/pbr_part2.html">PBR – Part two</a>
  252. </li>
  253. <li class="nav-item" data-depth="4">
  254. <a class="nav-link" href="../tutorials/how-to/articles/pbr/pbr_part3.html">PBR – Part three</a>
  255. </li>
  256. </ul>
  257. </li>
  258. </ul>
  259. </li>
  260. </ul>
  261. </li>
  262. </ul>
  263. </li>
  264. <li class="nav-item" data-depth="0">
  265. <ul class="nav-list">
  266. <li class="nav-item" data-depth="1">
  267. <button class="nav-item-toggle"></button>
  268. <span class="nav-text">Core Engine</span>
  269. <ul class="nav-list">
  270. <li class="nav-item" data-depth="2">
  271. <a class="nav-link" href="../core/app/simpleapplication.html">SimpleApplication</a>
  272. </li>
  273. <li class="nav-item" data-depth="2">
  274. <a class="nav-link" href="../core/system/appsettings.html">AppSettings</a>
  275. </li>
  276. </ul>
  277. </li>
  278. <li class="nav-item" data-depth="1">
  279. <button class="nav-item-toggle"></button>
  280. <span class="nav-text">Controlling Game Logic</span>
  281. <ul class="nav-list">
  282. <li class="nav-item" data-depth="2">
  283. <a class="nav-link" href="../core/app/update_loop.html">Update Loop</a>
  284. </li>
  285. <li class="nav-item" data-depth="2">
  286. <a class="nav-link" href="../core/app/state/application_states.html">Application States</a>
  287. </li>
  288. <li class="nav-item" data-depth="2">
  289. <button class="nav-item-toggle"></button>
  290. <a class="nav-link" href="../core/scene/control/custom_controls.html">Custom Controls</a>
  291. <ul class="nav-list">
  292. <li class="nav-item" data-depth="3">
  293. <button class="nav-item-toggle"></button>
  294. <span class="nav-text">Video</span>
  295. <ul class="nav-list">
  296. <li class="nav-item" data-depth="4">
  297. <a class="nav-link" href="https://www.youtube.com/watch?v=MNDiZ9YHIpM">Control any scene node</a>
  298. </li>
  299. <li class="nav-item" data-depth="4">
  300. <a class="nav-link" href="https://www.youtube.com/watch?v=-OzRZscLlHY">Control a character</a>
  301. </li>
  302. <li class="nav-item" data-depth="4">
  303. <a class="nav-link" href="https://wiki.jmonkeyengine.org/Scenes/SDK-UsecaseDemo_1.zip">Video Source Code</a>
  304. </li>
  305. </ul>
  306. </li>
  307. </ul>
  308. </li>
  309. <li class="nav-item" data-depth="2">
  310. <a class="nav-link" href="../core/app/multithreading.html">Multithreading</a>
  311. </li>
  312. </ul>
  313. </li>
  314. <li class="nav-item" data-depth="1">
  315. <button class="nav-item-toggle"></button>
  316. <span class="nav-text">Scene Graph</span>
  317. <ul class="nav-list">
  318. <li class="nav-item" data-depth="2">
  319. <a class="nav-link" href="../core/scene/traverse_scenegraph.html">Traverse SceneGraph</a>
  320. </li>
  321. <li class="nav-item" data-depth="2">
  322. <a class="nav-link" href="../core/scene/spatial.html">Spatial: Node vs Geometry</a>
  323. </li>
  324. <li class="nav-item" data-depth="2">
  325. <button class="nav-item-toggle"></button>
  326. <a class="nav-link" href="../core/scene/mesh.html">Mesh</a>
  327. <ul class="nav-list">
  328. <li class="nav-item" data-depth="3">
  329. <a class="nav-link" href="../core/scene/custom_meshes.html">Custom Meshes</a>
  330. </li>
  331. <li class="nav-item" data-depth="3">
  332. <a class="nav-link" href="../core/scene/shape/shape.html">Shape</a>
  333. </li>
  334. <li class="nav-item" data-depth="3">
  335. <a class="nav-link" href="../core/scene/3d_models.html">3D Models</a>
  336. </li>
  337. </ul>
  338. </li>
  339. <li class="nav-item" data-depth="2">
  340. <a class="nav-link" href="../core/asset/asset_manager.html">Asset Manager</a>
  341. </li>
  342. <li class="nav-item" data-depth="2">
  343. <a class="nav-link" href="../core/export/save_and_load.html">Saving and Loading Nodes</a>
  344. </li>
  345. <li class="nav-item" data-depth="2">
  346. <a class="nav-link" href="../core/collision/collision_and_intersection.html">Collision and Intersection</a>
  347. </li>
  348. <li class="nav-item" data-depth="2">
  349. <a class="nav-link" href="../core/scene/control/level_of_detail.html">Level of Detail</a>
  350. </li>
  351. </ul>
  352. </li>
  353. <li class="nav-item" data-depth="1">
  354. <button class="nav-item-toggle"></button>
  355. <span class="nav-text">Animation, Scene</span>
  356. <ul class="nav-list">
  357. <li class="nav-item" data-depth="2">
  358. <a class="nav-link" href="../core/animation/animation_new.html">Animation with AnimComposer</a>
  359. </li>
  360. <li class="nav-item" data-depth="2">
  361. <a class="nav-link" href="../core/animation/animation.html">Animation-Old (AnimControl)</a>
  362. </li>
  363. <li class="nav-item" data-depth="2">
  364. <a class="nav-link" href="../core/cinematic/cinematics.html">Cinematics (cutscenes, fake destruction physics)</a>
  365. </li>
  366. <li class="nav-item" data-depth="2">
  367. <a class="nav-link" href="../core/cinematic/motionpath.html">MotionPaths and Waypoints</a>
  368. </li>
  369. </ul>
  370. </li>
  371. <li class="nav-item" data-depth="1">
  372. <button class="nav-item-toggle"></button>
  373. <span class="nav-text">Material, Light, Shadow</span>
  374. <ul class="nav-list">
  375. <li class="nav-item" data-depth="2">
  376. <a class="nav-link" href="../core/material/how_to_use_materials.html">How to use Materials</a>
  377. </li>
  378. <li class="nav-item" data-depth="2">
  379. <a class="nav-link" href="../core/material/j3m_material_files.html">.j3m Material Files</a>
  380. </li>
  381. <li class="nav-item" data-depth="2">
  382. <a class="nav-link" href="../core/material/material_definitions.html">.j3md Material Definitions</a>
  383. </li>
  384. <li class="nav-item" data-depth="2">
  385. <a class="nav-link" href="../core/material/materials_overview.html">.j3md Properties</a>
  386. </li>
  387. <li class="nav-item" data-depth="2">
  388. <a class="nav-link" href="../core/shader/jme3_shaders.html">Shaders and JME3</a>
  389. </li>
  390. <li class="nav-item" data-depth="2">
  391. <a class="nav-link" href="../core/shader/jme3_shadernodes.html">Shader Node System</a>
  392. </li>
  393. <li class="nav-item" data-depth="2">
  394. <a class="nav-link" href="../core/shader/shader_video_tutorials.html">Shader Video Tutorials</a>
  395. </li>
  396. <li class="nav-item" data-depth="2">
  397. <a class="nav-link" href="../core/light/light_and_shadow.html">Light and Shadow</a>
  398. </li>
  399. <li class="nav-item" data-depth="2">
  400. <a class="nav-link" href="../core/texture/anisotropic_filtering.html">Anisotropic Filtering</a>
  401. </li>
  402. <li class="nav-item" data-depth="2">
  403. <a class="nav-link" href="../core/system/jme3_srgbpipeline.html">Gamma Correction</a>
  404. </li>
  405. <li class="nav-item" data-depth="2">
  406. <a class="nav-link" href="../core/material/normal_types.html">Normal Map Conventions</a>
  407. </li>
  408. </ul>
  409. </li>
  410. <li class="nav-item" data-depth="1">
  411. <button class="nav-item-toggle"></button>
  412. <span class="nav-text">Audio, Video</span>
  413. <ul class="nav-list">
  414. <li class="nav-item" data-depth="2">
  415. <a class="nav-link" href="../core/audio/audio.html">Playing Sounds</a>
  416. </li>
  417. <li class="nav-item" data-depth="2">
  418. <a class="nav-link" href="../core/audio/audio_environment_presets.html">Audio Environment Presets</a>
  419. </li>
  420. <li class="nav-item" data-depth="2">
  421. <a class="nav-link" href="../core/app/state/screenshots.html">Capture Screenshots</a>
  422. </li>
  423. <li class="nav-item" data-depth="2">
  424. <a class="nav-link" href="../core/app/state/capture_audio_video_to_a_file.html">Capture Audio/Video</a>
  425. </li>
  426. </ul>
  427. </li>
  428. <li class="nav-item" data-depth="1">
  429. <button class="nav-item-toggle"></button>
  430. <span class="nav-text">Filter, Effect</span>
  431. <ul class="nav-list">
  432. <li class="nav-item" data-depth="2">
  433. <a class="nav-link" href="../core/effect/effects_overview.html">Overview</a>
  434. </li>
  435. <li class="nav-item" data-depth="2">
  436. <a class="nav-link" href="../core/effect/bloom_and_glow.html">Bloom and Glow</a>
  437. </li>
  438. <li class="nav-item" data-depth="2">
  439. <a class="nav-link" href="../core/effect/particle_emitters.html">Particle Emitters</a>
  440. </li>
  441. </ul>
  442. </li>
  443. <li class="nav-item" data-depth="1">
  444. <button class="nav-item-toggle"></button>
  445. <span class="nav-text">Landscapes</span>
  446. <ul class="nav-list">
  447. <li class="nav-item" data-depth="2">
  448. <a class="nav-link" href="../core/util/sky.html">Sky</a>
  449. </li>
  450. <li class="nav-item" data-depth="2">
  451. <a class="nav-link" href="../core/terrain/terrain.html">Terrain (TerraMonkey)</a>
  452. </li>
  453. <li class="nav-item" data-depth="2">
  454. <a class="nav-link" href="../core/collision/terrain_collision.html">Terrain Collision</a>
  455. </li>
  456. <li class="nav-item" data-depth="2">
  457. <a class="nav-link" href="../core/effect/water.html">Simple Water</a>
  458. </li>
  459. <li class="nav-item" data-depth="2">
  460. <a class="nav-link" href="../core/effect/post-processor_water.html">Post-Processor Water</a>
  461. </li>
  462. </ul>
  463. </li>
  464. <li class="nav-item" data-depth="1">
  465. <button class="nav-item-toggle"></button>
  466. <span class="nav-text">Camera</span>
  467. <ul class="nav-list">
  468. <li class="nav-item" data-depth="2">
  469. <a class="nav-link" href="../core/renderer/camera.html">Camera</a>
  470. </li>
  471. <li class="nav-item" data-depth="2">
  472. <a class="nav-link" href="../core/renderer/making_the_camera_follow_a_character.html">Follow a Character</a>
  473. </li>
  474. <li class="nav-item" data-depth="2">
  475. <a class="nav-link" href="../core/renderer/remote-controlling_the_camera.html">Remote-Controlling</a>
  476. </li>
  477. <li class="nav-item" data-depth="2">
  478. <a class="nav-link" href="../core/renderer/multiple_camera_views.html">Multiple Camera Views</a>
  479. </li>
  480. <li class="nav-item" data-depth="2">
  481. <a class="nav-link" href="../core/renderer/jme3_renderbuckets.html">Render Buckets</a>
  482. </li>
  483. </ul>
  484. </li>
  485. <li class="nav-item" data-depth="1">
  486. <button class="nav-item-toggle"></button>
  487. <span class="nav-text">Rendering</span>
  488. <ul class="nav-list">
  489. <li class="nav-item" data-depth="2">
  490. <a class="nav-link" href="../core/renderer/render_pipeline.html">Render Pipelines</a>
  491. </li>
  492. </ul>
  493. </li>
  494. <li class="nav-item" data-depth="1">
  495. <button class="nav-item-toggle"></button>
  496. <span class="nav-text">User Interaction</span>
  497. <ul class="nav-list">
  498. <li class="nav-item" data-depth="2">
  499. <a class="nav-link" href="../core/input/input_handling.html">Input Handling</a>
  500. </li>
  501. <li class="nav-item" data-depth="2">
  502. <a class="nav-link" href="../core/input/combo_moves.html">Combo Moves</a>
  503. </li>
  504. <li class="nav-item" data-depth="2">
  505. <a class="nav-link" href="../core/input/mouse_picking.html">Mouse Picking</a>
  506. </li>
  507. </ul>
  508. </li>
  509. <li class="nav-item" data-depth="1">
  510. <button class="nav-item-toggle"></button>
  511. <a class="nav-link" href="../core/gui/topic_gui.html">Graphical User Interface</a>
  512. <ul class="nav-list">
  513. <li class="nav-item" data-depth="2">
  514. <button class="nav-item-toggle"></button>
  515. <span class="nav-text">Nifty GUI</span>
  516. <ul class="nav-list">
  517. <li class="nav-item" data-depth="3">
  518. <a class="nav-link" href="../core/gui/nifty_gui.html">Integration Tutorial</a>
  519. </li>
  520. <li class="nav-item" data-depth="3">
  521. <a class="nav-link" href="../core/gui/nifty_gui_best_practices.html">Best Practices</a>
  522. </li>
  523. <li class="nav-item" data-depth="3">
  524. <a class="nav-link" href="../core/gui/nifty_gui_scenarios.html">Scenarios</a>
  525. </li>
  526. </ul>
  527. </li>
  528. <li class="nav-item" data-depth="2">
  529. <a class="nav-link" href="../core/ui/hud.html">Head-Up Display (HUD)</a>
  530. </li>
  531. </ul>
  532. </li>
  533. <li class="nav-item" data-depth="1">
  534. <button class="nav-item-toggle"></button>
  535. <span class="nav-text">Virtual Reality</span>
  536. <ul class="nav-list">
  537. <li class="nav-item" data-depth="2">
  538. <a class="nav-link" href="../core/vr/virtualreality.html">Virtual Reality</a>
  539. </li>
  540. <li class="nav-item" data-depth="2">
  541. <a class="nav-link" href="../core/vr/legacyOpenVr.html">Virtual Reality Legacy Support</a>
  542. </li>
  543. <li class="nav-item" data-depth="2">
  544. <a class="nav-link" href="../core/vr/virtualrealitycontrollers.html">Virtual Reality Legacy Controller Support</a>
  545. </li>
  546. </ul>
  547. </li>
  548. </ul>
  549. </li>
  550. <li class="nav-item" data-depth="0">
  551. <ul class="nav-list">
  552. <li class="nav-item" data-depth="1">
  553. <button class="nav-item-toggle"></button>
  554. <a class="nav-link" href="../physics/physics.html">Physics</a>
  555. <ul class="nav-list">
  556. <li class="nav-item" data-depth="2">
  557. <a class="nav-link" href="../physics/bullet_multithreading.html">Multi-Threaded Physics</a>
  558. </li>
  559. <li class="nav-item" data-depth="2">
  560. <a class="nav-link" href="../physics/collision/physics_listeners.html">Collision Detection</a>
  561. </li>
  562. <li class="nav-item" data-depth="2">
  563. <a class="nav-link" href="../physics/joint/hinges_and_joints.html">Hinges and Joints</a>
  564. </li>
  565. <li class="nav-item" data-depth="2">
  566. <a class="nav-link" href="../physics/control/walking_character.html">Walking Character</a>
  567. </li>
  568. <li class="nav-item" data-depth="2">
  569. <a class="nav-link" href="../physics/control/ragdoll.html">Ragdoll</a>
  570. </li>
  571. <li class="nav-item" data-depth="2">
  572. <a class="nav-link" href="../physics/control/vehicles.html">Vehicles</a>
  573. </li>
  574. <li class="nav-item" data-depth="2">
  575. <a class="nav-link" href="../physics/control/softbody.html">Softbody</a>
  576. </li>
  577. <li class="nav-item" data-depth="2">
  578. <a class="nav-link" href="../physics/bullet_pitfalls.html">Bullet Physics Pitfalls</a>
  579. </li>
  580. </ul>
  581. </li>
  582. </ul>
  583. </li>
  584. <li class="nav-item" data-depth="0">
  585. <ul class="nav-list">
  586. <li class="nav-item" data-depth="1">
  587. <button class="nav-item-toggle"></button>
  588. <span class="nav-text">Networking</span>
  589. <ul class="nav-list">
  590. <li class="nav-item" data-depth="2">
  591. <a class="nav-link" href="../networking/networking.html">Networking (SpiderMonkey)</a>
  592. </li>
  593. <li class="nav-item" data-depth="2">
  594. <a class="nav-link" href="../networking/headless_server.html">Headless Server</a>
  595. </li>
  596. <li class="nav-item" data-depth="2">
  597. <a class="nav-link" href="../networking/monkey_zone.html">Multi-Player Demo Code</a>
  598. </li>
  599. <li class="nav-item" data-depth="2">
  600. <a class="nav-link" href="../networking/networking_video_tutorials.html">Networking Video Tutorials</a>
  601. </li>
  602. </ul>
  603. </li>
  604. </ul>
  605. </li>
  606. <li class="nav-item" data-depth="0">
  607. <ul class="nav-list">
  608. <li class="nav-item" data-depth="1">
  609. <button class="nav-item-toggle"></button>
  610. <span class="nav-text">User Contributions</span>
  611. <ul class="nav-list">
  612. <li class="nav-item" data-depth="2">
  613. <a class="nav-link" href="../contributions/contributions.html">User Made Utilities</a>
  614. </li>
  615. <li class="nav-item" data-depth="2">
  616. <button class="nav-item-toggle"></button>
  617. <span class="nav-text">Shader</span>
  618. <ul class="nav-list">
  619. <li class="nav-item" data-depth="3">
  620. <a class="nav-link" href="../contributions/shader/shaderblow_project.html">ShaderBlow Project</a>
  621. </li>
  622. </ul>
  623. </li>
  624. <li class="nav-item" data-depth="2">
  625. <button class="nav-item-toggle"></button>
  626. <span class="nav-text">Landscapes</span>
  627. <ul class="nav-list">
  628. <li class="nav-item" data-depth="3">
  629. <a class="nav-link" href="../contributions/lanscapes/vegetationsystem/vegetationsystem.html">Vegetation System</a>
  630. </li>
  631. </ul>
  632. </li>
  633. <li class="nav-item" data-depth="2">
  634. <button class="nav-item-toggle"></button>
  635. <span class="nav-text">Networking</span>
  636. <ul class="nav-list">
  637. <li class="nav-item" data-depth="3">
  638. <a class="nav-link" href="../contributions/networking/open_game_finder.html">Open Game Finder</a>
  639. </li>
  640. </ul>
  641. </li>
  642. <li class="nav-item" data-depth="2">
  643. <button class="nav-item-toggle"></button>
  644. <span class="nav-text">Entity System</span>
  645. <ul class="nav-list">
  646. <li class="nav-item" data-depth="3">
  647. <a class="nav-link" href="#es/entitysystem.adoc">The Zay-ES Entity System</a>
  648. </li>
  649. </ul>
  650. </li>
  651. <li class="nav-item" data-depth="2">
  652. <button class="nav-item-toggle"></button>
  653. <span class="nav-text">Artificial Intelligence</span>
  654. <ul class="nav-list">
  655. <li class="nav-item" data-depth="3">
  656. <a class="nav-link" href="../contributions/ai/recast.html">Recast Navigation</a>
  657. </li>
  658. <li class="nav-item" data-depth="3">
  659. <a class="nav-link" href="../contributions/ai/building_recast.html">Updating and building Recast Native Bindings</a>
  660. </li>
  661. <li class="nav-item" data-depth="3">
  662. <a class="nav-link" href="../contributions/ai/monkey_brains.html">Monkey Brains</a>
  663. </li>
  664. <li class="nav-item" data-depth="3">
  665. <a class="nav-link" href="../contributions/ai/steer_behaviours.html">Steer Behaviours</a>
  666. </li>
  667. <li class="nav-item" data-depth="3">
  668. <a class="nav-link" href="../contributions/ai/jme3_ai.html">jME3 Artificial Intelligence</a>
  669. </li>
  670. </ul>
  671. </li>
  672. <li class="nav-item" data-depth="2">
  673. <button class="nav-item-toggle"></button>
  674. <a class="nav-link" href="../contributions/gui/topic_contributions_gui.html">GUI</a>
  675. <ul class="nav-list">
  676. <li class="nav-item" data-depth="3">
  677. <a class="nav-link" href="../contributions/contributions.html#lemur-gui-library">Lemur - a native jME3 GUI library with scene graph tools</a>
  678. </li>
  679. <li class="nav-item" data-depth="3">
  680. <a class="nav-link" href="../contributions/contributions.html#tonegodgui">tonegodGUI - a native jME3 GUI library</a>
  681. </li>
  682. <li class="nav-item" data-depth="3">
  683. <a class="nav-link" href="../contributions/contributions.html#immediate-graphical-user-interface">Immediate graphical user interface</a>
  684. </li>
  685. </ul>
  686. </li>
  687. <li class="nav-item" data-depth="2">
  688. <button class="nav-item-toggle"></button>
  689. <span class="nav-text">Tools</span>
  690. <ul class="nav-list">
  691. <li class="nav-item" data-depth="3">
  692. <a class="nav-link" href="../contributions/tools/navigation.html">Mercator Projection Tool (Marine Navigation)</a>
  693. </li>
  694. <li class="nav-item" data-depth="3">
  695. <a class="nav-link" href="../contributions/tools/charts.html">Visualizing Maps in JME3 (Marine Charts)</a>
  696. </li>
  697. </ul>
  698. </li>
  699. <li class="nav-item" data-depth="2">
  700. <button class="nav-item-toggle"></button>
  701. <a class="nav-link" href="../contributions/vr/topic_contributions_vr.html">Virtual Reality (And augmented reality)</a>
  702. <ul class="nav-list">
  703. <li class="nav-item" data-depth="3">
  704. <a class="nav-link" href="../contributions/contributions.html#tamarin-openxr">Tamarin OpenXR</a>
  705. </li>
  706. </ul>
  707. </li>
  708. <li class="nav-item" data-depth="2">
  709. <button class="nav-item-toggle"></button>
  710. <span class="nav-text">Projects</span>
  711. <ul class="nav-list">
  712. <li class="nav-item" data-depth="3">
  713. <a class="nav-link" href="../contributions/projects/rise_of_mutants_project.html">Rise of Mutants Project</a>
  714. </li>
  715. </ul>
  716. </li>
  717. </ul>
  718. </li>
  719. </ul>
  720. </li>
  721. <li class="nav-item" data-depth="0">
  722. <ul class="nav-list">
  723. <li class="nav-item" data-depth="1">
  724. <button class="nav-item-toggle"></button>
  725. <a class="nav-link" href="sdk.html">SDK</a>
  726. <ul class="nav-list">
  727. <li class="nav-item" data-depth="2">
  728. <button class="nav-item-toggle"></button>
  729. <span class="nav-text">Video Tutorials</span>
  730. <ul class="nav-list">
  731. <li class="nav-item" data-depth="3">
  732. <button class="nav-item-toggle"></button>
  733. <span class="nav-text">SDK Use Case Tutorials</span>
  734. <ul class="nav-list">
  735. <li class="nav-item" data-depth="4">
  736. <a class="nav-link" href="http://www.youtube.com/watch?v=-OzRZscLlHY">Demo 1 (Quixote demo)</a>
  737. </li>
  738. <li class="nav-item" data-depth="4">
  739. <a class="nav-link" href="http://www.youtube.com/watch?v=6-YWxD3JByE">Demo 2 (Models and Materials)</a>
  740. </li>
  741. </ul>
  742. </li>
  743. <li class="nav-item" data-depth="3">
  744. <button class="nav-item-toggle"></button>
  745. <span class="nav-text">SDK Tutorials</span>
  746. <ul class="nav-list">
  747. <li class="nav-item" data-depth="4">
  748. <a class="nav-link" href="http://www.youtube.com/watch?v=M1_0pbeyJzI">Basics</a>
  749. </li>
  750. <li class="nav-item" data-depth="4">
  751. <a class="nav-link" href="http://www.youtube.com/watch?v=nL7woH40i5c">Importing Models</a>
  752. </li>
  753. <li class="nav-item" data-depth="4">
  754. <a class="nav-link" href="http://www.youtube.com/watch?v=DUmgAjiNzhY">Dragging&amp;Dropping Nodes</a>
  755. </li>
  756. <li class="nav-item" data-depth="4">
  757. <a class="nav-link" href="http://www.youtube.com/watch?v=ntPAmtsQ6eM">Scene Composing</a>
  758. </li>
  759. <li class="nav-item" data-depth="4">
  760. <a class="nav-link" href="http://www.youtube.com/watch?v=zgPV3W6dD4s">Terrain with Collision Shape</a>
  761. </li>
  762. <li class="nav-item" data-depth="4">
  763. <a class="nav-link" href="http://www.youtube.com/watch?v=Feu3-mrpolc">Working with Materials</a>
  764. </li>
  765. <li class="nav-item" data-depth="4">
  766. <a class="nav-link" href="http://www.youtube.com/watch?v=MNDiZ9YHIpM">Custom Controls</a>
  767. </li>
  768. <li class="nav-item" data-depth="4">
  769. <a class="nav-link" href="http://www.youtube.com/watch?v=oZnssg8TBWQ">WebStart Deployment</a>
  770. </li>
  771. <li class="nav-item" data-depth="4">
  772. <a class="nav-link" href="http://www.youtube.com/watch?v=D7JM4VMKqPc">Animation and Effect TrackEditing</a>
  773. </li>
  774. </ul>
  775. </li>
  776. </ul>
  777. </li>
  778. <li class="nav-item" data-depth="2">
  779. <button class="nav-item-toggle"></button>
  780. <span class="nav-text">Getting Started</span>
  781. <ul class="nav-list">
  782. <li class="nav-item" data-depth="3">
  783. <a class="nav-link" href="update_center.html">Updating jMonkeyEngine SDK</a>
  784. </li>
  785. <li class="nav-item" data-depth="3">
  786. <a class="nav-link" href="troubleshooting.html">Troubleshooting</a>
  787. </li>
  788. </ul>
  789. </li>
  790. <li class="nav-item" data-depth="2">
  791. <button class="nav-item-toggle"></button>
  792. <span class="nav-text">Java Development Features</span>
  793. <ul class="nav-list">
  794. <li class="nav-item" data-depth="3">
  795. <a class="nav-link" href="project_creation.html">Project Creation</a>
  796. </li>
  797. <li class="nav-item" data-depth="3">
  798. <a class="nav-link" href="code_editor.html">Code Editor and Palette</a>
  799. </li>
  800. <li class="nav-item" data-depth="3">
  801. <a class="nav-link" href="version_control.html">File Version Control</a>
  802. </li>
  803. <li class="nav-item" data-depth="3">
  804. <a class="nav-link" href="debugging_profiling_testing.html">Debug, Profile, Test</a>
  805. </li>
  806. <li class="nav-item" data-depth="3">
  807. <button class="nav-item-toggle"></button>
  808. <a class="nav-link" href="application_deployment.html">Application Deployment</a>
  809. <ul class="nav-list">
  810. <li class="nav-item" data-depth="4">
  811. <a class="nav-link" href="default_build_script.html">Default Build Script</a>
  812. </li>
  813. <li class="nav-item is-current-page" data-depth="4">
  814. <a class="nav-link" href="android.html">Android</a>
  815. </li>
  816. <li class="nav-item" data-depth="4">
  817. <a class="nav-link" href="android_cheat_sheet.html">Android Cheat Sheet</a>
  818. </li>
  819. <li class="nav-item" data-depth="4">
  820. <a class="nav-link" href="ios.html">iOS</a>
  821. </li>
  822. </ul>
  823. </li>
  824. </ul>
  825. </li>
  826. <li class="nav-item" data-depth="2">
  827. <button class="nav-item-toggle"></button>
  828. <span class="nav-text">Unique Features</span>
  829. <ul class="nav-list">
  830. <li class="nav-item" data-depth="3">
  831. <button class="nav-item-toggle"></button>
  832. <a class="nav-link" href="model_loader_and_viewer.html">Import, View, Convert Models</a>
  833. <ul class="nav-list">
  834. <li class="nav-item" data-depth="4">
  835. <a class="nav-link" href="asset_packs.html">Asset Packs</a>
  836. </li>
  837. </ul>
  838. </li>
  839. <li class="nav-item" data-depth="3">
  840. <a class="nav-link" href="scene_explorer.html">The SceneExplorer</a>
  841. </li>
  842. <li class="nav-item" data-depth="3">
  843. <a class="nav-link" href="scene_composer.html">Composing a Scene</a>
  844. </li>
  845. <li class="nav-item" data-depth="3">
  846. <a class="nav-link" href="terrain_editor.html">Terrain Editor</a>
  847. </li>
  848. <li class="nav-item" data-depth="3">
  849. <a class="nav-link" href="sample_code.html">Sample Code</a>
  850. </li>
  851. <li class="nav-item" data-depth="3">
  852. <a class="nav-link" href="material_editing.html">Material Editing</a>
  853. </li>
  854. <li class="nav-item" data-depth="3">
  855. <a class="nav-link" href="font_creation.html">Creating Bitmap Fonts</a>
  856. </li>
  857. <li class="nav-item" data-depth="3">
  858. <button class="nav-item-toggle"></button>
  859. <a class="nav-link" href="https://hub.jmonkeyengine.org/t/effecttrack-and-audiotrack-editing-in-the-sdk/23378">Audio and Effect Track Editing</a>
  860. <ul class="nav-list">
  861. <li class="nav-item" data-depth="4">
  862. <a class="nav-link" href="https://www.youtube.com/watch?v=D7JM4VMKqPc">Video: Effect and AudioTrack editing in jMonkeyEngine 3 sdk</a>
  863. </li>
  864. </ul>
  865. </li>
  866. <li class="nav-item" data-depth="3">
  867. <a class="nav-link" href="filters.html">Post-Processor Filter Editor and Viewer</a>
  868. </li>
  869. <li class="nav-item" data-depth="3">
  870. <a class="nav-link" href="../core/app/state/application_states.html">Application States</a>
  871. </li>
  872. <li class="nav-item" data-depth="3">
  873. <a class="nav-link" href="../core/scene/control/custom_controls.html">Custom Controls</a>
  874. </li>
  875. <li class="nav-item" data-depth="3">
  876. <a class="nav-link" href="vehicle_creator.html">Vehicle Creator</a>
  877. </li>
  878. <li class="nav-item" data-depth="3">
  879. <a class="nav-link" href="assetbrowser.html">Asset Browser</a>
  880. </li>
  881. <li class="nav-item" data-depth="3">
  882. <a class="nav-link" href="animations.html">Animations</a>
  883. </li>
  884. </ul>
  885. </li>
  886. <li class="nav-item" data-depth="2">
  887. <button class="nav-item-toggle"></button>
  888. <span class="nav-text">Advanced Usage</span>
  889. <ul class="nav-list">
  890. <li class="nav-item" data-depth="3">
  891. <a class="nav-link" href="build_platform.html">Building jMonkeyEngine SDK</a>
  892. </li>
  893. <li class="nav-item" data-depth="3">
  894. <a class="nav-link" href="use_own_jme.html#.adoc">Using your own (modified) version of jME3 in jMonkeyEngine SDK</a>
  895. </li>
  896. <li class="nav-item" data-depth="3">
  897. <a class="nav-link" href="increasing_heap_memory.html">Increasing Heap Memory</a>
  898. </li>
  899. <li class="nav-item" data-depth="3">
  900. <a class="nav-link" href="log_files.html">Log Files</a>
  901. </li>
  902. </ul>
  903. </li>
  904. <li class="nav-item" data-depth="2">
  905. <button class="nav-item-toggle"></button>
  906. <span class="nav-text">Available external plugins</span>
  907. <ul class="nav-list">
  908. <li class="nav-item" data-depth="3">
  909. <a class="nav-link" href="../contributions/contributions.html">Contributions</a>
  910. </li>
  911. <li class="nav-item" data-depth="3">
  912. <a class="nav-link" href="neotexture.html">Neo Texture Editor for procedural textures</a>
  913. </li>
  914. <li class="nav-item" data-depth="3">
  915. <a class="nav-link" href="http://www.youtube.com/watch?v=yS9a9o4WzL8">Video: Mesh Tool &amp; Physics Editor</a>
  916. </li>
  917. </ul>
  918. </li>
  919. <li class="nav-item" data-depth="2">
  920. <button class="nav-item-toggle"></button>
  921. <a class="nav-link" href="development.html">Developing plugins for jMonkeyEngine SDK</a>
  922. <ul class="nav-list">
  923. <li class="nav-item" data-depth="3">
  924. <a class="nav-link" href="development/setup.html">Creating a plugin</a>
  925. </li>
  926. <li class="nav-item" data-depth="3">
  927. <a class="nav-link" href="development/general.html">Creating components</a>
  928. </li>
  929. <li class="nav-item" data-depth="3">
  930. <a class="nav-link" href="development/scene.html">The Main Scene</a>
  931. </li>
  932. <li class="nav-item" data-depth="3">
  933. <a class="nav-link" href="development/sceneexplorer.html">The Scene Explorer</a>
  934. </li>
  935. <li class="nav-item" data-depth="3">
  936. <a class="nav-link" href="development/projects_assets.html">Projects and Assets</a>
  937. </li>
  938. <li class="nav-item" data-depth="3">
  939. <a class="nav-link" href="development/extension_library.html">Create a library plugin from a jar file</a>
  940. </li>
  941. <li class="nav-item" data-depth="3">
  942. <a class="nav-link" href="development/model_loader.html">Create a new or custom model filetype and loader</a>
  943. </li>
  944. </ul>
  945. </li>
  946. </ul>
  947. </li>
  948. </ul>
  949. </li>
  950. </ul>
  951. </nav>
  952. </div>
  953. <div class="nav-panel-explore" data-panel="explore">
  954. <div class="context">
  955. <span class="title">JME</span>
  956. <span class="version">3.8</span>
  957. </div>
  958. <ul class="components">
  959. <li class="component is-current">
  960. <span class="title">JME</span>
  961. <ul class="versions">
  962. <li class="version is-current">
  963. <a href="../documentation.html">3.8</a>
  964. </li>
  965. <li class="version">
  966. <a href="../../3.4/documentation.html">3.4</a>
  967. </li>
  968. <li class="version">
  969. <a href="../../3.3/documentation.html">3.3</a>
  970. </li>
  971. <li class="version">
  972. <a href="../../3.2/documentation.html">3.2</a>
  973. </li>
  974. </ul>
  975. </li>
  976. <li class="component">
  977. <span class="title">Wiki Contribution</span>
  978. <ul class="versions">
  979. <li class="version">
  980. <a href="../../../docs-wiki/3.8/wiki_contributor.html">3.8</a>
  981. </li>
  982. </ul>
  983. </li>
  984. <li class="component">
  985. <span class="title">Wiki UI</span>
  986. <ul class="versions">
  987. <li class="version">
  988. <a href="../../../wiki-ui/index.html">master</a>
  989. </li>
  990. </ul>
  991. </li>
  992. </ul>
  993. </div>
  994. </div>
  995. </aside>
  996. </div>
  997. <main class="article">
  998. <div class="toolbar" role="navigation">
  999. <button class="nav-toggle"></button>
  1000. <nav class="breadcrumbs" aria-label="breadcrumbs">
  1001. <ul>
  1002. <li><a href="../documentation.html">JME</a></li>
  1003. <li><a href="sdk.html">SDK</a></li>
  1004. <li>Java Development Features</li>
  1005. <li><a href="application_deployment.html">Application Deployment</a></li>
  1006. <li><a href="android.html">Android</a></li>
  1007. </ul>
  1008. </nav>
  1009. <div class="page-versions">
  1010. <button class="version-menu-toggle" title="Show other versions of page">3.8</button>
  1011. <div class="version-menu">
  1012. <a class="version is-current" href="android.html">3.8</a>
  1013. <a class="version" href="../../3.4/sdk/android.html">3.4</a>
  1014. <a class="version" href="../../3.3/sdk/android.html">3.3</a>
  1015. <a class="version" href="../../3.2/sdk/android.html">3.2</a>
  1016. </div>
  1017. </div>
  1018. <div class="edit-this-page"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/docs/modules/sdk/pages/android.adoc">Edit this Page</a></div>
  1019. </div>
  1020. <div class="content">
  1021. <article class="doc">
  1022. <h1 class="page">Android Support in the jMonkeyEngine</h1>
  1023. <div id="preamble">
  1024. <div class="sectionbody">
  1025. <div class="paragraph">
  1026. <p>jMonkeyEngine supports android deployment, and it&#8217;s fully integrated in the SDK.
  1027. The android support is in constant enhancement so if you have questions or suggestions, please leave a comment on the <a href="https://hub.jmonkeyengine.org/t/android-deployment-via-sdk-checkbox-is-here/18579">Android forum thread</a>!</p>
  1028. </div>
  1029. </div>
  1030. </div>
  1031. <div class="sect1">
  1032. <h2 id="requirements"><a class="anchor" href="#requirements"></a>Requirements</h2>
  1033. <div class="sectionbody">
  1034. <div class="sect2">
  1035. <h3 id="developer-requirements"><a class="anchor" href="#developer-requirements"></a>Developer Requirements</h3>
  1036. <div class="ulist">
  1037. <ul>
  1038. <li>
  1039. <p>Install <a href="sdk.html" class="xref page">jMonkeyEngine SDK</a> (Remember to install <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK</a>)</p>
  1040. </li>
  1041. <li>
  1042. <p>Install <a href="http://developer.android.com/sdk/index.html">Android SDK Manager 22.6.2</a> or newer.</p>
  1043. <div class="olist loweralpha">
  1044. <ol class="loweralpha" type="a">
  1045. <li>
  1046. <p>(You don&#8217;t need the ADT Bundle for Windows. Choose &#8220;USE AN EXISTING IDE&#8221; and download the SDK Tools)</p>
  1047. </li>
  1048. <li>
  1049. <p>It&#8217;s recommended to choose another destination folder.</p>
  1050. </li>
  1051. <li>
  1052. <p>Start the SDK Manager and install the default selected 13 packages (accept licenses)</p>
  1053. </li>
  1054. </ol>
  1055. </div>
  1056. </li>
  1057. </ul>
  1058. </div>
  1059. <div class="paragraph">
  1060. <p><span class="image"><img src="_images/android_sdk_manager.png" alt="android_sdk_manager.png" width="" height=""></span></p>
  1061. </div>
  1062. <div class="ulist">
  1063. <ul>
  1064. <li>
  1065. <p>(Optional) Install NBAndroid in the jMonkeyEngine SDK:</p>
  1066. <div class="olist loweralpha">
  1067. <ol class="loweralpha" type="a">
  1068. <li>
  1069. <p>Go to Tools→Plugins→Available Plugins.</p>
  1070. </li>
  1071. <li>
  1072. <p>Install the &#8220;Android&#8221; plugin.</p>
  1073. </li>
  1074. </ol>
  1075. </div>
  1076. </li>
  1077. </ul>
  1078. </div>
  1079. </div>
  1080. <div class="sect2">
  1081. <h3 id="user-requirements"><a class="anchor" href="#user-requirements"></a>User Requirements</h3>
  1082. <div class="ulist">
  1083. <ul>
  1084. <li>
  1085. <p>Android 2.3 device or better with development mode (&#8220;USB-Debugging&#8221;) enabled</p>
  1086. </li>
  1087. <li>
  1088. <p>Graphic card that supports OpenGL ES 2.0 or better</p>
  1089. </li>
  1090. <li>
  1091. <p><a href="https://hub.jmonkeyengine.org/t/does-my-phone-meet-the-requirements-necessary-to-run-jmonkeyengine-3/17231">Does my phone meet the requirements necessary to run jMonkeyEngine 3?</a></p>
  1092. </li>
  1093. <li>
  1094. <p>Remember to install the driver software on your computer</p>
  1095. </li>
  1096. </ul>
  1097. </div>
  1098. </div>
  1099. </div>
  1100. </div>
  1101. <div class="sect1">
  1102. <h2 id="features"><a class="anchor" href="#features"></a>Features</h2>
  1103. <div class="sectionbody">
  1104. <div class="sect2">
  1105. <h3 id="jmonkeyengine3-android-integration"><a class="anchor" href="#jmonkeyengine3-android-integration"></a>jMonkeyEngine3 Android Integration</h3>
  1106. <div class="ulist">
  1107. <ul>
  1108. <li>
  1109. <p>JME app encapsulated in an Android activity (the AndroidHarness).</p>
  1110. </li>
  1111. <li>
  1112. <p>JME display in a GlSurfaceView.</p>
  1113. </li>
  1114. <li>
  1115. <p>Android touch events are encapsulated into JME touch event or translated into mouse events.</p>
  1116. </li>
  1117. <li>
  1118. <p>Errors are handled universally in the Harness.</p>
  1119. </li>
  1120. <li>
  1121. <p>Lifecycle management</p>
  1122. <div class="ulist">
  1123. <ul>
  1124. <li>
  1125. <p>Leaving the activity with the Back key destroys the app (quit).</p>
  1126. </li>
  1127. <li>
  1128. <p>Leaving the activity with the Home key freezes the app in the background. When you return, the app is in the same state as when you left it (pause).</p>
  1129. </li>
  1130. </ul>
  1131. </div>
  1132. </li>
  1133. <li>
  1134. <p>Currently supports all jmetests except:</p>
  1135. <div class="ulist">
  1136. <ul>
  1137. <li>
  1138. <p>Post processing filters. Functional but most of the time very slow</p>
  1139. </li>
  1140. <li>
  1141. <p>Shadows. Functional but most of the time very slow</p>
  1142. </li>
  1143. <li>
  1144. <p>Water. Functional but very slow.</p>
  1145. </li>
  1146. </ul>
  1147. </div>
  1148. </li>
  1149. </ul>
  1150. </div>
  1151. </div>
  1152. <div class="sect2">
  1153. <h3 id="jmonkeyengine-sdk-android-integration"><a class="anchor" href="#jmonkeyengine-sdk-android-integration"></a>jMonkeyEngine SDK Android Integration</h3>
  1154. <div class="paragraph">
  1155. <p>Mobile deployment is a &#8220;one-click&#8221; option next to Desktop/WebStart/Applet deployment in the jMonkeyEngine SDK.</p>
  1156. </div>
  1157. <div class="ulist">
  1158. <ul>
  1159. <li>
  1160. <p>Automatic creation of Android harness and settings.</p>
  1161. <div class="ulist">
  1162. <ul>
  1163. <li>
  1164. <p>Ant script build target creates APK file.</p>
  1165. </li>
  1166. <li>
  1167. <p>Ant script run target executes APK on Android Emulator or mobile device.</p>
  1168. </li>
  1169. </ul>
  1170. </div>
  1171. </li>
  1172. </ul>
  1173. </div>
  1174. </div>
  1175. </div>
  1176. </div>
  1177. <div class="sect1">
  1178. <h2 id="instructions"><a class="anchor" href="#instructions"></a>Instructions</h2>
  1179. <div class="sectionbody">
  1180. <div class="olist arabic">
  1181. <ol class="arabic">
  1182. <li>
  1183. <p>Make sure you have installed the Android Project Support into the jMonkeyEngine SDK.</p>
  1184. </li>
  1185. <li>
  1186. <p>Open the jMonkeyEngine SDK Options&gt;Mobile and enter the path to your Android SDK directory, and click OK. E.g. <code>C:\Program Files\android-sdk</code></p>
  1187. </li>
  1188. </ol>
  1189. </div>
  1190. <div class="sect2">
  1191. <h3 id="activate-android-deployment"><a class="anchor" href="#activate-android-deployment"></a>Activate Android Deployment</h3>
  1192. <div class="olist arabic">
  1193. <ol class="arabic">
  1194. <li>
  1195. <p>Open an existing JME3 project, or create a new JME3 project.</p>
  1196. </li>
  1197. <li>
  1198. <p>Right-click the project node in the Projects Window and open the Properties.</p>
  1199. </li>
  1200. <li>
  1201. <p>In the Application&gt;Android Properties, enable Android Deployment, and select an Android target. E.g. <code>Android 4.2.2</code><br>
  1202. This creates a &#8220;mobile&#8221; folder in your projects directory. This folder contains a complete android project with correct settings to run the application using the AndroidHarness.</p>
  1203. </li>
  1204. <li>
  1205. <p>(Restart the jMonkeyEngine)</p>
  1206. </li>
  1207. <li>
  1208. <p>A Mobile Files node appears in the Project window.<br>
  1209. It lets you edit the MainActivity.java, the AndroidManifest.xml, and build.properties.</p>
  1210. </li>
  1211. </ol>
  1212. </div>
  1213. <div class="paragraph">
  1214. <p><span class="image"><img src="_images/nvyyd.png" alt="nvyyd.png" width="" height=""></span></p>
  1215. </div>
  1216. <div class="paragraph">
  1217. <p>The Android deployment option creates a separate sub-project for android and makes the main project and associated libraries available to the sub-project as libraries. The sub-project can be edited using NBAndroid (see below) or using Eclipse or any other IDE that supports standard android projects. Normally you do not need to edit the android project files. Exceptions are described further below. <em>The libraries are first added to the android sub-project when the main project is built for the first time.</em></p>
  1218. </div>
  1219. </div>
  1220. <div class="sect2">
  1221. <h3 id="build-and-run"><a class="anchor" href="#build-and-run"></a>Build and Run</h3>
  1222. <div class="paragraph">
  1223. <p>Open your game project in the jMonkeyEngine SDK.</p>
  1224. </div>
  1225. <div class="paragraph">
  1226. <p><strong>Building</strong></p>
  1227. </div>
  1228. <div class="paragraph">
  1229. <p>Right-click the project node to build your project.<br>
  1230. An APK file is created in the &#8220;dist&#8221; folder.</p>
  1231. </div>
  1232. <div class="paragraph">
  1233. <p><strong>Running</strong></p>
  1234. </div>
  1235. <div class="olist arabic">
  1236. <ol class="arabic">
  1237. <li>
  1238. <p>Right-click the project node and choose Set Main Project.</p>
  1239. </li>
  1240. <li>
  1241. <p>Select the &#8220;Android Device&#8221; build configuration next to the Run toolbar button.</p>
  1242. </li>
  1243. <li>
  1244. <p><em>Make sure &#8220;Compile on Save&#8221; is disabled in your project preferences.</em></p>
  1245. </li>
  1246. <li>
  1247. <p>Run the application on a connected phone by right-clicking it and selecting &#8220;Run&#8221; or press the &#8220;Play&#8221; button in the toolbar.</p>
  1248. </li>
  1249. <li>
  1250. <p>The application will run and output its log to the &#8220;Output&#8221; window of the SDK.</p>
  1251. </li>
  1252. <li>
  1253. <p>When finished testing, click the &#8220;x&#8221; next to the run status in the lower right to quit the logging output.</p>
  1254. </li>
  1255. </ol>
  1256. </div>
  1257. <div class="paragraph">
  1258. <p>The default android run target uses the default device set in the Android configuration utility. If you set that to a phone you can run the application directly on your phone, the emulator does not support OpenGLES 2.0 and cannot run the engine.</p>
  1259. </div>
  1260. <div class="admonitionblock important">
  1261. <table>
  1262. <tr>
  1263. <td class="icon">
  1264. <i class="fa icon-important" title="Important"></i>
  1265. </td>
  1266. <td class="content">
  1267. <div class="paragraph">
  1268. <p>When running your application on some Android devices, having a debugging session open via certain IDEs <strong>will significantly lower performance</strong> (some reports suggest a drop from 60 FPS to 4-8 FPS) until the debug session is detached or the application is started directly from the device.</p>
  1269. </div>
  1270. </td>
  1271. </tr>
  1272. </table>
  1273. </div>
  1274. <div class="paragraph">
  1275. <p>Optionally, download <a href="http://code.google.com/p/jmonkeyengine/downloads/detail?name=Jme3Beta1Demo.apk&amp;can=1&amp;q=">Jme3Beta1Demo.apk</a></p>
  1276. </div>
  1277. <div class="paragraph">
  1278. <p>During build, the libraries and main jar file from the main project are copied to the android project libs folder for access. During this operation the desktop-specific libraries are replaced with android specific JARs.</p>
  1279. </div>
  1280. <div class="paragraph">
  1281. <p><strong>Be aware that logging has been identified as having a significant performance hit in Android applications. If getting poor performance please try turning logging either down or off and retesting.</strong></p>
  1282. </div>
  1283. </div>
  1284. <div class="sect2">
  1285. <h3 id="installing-nbandroid"><a class="anchor" href="#installing-nbandroid"></a>Installing NBAndroid</h3>
  1286. <div class="paragraph">
  1287. <p>Activating the nbandroid plugin in the jMonkeyEngine SDK is optional, but recommended. You do not need the nbandroid plugin for Android support to work, however nbandroid will not interfere and will in fact allow you to edit the android source files and project more conveniently. To be able to edit, extend and code android-specific code in Android projects, install NBAndroid from the update center:</p>
  1288. </div>
  1289. <div class="olist arabic">
  1290. <ol class="arabic">
  1291. <li>
  1292. <p>Open Tools→Plugins→Settings</p>
  1293. </li>
  1294. <li>
  1295. <p>Go to Tools→Plugins→Available Plugins.</p>
  1296. </li>
  1297. <li>
  1298. <p>Install the NbAndroid plugin. (Will show up as Android)</p>
  1299. </li>
  1300. </ol>
  1301. </div>
  1302. <div class="paragraph">
  1303. <p><strong>If the android plugin is not in that list follow <a href="https://bitbucket.org/nbandroid/nbandroid/wiki/Installation">these instructions</a>.</strong></p>
  1304. </div>
  1305. </div>
  1306. <div class="sect2">
  1307. <h3 id="notes"><a class="anchor" href="#notes"></a>Notes</h3>
  1308. <div class="ulist">
  1309. <ul>
  1310. <li>
  1311. <p>The package name parameter is only used when creating the project and only sets the android MainActivity package name</p>
  1312. </li>
  1313. <li>
  1314. <p>The needed android.jar comes with the plugin and is automatically added to the android build</p>
  1315. </li>
  1316. <li>
  1317. <p>All non-android project libraries are automatically excluded from the android build. This is currently hard-coded in the build script, check nbproject/mobile-impl.xml for the details.</p>
  1318. </li>
  1319. <li>
  1320. <p>The main application class parameter for the AndroidHarness is taken from the jme3 project settings when enabling android deployment. Currently it is not updated when you change the main class package or name.</p>
  1321. </li>
  1322. <li>
  1323. <p>When you disable the mobile deployment option, the whole &#8220;mobile&#8221; folder is deleted.</p>
  1324. </li>
  1325. <li>
  1326. <p>The &#8220;errors&#8221; shown in the MainActivity are wrongly displayed only in the editor and will disappear when you install NBAndroid (see below).</p>
  1327. </li>
  1328. <li>
  1329. <p>To sign your application, edit the mobile/build.properties file to point at valid keystore files.</p>
  1330. </li>
  1331. </ul>
  1332. </div>
  1333. </div>
  1334. </div>
  1335. </div>
  1336. <div class="sect1">
  1337. <h2 id="android-considerations"><a class="anchor" href="#android-considerations"></a>Android Considerations</h2>
  1338. <div class="sectionbody">
  1339. <div class="paragraph">
  1340. <p>You can use the jMonkeyEngine SDK to save (theoretically) any jMonkeyEngine app as Android app. But the application has to be prepared for the fact that Android devices have a smaller screen resolution, touchscreens instead of mouse buttons, and (typically) no keyboards.</p>
  1341. </div>
  1342. <div class="ulist">
  1343. <ul>
  1344. <li>
  1345. <p><strong>Inputs:</strong> Devise an alternate control scheme that works for Android users (e.g. using com.jme3.input.controls.TouchListener). This mobile scheme is likely quite different from the desktop scheme.</p>
  1346. </li>
  1347. <li>
  1348. <p><strong>Effects:</strong> Android devices do no support 3D features as well as PCs – or even not at all. This restriction includes post-processor filters (depth-of-field blur, bloom, light scattering, cartoon, etc), drop shadows, water effects, 3D Audio. Be prepared that these effects will (at best) slow down the application or (in the worst case) not work at all. Provide the option to switch to a low-fi equivalent!</p>
  1349. </li>
  1350. <li>
  1351. <p><strong>Nifty <abbr title="Graphical User Interface">GUI</abbr>:</strong> Use different base UI layout XML files for the mobile version of your app to account for a different screen resolution.</p>
  1352. </li>
  1353. </ul>
  1354. </div>
  1355. <div class="paragraph">
  1356. <p><strong>Best Practice:</strong> Ideally, you write the core application code in a way that it checks for the environment it&#8217;s being run on, and automatically adapts the device&#8217;s limitations by switching off effects, changing input mechanisms etc. Learn how to <a href="../tutorials/how-to/java/read_graphic_card_capabilites.html" class="xref page">read graphic card capabilities</a> here.</p>
  1357. </div>
  1358. </div>
  1359. </div>
  1360. <div class="sect1">
  1361. <h2 id="using-android-specific-functions"><a class="anchor" href="#using-android-specific-functions"></a>Using Android specific functions</h2>
  1362. <div class="sectionbody">
  1363. <div class="paragraph">
  1364. <p>As described above, you should always try to design your application as platform independent as possible. If your game becomes a sudden hit on android, why not release it on Facebook as an applet as well? When your application is designed in a platform independent way, you don&#8217;t have to do much more but check a checkbox to deploy your application as an applet. But what if you want to for example access the camera of an android device? Inevitably you will have to use android specific api to access the camera.</p>
  1365. </div>
  1366. <div class="paragraph">
  1367. <p>Since the main project is not configured to access the android api directly, you have to install NBAndroid (see above) to be able to edit the created android project in the SDK. After installing, click the &#8220;open&#8221; project button and navigate to the &#8220;mobile&#8221; folder inside the main project folder (it should show up with an android &#8220;a&#8221; icon) and open it.</p>
  1368. </div>
  1369. <div class="imageblock right">
  1370. <div class="content">
  1371. <img src="_images/android_access.png" alt="android_access.png" width="" height="">
  1372. </div>
  1373. </div>
  1374. <div class="paragraph">
  1375. <p>Although you will use android specific api, using a camera is not exactly android specific and so you should try to design this part of the application as platform independent as possible as well. As an example, if you want to use the phones camera as an image input stream for a texture, you can create e.g. the AppState that manages the image and makes it available to the application inside the main project (no android code is needed). Then in the android part of the code you make a connection to the camera and update the image in the AppState. This also allows you to easily support cameras on other platforms in the same way or fallback to something else in case the platform doesn&#8217;t support a camera.</p>
  1376. </div>
  1377. <div class="paragraph">
  1378. <p>Note that you have to build the whole project once to make (new) classes in the main project available to the android part.</p>
  1379. </div>
  1380. </div>
  1381. </div>
  1382. <div class="sect1">
  1383. <h2 id="signing-an-apk"><a class="anchor" href="#signing-an-apk"></a>Signing an APK</h2>
  1384. <div class="sectionbody">
  1385. <div class="paragraph">
  1386. <p>When you have a mobile project in the &#8220;important files&#8221; section you have an &#8220;Android Properties&#8221; file.<br>
  1387. There are 2 entries in this file :<br>
  1388. key.store=path/to/your/keystore/on/your/drive/mykeystore.keystore<br>
  1389. key.alias=mykeystorealias</p>
  1390. </div>
  1391. <div class="paragraph">
  1392. <p>If those entries are filled, the apk will be signed during the build.<br>
  1393. You’ll be prompted when building to enter the password (twice). It will generate a signed apk in the dist folder of your project.</p>
  1394. </div>
  1395. </div>
  1396. </div>
  1397. <div class="sect1">
  1398. <h2 id="more-info"><a class="anchor" href="#more-info"></a>More Info</h2>
  1399. <div class="sectionbody">
  1400. <div class="paragraph">
  1401. <p>There is currently no proper guidance of running on android.
  1402. The SDK will later provide tools to adapt the materials and other graphics settings of the Android deployment version automatically.</p>
  1403. </div>
  1404. <div class="ulist">
  1405. <ul>
  1406. <li>
  1407. <p><a href="https://www.youtube.com/watch?feature=player_embedded&amp;v=np3N4pCCTPo">Youtube Video on Android deployment</a></p>
  1408. </li>
  1409. <li>
  1410. <p><a href="https://hub.jmonkeyengine.org/t/android-deployment-via-sdk-checkbox-is-here/18579">Android Forum Thread (beta)</a></p>
  1411. </li>
  1412. <li>
  1413. <p><a href="https://hub.jmonkeyengine.org/t/how-to-run-your-jme3-application-on-android-androidharness/16925">Android Forum Thread (alpha)</a></p>
  1414. </li>
  1415. </ul>
  1416. </div>
  1417. </div>
  1418. </div>
  1419. <nav class="pagination">
  1420. <span class="prev"><a href="default_build_script.html">Default Build Script</a></span>
  1421. <span class="next"><a href="android_cheat_sheet.html">Android Cheat Sheet</a></span>
  1422. </nav>
  1423. </article>
  1424. <aside class="toc sidebar" data-title="Contents" data-levels="2">
  1425. <div class="toc-menu"></div>
  1426. </aside>
  1427. </div>
  1428. </main>
  1429. </div>
  1430. <footer class="footer">
  1431. <p>Copyright 2020 jMonkeyEngine Wiki Contributors. Licensed BSD-3.</p>
  1432. </footer>
  1433. <script src="../../../_/js/vendor/docsearch.min.js"></script>
  1434. <!-- fetched from https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js -->
  1435. <script>
  1436. var search = docsearch({
  1437. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  1438. indexName: 'jmonkeyengine',
  1439. inputSelector: '#search-input',
  1440. autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
  1441. algoliaOptions: { hitsPerPage: 10 }
  1442. }).autocomplete
  1443. search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
  1444. function focusSearchInput () { document.querySelector('#search-input').focus() }
  1445. if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput)
  1446. </script>
  1447. <script src="../../../_/js/site.js"></script>
  1448. <script async src="../../../_/js/vendor/highlight.js"></script>
  1449. </body>
  1450. </html>