pixmaps into one or more pages to generate an atlas of pixmap instances. Provides means to
directly convert the pixmap atlas to a TextureAtlas. The packer supports padding and border pixel duplication,
specified during construction. The packer supports incremental inserts and updates of TextureAtlases generated with this class.
How bin packing is performed can be customized via PackStrategy.
All methods can be called from any thread unless otherwise noted.
One-off usage:
// 512x512 pixel pages, RGB565 format, 2 pixels of padding, border duplication
PixmapPacker packer = new PixmapPacker(512, 512, Format.RGB565, 2, true);
packer.pack("First Pixmap", pixmap1);
packer.pack("Second Pixmap", pixmap2);
TextureAtlas atlas = packer.generateTextureAtlas(TextureFilter.Nearest, TextureFilter.Nearest, false);
packer.dispose();
// ...
atlas.dispose();
With this usage pattern, disposing the packer will not dispose any pixmaps used by the texture atlas. The texture atlas must
also be disposed when no longer needed.
Incremental texture atlas usage:
// 512x512 pixel pages, RGB565 format, 2 pixels of padding, no border duplication
PixmapPacker packer = new PixmapPacker(512, 512, Format.RGB565, 2, false);
TextureAtlas atlas = new TextureAtlas();
// potentially on a separate thread, e.g. downloading thumbnails
packer.pack("thumbnail", thumbnail);
// on the rendering thread, every frame
packer.updateTextureAtlas(atlas, TextureFilter.Linear, TextureFilter.Linear, false);
// once the atlas is no longer needed, make sure you get the final additions. This might
// be more elaborate depending on your threading model.
packer.updateTextureAtlas(atlas, TextureFilter.Linear, TextureFilter.Linear, false);
// ...
atlas.dispose();
Pixmap-only usage:
PixmapPacker packer = new PixmapPacker(512, 512, Format.RGB565, 2, true);
packer.pack("First Pixmap", pixmap1);
packer.pack("Second Pixmap", pixmap2);
// do something interesting with the resulting pages
for (Page page : packer.getPages()) {
// ...
}
packer.dispose();
| Modifier and Type | Class and Description |
|---|---|
| public static class | |
| public static class | PixmapPacker.
Does bin packing by inserting to the right or below previously packed rectangles. |
| public static interface | PixmapPacker.
Choose the page and location for each rectangle. |
| public static class | |
| public static class | |
| public static class | PixmapPacker.
Does bin packing by inserting in rows. |
| Modifier and Type | Field and Description |
|---|---|
| pack-priv int | |
| private Color | |
| pack-priv boolean | |
| pack-priv boolean | |
| pack-priv static Pattern | |
| pack-priv PixmapPacker. | |
| pack-priv boolean | |
| pack-priv int | |
| pack-priv Pixmap. | |
| pack-priv int | |
| pack-priv final Array | |
| pack-priv int | |
| pack-priv boolean | |
| pack-priv boolean | |
| pack-priv Color |
| Access | Constructor and Description |
|---|---|
| public | PixmapPacker(int pageWidth, int pageHeight, Pixmap.
Uses |
| public | PixmapPacker(int pageWidth, int pageHeight, Pixmap.
Uses |
| public | PixmapPacker(int pageWidth, int pageHeight, Pixmap.
the number of blank pixels to insert between pixmaps. padding, boolean duplicate the border pixels of the inserted images to avoid seams when rendering with bi-linear
filtering on. duplicateBorder, boolean strip whitespace in x axis stripWhitespaceX, boolean strip whitespace in y axis stripWhitespaceY, PixmapPacker.Creates a new PixmapPacker which will insert all supplied pixmaps into one or more |
| Modifier and Type | Method and Description |
|---|---|
| public synchronized void | dispose()
Implements com. Disposes any pixmap pages which don't have a texture. |
| public synchronized TextureAtlas | generateTextureAtlas(Texture.
Generates a new |
| public boolean | |
| public boolean | |
| public int | |
| private int[] | |
| public synchronized PixmapPacker. | |
| public Pixmap. | |
| public int | |
| public synchronized int | Returns: the index of the page the image is stored in or -1the name of the image name)Returns the index of the page containing the given packed rectangle. |
| public Array | |
| public int | |
| public synchronized PixmapPacker. | |
| private int | |
| private int[] | |
| public Color | |
| public synchronized PixmapPacker. | |
| public synchronized PixmapPacker. | |
| public void | |
| public void | setPackToTexture(boolean packToTexture)
If true, when a pixmap is packed to a page that has a texture, the portion of the texture where the pixmap was packed is updated using glTexSubImage2D. |
| public void | |
| public void | |
| public void | |
| public void | |
| public void | setTransparentColor(Color color)
Sets the default |
| public void | |
| public synchronized void | updatePageTextures(Texture.
Calls |
| public synchronized void | updateTextureAtlas(TextureAtlas atlas, Texture.
Updates the |
| public synchronized void | updateTextureAtlas(TextureAtlas atlas, Texture.
Updates the |
| public synchronized void | updateTextureRegions(Array<TextureRegion> regions, Texture.
Calls |