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