APIdia Launch Partner
Top Description Methods
sun.java2d.pipe

public Interface AATileGenerator

Known Direct Implementers
sun.java2d.marlin.MarlinTileGenerator

The API for an object that generates alpha coverage tiles for a given path. The RenderingEngine will be consulted as a factory to return one of these objects for a given Shape and a given set of rendering attributes. This object will iterate through the bounds of the rendering primitive and return tiles of a constant size as specified by the getTileWidth() and getTileHeight() parameters. The iteration order of the tiles will be as specified by the pseudo-code:
    int bbox[] = {left, top, right, bottom};
    AATileGenerator aatg = renderengine.getAATileGenerator(..., bbox);
    int tw = aatg.getTileWidth();
    int th = aatg.getTileHeight();
    byte tile[] = new byte[tw * th];
    for (y = top; y < bottom; y += th) {
        for (x = left; x < right; x += tw) {
            int a = aatg.getTypicalAlpha();
            int w = Math.min(tw, right-x);
            int h = Math.min(th, bottom-y);
            if (a == 0x00) {
                // can skip this tile...
                aatg.nextTile();
            } else if (a == 0xff) {
                // can treat this tile like a fillRect
                aatg.nextTile();
                doFill(x, y, w, h);
            } else {
                aatg.getAlpha(tile, 0, tw);
                handleAlpha(tile, x, y, w, h);
            }
        }
    }
    aatg.dispose();
The bounding box for the iteration will be returned by the RenderingEngine via an argument to the getAATileGenerator() method.

Method Summary

Modifier and TypeMethod and Description
public void
dispose()

Disposes this tile generator.

public void
getAlpha(byte[] tile, int offset, int rowstride)

Gets the alpha coverage values for the current tile.

public int

Returns:

the height of the standard alpha tile
getTileHeight
()

Gets the height of the tiles that the generator batches output into.

public int

Returns:

the width of the standard alpha tile
getTileWidth
()

Gets the width of the tiles that the generator batches output into.

public int

Returns:

0x00 for no coverage, 0xff for total coverage, or any other value for partial coverage of the tile
getTypicalAlpha
()

Gets the typical alpha value that will characterize the current tile.

public void
nextTile()

Skips the current tile and moves on to the next tile.

Method Detail

disposeback to summary
public void dispose()

Disposes this tile generator. No further calls will be made on this instance.

getAlphaback to summary
public void getAlpha(byte[] tile, int offset, int rowstride)

Gets the alpha coverage values for the current tile. Either this method, or the nextTile() method should be called once per tile, but not both.

getTileHeightback to summary
public int getTileHeight()

Gets the height of the tiles that the generator batches output into.

Returns:int

the height of the standard alpha tile

getTileWidthback to summary
public int getTileWidth()

Gets the width of the tiles that the generator batches output into.

Returns:int

the width of the standard alpha tile

getTypicalAlphaback to summary
public int getTypicalAlpha()

Gets the typical alpha value that will characterize the current tile. The answer may be 0x00 to indicate that the current tile has no coverage in any of its pixels, or it may be 0xff to indicate that the current tile is completely covered by the path, or any other value to indicate non-trivial coverage cases.

Returns:int

0x00 for no coverage, 0xff for total coverage, or any other value for partial coverage of the tile

nextTileback to summary
public void nextTile()

Skips the current tile and moves on to the next tile. Either this method, or the getAlpha() method should be called once per tile, but not both.