com.sun.opengl.util.gl2
Class TileRenderer

java.lang.Object
  extended by com.sun.opengl.util.gl2.TileRenderer

public class TileRenderer
extends Object

A fairly direct port of Brian Paul's tile rendering library, found at http://www.mesa3d.org/brianp/TR.html . I've java-fied it, but the functionality is the same. Original code Copyright (C) 1997-2005 Brian Paul. Licensed under BSD-compatible terms with permission of the author. See LICENSE.txt for license information.

Author:
ryanm

Field Summary
static int TR_BOTTOM_TO_TOP
          Indicates we are traversing rows from the bottom to the top
static int TR_COLUMNS
          The number of columns of tiles
static int TR_CURRENT_COLUMN
          The current column number
static int TR_CURRENT_ROW
          The current row number
static int TR_CURRENT_TILE_HEIGHT
          The height of the current tile
static int TR_CURRENT_TILE_WIDTH
          The width of the current tile
static int TR_IMAGE_HEIGHT
          The height of the final image
static int TR_IMAGE_WIDTH
          The width of the final image
static int TR_ROW_ORDER
          The order that the rows are traversed
static int TR_ROWS
          The number of rows of tiles
static int TR_TILE_BORDER
          The width of the border around the tiles
static int TR_TILE_HEIGHT
          The height of a tile
static int TR_TILE_WIDTH
          The width of a tile
static int TR_TOP_TO_BOTTOM
          Indicates we are traversing rows from the top to the bottom
 
Constructor Summary
TileRenderer()
          Creates a new TileRenderer object
 
Method Summary
 void beginTile(GL2 gl)
          Begins rendering a tile.
 boolean endTile(GL2 gl)
          Must be called after rendering the scene
 int getParam(int param)
          Gets the parameters of this TileRenderer object
 void setImageBuffer(int format, int type, Buffer image)
          Sets the buffer in which to store the final image
 void setImageSize(int width, int height)
          Sets the desired size of the final image
 void setRowOrder(int order)
          Sets the order of row traversal
 void setTileBuffer(int format, int type, Buffer image)
          Specify a buffer the tiles to be copied to.
 void setTileSize(int width, int height, int border)
          Sets the size of the tiles to use in rendering.
 void trFrustum(double left, double right, double bottom, double top, double zNear, double zFar)
          Sets the perspective projection frustrum.
 void trOrtho(double left, double right, double bottom, double top, double zNear, double zFar)
          Sets the context to use an orthographic projection.
 void trPerspective(double fovy, double aspect, double zNear, double zFar)
          Convenient way to specify a perspective projection
 void trRasterPos3f(float x, float y, float z, GL2 gl, GLUgl2 glu)
          Tile rendering causes problems with using glRasterPos3f, so you should use this replacement instead
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TR_TILE_WIDTH

public static final int TR_TILE_WIDTH
The width of a tile

See Also:
Constant Field Values

TR_TILE_HEIGHT

public static final int TR_TILE_HEIGHT
The height of a tile

See Also:
Constant Field Values

TR_TILE_BORDER

public static final int TR_TILE_BORDER
The width of the border around the tiles

See Also:
Constant Field Values

TR_IMAGE_WIDTH

public static final int TR_IMAGE_WIDTH
The width of the final image

See Also:
Constant Field Values

TR_IMAGE_HEIGHT

public static final int TR_IMAGE_HEIGHT
The height of the final image

See Also:
Constant Field Values

TR_ROWS

public static final int TR_ROWS
The number of rows of tiles

See Also:
Constant Field Values

TR_COLUMNS

public static final int TR_COLUMNS
The number of columns of tiles

See Also:
Constant Field Values

TR_CURRENT_ROW

public static final int TR_CURRENT_ROW
The current row number

See Also:
Constant Field Values

TR_CURRENT_COLUMN

public static final int TR_CURRENT_COLUMN
The current column number

See Also:
Constant Field Values

TR_CURRENT_TILE_WIDTH

public static final int TR_CURRENT_TILE_WIDTH
The width of the current tile

See Also:
Constant Field Values

TR_CURRENT_TILE_HEIGHT

public static final int TR_CURRENT_TILE_HEIGHT
The height of the current tile

See Also:
Constant Field Values

TR_ROW_ORDER

public static final int TR_ROW_ORDER
The order that the rows are traversed

See Also:
Constant Field Values

TR_TOP_TO_BOTTOM

public static final int TR_TOP_TO_BOTTOM
Indicates we are traversing rows from the top to the bottom

See Also:
Constant Field Values

TR_BOTTOM_TO_TOP

public static final int TR_BOTTOM_TO_TOP
Indicates we are traversing rows from the bottom to the top

See Also:
Constant Field Values
Constructor Detail

TileRenderer

public TileRenderer()
Creates a new TileRenderer object

Method Detail

setTileSize

public void setTileSize(int width,
                        int height,
                        int border)
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 )

Parameters:
width - The width of the tiles. Must not be larger than the GL context
height - The height of the tiles. Must not be larger than the GL context
border - The width of the borders on each tile. This is needed to avoid artifacts when rendering lines or points with thickness > 1.

setTileBuffer

public void setTileBuffer(int format,
                          int type,
                          Buffer image)
Specify a buffer the tiles to be copied to. This is not necessary for the creation of the final image, but useful if you want to inspect each tile in turn.

Parameters:
format - Interpreted as in glReadPixels
type - Interpreted as in glReadPixels
image - The buffer itself. Must be large enough to contain a tile, minus any borders

setImageSize

public void setImageSize(int width,
                         int height)
Sets the desired size of the final image

Parameters:
width - The width of the final image
height - The height of the final image

setImageBuffer

public void setImageBuffer(int format,
                           int type,
                           Buffer image)
Sets the buffer in which to store the final image

Parameters:
format - Interpreted as in glReadPixels
type - Interpreted as in glReadPixels
image - the buffer itself, must be large enough to hold the final image

getParam

public int getParam(int param)
Gets the parameters of this TileRenderer object

Parameters:
param - The parameter that is to be retrieved
Returns:
the value of the parameter

setRowOrder

public void setRowOrder(int order)
Sets the order of row traversal

Parameters:
order - The row traversal order, must be eitherTR_TOP_TO_BOTTOM or TR_BOTTOM_TO_TOP

trOrtho

public void trOrtho(double left,
                    double right,
                    double bottom,
                    double top,
                    double zNear,
                    double zFar)
Sets the context to use an orthographic projection. Must be called before rendering the first tile

Parameters:
left - As in glOrtho
right - As in glOrtho
bottom - As in glOrtho
top - As in glOrtho
zNear - As in glOrtho
zFar - As in glOrtho

trFrustum

public void trFrustum(double left,
                      double right,
                      double bottom,
                      double top,
                      double zNear,
                      double zFar)
Sets the perspective projection frustrum. Must be called before rendering the first tile

Parameters:
left - As in glFrustrum
right - As in glFrustrum
bottom - As in glFrustrum
top - As in glFrustrum
zNear - As in glFrustrum
zFar - As in glFrustrum

trPerspective

public void trPerspective(double fovy,
                          double aspect,
                          double zNear,
                          double zFar)
Convenient way to specify a perspective projection

Parameters:
fovy - As in gluPerspective
aspect - As in gluPerspective
zNear - As in gluPerspective
zFar - As in gluPerspective

beginTile

public void beginTile(GL2 gl)
Begins rendering a tile. The projection matrix stack should be left alone after calling this

Parameters:
gl - The gl context

endTile

public boolean endTile(GL2 gl)
Must be called after rendering the scene

Parameters:
gl - the gl context
Returns:
true if there are more tiles to be rendered, false if the final image is complete

trRasterPos3f

public void trRasterPos3f(float x,
                          float y,
                          float z,
                          GL2 gl,
                          GLUgl2 glu)
Tile rendering causes problems with using glRasterPos3f, so you should use this replacement instead

Parameters:
x - As in glRasterPos3f
y - As in glRasterPos3f
z - As in glRasterPos3f
gl - The gl context
glu - A GLUgl2 object


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