# [name]

لا يقوم هذا الفئة السمة المخزنة بإنشاء VBO. بدلاً من ذلك، يستخدم أي VBO يتم تمريره في المُنشئ ويمكن تغييره لاحقًا عبر خاصية `buffer`.
من الضروري تمرير معلمات إضافية جنبًا إلى جنب مع VBO. هذه هي: GL context، نوع البيانات GL، عدد المكونات لكل رأس، عدد البايتات لكل مكون، وعدد الرؤوس.
أكثر حالات الاستخدام شيوعًا لهذه الفئة هي عندما يتداخل نوع من حسابات GPGPU أو حتى ينتج VBOs المعنية.

## المنشئ (Constructor)

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

`buffer` — يجب أن يكون [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer].
`type` — واحد من [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types أنواع بيانات WebGL].
`itemSize` — عدد قيم المصفوفة التي يجب ربطها برأس معين. على سبيل المثال، إذا كانت هذه السمة تخزن متجهًا ثلاثي الأبعاد (مثل الموضع، الطبيعي، أو اللون)، فيجب أن يكون itemSize هو 3.
`elementSize` — 1، 2 أو 4. الحجم المقابل (بالبايت) للمعلمة "type" المعطاة.

- 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` — عدد الرؤوس المتوقع في VBO.

## الخصائص (Properties)

### [property:WebGLBuffer buffer]

نسخة [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer] الحالية.

### [property:Integer count]

عدد الرؤوس المتوقع في VBO.

### [property:Boolean isGLBufferAttribute]

للقراءة فقط. دائمًا `true`.

### [property:Integer itemSize]

كم عدد القيم التي تشكل كل عنصر (رأس).

### [property:Integer elementSize]

يخزن الحجم المقابل بالبايت لقيمة خاصية `type` الحالية.

انظر أعلاه (المُنشئ) لقائمة بأحجام الأنواع المعروفة.

### [property:String name]

اسم اختياري لهذه الحالة من السمة. الافتراضي هو سلسلة فارغة.

### [property:GLenum type]

[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants#Data_types نوع بيانات WebGL] يصف محتوى VBO الأساسي.

قم بتعيين هذه الخاصية معًا مع `elementSize`. الطريقة المستحسنة هي باستخدام طريقة `setType`.

## الوظائف (Methods)

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

تضبط خاصية `buffer`.

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

تضبط كلاً من خصائص `type` و `elementSize`.

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

تضبط خاصية `itemSize`.

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

تضبط خاصية `count`.

### [property:Integer version]

رقم إصدار، يزاد كل مرة يتم فيها تعيين خاصية needsUpdate على true.

### [property:Boolean needsUpdate]

الافتراضي هو `false`. تعيين هذا إلى true يزاد [page:GLBufferAttribute.version version].

## المصدر (Source)

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