1 /*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6 package nl.tudelft.goal.ut2004.visualizer.timeline.map;
7
8 import javax.media.opengl.GL;
9 import javax.media.opengl.GLEventListener;
10
11
12
13 /**
14 * This is a subrenderer, it's job is to render some stuff.
15 * Basically I had few {@link GLEventListener}s and there were troubles
16 * with using them directly (order of rendering), so I have now only these
17 * subrenderes that are part of {@link CollectionRenderer}.
18 *
19 * @param <T> Class of object this renderer draws.
20 * @author Honza
21 */
22 public interface ISubGLRenderer<T> {
23 /**
24 * Here should be done preparation for rendering (e.g. generation of display
25 * lists from massive data)
26 * @param gl
27 */
28 public void prepare(GL gl);
29
30 /**
31 * Display stuff you want to. Assume that settings have already been set in
32 * {@link CollectionRenderer}
33 * @param gl
34 */
35 public void render(GL gl);
36
37 /**
38 * Return object this renderer draws.
39 *
40 * Because objects we want to draw can change rapidly, we have to remove and
41 * add subrenderers based on passed objects (renderer R draws object A, now
42 * we don't want to draw A anymore, we have to go through subrenderers to find
43 * which ones draws it).
44 * @return Object this renderer draws.
45 */
46 public T getObject();
47
48
49 public int getGLName();
50
51 /**
52 * Call renderer to clean up any resources it used.
53 */
54 public void destroy();
55
56 }