--- title: WebGLRenderingContext.bufferData() slug: Web/API/WebGLRenderingContext/bufferData tags: - API - Méthode - Reference - WebGL - WebGLRenderingContext translation_of: Web/API/WebGLRenderingContext/bufferData ---
{{APIRef("WebGL")}}

La méthode WebGLRenderingContext.bufferData() de l'API WebGL initialise et crée le magasin de données de l'objet tampon.

Syntaxe

// WebGL1:
void gl.bufferData(cible, taille, utilisation);
void gl.bufferData(cible, ArrayBuffer? donneesSrc, utilisation);
void gl.bufferData(cible, ArrayBufferView donneesSrc, utilisation);

// WebGL2:
void gl.bufferData(cible, ArrayBufferView donneesSrc, utilisation, decalageSrc, longueur);

Paramètres

cible
Un {{domxref ("GLenum")}} spécifiant le point de liaison (cible). Valeurs possibles :
taille
Un {{domxref("GLsizeiptr")}} définissant la taille du magasin de données de l'objet tampon.
donneesSrc {{optional_inline}}
Un {{jsxref("ArrayBuffer")}}, {{jsxref("SharedArrayBuffer")}} ou l'un des types de tableau typés {{domxref("ArrayBufferView")}} à copier dans le magasin de données. Si null, un magasin de données est quand même créé, mais son contenu n'est ni initialisé, ni défini.
utilisation
Un {{domxref("GLenum")}} indiquant le modèle d'utilisation du magasin de données. Valeurs possibles :
decalageSrc
Un {{domxref("GLuint")}} indiquant le décalage d'indice d'élément où commencer à lire dans le tampon.
longueur {{optional_inline}}
Un {{domxref("GLuint")}} valant 0 par défaut.

Valeur retournée

Aucune.

Exceptions

Exemples

Utilisation de bufferData

var canevas = document.getElementById('canevas');
var gl = canevas.getContext('webgl');
var tampon = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, tampon);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);

Récupération de l'information de tampon

Pour vérifier l'utilisation du tampon en cours et la taille du tampon, utiliser la méthode {{domxref("WebGLRenderingContext.getBufferParameter()")}}.

gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_SIZE);
gl.getBufferParameter(gl.ARRAY_BUFFER, gl.BUFFER_USAGE);

Spécifications

Spécification Statut Commentaire
{{SpecName('WebGL', "#5.14.5", "bufferData")}} {{Spec2('WebGL')}} Définition initiale.
{{SpecName('OpenGL ES 2.0', "glBufferData.xml", "glBufferData")}} {{Spec2('OpenGL ES 2.0')}}

Page man de l’API OpenGL.

{{SpecName('OpenGL ES 3.0', "glBufferData.xhtml", "glBufferData")}} {{Spec2('OpenGL ES 3.0')}}

Page man de l’API OpenGL ES 3 (similaire).

Ajoute les noouveaux tampons cible :
gl.COPY_READ_BUFFER,
gl.COPY_WRITE_BUFFER,
gl.TRANSFORM_FEEDBACK_BUFFER,
gl.UNIFORM_BUFFER,
gl.PIXEL_PACK_BUFFER,
gl.PIXEL_UNPACK_BUFFER

Ajoute les nouvelles indications d'utilisation :
gl.STATIC_READ,
gl.DYNAMIC_READ,
gl.STREAM_READ,
gl.STATIC_COPY,
gl.DYNAMIC_COPY,
gl.STREAM_COPY.

Compatibilité des navigateurs

{{Compat("api.WebGLRenderingContext.bufferData")}}

Voir aussi