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.
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| 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 tileGets the height of the tiles that the generator batches output into. |
| public int | Returns: the width of the standard alpha tileGets 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 tileGets the typical alpha value that will characterize the current tile. |
| public void |
| dispose | back to summary |
|---|---|
| public void dispose() Disposes this tile generator. No further calls will be made on this instance. | |
| getAlpha | back 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. | |
| getTileHeight | back to summary |
|---|---|
| public int getTileHeight() Gets the height of the tiles that the generator batches output into.
| |
| getTileWidth | back to summary |
|---|---|
| public int getTileWidth() Gets the width of the tiles that the generator batches output into.
| |
| getTypicalAlpha | back 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.
| |
| nextTile | back 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. | |