/*
- * Sixth 3D engine. Copyright ©2012-2020, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
- *
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
*/
-
package eu.svjatoslav.sixth.e3d.gui;
import eu.svjatoslav.sixth.e3d.gui.humaninput.HIDInputTracker;
*/
public class ViewPanel extends JPanel implements ComponentListener {
private static final long serialVersionUID = 1683277888885045387L;
- public Color backgroundColor = Color.BLACK;
private final HIDInputTracker HIDInputTracker = new HIDInputTracker(this);
private final KeyboardFocusStack keyboardFocusStack;
private final Avatar avatar = new Avatar();
private final ShapeCollection rootShapeCollection = new ShapeCollection();
private final Set<ViewRenderListener> viewRenderListeners = ConcurrentHashMap.newKeySet();
+ public Color backgroundColor = Color.BLACK;
/**
* Last time this view was updated.
*/
private Timer canvasUpdateTimer;
private ViewUpdateTimerTask canvasUpdateTimerTask;
private RenderingContext renderingContext = null;
+
/**
- * Currently target FPS for this view. It can be changed at runtime. Also when nothing
- * changes in the view, then frames are not really repainted.
+ * Currently target frames per second rate for this view. Target FPS can be changed at runtime.
+ * 3D engine tries to be smart and only repaints screen when there are visible changes.
*/
- private int targetFPS = 30;
+ private int targetFPS = 60;
+
/**
* Set to true if it is known than next frame reeds to be painted. Flag is cleared
* immediately after frame got updated.
// abort rendering if window size is invalid
if ((getWidth() > 0) && (getHeight() > 0) && renderFrame) {
renderFrame();
- viewRepaintNeeded = renderingContext.handleDetectedComponentMouseEvents();
+ viewRepaintNeeded = renderingContext.handlePossibleComponentMouseEvent();
}
}
int panelWidth = getWidth();
int panelHeight = getHeight();
- if (panelWidth <= 0 || panelHeight <=0){
+ if (panelWidth <= 0 || panelHeight <= 0) {
renderingContext = null;
return;
}