Function

Coglgraphene_matrix_project_points

Declaration [src]

void
cogl_graphene_matrix_project_points (
  const graphene_matrix_t* matrix,
  int n_components,
  size_t stride_in,
  void* points_in,
  size_t stride_out,
  void* points_out,
  int n_points
)

Description [src]

Projects an array of input points and writes the result to another array of output points. The input points can either have 2, 3 or 4 components each. The output points always have 4 components (known as homogeneous coordinates). The output array can simply point to the input array to do the transform in-place.

Here’s an example with differing input/output strides:

typedef struct {
  float x,y;
  uint8_t r,g,b,a;
  float s,t,p;
} MyInVertex;
typedef struct {
  uint8_t r,g,b,a;
  float x,y,z;
} MyOutVertex;
MyInVertex vertices[N_VERTICES];
MyOutVertex results[N_VERTICES];
graphene_matrix_t matrix;

my_load_vertices (vertices);
my_get_matrix (&matrix);

cogl_graphene_matrix_project_points (&matrix,
                            2,
                            sizeof (MyInVertex),
                            &vertices[0].x,
                            sizeof (MyOutVertex),
                            &results[0].x,
                            N_VERTICES);

Parameters

matrix

Type: graphene_matrix_t

A projection matrix.

The data is owned by the caller of the function.
n_components

Type: int

The number of position components for each input point. (either 2, 3 or 4)

stride_in

Type: size_t

The stride in bytes between input points.

points_in

Type: void*

A pointer to the first component of the first input point.

The argument can be NULL.
The data is owned by the caller of the function.
stride_out

Type: size_t

The stride in bytes between output points.

points_out

Type: void*

A pointer to the first component of the first output point.

The argument can be NULL.
The data is owned by the caller of the function.
n_points

Type: int

The number of points to transform.