IndexObject ModelBLObjectInfo
BLObjectInfo Struct Reference

Information bits used by BLObjectCore and all Blend2D compatible objects inheriting it.

Public Members

Members

Public Types

Constants

Member Functions

Overloaded Operators
Info Data Accessors - Generic
BLObject Signature Accessors
BLObject Type Accessors

Static Functions

Static Methods for Packing & Unpacking

anonymous enum : uint32_t[¶]

ConstantDescription
kSignatureSSOBitSetRange 

Signature of a SSO BitSet, which is in Range mode.

uint32_t BLObjectInfo::packType()constexprstaticnoexcept[¶]

Packs object type into object info bits.

uint32_t BLObjectInfo::packTypeWithMarker()constexprstaticnoexcept[¶]

Packs object type and M flag into object info bits.

uint32_t BLObjectInfo::packAbcp(
uint32_t aField,
uint32_t bField = 0u,
uint32_t cField = 0u,
uint32_t pField = 0u
)constexprstaticnoexcept[¶]

Packs A, B, C, and P fields so they can be combined with other object info bits.

template<uint32_t Shift, uint32_t Mask>
uint32_t BLObjectInfo::getField() constconstexprnoexcept[¶]

Extracts a field based on Shift and Mask.

Note
It doesn't verify whether the object info is valid, it just extracts the field.

bool BLObjectInfo::hasObjectSignatureAndFlags(
uint32_t mask,
uint32_t check
) constconstexprnoexcept[1/2][¶]

Tests whether BLObjectInfo describes a valid BLObject and verifies that additionalBits match the given mask in BLObjectInfo bits as well. This function is a higher-level function used by others.

bool BLObjectInfo::hasObjectSignatureAndFlags(
uint32_t flags
) constconstexprnoexcept[2/2][¶]

Tests whether BLObjectInfo describes a valid BLObject and verifies the the given flags are all set.

bool BLObjectInfo::hasObjectSignature() constconstexprnoexcept[¶]

Tests whether the object info represents a valid BLObject signature.

A valid signature describes a BLObjectCore and not an alternative representation used by BLRgba data.

bool BLObjectInfo::checkObjectSignatureAndRawType() constconstexprnoexcept[¶]

Tests whether BLObjectInfo describes a valid BLObject of the given type.

bool BLObjectInfo::isObject() constconstexprnoexcept[¶]

Tests a whether this BLObjectInfo represents a valid BLObjectCore.

uint32_t BLObjectInfo::isObjectMask() constconstexprnoexcept[¶]

Returns a whether this BLObjectInfo represents a valid BLObjectCore as a mask (either all zeros or all ones).

bool BLObjectInfo::isDynamicObject() constconstexprnoexcept[¶]

Tests whether the object info represents a valid BLObject, which has a valid Impl field.

bool BLObjectInfo::isRefCountedObject() constconstexprnoexcept[¶]

Tests whether the object info represents a valid BLObject, which has a valid Impl, and is reference counted.

bool BLObjectInfo::isVirtualObject() constconstexprnoexcept[¶]

Tests whether the object info represents a valid BLObject, which has a valid Impl, and has a virtual function table.

BLObjectType BLObjectInfo::rawType() constconstexprnoexcept[¶]

Returns a RAW BLObjectType read from object info bits without checking for a 'M' object marker.

This function should only be used in case that the caller knows that the object info is of a valid BLObjectCore. In any other case the use of getType() is preferred and would always provide a correct type.

BLObjectType BLObjectInfo::getType() constconstexprnoexcept[¶]

Returns a corrected BLObjectType read from object info bits.

If the object marker bit 'M' is not set, 0 will be returned, which represents BL_OBJECT_TYPE_RGBA.

bool BLObjectInfo::isArray() constconstexprnoexcept[¶]

Tests whether the object info represents a BLArray<T> storing any supported type.

bool BLObjectInfo::isBitArray() constconstexprnoexcept[¶]

Tests whether the object info represents a BLBitArray.

bool BLObjectInfo::isBitSet() constconstexprnoexcept[¶]

Tests whether the object info represents a BLBitSet.

bool BLObjectInfo::isBool() constconstexprnoexcept[¶]

Tests whether the object info represents a boxed bool value.

bool BLObjectInfo::isContext() constconstexprnoexcept[¶]

Tests whether the object info represents BLContext.

bool BLObjectInfo::isDouble() constconstexprnoexcept[¶]

Tests whether the object info represents a boxed double value.

bool BLObjectInfo::isFont() constconstexprnoexcept[¶]

Tests whether the object info represents BLFont.

bool BLObjectInfo::isFontData() constconstexprnoexcept[¶]

Tests whether the object info represents BLFontData.

bool BLObjectInfo::isFontFace() constconstexprnoexcept[¶]

Tests whether the object info represents BLFontFace.

bool BLObjectInfo::isFontFeatureSettings() constconstexprnoexcept[¶]

Tests whether the object info represents BLFontFeatureSettings.

bool BLObjectInfo::isFontManager() constconstexprnoexcept[¶]

Tests whether the object info represents BLFontManager.

bool BLObjectInfo::isFontVariationSettings() constconstexprnoexcept[¶]

Tests whether the object info represents BLFontVariationSettings.

bool BLObjectInfo::isGradient() constconstexprnoexcept[¶]

Tests whether the object info represents BLGradient.

bool BLObjectInfo::isImage() constconstexprnoexcept[¶]

Tests whether the object info represents BLImage.

bool BLObjectInfo::isImageCodec() constconstexprnoexcept[¶]

Tests whether the object info represents BLImageCodec.

bool BLObjectInfo::isImageDecoder() constconstexprnoexcept[¶]

Tests whether the object info represents BLImageDecoder.

bool BLObjectInfo::isImageEncoder() constconstexprnoexcept[¶]

Tests whether the object info represents BLImageEncoder.

bool BLObjectInfo::isInt64() constconstexprnoexcept[¶]

Tests whether the object info represents a boxed int64_t value.

bool BLObjectInfo::isNull() constconstexprnoexcept[¶]

Tests whether the object info represents a null value.

bool BLObjectInfo::isPath() constconstexprnoexcept[¶]

Tests whether the object info represents BLPath.

bool BLObjectInfo::isPattern() constconstexprnoexcept[¶]

Tests whether the object info represents BLPattern.

bool BLObjectInfo::isRgba() constconstexprnoexcept[¶]

Tests whether the object info represents BLRgba.

bool BLObjectInfo::isRgba32() constconstexprnoexcept[¶]

Tests whether the object info represents BLRgba32.

bool BLObjectInfo::isRgba64() constconstexprnoexcept[¶]

Tests whether the object info represents BLRgba64.

bool BLObjectInfo::isString() constconstexprnoexcept[¶]

Tests whether the object info represents BLString.

bool BLObjectInfo::isUInt64() constconstexprnoexcept[¶]

Tests whether the object info represents a boxed uint64_t value.

bool BLObjectInfo::isStyle() constconstexprnoexcept[¶]

Tests whether the object info represents a style that can be passed to the rendering context.

uint32_t BLObjectInfo::bits[¶]

Stores all object info bits.