Cogl - a modern 3D graphics API

About Cogl
General API concepts
The Object Interface
Exception handling — A way for Cogl to throw exceptions
Common Types — Types used throughout the library
Setting Up A Drawing Context
CoglRenderer: Connect to a backend renderer — Choosing a means to render
CoglOnscreenTemplate: Describe a template for onscreen framebuffers
CoglDisplay: Setup a display pipeline — Common aspects of a display pipeline
The Top-Level Context — The top level application context.
Setting Up A GPU Pipeline
Blend Strings — A simple syntax and grammar for describing blending and texture combining functions.
Pipeline — Functions for creating and manipulating the GPU pipeline
Depth State — Functions for describing the depth testing state of your GPU.
Shader snippets — Functions for creating and manipulating shader snippets
Allocating GPU Memory
CoglBuffer: The Buffer Interface — Common buffer functions, including data upload APIs
CoglAttributeBuffer: Buffers of vertex attributes — Functions for creating and manipulating attribute buffers
CoglIndexBuffer: Buffers of vertex indices — Functions for creating and manipulating vertex indices.
Describing the layout of GPU Memory
Vertex Attributes — Functions for declaring and drawing vertex attributes
Indices — Describe vertex indices stored in a CoglIndexBuffer.
Geometry
Primitives — Functions for creating, manipulating and drawing primitives
Path Primitives
Rectangles
Textures
Bitmap — Functions for loading images
The Texture Interface — Functions for creating and manipulating textures
Meta Textures
High Level Meta Textures — Interface for high-level textures built from low-level textures like CoglTexture2D and CoglTexture3D.
Sub Textures — Functions for creating and manipulating sub-textures.
Sliced Textures — Functions for creating and manipulating 2D meta textures that may internally be comprised of multiple 2D textures with power-of-two sizes.
X11 Texture From Pixmap — Functions for creating and manipulating 2D meta textures derived from X11 pixmaps.
Primitive Textures
Low-level primitive textures — Interface for low-level textures like CoglTexture2D and CoglTexture3D.
2D textures — Functions for creating and manipulating 2D textures
3D textures — Functions for creating and manipulating 3D textures
Rectangle textures (non-normalized coordinates) — Functions for creating and manipulating rectangle textures for use with non-normalized coordinates.
Framebuffers
CoglFramebuffer: The Framebuffer Interface — A common interface for manipulating framebuffers
CoglOnscreen: The Onscreen Framebuffer Interface
Offscreen Framebuffers — Functions for creating and manipulating offscreen framebuffers.
Utilities
Color Type — A generic color definition
Matrices — Functions for initializing and manipulating 4x4 matrices
Matrix Stacks — Functions for efficiently tracking many related transformations
3 Component Vectors — Functions for handling single precision float vectors.
Eulers (Rotations) — Functions for initializing and manipulating euler angles.
Quaternions (Rotations) — Functions for initializing and manipulating quaternions.
GPU synchronisation fences — Functions for notification of command completion
Versioning utility macros — Macros for determining the version of Cogl being used
Binding and Integrating
SDL Integration — Integration api for the Simple DirectMedia Layer library.
Main loop integration — Functions for integrating Cogl with an application's main loop
GType Integration API
GLES 2.0 context — A portable api to access OpenGLES 2.0

About Cogl

Cogl is a modern 3D graphics API with associated utility APIs designed to expose the features of 3D graphics hardware using a more object oriented design than OpenGL. The library has primarily been driven by the practical needs of Clutter but it is not tied to any one toolkit or even constrained to developing UI toolkits.