- 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
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.