## javax.media.opengl
Interface GLEventListener

All Superinterfaces:
  EventListener

    public interface GLEventListener

extends EventListener

Declares events which client code can use to manage OpenGL rendering into a `GLAutoDrawable`. At the time any of these methods is called, the drawable has made its associated OpenGL context current, so it is valid to make OpenGL calls.

Method Summary
`void` `display(GLAutoDrawable drawable)` Called by the drawable to initiate OpenGL rendering by the client.
`void` `displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged)` Called by the drawable when the display mode or the display device associated with the GLAutoDrawable has changed.
`void` `init(GLAutoDrawable drawable)` Called by the drawable immediately after the OpenGL context is initialized.
`void` `reshape(GLAutoDrawable drawable, int x, int y, int width, int height)` Called by the drawable during the first repaint after the component has been resized.

Method Detail

### init

    void init(GLAutoDrawable drawable)

  Called by the drawable immediately after the OpenGL context is initialized. Can be used to perform one-time OpenGL initialization such as setup of lights and display lists. Note that this method may be called more than once if the underlying OpenGL context for the GLAutoDrawable is destroyed and recreated, for example if a GLCanvas is removed from the widget hierarchy and later added again.

### display

    void display(GLAutoDrawable drawable)

  Called by the drawable to initiate OpenGL rendering by the client. After all GLEventListeners have been notified of a display event, the drawable will swap its buffers if `setAutoSwapBufferMode` is enabled.

### reshape

    void reshape(GLAutoDrawable drawable,
                 int x,
                 int y,
                 int width,
                 int height)

  Called by the drawable during the first repaint after the component has been resized. The client can update the viewport and view volume of the window appropriately, for example by a call to `GL.glViewport(int, int, int, int)`; note that for convenience the component has already called `glViewport(x, y, width, height)` when this method is called, so the client may not have to do anything in this method.

### displayChanged

    void displayChanged(GLAutoDrawable drawable,
                        boolean modeChanged,
                        boolean deviceChanged)

  Called by the drawable when the display mode or the display device associated with the GLAutoDrawable has changed. The two boolean parameters indicate the types of change(s) that have occurred.

  An example of a display mode change is when the bit depth changes (e.g., from 32-bit to 16-bit color) on monitor upon which the GLAutoDrawable is currently being displayed.

  An example of a display device change is when the user drags the window containing the GLAutoDrawable from one monitor to another in a multiple-monitor setup.

  The reason that this function handles both types of changes (instead of handling mode and device changes in separate methods) is so that applications have the opportunity to respond to display changes in the most efficient manner. For example, the application may need make fewer adjustments to compensate for a device change if it knows that the mode on the new device is identical the previous mode.

  NOTE: Implementations are not required to implement this method. The Reference Implementation DOES NOT IMPLEMENT this method.

Copyright 2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.