001 package com.croftsoft.core.media.jogl;
002
003 import javax.media.opengl.GL;
004 import javax.media.opengl.GLAutoDrawable;
005 import javax.media.opengl.GLEventListener;
006
007 import com.croftsoft.core.lang.NullException;
008 import com.croftsoft.core.media.jogl.JoglRenderer;
009
010 /***********************************************************************
011 * Adapts interface JoglRenderer to GLEventListener.
012 *
013 * @version
014 * $Id: JoglAdapter.java,v 1.4 2008/09/28 21:49:39 croft Exp $
015 * @since
016 * 2005-08-18
017 * @author
018 * <a href="http://www.CroftSoft.com/">David Wallace Croft</a>
019 ***********************************************************************/
020
021 public final class JoglAdapter
022 implements GLEventListener
023 ////////////////////////////////////////////////////////////////////////
024 ////////////////////////////////////////////////////////////////////////
025 {
026
027 private final JoglRenderer joglRenderer;
028
029 ////////////////////////////////////////////////////////////////////////
030 // constructor methods
031 ////////////////////////////////////////////////////////////////////////
032
033 /***********************************************************************
034 * Main constructor.
035 ***********************************************************************/
036 public JoglAdapter ( final JoglRenderer joglRenderer )
037 ////////////////////////////////////////////////////////////////////////
038 {
039 NullException.check ( this.joglRenderer = joglRenderer );
040 }
041
042 ////////////////////////////////////////////////////////////////////////
043 // interface GLEventListener methods
044 ////////////////////////////////////////////////////////////////////////
045
046 public void init ( final GLAutoDrawable glAutoDrawable )
047 ////////////////////////////////////////////////////////////////////////
048 {
049 final GL gl = glAutoDrawable.getGL ( );
050
051 joglRenderer.init ( gl );
052 }
053
054 public void reshape (
055 final GLAutoDrawable glAutoDrawable,
056 final int x,
057 final int y,
058 final int width,
059 final int height )
060 ////////////////////////////////////////////////////////////////////////
061 {
062 final GL gl = glAutoDrawable.getGL ( );
063
064 joglRenderer.setBounds ( gl, x, y, width, height );
065 }
066
067 public void displayChanged (
068 final GLAutoDrawable glAutoDrawable,
069 final boolean modeChanged,
070 final boolean deviceChanged )
071 ////////////////////////////////////////////////////////////////////////
072 {
073 // ignore
074 }
075
076 public void display ( final GLAutoDrawable glAutoDrawable )
077 ////////////////////////////////////////////////////////////////////////
078 {
079 final GL gl = glAutoDrawable.getGL ( );
080
081 joglRenderer.render ( gl );
082 }
083
084 ////////////////////////////////////////////////////////////////////////
085 ////////////////////////////////////////////////////////////////////////
086 }