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

Generated by GTK-Doc V1.35.1