View Javadoc

1   package com.insanityengine.ghia.renderer;
2   
3   import com.insanityengine.ghia.m3.*;
4   import com.insanityengine.ghia.pixels.*;
5   import com.insanityengine.ghia.libograf.*;
6   
7   /***
8    *
9    * <P>
10   * Attempts to define an interface for rendering polygons
11   * </P>
12   *
13   * @author BrianHammond
14   *
15   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/renderer/RendererInterface.java,v 1.5 2005/03/19 17:50:02 brian Exp $
16   *
17   */
18  
19  public interface RendererInterface extends DrawerRegistryInterface { 
20  
21  	/***
22  	 *
23  	 * Invoke any drawing routines etc
24  	 *
25  	 * @param context to use to render
26  	 *
27  	 */
28  	public void render( LiboGraf context );
29  
30  	/***
31  	 *
32  	 * Initialize the RendererInterface implementation. These 
33  	 * arguments should be sufficient for all implementations (!!!), 
34  	 * but may need to be made more extensible (RendererContextInterface?)
35  	 *
36  	 * @param width of the display
37  	 * @param height of the display
38  	 * @param component to use to create offscreen buffer
39  	 *
40  	 */
41  	public void init( int width, int height, java.awt.Component component );
42  
43  	/***
44  	 *
45  	 * Draw a polygon
46  	 *
47  	 * @param count of points
48  	 * @param ptz the array of Pt3 to draw
49  	 *
50  	 */
51  	public void drawPolygon( int count, Pt3[] ptz );
52  	
53  	/***
54  	 *
55  	 * Get the clear color
56  	 *
57  	 * @return the clear color
58  	 *
59  	 */
60  	public int getClearColor();
61  
62  	/***
63  	 *
64  	 * Set the clear color
65  	 *
66  	 * @return color to clear with
67  	 *
68  	 */
69  	public void setClearColor( int color );
70  
71  	/***
72  	 *
73  	 * Set depth testing policy
74  	 *
75  	 * @param testDepth false disables test
76  	 *
77  	 */
78  	public void setDepthTesting( boolean testDepth );
79  
80  	/***
81  	 *
82  	 * Clear the depth buffer
83  	 *
84  	 */
85  	public void clearDepthBuffer();
86  
87  	/***
88  	 *
89  	 * Clear the pixel/color buffer
90  	 *
91  	 */
92  	public void clearColorBuffer();
93  
94  	/***
95  	 *
96  	 * Set the shading method
97  	 *
98  	 * @param method may be listed in M3_Constants
99  	 *
100 	 */
101 	public void setShadingMethod( int method );
102 
103 	/***
104 	 *
105 	 * Set the texture function
106 	 *
107 	 * @param function may be listed in M3_Constants
108 	 *
109 	 */
110 	public void setTextureFunction( int function );
111 
112 	/***
113 	 *
114 	 * Set the current normal 
115 	 *
116 	 * @param point to use as the current normal
117 	 *
118 	 */
119 	public void setNormal( Pt3 point );
120 	
121 	/***
122 	 *
123 	 * Set the current ImageSkin
124 	 *
125 	 * @param imageskin to use
126 	 *
127 	 */
128 	public void setSkin( ImageSkin skin );
129 
130 	/*********************************************************************/
131 
132 	/***
133 	 *
134 	 * Set the image observer
135 	 *
136 	 * @param observer to use
137 	 *
138 	 */
139 	public void setObserver( java.awt.image.ImageObserver observer );
140 
141 	/***
142 	 *
143 	 * Determines the width of the buffer. 
144 	 *
145 	 * @return the width of this buffer
146 	 *
147 	 */
148 	public int getWidth();
149 
150 	/***
151 	 *
152 	 * Determines the height of the buffer. 
153 	 *
154 	 * @return the height of this buffer
155 	 *
156 	 */
157 	public int getHeight();
158 
159 	/***
160 	 *
161 	 * Clear the buffer
162 	 *
163 	 */
164 	public void clear();
165 
166 };
167 
168 /***
169  *
170  * $Log: RendererInterface.java,v $
171  * Revision 1.5  2005/03/19 17:50:02  brian
172  * repackaging
173  *
174  * Revision 1.4  2004/09/11 14:37:21  brian
175  * added RendererConsumer and stuff
176  *
177  * Revision 1.3  2004/09/05 03:41:31  brian
178  * refactored to have the render method of the renderers invoke the drawingIfz
179  *
180  * Revision 1.2  2004/09/02 23:32:26  brian
181  * dont make the RendererInterface extend PixelBufferInterface
182  *
183  * Revision 1.1  2004/09/02 13:17:16  brian
184  * the big reorg
185  *
186  * Revision 1.4  2004/09/01 01:10:42  brian
187  * fix class level javadoc placement
188  *
189  * Revision 1.3  2004/09/01 00:11:06  brian
190  * author, log and header stuff
191  *
192  *
193  */