Documentation Index

Blend2D C and C++ API reference documentation generated by Doxygen.

Topics

If you are new to Blend2D please checkout out the following links:

Overview

Blend2D API consists of enumerations, functions, structs, and C++ classes. Common concepts like enumerations and POD structs are shared between C and C++. Some structs contain extra functionality like BLSomething::reset() that is only available to C++ users, however, such functionality is only provided for convenience and doesn't affect how Blend2D can be used from C.

Blend2D C++ API is in fact build on top of the C API and all C++ functions are inlines that call C API without any overhead. It would require double effort to document both C and C++ APIs separately so we have decided to only document C++ API and to only list C API for users that need it. The C API should be straightforward and matches very well the C++ part.

Groups

The documentation is split into the following groups:

  • Globals - Global functions, constants, and classes used universally across the library
  • Containers - Containers and views used by Blend2D
  • Geometries - Geometries, paths, and transformations
  • Imaging - Images and image codecs
  • Styling - Colors, gradients, and patterns
  • Text - Fonts & Text support
  • Rendering - 2D rendering context API, structures, and constants
  • Runtime - Interaction with Blend2D runtime
  • Filesystem - Filesystem utilities
  • Miscellaneous - Miscellaneous and uncategorized API
  • Impl API - API required for extending Blend2D functionality
  • Macros - Preprocessor macros and compile-time constants
  • C API - Blend2D C API structs and functions exported as extern "C" (C API)
  • Object Model - Object Model & Memory Layout

Important

Doxygen has its limits, for example it sorts struct members in anonymous structs and unions and we haven't figured out how to turn this feature off. This means that the order of members doesn't have to reflect the original struct layout. Always double-check struct layout in case you plan to use a brace initialization of simple structs or in case you are creating bindings.