Primitives

Primitives — Functions for creating, manipulating and drawing primitives

Synopsis

                    CoglPrimitive;
CoglPrimitive *     cogl_primitive_new                  (CoglVerticesMode mode,
                                                         int n_vertices,
                                                         ...);
gboolean            cogl_is_primitive                   (void *object);
int                 cogl_primitive_get_first_vertex     (CoglPrimitive *primitive);
void                cogl_primitive_set_first_vertex     (CoglPrimitive *primitive,
                                                         int first_vertex);
#define             cogl_primitive_get_n_vertices
#define             cogl_primitive_set_n_vertices
CoglVerticesMode    cogl_primitive_get_mode             (CoglPrimitive *primitive);
void                cogl_primitive_set_mode             (CoglPrimitive *primitive,
                                                         CoglVerticesMode mode);
void                cogl_primitive_set_attributes       (CoglPrimitive *primitive,
                                                         CoglAttribute **attributes,
                                                         int n_attributes);
#define             cogl_primitive_set_indices
void                cogl_primitive_draw                 (CoglPrimitive *primitive);

Description

FIXME

Details

CoglPrimitive

typedef struct _CoglPrimitive CoglPrimitive;

cogl_primitive_new ()

CoglPrimitive *     cogl_primitive_new                  (CoglVerticesMode mode,
                                                         int n_vertices,
                                                         ...);

Combines a set of CoglAttributes with a specific draw mode and defines a vertex count so a CoglPrimitive object can be retained and drawn later with no addition information required.

The value passed as n_vertices will simply update the "n_vertices" property as if cogl_primitive_set_n_vertices() were called. This property defines the number of vertices to read when drawing.

mode :

A CoglVerticesMode defining how to draw the vertices

n_vertices :

The number of vertices to process when drawing

Varargs :

A NULL terminated list of attributes

Returns :

A newly allocated CoglPrimitive object

Since 1.6

Stability Level: Unstable


cogl_is_primitive ()

gboolean            cogl_is_primitive                   (void *object);

Gets whether the given object references a CoglPrimitive.

object :

A CoglObject

Returns :

TRUE if the handle references a CoglPrimitive, FALSE otherwise

Since 1.6

Stability Level: Unstable


cogl_primitive_get_first_vertex ()

int                 cogl_primitive_get_first_vertex     (CoglPrimitive *primitive);

cogl_primitive_set_first_vertex ()

void                cogl_primitive_set_first_vertex     (CoglPrimitive *primitive,
                                                         int first_vertex);

cogl_primitive_get_n_vertices

#define cogl_primitive_get_n_vertices cogl_primitive_get_n_vertices_EXP

Queries the number of vertices to read when drawing the given primitive. Usually this value is implicitly set when associating vertex data or indices with a CoglPrimitive.

If cogl_primitive_set_indices() has been used to associate a sequence of CoglIndices with the given primitive then the number of vertices to read can also be phrased as the number of indices to read.

Note

To be clear; it doesn't refer to the number of vertices - in terms of data - associated with the primitive it's just the number of vertices to read and draw.

primitive :

A CoglPrimitive object

Returns :

The number of vertices to read when drawing.

Since 1.8

Stability Level: Unstable


cogl_primitive_set_n_vertices

#define cogl_primitive_set_n_vertices cogl_primitive_set_n_vertices_EXP

Specifies how many vertices should be read when drawing the given primitive.

Usually this value is set implicitly when associating vertex data or indices with a CoglPrimitive.

Note

To be clear; it doesn't refer to the number of vertices - in terms of data - associated with the primitive it's just the number of vertices to read and draw.

primitive :

A CoglPrimitive object

n_vertices :

The number of vertices to read when drawing.

Since 1.8

Stability Level: Unstable


cogl_primitive_get_mode ()

CoglVerticesMode    cogl_primitive_get_mode             (CoglPrimitive *primitive);

cogl_primitive_set_mode ()

void                cogl_primitive_set_mode             (CoglPrimitive *primitive,
                                                         CoglVerticesMode mode);

cogl_primitive_set_attributes ()

void                cogl_primitive_set_attributes       (CoglPrimitive *primitive,
                                                         CoglAttribute **attributes,
                                                         int n_attributes);

Replaces all the attributes of the given CoglPrimitive object.

primitive :

A CoglPrimitive object

attributes :

A NULL terminated array of CoglAttribute pointers

Since 1.6

Stability Level: Unstable


cogl_primitive_set_indices

#define cogl_primitive_set_indices cogl_primitive_set_indices_EXP

Associates a sequence of CoglIndices with the given primitive.

CoglIndices provide a way to virtualize your real vertex data by providing a sequence of indices that index into your real vertex data. The GPU will walk though the index values to indirectly lookup the data for each vertex instead of sequentially walking through the data directly. This lets you save memory by indexing shared data multiple times instead of duplicating the data.

The value passed as n_indices will simply update the "n_vertices" property as if cogl_primitive_set_n_vertices() were called. This property defines the number of vertices to draw or, put another way, how many indices should be read from indices when drawing.

Note

The "first_vertex" property also affects drawing with indices by defining the first entry of the indices to start drawing from.

primitive :

A CoglPrimitive

indices :

A CoglIndices array

n_indices :

The number of indices to reference when drawing

Since 1.10

Stability Level: Unstable


cogl_primitive_draw ()

void                cogl_primitive_draw                 (CoglPrimitive *primitive);

Draw the given primitive with the current source material.

primitive :

A CoglPrimitive object

Since 1.6

Stability Level: Unstable