# [name]

Questa classe di attributi del buffer non costruisce un VBO. Invece, utilizza qualsiasi VBO che gli viene passato nel costruttore e può essere successivamente alterato tramite la proprietà `buffer`.
È necessario passare parametri aggiuntivi insieme a VBO. I quali sono: il contesto GL, il tipo di dati GL, il numero di componenti per vertice, il numero di byte per componente, e il numero di vertici.
Il caso d'uso più comune per questa classe è quando un qualche tipo di calcolo GPGPU interferisce o addirittura produce i VBO in questione.

## Costruttore

### [name]( [param:WebGLBuffer buffer], [param:GLenum type], [param:Integer itemSize], [param:Integer elementSize], [param:Integer count] )

`buffer` — Deve essere un [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].
`type` — Uno dei [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types Tipi di dati WebGL].
`itemSize` — Il numero dei valori dell'array che devono essere associati con un particolare vertice. Ad esempio, se questo attributo memorizza un vettore a 3 componenti (come una posizione, una normale, un colore), allora itemSize dovrebbe essere 3.
`elementSize` — 1, 2 o 4. La dimensione corrispondente (in byte) per il parametro "type" passato.

- gl.FLOAT: 4
- gl.UNSIGNED_SHORT: 2
- gl.SHORT: 2
- gl.UNSIGNED_INT: 4
- gl.INT: 4
- gl.BYTE: 1
- gl.UNSIGNED_BYTE: 1

`count` — Il numero previsto di vertici in VBO.

## Proprietà

### [property:WebGLBuffer buffer]

L'istanza corrente di [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].

### [property:Integer count]

Il numero previsto di vertici in VBO.

### [property:Boolean isGLBufferAttribute]

Solo lettura. Sempre `true`.

### [property:Integer itemSize]

Quanti valori compongono ogni elemento (vertice).

### [property:Integer elementSize]

Memorizza la dimensione corrispondente in byte per il valore della proprietà del `type` corrente.

Vedi sopra (costruttore) per un elenco di dimensioni di type conosciute.

### [property:String name]

Un nome opzionale per questa istanza dell'attributo. Il valore predefinito è una stringa vuota.

### [property:GLenum type]

Un [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types WebGL Data Type] che descrive i contenuti VBO.

Imposta questa proprietà insieme a `elementSize`. Il modo consigliato è di usare il metodo `setType`.

## Metodi

### [method:this setBuffer]( buffer )

Imposta la proprietà `buffer`.

### [method:this setType]( type, elementSize )

Imposta entrambe le proprietà `type` e `elementSize`.

### [method:this setItemSize]( itemSize )

Imposta la proprietà `itemSize`.

### [method:this setCount]( count )

Imposta la proprietà `count`.

### [property:Integer version]

Un numero di versione, incrementato ogni volta che la proprietà needsUpdate è impostata a true.

### [property:Boolean needsUpdate]

Il valore predefinito è `false`. Impostando questo metodo a true incrementa la [page:GLBufferAttribute.version versione].

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]