IndexImpl API
Impl API

API required for extending Blend2D functionality.

Everything that is part of this group requires <blend2d-impl.h> to be included before the use as this API is only for users that extend Blend2D.

Atomic Operations

Atomic operations are used extensively across Blend2D for reference counting and caching. You should always use operations defined here as they implement all possible cases that Blend2D deals with in a correct way (and if there is a bug it makes it fixable in a single place).

template<typename T>
T blAtomicFetchAddRelaxed(
T* x,
T n = T(1)
)staticnoexcept[¶]

Atomically increments n to value x (relaxed semantics). The old value is returned.

template<typename T>
T blAtomicFetchAddStrong(
T* x,
T n = T(1)
)staticnoexcept[¶]

Atomically increments n to value x (strong semantics). The old value is returned.

template<typename T>
T blAtomicFetchSubRelaxed(
T* x,
T n = T(1)
)staticnoexcept[¶]

Atomically decrements n from value x (relaxed semantics). The old value is returned.

template<typename T>
T blAtomicFetchSubStrong(
T* x,
T n = T(1)
)staticnoexcept[¶]

Atomically decrements n from value x (strong semantics). The old value is returned.