---
name: "al_set_shader_int_vector"
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_set_shader_int_vector"
---

# al\_set\_shader\_int\_vector(3)

Allegro 5 API

## NAME

al\_set\_shader\_int\_vector - Allegro 5 API

## SYNOPSIS

-

  ```
  #include <allegro5/allegro.h>
  bool al_set_shader_int_vector(const char *name,
     int num_components, const int *i, int num_elems)
  ```

## DESCRIPTION

Sets an integer vector array uniform of the current target bitmap’s shader. The \`num\_components' parameter can take one of the values 1, 2, 3 or 4. If it is 1 then an array of \`num\_elems' integer elements is added. Otherwise each added array element is assumed to be a vector with 2, 3 or 4 components in it.

For example, if you have a GLSL uniform declared as `uniform ivec3 flowers[4]` or an HLSL uniform declared as `uniform int3 flowers[4]`, then you’d use this function from your code like so:

-

  ```
  int flowers[4][3] =
  {
     {1, 2, 3},
     {4, 5, 6},
     {7, 8, 9},
     {2, 5, 7}
  };
  al_set_shader_int_vector("flowers", 3, (int*)flowers, 4);
  ```

Returns true on success. Otherwise returns false, e.g. if the uniform by that name does not exist in the shader.

## SINCE

5\.1.0

## SEE ALSO

[al\_set\_shader\_float\_vector(3)](/al_set_shader_float_vector/3.md), [al\_use\_shader(3)](/al_use_shader/3.md)
