Class: AttributeRedirect

.brend~AttributeRedirect

This redirect defines an attribute of a display-object's geometry. The attribute data is expected to be stored in a PIXI.ViewableBuffer, in an array, or (if just one element) as the property itself.

new AttributeRedirect (options)

Name Type Description
options object
Name Type Default Description
source string | function

redirect source

attrib string

shader attribute variable

type string 'float32' optional

the type of data stored in the source

size number | '%notarray%' 0 optional

size of the source array ('%notarray' if not an array & just one element)

glType PIXI.TYPES PIXI.TYPES.FLOAT optional

data format to be uploaded in

glSize number

number of elements to be uploaded as (size of source and upload must match)

normalize boolean false optional

whether to normalize the data before uploading

Example
// This attribute redirect calculates the tint used on top of a texture. Since the
// tintMode can change anytime, it is better to use a derived source (function).
//
// Furthermore, the color is uploaded as four bytes (`attribute vec4 aTint`) while the
// source returns an integer. This is done by splitting the 32-bit integer into four
// 8-bit bytes.
new PIXI.brend.AttributeRedirect({
    source: (tgt: ExampleDisplay) => (tgt.alpha < 1.0 && tgt.tintMode === PREMULTIPLY)
         ? premultiplyTint(tgt.rgb, tgt.alpha)
         : tgt.rgb + (tgt.alpha << 24);
    attrib: 'aTint',
    type: 'int32',
    size: '%notarray%', // optional/default
    glType: PIXI.TYPES.UNSIGNED_BYTE,
    glSize: 4,
    normalize: true // We are using [0, 255] range for RGBA here. Must normalize to [0, 1].
});

Extends

Members

glSize readonly

Size of attribute in terms of glType.

Note that glSize * glType <= size * type

glslIdentifer string inherited overrides

The shader variable that references the resource, e.g. attribute or uniform name.

glType PIXI.TYPES

Type of attribute, when uploading.

Normally, you would use the corresponding type for the view on source. However, to speed up uploads you can aggregate attribute values in larger data types. For example, an RGBA vec4 (byte-sized channels) can be represented as one Uint32, while having a glType of UNSIGNED_BYTE.

normalize boolean readonly

Whether to normalize the attribute values.

properSize number

This is equal to size or 1 if size is %notarray%.

size number | '%notarray%'

Number of elements to extract out of source with the given view type, for one vertex.

If source isn't an array (only one element), then you can set this to '%notarray%'.

source string | function inherited overrides

The property on the display-object that holds the resource.

Instead of a property, you can provide a callback that generates the resource on invokation.

type string

The type of data stored in the source buffer. This can be any of: int8, uint8, int16, uint16, int32, uint32, or (by default) float32.

Default Value:
  • 'float32'
See: