Options
All
  • Public
  • Public/Protected
  • All
Menu

Class TextureAtlas

A texture atlas is a collection of many smaller textures in one big image. This class is used to access textures from such an atlas.

Using a texture atlas for your textures solves two problems:

  • Whenever you switch between textures, the batching of image objects is disrupted.
  • Any Stage3D texture has to have side lengths that are powers of two. Starling hides this limitation from you, but at the cost of additional graphics memory.

By using a texture atlas, you avoid both texture switches and the power-of-two limitation. All textures are within one big "super-texture", and Starling takes care that the correct part of this texture is displayed.

There are several ways to create a texture atlas. One is to use the atlas generator script that is bundled with Starling's sibling, the Sparrow framework. It was only tested in Mac OS X, though. A great multi-platform alternative is the commercial tool Texture Packer.

Whatever tool you use, Starling expects the following file format:

<TextureAtlas imagePath='atlas.png'> <SubTexture name='texture_1' x='0' y='0' width='50' height='50'/> <SubTexture name='texture_2' x='50' y='0' width='20' height='30'/> </TextureAtlas>

Texture Frame

If your images have transparent areas at their edges, you can make use of the frame property of the Texture class. Trim the texture by removing the transparent edges and specify the original texture size like this:

<SubTexture name='trimmed' x='0' y='0' height='10' width='10' frameX='-10' frameY='-10' frameWidth='30' frameHeight='30'/>

Texture Rotation

Some atlas generators can optionally rotate individual textures to optimize the texture distribution. This is supported via the boolean attribute "rotated". If it is set to true for a certain subtexture, this means that the texture on the atlas has been rotated by 90 degrees, clockwise. Starling will undo that rotation by rotating it counter-clockwise.

In this case, the positional coordinates (x, y, width, height) are expected to point at the subtexture as it is present on the atlas (in its rotated form), while the "frame" properties must describe the texture in its upright form.

Hierarchy

  • TextureAtlas

Index

Constructors

constructor

Properties

texture

texture: Texture

The base texture that makes up the atlas.

Methods

addRegion

  • addRegion(name: string, region: Rectangle, frame?: Rectangle, rotated?: boolean): void
  • Adds a named region for a SubTexture (described by rectangle with coordinates in points) with an optional frame.

    Parameters

    • name: string
    • region: Rectangle
    • Optional frame: Rectangle
    • Optional rotated: boolean

    Returns void

dispose

  • dispose(): void

getFrame

  • getFrame(name: string): Rectangle

getNames

  • getNames(prefix?: string, result?: Vector<string>): Vector<string>
  • Returns all texture names that start with a certain string, sorted alphabetically.

    Parameters

    • Optional prefix: string
    • Optional result: Vector<string>

    Returns Vector<string>

getRegion

  • getRegion(name: string): Rectangle
  • Returns the region rectangle associated with a specific name, or null if no region with that name has been registered.

    Parameters

    • name: string

    Returns Rectangle

getRotation

  • getRotation(name: string): boolean
  • If true, the specified region in the atlas is rotated by 90 degrees (clockwise). The SubTexture is thus rotated counter-clockwise to cancel out that transformation.

    Parameters

    • name: string

    Returns boolean

getTexture

  • getTexture(name: string): Texture

getTextures

  • getTextures(prefix?: string, result?: Vector<Texture>): Vector<Texture>

Protected get_texture

removeRegion

  • removeRegion(name: string): void

Generated using TypeDoc