CTRun

typedef const struct CF_BRIDGED_TYPE(id) __CTRun * CTRunRef;

typedef CF_OPTIONS(uint32_t, CTRunStatus)
{
    kCTRunStatusNoStatus = 0,
    kCTRunStatusRightToLeft = (1 << 0),
    kCTRunStatusNonMonotonic = (1 << 1),
    kCTRunStatusHasNonIdentityMatrix = (1 << 2)
};

CFTypeID CTRunGetTypeID( void ) CT_AVAILABLE(10_5, 3_2);

CFIndex CTRunGetGlyphCount(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

CFDictionaryRef CTRunGetAttributes(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

CTRunStatus CTRunGetStatus(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

const CGGlyph * __nullable CTRunGetGlyphsPtr(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

void CTRunGetGlyphs(
    CTRunRef run,
    CFRange range,
    CGGlyph buffer[] ) CT_AVAILABLE(10_5, 3_2);

const CGPoint * __nullable CTRunGetPositionsPtr(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

void CTRunGetPositions(
    CTRunRef run,
    CFRange range,
    CGPoint buffer[] ) CT_AVAILABLE(10_5, 3_2);

const CGSize * __nullable CTRunGetAdvancesPtr(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

void CTRunGetAdvances(
    CTRunRef run,
    CFRange range,
    CGSize buffer[] ) CT_AVAILABLE(10_5, 3_2);

const CFIndex * __nullable CTRunGetStringIndicesPtr(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

void CTRunGetStringIndices(
    CTRunRef run,
    CFRange range,
    CFIndex buffer[] ) CT_AVAILABLE(10_5, 3_2);

CFRange CTRunGetStringRange(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

double CTRunGetTypographicBounds(
    CTRunRef run,
    CFRange range,
    CGFloat * __nullable ascent,
    CGFloat * __nullable descent,
    CGFloat * __nullable leading ) CT_AVAILABLE(10_5, 3_2);


CGRect CTRunGetImageBounds(
    CTRunRef run,
    CGContextRef __nullable context,
    CFRange range ) CT_AVAILABLE(10_5, 3_2);

CGAffineTransform CTRunGetTextMatrix(
    CTRunRef run ) CT_AVAILABLE(10_5, 3_2);

void CTRunDraw(
    CTRunRef run,
    CGContextRef context,
    CFRange range ) CT_AVAILABLE(10_5, 3_2);





你可能感兴趣的:(CTRun)