2 * Copyright (c) 2003-2009 jMonkeyEngine
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 import com.jme.image.Texture;
36 import com.jme.renderer.Renderer;
37 import com.jme.util.geom.Debugger;
41 * Extends {@link BaseSimpleGame} to automatically update and render the root node.
43 * @author Joshua Slack
44 * @version $Revision$, $Date$
46 public abstract class SimpleGame extends BaseSimpleGame {
49 * Called every frame to update scene information.
51 * @param interpolation
52 * unused in this implementation
53 * @see BaseSimpleGame#update(float interpolation)
55 protected final void update(float interpolation) {
56 super.update(interpolation);
59 /** Call simpleUpdate in any derived classes of SimpleGame. */
62 /** Update controllers/render states/transforms/bounds for rootNode. */
63 rootNode.updateGeometricState(tpf, true);
64 statNode.updateGeometricState(tpf, true);
69 * This is called every frame in BaseGame.start(), after update()
71 * @param interpolation
72 * unused in this implementation
73 * @see AbstractGame#render(float interpolation)
75 protected final void render(float interpolation) {
76 super.render(interpolation);
78 Renderer r = display.getRenderer();
80 /** Draw the rootNode and all its children. */
83 /** Call simpleRender() in any derived classes. */
86 /** Draw the stats node to show our stat charts. */
93 protected void doDebug(Renderer r) {
98 Debugger.drawBuffer(Texture.RenderToTextureType.Depth, Debugger.NORTHEAST, r);