- update manual

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9820 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
nor..67 12 years ago
parent 74620f16f8
commit cbef9ab850
  1. 70
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/multithreading.html
  2. 10
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/android.html
  3. 16
      sdk/jme3-core/javahelp/com/jme3/gde/core/docs/sdk/application_deployment.html

@ -1,4 +1,31 @@
<h3><a>The jME3 Threading Model</a></h3>
<div>
<p>
jME3 is similar to Swing in that for speed and efficiency all changes to the world must be made in a single update thread. This is handled automatically for you if using Controllers or simpleUpdate however whenever you pass work to another thread you need to hand the results back to the main jME3 thread before making any changes to the scene graph.
</p>
<pre> public void rotateGeography(final Geography goe, final Quaternian rot) {
mainApp.enqueue(new Callable&lt;Spatial&gt;() {
public Spatial call() throws Exception {
return geo.rotate(rot);
}
});
}</pre>
<p>
Note that this example does not fetch the returned value by calling <code>get()</code> on the Future object returned from <code>enqueue()</code>. This means that the example method <code>rotateGeography()</code> will return immediately and will not wait for the rotation to be processed before continuing.
</p>
<p>
If the processing thread needs to wait or needs the return value then <code>get()</code> or the other methods in the returned Future object such as <code>isDone()</code> can be used.
</p>
</div>
<!-- EDIT1 SECTION "The jME3 Threading Model" [1-1116] -->
<h1><a>Multithreading Optimization</a></h1>
<div>
@ -20,7 +47,7 @@ Effectively, each for-loop in the main update loop might be a chance for multith
</p>
</div>
<!-- EDIT1 SECTION "Multithreading Optimization" [1-1132] -->
<!-- EDIT2 SECTION "Multithreading Optimization" [1117-2248] -->
<h2><a>Java Multithreading</a></h2>
<div>
@ -39,7 +66,7 @@ The java.util.concurrent package provides a good foundation for multithreading a
</ul>
</div>
<!-- EDIT2 SECTION "Java Multithreading" [1133-2205] -->
<!-- EDIT3 SECTION "Java Multithreading" [2249-3321] -->
<h2><a>Multithreading in jME3</a></h2>
<div>
@ -57,7 +84,7 @@ To avoid slowdown, we decide to keep the pathfinding operations in the NPC Contr
</p>
</div>
<!-- EDIT3 SECTION "Multithreading in jME3" [2206-2878] -->
<!-- EDIT4 SECTION "Multithreading in jME3" [3322-3994] -->
<h3><a>Executor</a></h3>
<div>
@ -84,7 +111,7 @@ In your simple application you can override the stop method and shutdown the exe
&#125;</pre>
</div>
<!-- EDIT4 SECTION "Executor" [2879-3946] -->
<!-- EDIT5 SECTION "Executor" [3995-5062] -->
<h3><a>Control Class Fields</a></h3>
<div>
@ -104,7 +131,7 @@ Here we also created the Future variable to track the state of this task.
</p>
</div>
<!-- EDIT5 SECTION "Control Class Fields" [3947-4537] -->
<!-- EDIT6 SECTION "Control Class Fields" [5063-5653] -->
<h3><a>Control Update() Method</a></h3>
<div>
@ -152,7 +179,7 @@ Remember not to mess with the class fields after starting the thread, because th
</p>
</div>
<!-- EDIT6 SECTION "Control Update() Method" [4538-6408] -->
<!-- EDIT7 SECTION "Control Update() Method" [5654-7524] -->
<h3><a>The Callable</a></h3>
<div>
@ -204,34 +231,7 @@ private Callable&lt;MyWayList&gt; findWay = new Callable&lt;MyWayList&gt;&#40;&#
&#125;;</pre>
</div>
<!-- EDIT7 SECTION "The Callable" [6409-8776] -->
<h3><a>The jME3 Threading Model</a></h3>
<div>
<p>
jME3 is similar to Swing in that for speed and efficiency all changes to the world must be made in a single update thread. This is handled automatically for you if using Controllers or simpleUpdate however whenever you pass work to another thread you need to hand the results back to the main jME3 thread before making any changes to the scene graph.
</p>
<pre> public void rotateGeography(final Geography goe, final Quaternian rot) {
mainApp.enqueue(new Callable&lt;Spatial&gt;() {
public Spatial call() throws Exception {
return geo.rotate(rot);
}
});
}</pre>
<p>
Note that this example does not fetch the returned value by calling <code>get()</code> on the Future object returned from <code>enqueue()</code>. This means that the example method <code>rotateGeography()</code> will return immediately and will not wait for the rotation to be processed before continuing.
</p>
<p>
If the processing thread needs to wait or needs the return value then <code>get()</code> or the other methods in the returned Future object such as <code>isDone()</code> can be used.
</p>
</div>
<!-- EDIT8 SECTION "The jME3 Threading Model" [8777-9892] -->
<!-- EDIT8 SECTION "The Callable" [7525-9891] -->
<h2><a>Conclusion</a></h2>
<div>
@ -250,5 +250,5 @@ The cool thing about this approach is that every entity creates one self-contain
</span></div>
</div>
<!-- EDIT9 SECTION "Conclusion" [9893-] -->
<!-- EDIT9 SECTION "Conclusion" [9892-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:advanced:multithreading?do=export_xhtmlbody">view online version</a></em></p>

@ -226,12 +226,10 @@ Activating the nbandroid plugin in the jMonkeyEngine <acronym title="Software De
</li>
<li><div> To sign your application, edit the mobile/build.properties file to point at valid keystore files.</div>
</li>
<li><div> If you get a FileNotFoundException for MANIFEST.FM when compiling with Android <acronym title="Software Development Kit">SDK</acronym> Rev. 20 you need to copy and paste mobile/AndroidManifest.xml to mobile/MANIFEST.MF (<object classid="java:org.netbeans.modules.javahelp.BrowserDisplayer"><param name="content" value="http://jmonkeyengine.org/groups/android/forum/topic/issues-building-with-android-sdk-rev-20/"><param name="text" value="<html><u>http://jmonkeyengine.org/groups/android/forum/topic/issues-building-with-android-sdk-rev-20/</u></html>"><param name="textColor" value="blue"></object>)</div>
</li>
</ul>
</div>
<!-- EDIT8 SECTION "Beta Instructions" [1824-6621] -->
<!-- EDIT8 SECTION "Beta Instructions" [1824-6350] -->
<h2><a>Android Considerations</a></h2>
<div>
@ -255,7 +253,7 @@ You can use the jMonkeyEngine <acronym title="Software Development Kit">SDK</acr
</p>
</div>
<!-- EDIT9 SECTION "Android Considerations" [6622-7988] -->
<!-- EDIT9 SECTION "Android Considerations" [6351-7717] -->
<h2><a>Using Android specific functions</a></h2>
<div>
@ -277,7 +275,7 @@ Note that you have to build the whole project once to make (new) classes in the
</p>
</div>
<!-- EDIT10 SECTION "Using Android specific functions" [7989-9769] -->
<!-- EDIT10 SECTION "Using Android specific functions" [7718-9498] -->
<h2><a>More Info</a></h2>
<div>
@ -301,5 +299,5 @@ The <acronym title="Software Development Kit">SDK</acronym> will later provide t
</span></div>
</div>
<!-- EDIT11 SECTION "More Info" [9770-] -->
<!-- EDIT11 SECTION "More Info" [9499-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/jme3:android?do=export_xhtmlbody">view online version</a></em></p>

@ -135,12 +135,16 @@ jMonkeyEngine <acronym title="Software Development Kit">SDK</acronym> allows you
</li>
</ol>
<p>
A <code>resources</code> folder in your project folder will be created that contains the template icons and settings files for each selected platform. If you change one of them, de-selecting the deployment for that platform will not delete this resource file anymore and it will not be overwritten when you re-enable deployment for that platform.
</p>
<p>
When you build your project, zip files for each selected platform will be created in the <code>dist</code> folder that contain all that is needed to run your application on that platform.
</p>
</div>
<!-- EDIT6 SECTION "Desktop Executables" [2866-3441] -->
<!-- EDIT6 SECTION "Desktop Executables" [2866-3780] -->
<h3><a>Web Start (JNLP)</a></h3>
<div>
@ -177,7 +181,7 @@ Also, see this <object classid="java:org.netbeans.modules.javahelp.BrowserDispla
</p>
</div>
<!-- EDIT7 SECTION "Web Start (JNLP)" [3442-5044] -->
<!-- EDIT7 SECTION "Web Start (JNLP)" [3781-5383] -->
<h3><a>Browser Applet</a></h3>
<div>
@ -242,7 +246,7 @@ The <code>dist/Applet</code> directory now contains all the files necessary for
</ul>
</div>
<!-- EDIT8 SECTION "Browser Applet" [5045-6809] -->
<!-- EDIT8 SECTION "Browser Applet" [5384-7148] -->
<h3><a>Android Mobile Device</a></h3>
<div>
@ -252,7 +256,7 @@ You can set the jMonkeyEngine <acronym title="Software Development Kit">SDK</acr
</p>
</div>
<!-- EDIT9 SECTION "Android Mobile Device" [6810-6985] -->
<!-- EDIT9 SECTION "Android Mobile Device" [7149-7324] -->
<h2><a>Tip: Switching Build Configurations</a></h2>
<div>
@ -277,7 +281,7 @@ Now you can use the <code>Set Project Configuration</code> popup menu to switch
</p>
</div>
<!-- EDIT10 SECTION "Tip: Switching Build Configurations" [6986-7761] -->
<!-- EDIT10 SECTION "Tip: Switching Build Configurations" [7325-8100] -->
<h2><a>Tip: Reduce Distribution File Size</a></h2>
<div>
@ -320,5 +324,5 @@ jme3-libraries-gui, jme3-libraries-physics, jme3-libraries-video, etc.</div>
</span></div>
</div>
<!-- EDIT11 SECTION "Tip: Reduce Distribution File Size" [7762-] -->
<!-- EDIT11 SECTION "Tip: Reduce Distribution File Size" [8101-] -->
<p><em><a href="http://jmonkeyengine.org/wiki/doku.php/sdk:application_deployment?do=export_xhtmlbody">view online version</a></em></p>
Loading…
Cancel
Save