files/en-us/web/api/webgl2renderingcontext/bufferdata/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
The WebGL2RenderingContext.bufferData() method of the WebGL API creates and initializes the buffer object's data store.
bufferData(target, size, usage)
bufferData(target, srcData, usage)
bufferData(target, srcData, usage, srcOffset)
bufferData(target, srcData, usage, srcOffset, length)
target
gl.ARRAY_BUFFER
gl.ELEMENT_ARRAY_BUFFER
gl.COPY_READ_BUFFER
gl.COPY_WRITE_BUFFER
gl.TRANSFORM_FEEDBACK_BUFFER
gl.UNIFORM_BUFFER
gl.PIXEL_PACK_BUFFER
gl.PIXEL_UNPACK_BUFFER
size {{optional_inline}}
size and srcData must be provided.srcData {{optional_inline}}
null, a data store is still created, but the content is uninitialized and undefined.
One of size and srcData must be provided.usage
gl.STATIC_DRAW
gl.DYNAMIC_DRAW
gl.STREAM_DRAW
gl.STATIC_READ
gl.DYNAMIC_READ
gl.STREAM_READ
gl.STATIC_COPY
gl.DYNAMIC_COPY
gl.STREAM_COPY
srcOffset {{optional_inline}}
srcData is provided.length {{optional_inline}}
srcOffset is given.None ({{jsxref("undefined")}}).
gl.OUT_OF_MEMORY error is thrown if the context is unable to create
a data store with the given size.gl.INVALID_VALUE error is thrown if size is negative.gl.INVALID_ENUM error is thrown if target or
usage are not one of the allowed enums.{{Specifications}}
{{Compat}}