---
name: "al_create_vertex_buffer"
section: "3"
platform: "linux"
package: "allegro"
version: "5.2.11.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/al_create_vertex_buffer"
---

# al\_create\_vertex\_buffer(3)

Allegro 5 API

## NAME

al\_create\_vertex\_buffer - Allegro 5 API

## SYNOPSIS

-

  ```
  #include <allegro5/allegro_primitives.h>
  ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,
     const void* initial_data, int num_vertices, int flags)
  ```

## DESCRIPTION

Creates a vertex buffer. Can return NULL if the buffer could not be created (e.g. the system only supports write-only buffers).

*Note:*

This is an advanced feature, often unsupported on lower-end video cards. Be extra mindful of this function failing and make arrangements for fallback drawing functionality or a nice error message for users with such lower-end cards.

*Parameters:*

- •

  decl - Vertex type that this buffer will hold. NULL implies that this buffer will hold [ALLEGRO\_VERTEX(3)](/ALLEGRO_VERTEX/3.md) vertices

- •

  initial\_data - Memory buffer to copy from to initialize the vertex buffer. Can be `NULL`, in which case the buffer is uninitialized.

- •

  num\_vertices - Number of vertices the buffer will hold

- •

  flags - A combination of the [ALLEGRO\_PRIM\_BUFFER\_FLAGS(3)](/ALLEGRO_PRIM_BUFFER_FLAGS/3.md) flags specifying how this buffer will be created. Passing 0 is the same as passing `ALLEGRO_PRIM_BUFFER_STATIC`.

## SINCE

5\.1.3

## SEE ALSO

[ALLEGRO\_VERTEX\_BUFFER(3)](/ALLEGRO_VERTEX_BUFFER/3.md), [al\_destroy\_vertex\_buffer(3)](/al_destroy_vertex_buffer/3.md)
