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

Member Enumeration Documentation

anonymous enum : uint32_t◆ 

ConstantDescription
kSignatureSSOBitSetRange 

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

Member Function Documentation

uint32_t BLObjectInfo::packType(BLObjectType type)constexprstaticconstexpr◆ 

Packs object type into object info bits.

uint32_t BLObjectInfo::packTypeWithMarker(BLObjectType type)constexprstaticconstexpr◆ 

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)constexprstaticconstexpr◆ 

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() constconstexprconstexpr◆ 

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) constconstexprconstexpr[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) constconstexprconstexpr[2/2]◆ 

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

bool BLObjectInfo::hasObjectSignature() constconstexprconstexpr◆ 

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(BLObjectType type) constconstexprconstexpr◆ 

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

bool BLObjectInfo::isObject() constconstexprconstexpr◆ 

Tests a whether this BLObjectInfo represents a valid BLObjectCore.

uint32_t BLObjectInfo::isObjectMask() constconstexprconstexpr◆ 

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

bool BLObjectInfo::isDynamicObject() constconstexprconstexpr◆ 

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

bool BLObjectInfo::isRefCountedObject() constconstexprconstexpr◆ 

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

bool BLObjectInfo::isVirtualObject() constconstexprconstexpr◆ 

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

BLObjectType BLObjectInfo::rawType() constconstexprconstexpr◆ 

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() constconstexprconstexpr◆ 

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() constconstexprconstexpr◆ 

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

bool BLObjectInfo::isBitArray() constconstexprconstexpr◆ 

Tests whether the object info represents a BLBitArray.

bool BLObjectInfo::isBitSet() constconstexprconstexpr◆ 

Tests whether the object info represents a BLBitSet.

bool BLObjectInfo::isBool() constconstexprconstexpr◆ 

Tests whether the object info represents a boxed bool value.

bool BLObjectInfo::isContext() constconstexprconstexpr◆ 

Tests whether the object info represents BLContext.

bool BLObjectInfo::isDouble() constconstexprconstexpr◆ 

Tests whether the object info represents a boxed double value.

bool BLObjectInfo::isFont() constconstexprconstexpr◆ 

Tests whether the object info represents BLFont.

bool BLObjectInfo::isFontData() constconstexprconstexpr◆ 

Tests whether the object info represents BLFontData.

bool BLObjectInfo::isFontFace() constconstexprconstexpr◆ 

Tests whether the object info represents BLFontFace.

bool BLObjectInfo::isFontFeatureSettings() constconstexprconstexpr◆ 

Tests whether the object info represents BLFontFeatureSettings.

bool BLObjectInfo::isFontManager() constconstexprconstexpr◆ 

Tests whether the object info represents BLFontManager.

bool BLObjectInfo::isFontVariationSettings() constconstexprconstexpr◆ 

Tests whether the object info represents BLFontVariationSettings.

bool BLObjectInfo::isGradient() constconstexprconstexpr◆ 

Tests whether the object info represents BLGradient.

bool BLObjectInfo::isImage() constconstexprconstexpr◆ 

Tests whether the object info represents BLImage.

bool BLObjectInfo::isImageCodec() constconstexprconstexpr◆ 

Tests whether the object info represents BLImageCodec.

bool BLObjectInfo::isImageDecoder() constconstexprconstexpr◆ 

Tests whether the object info represents BLImageDecoder.

bool BLObjectInfo::isImageEncoder() constconstexprconstexpr◆ 

Tests whether the object info represents BLImageEncoder.

bool BLObjectInfo::isInt64() constconstexprconstexpr◆ 

Tests whether the object info represents a boxed int64_t value.

bool BLObjectInfo::isNull() constconstexprconstexpr◆ 

Tests whether the object info represents a null value.

bool BLObjectInfo::isPath() constconstexprconstexpr◆ 

Tests whether the object info represents BLPath.

bool BLObjectInfo::isPattern() constconstexprconstexpr◆ 

Tests whether the object info represents BLPattern.

bool BLObjectInfo::isRgba() constconstexprconstexpr◆ 

Tests whether the object info represents BLRgba.

bool BLObjectInfo::isRgba32() constconstexprconstexpr◆ 

Tests whether the object info represents BLRgba32.

bool BLObjectInfo::isRgba64() constconstexprconstexpr◆ 

Tests whether the object info represents BLRgba64.

bool BLObjectInfo::isString() constconstexprconstexpr◆ 

Tests whether the object info represents BLString.

bool BLObjectInfo::isUInt64() constconstexprconstexpr◆ 

Tests whether the object info represents a boxed uint64_t value.

bool BLObjectInfo::isStyle() constconstexprconstexpr◆ 

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

Member Data Documentation

uint32_t BLObjectInfo::bits◆ 

Stores all object info bits.