Drawable

Drawable

new Drawable(idnon-null)

To Do:
  • double-buffer all rendering state (position, skin, effects, etc.)

An object which can be drawn by the renderer.

Parameters:
Name Type Description
id int

This Drawable's unique ID.

Members

_convexHullPoints

To Do:
  • move convex hull functionality, maybe bounds functionality overall, to Skin classes

(non-null) _id :int

Type:
  • int

(private) _uniforms :Object.<string, *>

The uniforms to be used by the vertex and pixel shaders. Some of these are used by other parts of the renderer as well.

Type:
  • Object.<string, *>

id

scale

skin

skin

Methods

(static) color3bToID(r, g, b) → {int}

Calculate the ID number represented by the given color. If all components of the color are zero, the result will be RenderConstants.ID_NONE; otherwise the result will be a valid ID.

Parameters:
Name Type Description
r int

The red value of the color, in the range [0,255].

g int

The green value of the color, in the range [0,255].

b int

The blue value of the color, in the range [0,255].

Returns:

The ID represented by that color.

Type
int

(static) color4fFromID(id) → {Array.<number>}

Calculate a color to represent the given ID number. At least one component of the resulting color will be non-zero if the ID is not RenderConstants.ID_NONE.

Parameters:
Name Type Description
id int

The ID to convert.

Returns:

An array of [r,g,b,a], each component in the range [0,1].

Type
Array.<number>

(private) _calculateTransform()

Calculate the transform to use when rendering this Drawable.

(private) _skinWasAltered()

Respond to an internal change in the current Skin.

dispose()

Dispose of this Drawable. Do not use it after calling this method.

getAABB() → (non-null) {Rectangle}

Get the rough axis-aligned bounding box for the Drawable. Calculated by transforming the skin's bounds. Note that this is less precise than the box returned by getBounds, which is tightly snapped to account for a Drawable's transparent regions. getAABB returns a much less accurate bounding box, but will be much faster to calculate so may be desired for quick checks/optimizations.

Returns:

Rough axis-aligned bounding box for Drawable.

Type
Rectangle

getBounds() → (non-null) {Rectangle}

Get the precise bounds for a Drawable. This function applies the transform matrix to the known convex hull, and then finds the minimum box along the axes. Before calling this, ensure the renderer has updated convex hull points.

Returns:

Bounds for a tight box around the Drawable.

Type
Rectangle

getEnabledEffects() → {int}

Returns:

A bitmask identifying which effects are currently in use.

Type
int

getFastBounds() → (non-null) {Rectangle}

Return the best Drawable bounds possible without performing graphics queries. I.e., returns the tight bounding box when the convex hull points are already known, but otherwise return the rough AABB of the Drawable.

Returns:

Bounds for the Drawable.

Type
Rectangle

getUniforms() → {object.<string, *>}

Returns:

the shader uniforms to be used when rendering this Drawable.

Type
object.<string, *>

getVisible() → {boolean}

Returns:

whether this Drawable is visible.

Type
boolean

needsConvexHullPoints() → {boolean}

Whether the Drawable needs convex hull points provided by the renderer.

Returns:

True when no convex hull known, or it's dirty.

Type
boolean

setConvexHullDirty()

Set the convex hull to be dirty. Do this whenever the Drawable's shape has possibly changed.

setConvexHullPoints(points)

Set the convex hull points for the Drawable.

Parameters:
Name Type Description
points Array.<Array.<number>>

Convex hull points, as [[x, y], ...]

setTransformDirty()

Mark this Drawable's transform as dirty. It will be recalculated next time it's needed.

updateProperties(properties)

Update the position, direction, scale, or effect properties of this Drawable.

Parameters:
Name Type Description
properties object.<string, *>

The new property values to set.