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
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 */