View Javadoc

1   package com.insanityengine.ghia.renderer;
2   
3   import java.awt.*;
4   import java.awt.image.*;
5   import java.awt.event.*;
6   import java.applet.*;
7   
8   import com.insanityengine.ghia.m3.*;
9   import com.insanityengine.ghia.libograf.*;
10  import com.insanityengine.ghia.pixels.*;
11  
12  /***
13   *
14   * <P>
15   * This renderer uses the BufferBase for the bulk of it's functionality
16   * but implements the tricky drawPolygon method
17   * </P>
18   *
19   * @author BrianHammond
20   *
21   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/renderer/RendererBase.java,v 1.1 2005/03/25 03:07:54 brian Exp $
22   *
23   */
24  public abstract class RendererBase extends BufferBase implements RendererInterface {
25  
26  	/***
27  	 *
28  	 * Render the next scene
29  	 * 
30  	 * @param context to use to render
31  	 *
32  	 */
33  	public void render( LiboGraf context ) {
34  		invokeDrawers( context );
35  		copyTo( context.getGraphics() );
36  	}
37  
38  	//////////////////////////////////////////////////
39  	// DrawerRegistryInterface
40  	
41  	/***
42  	 *
43  	 * Some renderers are big babys about when it is ok to mess with their goodies.
44  	 * Hence this cheesy add/remove Drawer mess
45  	 *
46  	 * @param drawer to call per frame
47  	 *
48  	 */
49  	public void addDrawer( DrawingInterface drawer ) {
50  		registry.addDrawer( drawer );
51  	}
52  
53  	/***
54  	 *
55  	 * Some renderers are big babys about when it is ok to mess with their goodies.
56  	 * Hence this cheesy add/remove Drawer mess
57  	 *
58  	 * @param drawer to call per frame
59  	 *
60  	 */
61  	public void removeDrawer( DrawingInterface drawer ) {
62  		registry.removeDrawer( drawer );
63  	}
64  
65  	/***
66  	 *
67  	 * Invoke any registered DrawingInterfaces
68  	 *
69  	 */
70  	public void invokeDrawers( LiboGraf context ) {
71  		registry.invokeDrawers( context );
72  	}
73  
74  	//////////////////////////////////
75  
76  	private DrawerRegistry registry = new DrawerRegistry();
77  
78  };
79  
80  /***
81   *
82   * $Log: RendererBase.java,v $
83   * Revision 1.1  2005/03/25 03:07:54  brian
84   * centralize more cruft
85   *
86   *
87   */