### Method

# Cogl Pipeline set_uniform_matrix

#### Declaration [src]

    void
    cogl_pipeline_set_uniform_matrix (
      CoglPipeline* pipeline,
      int uniform_location,
      int dimensions,
      int count,
      gboolean transpose,
      const float* value
    )

#### Description [src]

Sets new values for the uniform at `uniform_location`. If this pipeline has a user program attached and is later used as a source for drawing, the given values will be assigned to the uniform which can be accessed from the shader’s source. The value for `uniform_location` should be retrieved from the string name of the uniform by calling cogl_pipeline_get_uniform_location().

This function can be used to set any matrix type uniform, including matrix arrays. For example, to set a single mat4 uniform you would use 4 for `dimensions` and 1 for `count`. To set an array of 8 mat3 values, you could use 3 for `dimensions` and 8 for `count`.

If `transpose` is `FALSE` then the matrix is expected to be in column-major order or if it is `TRUE` then the matrix is in row-major order. You can pass a #graphene_matrix_t by calling by passing the result of `graphene_matrix_to_float()` in `value` and setting `transpose` to `FALSE`.

#### Parameters

`uniform_location`

  Type: `int`

  The uniform’s location identifier.

`dimensions`

  Type: `int`

  The size of the matrix.

`count`

  Type: `int`

  The number of values to set.

`transpose`

  Type: `gboolean`

  Whether to transpose the matrix.

`value`

  Type: `const float*`

  Pointer to the new values to set.

  The data is owned by the caller of the function.