Fixed git clone URL
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / gui / ViewRenderListener.java
1 /*
2  * Sixth 3D engine. Author: Svjatoslav Agejenko.
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5 package eu.svjatoslav.sixth.e3d.gui;
6
7 public interface ViewRenderListener {
8
9     /**
10      * Notifies that it is about time (to keep constant framerate) to render next frame and
11      * allows listener to do any related processing that it needs to.
12      * <p>
13      * Each {@link ViewRenderListener} will be notified exactly once before every frame is rendered.
14      * <p>
15      * {@link ViewRenderListener} can determine if frame repaint is actually
16      * needed from its perspective. Frame will be rendered only if at least one listener says yes.
17      * This mechanism allows to save computing power and energy by skipping frame rendering when possible.
18      *
19      * @return <code>true</code> if underlying view shall be re-rendered. If at least one of the view update listeners
20      * returns <code>true</code>, view is re-rendered.
21      */
22     boolean beforeRender(ViewPanel viewPanel, final int millisecondsSinceLastFrame);
23 }