Preprocessor macros and compile-time constants.
Makes a version number representing a
Blend2D library version.
A compile-time constant (macro) that defines byte-order of the target. It can be either
1234 for little-endian targets or
4321 for big-endian targets. Blend2D uses this macro internally, but it's also available to end users as sometimes it could be important for deciding between pixel formats or other important details.
A base API decorator that marks functions and variables exported by Blend2D.
Calling convention used by all exported functions and function callbacks. If you pass callbacks to Blend2D it's strongly advised to use this decorator, because some compilers provide a way of overriding a global calling convention (like __vectorcall on Windows platforms), which would break the use of such callbacks.
Marks functions that should always be inlined.
Function attribute used by functions that never return (that terminate the process). This attribute is used only once by
blRuntimeAssertionFailure() function, which is only used when assertions are enabled. This macro should be considered internal and it's not designed for Blend2D users.
noexcept in C++17 mode an nothing in C mode. The reason this macro is provided is because Blend2D C API doesn't use exceptions and is marked as such.
noexcept in C++11 mode an nothing in C mode. This is used to mark Blend2D C API, which is
noexcept by design.
Function attribute that describes functions that have no side effect. The macro expands to
__attribute__((__pure__)) when compiling with GCC or Clang if the attribute is supported, otherwise it expands to nothing.
Macro that tells the C/C++ compiler that the expression
... evaluates to true. This macro is only used by few places and should be considered internal as you shouldn't need it when using Blend2D library.
A condition is likely.
A condition is unlikely.
Run-time assertion executed in debug builds.
Executes the code within the macro and returns if it returned any value other than
BL_SUCCESS. This macro is heavily used across the library for error handling.
Creates a 32-bit tag (uint32_t) from the given