X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FViewPanel.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FViewPanel.java;h=a511bc78a1217611b2e0abbb67d10d38d40e1765;hp=9c0681cd4e8320157ddcd84774d4b8c5c3a1d4b9;hb=e87345f40ecb4ea526bd8d5dca58afaaee9ec6b3;hpb=7e383c71392e298dde478015129bc739f3eb4e4a diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java index 9c0681c..a511bc7 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/ViewPanel.java @@ -4,7 +4,7 @@ */ package eu.svjatoslav.sixth.e3d.gui; -import eu.svjatoslav.sixth.e3d.gui.humaninput.HIDInputTracker; +import eu.svjatoslav.sixth.e3d.gui.humaninput.HIDEventTracker; import eu.svjatoslav.sixth.e3d.gui.humaninput.KeyboardFocusStack; import eu.svjatoslav.sixth.e3d.renderer.raster.ShapeCollection; @@ -21,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ViewPanel extends JPanel implements ComponentListener { private static final long serialVersionUID = 1683277888885045387L; - private final HIDInputTracker HIDInputTracker = new HIDInputTracker(this); + private final HIDEventTracker HIDEventTracker = new HIDEventTracker(this); private final KeyboardFocusStack keyboardFocusStack; private final Avatar avatar = new Avatar(); private final ShapeCollection rootShapeCollection = new ShapeCollection(); @@ -49,7 +49,7 @@ public class ViewPanel extends JPanel implements ComponentListener { public ViewPanel() { viewRenderListeners.add(avatar); - viewRenderListeners.add(HIDInputTracker); + viewRenderListeners.add(HIDEventTracker); keyboardFocusStack = new KeyboardFocusStack(this); @@ -72,8 +72,8 @@ public class ViewPanel extends JPanel implements ComponentListener { return rootShapeCollection; } - public HIDInputTracker getHIDInputTracker() { - return HIDInputTracker; + public HIDEventTracker getHIDInputTracker() { + return HIDEventTracker; } public void addViewUpdateListener(final ViewRenderListener listener) { @@ -145,13 +145,17 @@ public class ViewPanel extends JPanel implements ComponentListener { } /** - * Calling this methods tells 3D engine that current 3D view needs to be + * Calling these methods tells 3D engine that current 3D view needs to be * repainted on first opportunity. */ public void repaintDuringNextViewUpdate() { viewRepaintNeeded = true; } + /** + * Set target frames per second rate for this view. Target FPS can be changed at runtime. + * @param frameRate target frames per second rate for this view. + */ public void setFrameRate(final int frameRate) { if (canvasUpdateTimerTask != null) { canvasUpdateTimerTask.cancel(); @@ -163,25 +167,21 @@ public class ViewPanel extends JPanel implements ComponentListener { targetFPS = frameRate; - if (frameRate > 0) { - canvasUpdateTimer = new Timer(); - canvasUpdateTimerTask = new ViewUpdateTimerTask(this); + if (frameRate <= 0) return; - canvasUpdateTimer.schedule(canvasUpdateTimerTask, 0, - 1000 / frameRate); - } + canvasUpdateTimer = new Timer(); + canvasUpdateTimerTask = new ViewUpdateTimerTask(this); + + // schedule timer task to run in frequency according to defined frame rate + canvasUpdateTimer.schedule(canvasUpdateTimerTask, 0, + 1000 / frameRate); } + /** + * Stops rendering of this view. + */ public void stop() { - if (canvasUpdateTimerTask != null) { - canvasUpdateTimerTask.cancel(); - canvasUpdateTimerTask = null; - } - - if (canvasUpdateTimer != null) { - canvasUpdateTimer.cancel(); - canvasUpdateTimer = null; - } + setFrameRate(0); } /**