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