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   * The "default" Renderer and some factory style methods
11   * </P>
12   *
13   * @author BrianHammond
14   *
15   * $Header: /usr/local/cvsroot/ghia/src/java/com/insanityengine/ghia/renderer/Renderer.java,v 1.4 2005/03/19 17:50:02 brian Exp $
16   *
17   */
18  
19  public class Renderer extends Memagery {
20  
21  	/***
22  	 * 
23  	 * Try to create a renderer given the name of the class 
24  	 * It will be initialized with the values passed into the init
25  	 * method of this LiboGraf instance
26  	 *
27  	 * @param nameOfRenderer to try to use
28  	 *
29  	 * @return instance of the renderer on success, null on fail
30  	 *
31  	 */
32  	public final static RendererInterface getRendererByName( String nameOfRenderer ) {
33  
34  		String cause = "uh...";
35  		RendererInterface yourRenderer = null;
36  
37  		Class theClass = com.insanityengine.ghia.util.DocReflect.forName( nameOfRenderer );
38  		if ( null == theClass ) {
39  			cause = "class for name failed for " + nameOfRenderer;
40  		} else {
41  
42  			String interfaceName = "com.insanityengine.ghia.renderer.RendererInterface";
43  			Class[] interfaces = theClass.getInterfaces();
44  			cause = nameOfRenderer + " does not implement " + interfaceName;
45  
46  			try {
47  				yourRenderer = ( RendererInterface ) theClass.newInstance();
48  			} catch ( Exception e ) {
49  				e.printStackTrace();
50  				cause = "didn't you see the stacktrace?";
51  			}
52  		}
53  
54  		if ( null == yourRenderer ) System.err.println( "Renderer.getRendererByName failed: " + cause );
55  		else System.err.println( "Renderer.getRendererByName succeeded: " + nameOfRenderer );
56  
57  		return yourRenderer;
58  	}
59  
60  	/***
61  	 *
62  	 * Get an instance of the default RenderInterface implementation
63  	 *
64  	 * @return an instance of the default RenderInterface implementation
65  	 *
66  	 */
67  	public final static RendererInterface getDefaultRenderer() {
68  		return new Renderer();
69  	}
70  };
71  
72  /***
73   *
74   * $Log: Renderer.java,v $
75   * Revision 1.4  2005/03/19 17:50:02  brian
76   * repackaging
77   *
78   * Revision 1.3  2004/09/11 16:22:26  brian
79   * added getDefaultRenderer static method
80   *
81   * Revision 1.2  2004/09/11 14:57:29  brian
82   * updated status message
83   *
84   * Revision 1.1  2004/09/11 14:52:23  brian
85   * 'default renderer' mechanism and class for name static method
86   *
87   *
88   */