package com.jogamp.opengl.util; import javax.media.opengl.GL2ES3; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; /** * See {@link TileRenderer}. *
* Enhanced for {@link GLAutoDrawable} usage. *
*/ public class TileRenderer2 extends TileRenderer { private GLAutoDrawable glad; private GLEventListener[] listeners; private boolean[] listenersInit; /** * Creates a new TileRenderer object */ public TileRenderer2() { glad = null; listeners = null; listenersInit = null; } /** * ** Sets the size of the tiles to use in rendering. The actual * effective size of the tile depends on the border size, ie ( * width - 2*border ) * ( height - 2 * border ) *
* @param glad * @param border * The width of the borders on each tile. This is needed * to avoid artifacts when rendering lines or points with * thickness > 1. * @throws IllegalStateException if an {@link GLAutoDrawable} is already attached */ public void attachAutoDrawable(GLAutoDrawable glad, int border, PMVMatrixCallback pmvMatrixCB) throws IllegalStateException { if( null != this.glad ) { throw new IllegalStateException("GLAutoDrawable already attached"); } this.glad = glad; setTileSize(glad.getWidth(), glad.getHeight(), border); setPMVMatrixCallback(pmvMatrixCB); final int aSz = glad.getGLEventListenerCount(); listeners = new GLEventListener[aSz]; listenersInit = new boolean[aSz]; for(int i=0; i