Common Types

Common Types

Synopsis

void                (*CoglFuncPtr)                      (void);
enum                CoglPixelFormat;
enum                CoglBufferTarget;
enum                CoglBufferBit;
enum                CoglAttributeType;
enum                CoglColorMask;

Description

Details

CoglFuncPtr ()

void                (*CoglFuncPtr)                      (void);

The type used by cogl for function pointers, note that this type is used as a generic catch-all cast for function pointers and the actual arguments and return type may be different.


enum CoglPixelFormat

typedef enum { /*< prefix=COGL_PIXEL_FORMAT >*/
  COGL_PIXEL_FORMAT_ANY           = 0,
  COGL_PIXEL_FORMAT_A_8           = 1 | COGL_A_BIT,

  COGL_PIXEL_FORMAT_RGB_565       = 4,
  COGL_PIXEL_FORMAT_RGBA_4444     = 5 | COGL_A_BIT,
  COGL_PIXEL_FORMAT_RGBA_5551     = 6 | COGL_A_BIT,
  COGL_PIXEL_FORMAT_YUV           = 7,
  COGL_PIXEL_FORMAT_G_8           = 8,

  COGL_PIXEL_FORMAT_RGB_888       = 2,
  COGL_PIXEL_FORMAT_BGR_888       = (2 | COGL_BGR_BIT),

  COGL_PIXEL_FORMAT_RGBA_8888     = (3 | COGL_A_BIT),
  COGL_PIXEL_FORMAT_BGRA_8888     = (3 | COGL_A_BIT | COGL_BGR_BIT),
  COGL_PIXEL_FORMAT_ARGB_8888     = (3 | COGL_A_BIT | COGL_AFIRST_BIT),
  COGL_PIXEL_FORMAT_ABGR_8888     = (3 | COGL_A_BIT | COGL_BGR_BIT | COGL_AFIRST_BIT),

  COGL_PIXEL_FORMAT_RGBA_1010102  = (13 | COGL_A_BIT),
  COGL_PIXEL_FORMAT_BGRA_1010102  = (13 | COGL_A_BIT | COGL_BGR_BIT),
  COGL_PIXEL_FORMAT_ARGB_2101010  = (13 | COGL_A_BIT | COGL_AFIRST_BIT),
  COGL_PIXEL_FORMAT_ABGR_2101010  = (13 | COGL_A_BIT | COGL_BGR_BIT | COGL_AFIRST_BIT),

  COGL_PIXEL_FORMAT_RGBA_8888_PRE = (3 | COGL_A_BIT | COGL_PREMULT_BIT),
  COGL_PIXEL_FORMAT_BGRA_8888_PRE = (3 | COGL_A_BIT | COGL_PREMULT_BIT | COGL_BGR_BIT),
  COGL_PIXEL_FORMAT_ARGB_8888_PRE = (3 | COGL_A_BIT | COGL_PREMULT_BIT | COGL_AFIRST_BIT),
  COGL_PIXEL_FORMAT_ABGR_8888_PRE = (3 | COGL_A_BIT | COGL_PREMULT_BIT | COGL_BGR_BIT | COGL_AFIRST_BIT),
  COGL_PIXEL_FORMAT_RGBA_4444_PRE = (COGL_PIXEL_FORMAT_RGBA_4444 | COGL_A_BIT | COGL_PREMULT_BIT),
  COGL_PIXEL_FORMAT_RGBA_5551_PRE = (COGL_PIXEL_FORMAT_RGBA_5551 | COGL_A_BIT | COGL_PREMULT_BIT),

  COGL_PIXEL_FORMAT_RGBA_1010102_PRE = (COGL_PIXEL_FORMAT_RGBA_1010102 | COGL_PREMULT_BIT),
  COGL_PIXEL_FORMAT_BGRA_1010102_PRE = (COGL_PIXEL_FORMAT_BGRA_1010102 | COGL_PREMULT_BIT),
  COGL_PIXEL_FORMAT_ARGB_2101010_PRE = (COGL_PIXEL_FORMAT_ARGB_2101010 | COGL_PREMULT_BIT),
  COGL_PIXEL_FORMAT_ABGR_2101010_PRE = (COGL_PIXEL_FORMAT_ABGR_2101010 | COGL_PREMULT_BIT)
} CoglPixelFormat;

Pixel formats used by Cogl. For the formats with a byte per component, the order of the components specify the order in increasing memory addresses. So for example COGL_PIXEL_FORMAT_RGB_888 would have the red component in the lowest address, green in the next address and blue after that regardless of the endianness of the system.

For the formats with non byte aligned components the component order specifies the order within a 16-bit or 32-bit number from most significant bit to least significant. So for COGL_PIXEL_FORMAT_RGB_565, the red component would be in bits 11-15, the green component would be in 6-11 and the blue component would be in 1-5. Therefore the order in memory depends on the endianness of the system.

When uploading a texture COGL_PIXEL_FORMAT_ANY can be used as the internal format. Cogl will try to pick the best format to use internally and convert the texture data if necessary.

COGL_PIXEL_FORMAT_ANY

Any format

COGL_PIXEL_FORMAT_A_8

8 bits alpha mask

COGL_PIXEL_FORMAT_RGB_565

RGB, 16 bits

COGL_PIXEL_FORMAT_RGBA_4444

RGBA, 16 bits

COGL_PIXEL_FORMAT_RGBA_5551

RGBA, 16 bits

COGL_PIXEL_FORMAT_YUV

Not currently supported

COGL_PIXEL_FORMAT_G_8

Single luminance component

COGL_PIXEL_FORMAT_RGB_888

RGB, 24 bits

COGL_PIXEL_FORMAT_BGR_888

BGR, 24 bits

COGL_PIXEL_FORMAT_RGBA_8888

RGBA, 32 bits

COGL_PIXEL_FORMAT_BGRA_8888

BGRA, 32 bits

COGL_PIXEL_FORMAT_ARGB_8888

ARGB, 32 bits

COGL_PIXEL_FORMAT_ABGR_8888

ABGR, 32 bits

COGL_PIXEL_FORMAT_RGBA_1010102

RGBA, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_BGRA_1010102

BGRA, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_ARGB_2101010

ARGB, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_ABGR_2101010

ABGR, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_RGBA_8888_PRE

Premultiplied RGBA, 32 bits

COGL_PIXEL_FORMAT_BGRA_8888_PRE

Premultiplied BGRA, 32 bits

COGL_PIXEL_FORMAT_ARGB_8888_PRE

Premultiplied ARGB, 32 bits

COGL_PIXEL_FORMAT_ABGR_8888_PRE

Premultiplied ABGR, 32 bits

COGL_PIXEL_FORMAT_RGBA_4444_PRE

Premultiplied RGBA, 16 bits

COGL_PIXEL_FORMAT_RGBA_5551_PRE

Premultiplied RGBA, 16 bits

COGL_PIXEL_FORMAT_RGBA_1010102_PRE

Premultiplied RGBA, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_BGRA_1010102_PRE

Premultiplied BGRA, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_ARGB_2101010_PRE

Premultiplied ARGB, 32 bits, 10 bpc

COGL_PIXEL_FORMAT_ABGR_2101010_PRE

Premultiplied ABGR, 32 bits, 10 bpc

Since 0.8


enum CoglBufferTarget

typedef enum
{
  COGL_WINDOW_BUFFER      = (1 << 1),
  COGL_OFFSCREEN_BUFFER   = (1 << 2)
} CoglBufferTarget;

Target flags for FBOs.

COGL_WINDOW_BUFFER

FIXME

COGL_OFFSCREEN_BUFFER

FIXME

Since 0.8


enum CoglBufferBit

typedef enum {
  COGL_BUFFER_BIT_COLOR   = 1L<<0,
  COGL_BUFFER_BIT_DEPTH   = 1L<<1,
  COGL_BUFFER_BIT_STENCIL = 1L<<2
} CoglBufferBit;

Types of auxiliary buffers

COGL_BUFFER_BIT_COLOR

Selects the primary color buffer

COGL_BUFFER_BIT_DEPTH

Selects the depth buffer

COGL_BUFFER_BIT_STENCIL

Selects the stencil buffer

Since 1.0


enum CoglAttributeType

typedef enum {
  COGL_ATTRIBUTE_TYPE_BYTE           = 0x1400,
  COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE  = 0x1401,
  COGL_ATTRIBUTE_TYPE_SHORT          = 0x1402,
  COGL_ATTRIBUTE_TYPE_UNSIGNED_SHORT = 0x1403,
  COGL_ATTRIBUTE_TYPE_FLOAT          = 0x1406
} CoglAttributeType;

Data types for the components of a vertex attribute.

COGL_ATTRIBUTE_TYPE_BYTE

Data is the same size of a byte

COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE

Data is the same size of an unsigned byte

COGL_ATTRIBUTE_TYPE_SHORT

Data is the same size of a short integer

COGL_ATTRIBUTE_TYPE_UNSIGNED_SHORT

Data is the same size of an unsigned short integer

COGL_ATTRIBUTE_TYPE_FLOAT

Data is the same size of a float

Since 1.0


enum CoglColorMask

typedef enum
{
  COGL_COLOR_MASK_NONE = 0,
  COGL_COLOR_MASK_RED = 1L<<0,
  COGL_COLOR_MASK_GREEN = 1L<<1,
  COGL_COLOR_MASK_BLUE = 1L<<2,
  COGL_COLOR_MASK_ALPHA = 1L<<3,
  /* XXX: glib-mkenums is a perl script that can't cope if we split
   * this onto multiple lines! *sigh* */
  COGL_COLOR_MASK_ALL = (COGL_COLOR_MASK_RED | COGL_COLOR_MASK_GREEN | COGL_COLOR_MASK_BLUE | COGL_COLOR_MASK_ALPHA)
} CoglColorMask;

Defines a bit mask of color channels. This can be used with cogl_pipeline_set_color_mask() for example to define which color channels should be written to the current framebuffer when drawing something.

COGL_COLOR_MASK_NONE

None of the color channels are masked

COGL_COLOR_MASK_RED

Masks the red color channel

COGL_COLOR_MASK_GREEN

Masks the green color channel

COGL_COLOR_MASK_BLUE

Masks the blue color channel

COGL_COLOR_MASK_ALPHA

Masks the alpha color channel

COGL_COLOR_MASK_ALL

All of the color channels are masked