---
Name: CoreGraphics
SwiftInferImportAsMember: true

#
# Global functions
#
Functions:
# The below are inline functions that are irrelevant due to memberwise inits
- Name: CGPointMake
  Availability: nonswift
- Name: CGSizeMake
  Availability: nonswift
- Name: CGVectorMake
  Availability: nonswift
- Name: CGRectMake
  Availability: nonswift
- Name: CGAffineTransformMake
  Availability: nonswift
# The below are fixups that inference didn't quite do what we wanted, and are
# pulled over from what used to be in the overlays
- Name: CGRectIsNull
  SwiftName: "getter:CGRect.isNull(self:)"
- Name: CGRectIsEmpty
  SwiftName: "getter:CGRect.isEmpty(self:)"
- Name: CGRectIsInfinite
  SwiftName: "getter:CGRect.isInfinite(self:)"
- Name: CGRectStandardize
  SwiftName: "getter:CGRect.standardized(self:)"
- Name: CGRectIntegral
  SwiftName: "getter:CGRect.integral(self:)"
- Name: CGRectInset
  SwiftName: "CGRect.insetBy(self:dx:dy:)"
- Name: CGRectOffset
  SwiftName: "CGRect.offsetBy(self:dx:dy:)"
- Name: CGRectUnion
  SwiftName: "CGRect.union(self:_:)"
- Name: CGRectIntersection
  SwiftName: "CGRect.intersection(self:_:)"
- Name: CGRectContainsRect
  SwiftName: "CGRect.contains(self:_:)"
- Name: CGRectContainsPoint
  SwiftName: "CGRect.contains(self:_:)"
- Name: CGRectIntersectsRect
  SwiftName: "CGRect.intersects(self:_:)"
# The below are not available in Swift
# FIXME: empty-argument-label pattern is currently failing SILGen
- Name: CGColorSpaceCreateDeviceGray
  SwiftName: CGColorSpaceCreateDeviceGray()
- Name: CGColorSpaceCreateDeviceRGB
  SwiftName: CGColorSpaceCreateDeviceRGB()
- Name: CGColorSpaceCreateDeviceCMYK
  SwiftName: CGColorSpaceCreateDeviceCMYK()
# TODO: make these unavailable, but they're needed for pre-iOS 9
# - Name: CGColorSpaceCreateDeviceGray
#   Availability: nonswift
# - Name: CGColorSpaceCreateDeviceRGB
#   Availability: nonswift
# - Name: CGColorSpaceCreateDeviceCMYK
#   Availability: nonswift

# The below are attempts at providing better names than inference
# CGAffineTransform
- Name: CGAffineTransformMakeTranslation
  SwiftName: CGAffineTransform.init(translationX:y:)
- Name: CGAffineTransformMakeScale
  SwiftName: CGAffineTransform.init(scaleX:y:)
- Name: CGAffineTransformMakeRotation
  SwiftName: CGAffineTransform.init(rotationAngle:)
- Name: CGAffineTransformIsIdentity
  SwiftName: getter:CGAffineTransform.isIdentity(self:)
- Name: CGAffineTransformTranslate
  SwiftName: CGAffineTransform.translatedBy(self:x:y:)
- Name: CGAffineTransformScale
  SwiftName: CGAffineTransform.scaledBy(self:x:y:)
- Name: CGAffineTransformRotate
  SwiftName: CGAffineTransform.rotated(self:by:)
- Name: CGAffineTransformConcat
  SwiftName: CGAffineTransform.concatenating(self:_:)
- Name: CGAffineTransformInvert
  SwiftName: CGAffineTransform.inverted(self:)
- Name: CGPointApplyAffineTransform
  SwiftName: CGPoint.applying(self:_:)
- Name: CGSizeApplyAffineTransform
  SwiftName: CGSize.applying(self:_:)
- Name: CGRectApplyAffineTransform
  SwiftName: CGRect.applying(self:_:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGAffineTransformEqualToTransform
  # replaced by Equatable / ==
  SwiftName: CGAffineTransform.__equalTo(self:_:)
  SwiftPrivate: true

# CGBitmapContext
- Name: CGBitmapContextCreateWithData
  SwiftName: CGContext.init(data:width:height:bitsPerComponent:bytesPerRow:space:bitmapInfo:releaseCallback:releaseInfo:)
- Name: CGBitmapContextCreate
  SwiftName: CGContext.init(data:width:height:bitsPerComponent:bytesPerRow:space:bitmapInfo:)
- Name: CGBitmapContextGetData
  SwiftName: getter:CGContext.data(self:)
- Name: CGBitmapContextGetWidth
  SwiftName: getter:CGContext.width(self:)
- Name: CGBitmapContextGetHeight
  SwiftName: getter:CGContext.height(self:)
- Name: CGBitmapContextGetBitsPerComponent
  SwiftName: getter:CGContext.bitsPerComponent(self:)
- Name: CGBitmapContextGetBitsPerPixel
  SwiftName: getter:CGContext.bitsPerPixel(self:)
- Name: CGBitmapContextGetBytesPerRow
  SwiftName: getter:CGContext.bytesPerRow(self:)
- Name: CGBitmapContextGetColorSpace
  SwiftName: getter:CGContext.colorSpace(self:)
- Name: CGBitmapContextGetAlphaInfo
  SwiftName: getter:CGContext.alphaInfo(self:)
- Name: CGBitmapContextCreateImage
  SwiftName: CGContext.makeImage(self:)

# CGColor
#
- Name: CGColorCreate
  SwiftName: CGColor.init(colorSpace:components:)
- Name: CGColorCreateGenericGray
  SwiftName: CGColor.init(gray:alpha:)
- Name: CGColorCreateGenericRGB
  SwiftName: CGColor.init(red:green:blue:alpha:)
- Name: CGColorCreateCMYK
  SwiftName: CGColor.init(cyan:magenta:yellow:black:alpha:)
- Name: CGColorCreateWithPattern
  SwiftName: CGColor.init(patternSpace:pattern:components:)
- Name: CGColorCreateCopy
  SwiftName: CGColor.copy(self:)
- Name: CGColorCreateCopyWithAlpha
  SwiftName: CGColor.copy(self:alpha:)
- Name: CGColorCreateCopyByMatchingToColorSpace
  SwiftName: CGColor.converted(to:intent:self:options:)
# Replaced by actual constant colors in the overlay
- Name: CGColorGetConstantColor
  SwiftName: CGColor.__constantColor(for:)
  SwiftPrivate: true
# Replaced by == operator in the overlay
- Name: CGColorEqualToColor
  SwiftName: CGColor.__equalTo(self:_:)
  SwiftPrivate: true
# Replaced in the overlay: var components: [CGFloat]?
- Name: CGColorGetComponents
  SwiftName: getter:CGColor.__unsafeComponents(self:)
  SwiftPrivate: true


# CGColorSpace
#
# These are cases where we want better names than ImportAsMember inference gets
- Name: CGColorSpaceCreateWithICCProfile
  SwiftName: CGColorSpace.init(iccProfileData:)
- Name: CGColorSpaceCreateWithPlatformColorSpace
  SwiftName: CGColorSpace.init(platformColorSpaceRef:)
- Name: CGColorSpaceCreateWithName
  SwiftName: CGColorSpace.init(name:)
- Name: CGColorSpaceCopyName
  SwiftName: getter:CGColorSpace.name(self:)
- Name: CGColorSpaceCopyICCProfile
  SwiftName: getter:CGColorSpace.iccData(self:)
- Name: CGColorSpaceIsWideGamutRGB
  SwiftName: getter:CGColorSpace.isWideGamutRGB(self:)
- Name: CGColorSpaceSupportsOutput
  SwiftName: getter:CGColorSpace.supportsOutput(self:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGColorSpaceGetColorTableCount
  # merged count and pointer to single array property
  SwiftName: getter:CGColorSpace.__colorTableCount(self:)
  SwiftPrivate: true
- Name: CGColorSpaceGetColorTable
  # merged count and pointer to single array property
  SwiftName: CGColorSpace.__unsafeGetColorTable(self:_:)
  SwiftPrivate: true

# CGContext
#
# These are cases where we want better names than ImportAsMember inference gets
- Name: CGConttextSaveGState
  SwiftName: CGContext.saveGraphicsState(self:)
- Name: CGConttextRestoreGState
  SwiftName: CGContext.restoreGraphicsState(self:)
- Name: CGContextConcatCTM
  SwiftName: CGContext.concatenate(self:_:)
- Name: CGContextScaleCTM
  SwiftName: CGContext.scaleBy(self:x:y:)
- Name: CGContextTranslateCTM
  SwiftName: CGContext.translateBy(self:x:y:)
- Name: CGContextRotateCTM
  SwiftName: CGContext.rotate(self:by:)
- Name: CGContextSetLineWidth
  SwiftName: CGContext.setLineWidth(self:_:)
- Name: CGContextSetMiterLimit
  SwiftName: CGContext.setMiterLimit(self:_:)
- Name: CGContextSetFlatness
  SwiftName: CGContext.setFlatness(self:_:)
- Name: CGContextSetAlpha
  SwiftName: CGContext.setAlpha(self:_:)
- Name: CGContextAddEllipseInRect
  SwiftName: CGContext.addEllipse(self:in:)
- Name: CGContextIsPathEmpty
  SwiftName: getter:CGContext.isPathEmpty(self:)
- Name: CGContextGetPathCurrentPoint
  SwiftName: getter:CGContext.currentPointOfPath(self:)
- Name: CGContextGetPathBoundingBox
  SwiftName: getter:CGContext.boundingBoxOfPath(self:)
- Name: CGContextCopyPath
  SwiftName: getter:CGContext.path(self:)
- Name: CGContextPathContainsPoint
  SwiftName: CGContext.pathContains(self:_:mode:)
- Name: CGContextDrawPath
  SwiftName: CGContext.drawPath(self:using:)
- Name: CGContextFillRect
  SwiftName: CGContext.fill(self:_:)
- Name: CGContextStrokeRect
  SwiftName: CGContext.stroke(self:_:)
- Name: CGContextStrokeRectWithWidth
  SwiftName: CGContext.stroke(self:_:width:)
- Name: CGContextClearRect
  SwiftName: CGContext.clear(self:_:)
- Name: CGContextFillEllipseInRect
  SwiftName: CGContext.fillEllipse(self:in:)
- Name: CGContextStrokeEllipseInRect
  SwiftName: CGContext.strokeEllipse(self:in:)
- Name: CGContextGetClipBoundingBox
  SwiftName: getter:CGContext.boundingBoxOfClipPath(self:)
- Name: CGContextClipToRect
  SwiftName: CGContext.clip(self:to:)
- Name: CGContextClipToMask
  SwiftName: CGContext.clip(self:to:mask:)
- Name: CGContextSetFillColor
  SwiftName: CGContext.setFillColor(self:_:)
- Name: CGContextSetFillColorWithColor
  SwiftName: CGContext.setFillColor(self:_:)
- Name: CGContextSetFillPattern
  SwiftName: CGContext.setFillPattern(self:_:colorComponents:)
- Name: CGContextSetStrokePattern
  SwiftName: CGContext.setStrokePattern(self:_:colorComponents:)
- Name: CGContextSetPatternPhase
  SwiftName: CGContext.setPatternPhase(self:_:)
- Name: CGContextSetGrayFillColor
  SwiftName: CGContext.setFillColor(self:gray:alpha:)
- Name: CGContextSetGrayStrokeColor
  SwiftName: CGContext.setStrokeColor(self:gray:alpha:)
- Name: CGContextSetRGBFillColor
  SwiftName: CGContext.setFillColor(self:red:green:blue:alpha:)
- Name: CGContextSetRGBStrokeColor
  SwiftName: CGContext.setStrokeColor(self:red:green:blue:alpha:)
- Name: CGContextSetStrokeColor
  SwiftName: CGContext.setStrokeColor(self:_:)
- Name: CGContextSetStrokeColorWithColor
  SwiftName: CGContext.setStrokeColor(self:_:)
- Name: CGContextSetCMYKFillColor
  SwiftName: CGContext.setFillColor(self:cyan:magenta:yellow:black:alpha:)
- Name: CGContextSetCMYKStrokeColor
  SwiftName: CGContext.setStrokeColor(self:cyan:magenta:yellow:black:alpha:)
- Name: CGContextSetShadowWithColor
  SwiftName: CGContext.setShadow(self:offset:blur:color:)
# - Name: CGContextSetShadow
#   SwiftName: CGContext.setShadow(self:offset:blur:)
- Name: CGContextSetCharacterSpacing
  SwiftName: CGContext.setCharacterSpacing(self:_:)
- Name: CGContextSetFontSize
  SwiftName: CGContext.setFontSize(self:_:)
# - Name: CGContextBeginPage
#   SwiftName: CGContext.beginPage(self:mediaBox:)
- Name: CGContextSetShouldAntialias
  SwiftName: CGContext.setShouldAntialias(self:_:)
- Name: CGContextSetAllowsAntialiasing
  SwiftName: CGContext.setAllowsAntialiasing(self:_:)
- Name: CGContextSetShouldSmoothFonts
  SwiftName: CGContext.setShouldSmoothFonts(self:_:)
- Name: CGContextSetAllowsFontSmoothing
  SwiftName: CGContext.setAllowsFontSmoothing(self:_:)
- Name: CGContextSetShouldSubpixelPositionFonts
  SwiftName: CGContext.setShouldSubpixelPositionFonts(self:_:)
- Name: CGContextSetAllowsFontSubpixelPositioning
  SwiftName: CGContext.setAllowsFontSubpixelPositioning(self:_:)
- Name: CGContextSetShouldSubpixelQuantizeFonts
  SwiftName: CGContext.setShouldSubpixelQuantizeFonts(self:_:)
- Name: CGContextSetAllowsFontSubpixelQuantization
  SwiftName: CGContext.setAllowsFontSubpixelQuantization(self:_:)
- Name: CGContextBeginTransparencyLayer
  SwiftName: CGContext.beginTransparencyLayer(self:auxiliaryInfo:)
- Name: CGContextBeginTransparencyLayerWithRect
  SwiftName: CGContext.beginTransparencyLayer(self:in:auxiliaryInfo:)
- Name: CGContextConvertPointToDeviceSpace
  SwiftName: CGContext.convertToDeviceSpace(self:_:)
- Name: CGContextConvertPointToUserSpace
  SwiftName: CGContext.convertToUserSpace(self:_:)
- Name: CGContextConvertSizeToDeviceSpace
  SwiftName: CGContext.convertToDeviceSpace(self:_:)
- Name: CGContextConvertSizeToUserSpace
  SwiftName: CGContext.convertToUserSpace(self:_:)
- Name: CGContextConvertRectToDeviceSpace
  SwiftName: CGContext.convertToDeviceSpace(self:_:)
- Name: CGContextConvertRectToUserSpace
  SwiftName: CGContext.convertToUserSpace(self:_:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGContextSetLineDash
  # replaced by setLineDash(phase:lengths:) --  array instead of pointer/count
  SwiftName: CGContext.__setLineDash(self:phase:lengths:count:)
  SwiftPrivate: true
- Name: CGContextMoveToPoint
  # replaced by move(to: CGPoint)
  SwiftName: CGContext.__moveTo(self:x:y:)
  SwiftPrivate: true
- Name: CGContextAddLineToPoint
  # replaced by addLine(to: CGPoint)
  SwiftName: CGContext.__addLineTo(self:x:y:)
  SwiftPrivate: true
- Name: CGContextAddCurveToPoint
  # replaced by addCurve(to:control1:control2:)
  SwiftName: CGContext.__addCurveTo(self:cp1x:cp1y:cp2x:cp2y:endingAtX:y:)
  SwiftPrivate: true
- Name: CGContextAddQuadCurveToPoint
  # replaced by addQuadCurve(to:control:)
  SwiftName: CGContext.__addQuadCurveTo(self:cpx:cpy:endingAtX:y:)
  SwiftPrivate: true
- Name: CGContextAddRects
  # replaced by addRects(_:) -- array instead of pointer/count
  SwiftName: CGContext.__addRects(self:_:count:)
  SwiftPrivate: true
- Name: CGContextAddLines
  # replaced by addLines(between:) -- array instead of pointer/count
  SwiftName: CGContext.__addLines(self:between:count:)
  SwiftPrivate: true
- Name: CGContextAddArc
  # replaced by addArc(center:radius:startAngle:endAngle:clockwise:) -- CW is Bool, not Int32
  SwiftName: CGContext.__addArc(self:centerX:y:radius:startAngle:endAngle:clockwise:)
  SwiftPrivate: true
- Name: CGContextAddArcToPoint
  # replaced by addArc(tangent1End:tangent2End:radius:)
  SwiftName: CGContext.__addArc(self:x1:y1:x2:y2:radius:)
  SwiftPrivate: true
- Name: CGContextFillRects
  # replaced by fill(_ rects: [CGRect]) -- array instead of pointer/count
  SwiftName: CGContext.__fill(self:_:count:)
  SwiftPrivate: true
- Name: CGContextStrokeLineSegments
  # replaced by strokeLineSegments(between points: [CGPoint]) -- array instead of pointer/count
  SwiftName: CGContext.__strokeLineSegments(self:between:count:)
  SwiftPrivate: true
- Name: CGContextClipToRects
  # replaced by clip(to rects: [CGRect]) -- array instead of pointer/count
  SwiftName: CGContext.__clip(self:to:count:)
  SwiftPrivate: true
- Name: CGContextDrawImage
  # replaced by draw(_ image: CGImage, in rect: CGRect, byTiling: Bool = false)
  SwiftName: CGContext.__draw(self:in:image:)
  SwiftPrivate: true
- Name: CGContextDrawTiledImage
  # replaced by draw(_ image: CGImage, in rect: CGRect, byTiling: Bool = false)
  SwiftName: CGContext.__draw(self:in:byTiling:)
  SwiftPrivate: true
- Name: CGContextGetTextPosition
  # replaced by readwrite property
  SwiftName: getter:CGContext.__textPosition(self:)
  SwiftPrivate: true
- Name: CGContextSetTextPosition
  # replaced by readwrite property
  SwiftName: CGContext.__setTextPosition(self:x:y:)
  SwiftPrivate: true
- Name: CGContextShowGlyphsAtPositions
  # replaced by showGlyphs(_:at:) -- array instead of pointer/count
  SwiftName: CGContext.__showGlyphs(self:_:atPositions:count:)
  SwiftPrivate: true
- Name: CGContextFillPath
  # replaced by combining winding and evenOdd rules to one func with an enum
  SwiftName: CGContext.__fillPath(self:)
  SwiftPrivate: true
- Name: CGContextEOFillPath
  # replaced by combining winding and evenOdd rules to one func with an enum
  # has nothing to do with Enterprise Objects
  SwiftName: CGContext.__eoFillPath(self:)
  SwiftPrivate: true
- Name: CGContextClip
  # replaced by combining winding and evenOdd rules to one func with an enum
  SwiftName: CGContext.__clip(self:)
  SwiftPrivate: true
- Name: CGContextEOClip
  # replaced by combining winding and evenOdd rules to one func with an enum
  SwiftName: CGContext.__eoClip(self:)
  SwiftPrivate: true

# CGDataConsumer
# - Name: CGDataConsumerCreateWithURL
#   SwiftName: CGDataConsumer.init(url:)
# - Name: CGDataConsumerCreateWithCFData
#   SwiftName: CGDataConsumer.init(data:)

# CGDataProvider
# - Name: CGDataProviderCreateWithData
#   SwiftName: CGDataProvider.init(dataInfo:data:size:releaseData:)
# - Name: CGDataProviderCreateWithCFData
#   SwiftName: CGDataProvider.init(data:)
# - Name: CGDataProviderCreateWithURL
#   SwiftName: CGDataProvider.init(url:)
- Name: CGDataProviderCopyData
  SwiftName: getter:CGDataProvider.data(self:)

# CGDirectDisplay
- Name: CGDisplayModeCopyPixelEncoding
  SwiftName: getter:CGDisplayMode.pixelEncoding(self:)
- Name: CGDisplayCreateImageForRect
  SwiftName: CGDisplayCreateImage(_:rect:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGGetLastMouseDelta
  # replaced by a version that returns CGVector instead of using out-pointers
  SwiftPrivate: true

# CGEvent
- Name: CGEventCreateFromData
  SwiftName: CGEvent.init(withDataAllocator:data:)
- Name: CGEventCreateData
  SwiftName: getter:CGEvent.data(self:)
- Name: CGEventCreateCopy
  SwiftName: CGEvent.copy(self:)
- Name: CGEventPostToPid
  SwiftName: CGEvent.postToPid(_:self:)
- Name: CGEventCreateSourceFromEvent
  SwiftName: CGEventSource.init(event:)

# CGFont
- Name: CGFontCreateWithDataProvider
  SwiftName: CGFont.init(_:)
- Name: CGFontCreateWithFontName
  SwiftName: CGFont.init(_:)
- Name: CGFontCopyPostScriptName
  SwiftName: getter:CGFont.postScriptName(self:)
- Name: CGFontCopyFullName
  SwiftName: getter:CGFont.fullName(self:)
- Name: CGFontCopyVariationAxes
  SwiftName: getter:CGFont.variationAxes(self:)
- Name: CGFontCopyVariations
  SwiftName: getter:CGFont.variations(self:)
- Name: CGFontCopyGlyphNameForGlyph
  SwiftName: CGFont.name(self:for:)
- Name: CGFontCopyTableTags
  SwiftName: getter:CGFont.tableTags(self:)
- Name: CGFontCopyTableForTag
  SwiftName: CGFont.table(self:for:)
- Name: CGFontCreateCopyWithVariations
  SwiftName: CGFont.copy(self:withVariations:)

# CGGeometry
- Name: CGPointCreateDictionaryRepresentation
  SwiftName: getter:CGPoint.dictionaryRepresentation(self:)
- Name: CGSizeCreateDictionaryRepresentation
  SwiftName: getter:CGSize.dictionaryRepresentation(self:)
- Name: CGRectCreateDictionaryRepresentation
  SwiftName: getter:CGRect.dictionaryRepresentation(self:)
- Name: CGPointEqualToPoint
  SwiftName: CGPoint.equalTo(self:_:)
- Name: CGSizeEqualToSize
  SwiftName: CGSize.equalTo(self:_:)
- Name: CGRectEqualToRect
  SwiftName: CGRect.equalTo(self:_:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGRectDivide
  # hide the pointer version in favor of the tuple-return version
  SwiftName: CGRect.__divided(self:slice:remainder:atDistance:from:)
  SwiftPrivate: true
- Name: CGPointMakeWithDictionaryRepresentation
  # hide in favor of an init (can't map to initializer because out-pointer)
  SwiftName: CGPoint.__setFromDictionaryRepresentation(_:_:)
  SwiftPrivate: true
- Name: CGSizeMakeWithDictionaryRepresentation
  # hide in favor of an init (can't map to initializer because out-pointer)
  SwiftName: CGSize.__setFromDictionaryRepresentation(_:_:)
  SwiftPrivate: true
- Name: CGRectMakeWithDictionaryRepresentation
  # hide in favor of an init (can't map to initializer because out-pointer)
  SwiftName: CGRect.__setFromDictionaryRepresentation(_:_:)
  SwiftPrivate: true

# CGGradient
- Name: CGGradientCreateWithColorComponents
  SwiftName: CGGradient.init(colorSpace:colorComponents:locations:count:)
- Name: CGGradientCreateWithColorSpace
  SwiftName: CGGradient.init(colorSpace:colors:locations:)

# CGImage
- Name: CGImageCreateCopy
  SwiftName: CGImage.copy(self:)
- Name: CGImageCreateCopyWithColorSpace
  SwiftName: CGImage.copy(self:colorSpace:)
- Name: CGImageCreateWithImageInRect
  SwiftName: CGImage.cropping(self:to:)
- Name: CGImageCreateWithMask
  SwiftName: CGImage.masking(self:_:)
- Name: CGImageIsMask
  SwiftName: getter:CGImage.isMask(self:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGImageCreateWithMaskingColors
  # replaced by a version that takes an array instead of UnsafePointer
  SwiftName: CGImage.__copy(self:maskingColorComponents:)
  SwiftPrivate: true

# CGLayer
- Name: CGLayerCreateWithContext
  SwiftName: CGLayer.init(_:size:auxiliaryInfo:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGContextDrawLayerInRect
  # API notes can't rearrange args, want layer first to match draw(image:) etc
  SwiftName: CGContext.__draw(self:in:layer:)
  SwiftPrivate: true
- Name: CGContextDrawLayerAtPoint
  # API notes can't rearrange args, want layer first to match draw(image:) etc
  SwiftName: CGContext.__draw(self:at:layer:)
  SwiftPrivate: true

# CGPDFContext
- Name: CGPDFContextCreate
  SwiftName: CGContext.init(consumer:mediaBox:_:)
- Name: CGPDFContextCreateWithURL
  SwiftName: CGContext.init(_:mediaBox:_:)
- Name: CGPDFContextClose
  SwiftName: CGContext.closePDF(self:)
- Name: CGPDFContextBeginPage
  SwiftName: CGContext.beginPDFPage(self:_:)
- Name: CGPDFContextEndPage
  SwiftName: CGContext.endPDFPage(self:)
- Name: CGPDFContextAddDocumentMetadata
  SwiftName: CGContext.addDocumentMetadata(self:_:)
- Name: CGPDFContextSetURLForRect
  SwiftName: CGContext.setURL(self:_:for:)
- Name: CGPDFContextAddDestinationAtPoint
  SwiftName: CGContext.addDestination(self:_:at:)
- Name: CGPDFContextSetDestinationForRect
  SwiftName: CGContext.setDestination(self:_:for:)

# CGPDFDocument
- Name: CGPDFDocumentGetID
  SwiftName: getter:CGPDFDocument.fileIdentifier(self:)
- Name: CGPDFDocumentIsEncrypted
  SwiftName: getter:CGPDFDocument.isEncrypted(self:)
- Name: CGPDFDocumentIsUnlocked
  SwiftName: getter:CGPDFDocument.isUnlocked(self:)
- Name: CGPDFDocumentAllowsPrinting
  SwiftName: getter:CGPDFDocument.allowsPrinting(self:)
- Name: CGPDFDocumentAllowsCopying
  SwiftName: getter:CGPDFDocument.allowsCopying(self:)
- Name: CGPDFDocumentCreateWithProvider
  SwiftName: CGPDFDocument.init(_:)
- Name: CGPDFDocumentCreateWithURL
  SwiftName: CGPDFDocument.init(_:)
- Name: CGPDFDocumentUnlockWithPassword
  SwiftName: CGPDFDocument.unlockWithPassword(self:_:)
- Name: CGPDFDocumentGetPage
  SwiftName: CGPDFDocument.page(self:at:)
# CGPDFPage
# FIXME: cannot be getter, due to extra parameter
# - Name: CGPDFPageGetBoxRect
#   SwiftName: getter:CGPDFPage.boxRect(self:)
# CGPSConverter
- Name: CGPSConverterIsConverting
  SwiftName: getter:CGPSConverter.isConverting(self:)

# CGPath
- Name: CGPathCreateCopy
  SwiftName: CGPath.copy(self:)
- Name: CGPathCreateCopyByTransformingPath
  SwiftName: CGPath.copy(self:using:)
- Name: CGPathCreateMutableCopy
  SwiftName: CGPath.mutableCopy(self:)
- Name: CGPathCreateMutableCopyByTransformingPath
  SwiftName: CGPath.mutableCopy(self:using:)
- Name: CGPathGetPathBoundingBox
  SwiftName: getter:CGPath.boundingBoxOfPath(self:)
- Name: CGPathIsEmpty
  SwiftName: getter:CGPath.isEmpty(self:)
# These are hidden so we can improve them further in the SDK overlay
- Name: CGPathCreateCopyByDashingPath
  # replaced by copy(...) method, move transform to end, pointer/count => array
  SwiftName: CGPath.init(__byDashing:transform:phase:lengths:count:)
  SwiftPrivate: true
- Name: CGPathCreateCopyByStrokingPath
  # replaced by copy(...) method, move transform to end
  SwiftName: CGPath.init(__byStroking:transform:lineWidth:lineCap:lineJoin:miterLimit:)
  SwiftPrivate: true
- Name: CGPathContainsPoint
  # replaced to move transform to end
  # TODO: replace eoFill with a FillRule enum for clarity
  SwiftName: CGPath.__containsPoint(self:transform:point:eoFill:)
  SwiftPrivate: true
- Name: CGPathEqualToPath
  # replaced in favor of == / Equatable
  SwiftName: CGPath.__equalTo(self:_:)
  SwiftPrivate: true
- Name: CGPathAddRoundedRect
  SwiftName: CGMutablePath.__addRoundedRect(self:transform:rect:cornerWidth:cornerHeight:)
- Name: CGPathMoveToPoint
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__moveTo(self:transform:x:y:)
  SwiftPrivate: true
- Name: CGPathAddLineToPoint
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addLineTo(self:transform:x:y:)
  SwiftPrivate: true
- Name: CGPathAddCurveToPoint
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addCurve(self:transform:cp1x:cp1y:cp2x:cp2y:endingAtX:y:)
  SwiftPrivate: true
- Name: CGPathAddQuadCurveToPoint
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addQuadCurve(self:transform:cpx:cpy:endingAtX:y:)
  SwiftPrivate: true
- Name: CGPathAddRect
  # replaced to move transform to end
  SwiftName: CGMutablePath.__addRect(self:transform:rect:)
  SwiftPrivate: true
- Name: CGPathAddRects
  # replaced to move transform to end, use array not pointer/count
  SwiftName: CGMutablePath.__addRects(self:transform:rects:count:)
  SwiftPrivate: true
- Name: CGPathAddLines
  # replaced to use CGPoint, move transform to end, use array not pointer/count
  SwiftName: CGMutablePath.__addLines(self:transform:between:count:)
  SwiftPrivate: true
- Name: CGPathAddEllipseInRect
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addEllipse(self:transform:rect:)
  SwiftPrivate: true
- Name: CGPathAddRelativeArc
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addRelativeArc(self:transform:x:y:radius:startAngle:delta:)
  SwiftPrivate: true
- Name: CGPathAddArc
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addArc(self:transform:x:y:radius:startAngle:endAngle:clockwise:)
  SwiftPrivate: true
- Name: CGPathAddArcToPoint
  # replaced to use CGPoint, move transform to end
  SwiftName: CGMutablePath.__addArc(self:transform:x1:y1:x2:y2:radius:)
  SwiftPrivate: true
- Name: CGPathAddPath
  # replaced to move transform to end
  SwiftName: CGMutablePath.__addPath(self:transform:path:)
  SwiftPrivate: true

#
# Global variables
#
Globals:
# The below are globals that are defined as opaque C constants for no good
# reason.
- Name: CGPointZero
  Availability: nonswift
- Name: CGSizeZero
  Availability: nonswift
- Name: CGVectorZero
  Availability: nonswift
- Name: CGRectZero
  Availability: nonswift
- Name: CGAffineTransformIdentity
  Availability: nonswift
# The below are not available in Swift
- Name: kCGColorSpaceGenericGray
  Availability: nonswift
- Name: kCGColorSpaceGenericRGB
  Availability: nonswift
- Name: kCGColorSpaceSRGB
  SwiftName: CGColorSpace.sRGB
# These are actual constant colors, not color names, in the overlay
- Name: kCGColorWhite
  SwiftName: CGColor.__whiteColorName
  SwiftPrivate: true
- Name: kCGColorBlack
  SwiftName: CGColor.__blackColorName
  SwiftPrivate: true
- Name: kCGColorClear
  SwiftName: CGColor.__clearColorName
  SwiftPrivate: true

#
# Enums
#
Enumerators:
# The below are attempts at providing better names than inference
# CGColorSpace
- Name: kCGRenderingIntentDefault
  SwiftName: CGColorRenderingIntent.defaultIntent
- Name: kCGRenderingIntentAbsoluteColorimetric
  SwiftName: CGColorRenderingIntent.absoluteColorimetric
- Name: kCGRenderingIntentRelativeColorimetric
  SwiftName: CGColorRenderingIntent.relativeColorimetric
- Name: kCGRenderingIntentPerceptual
  SwiftName: CGColorRenderingIntent.perceptual
- Name: kCGRenderingIntentSaturation
  SwiftName: CGColorRenderingIntent.saturation
- Name: kCGMomentumScrollPhaseContinue
  SwiftName: CGMomentumScrollPhase.continuous
- Name: kCGColorSpaceModelRGB
  SwiftName: CGColorSpaceModel.rgb
- Name: kCGColorSpaceModelCMYK
  SwiftName: CGColorSpaceModel.cmyk

# CGContext
- Name: kCGBlendModeXOR
  SwiftName: CGBlendMode.xor
# CGEventTypes
- Name: kCGEventMouseSubtypeDefault
  SwiftName: CGEventMouseSubtype.defaultType
- Name: kCGEventTapOptionDefault
  SwiftName: CGEventTapOptions.defaultTap
- Name: kCGEventSourceStatePrivate
  SwiftName: CGEventSourceStateID.privateState
# CGImage
- Name: kCGImageAlphaOnly
  SwiftName: alphaOnly
# CGWindowLevel
- Name: kCGBaseWindowLevelKey
  SwiftName: CGWindowLevelKey.baseWindow
- Name: kCGMinimumWindowLevelKey
  SwiftName: CGWindowLevelKey.minimumWindow
- Name: kCGDesktopWindowLevelKey
  SwiftName: CGWindowLevelKey.desktopWindow
- Name: kCGDesktopIconWindowLevelKey
  SwiftName: CGWindowLevelKey.desktopIconWindow
- Name: kCGBackstopMenuLevelKey
  SwiftName: CGWindowLevelKey.backstopMenu
- Name: kCGNormalWindowLevelKey
  SwiftName: CGWindowLevelKey.normalWindow
- Name: kCGFloatingWindowLevelKey
  SwiftName: CGWindowLevelKey.floatingWindow
- Name: kCGTornOffMenuWindowLevelKey
  SwiftName: CGWindowLevelKey.tornOffMenuWindow
- Name: kCGDockWindowLevelKey
  SwiftName: CGWindowLevelKey.dockWindow
- Name: kCGMainMenuWindowLevelKey
  SwiftName: CGWindowLevelKey.mainMenuWindow
- Name: kCGStatusWindowLevelKey
  SwiftName: CGWindowLevelKey.statusWindow
- Name: kCGModalPanelWindowLevelKey
  SwiftName: CGWindowLevelKey.modalPanelWindow
- Name: kCGPopUpMenuWindowLevelKey
  SwiftName: CGWindowLevelKey.popUpMenuWindow
- Name: kCGDraggingWindowLevelKey
  SwiftName: CGWindowLevelKey.draggingWindow
- Name: kCGScreenSaverWindowLevelKey
  SwiftName: CGWindowLevelKey.screenSaverWindow
- Name: kCGMaximumWindowLevelKey
  SwiftName: CGWindowLevelKey.maximumWindow
- Name: kCGOverlayWindowLevelKey
  SwiftName: CGWindowLevelKey.overlayWindow
- Name: kCGHelpWindowLevelKey
  SwiftName: CGWindowLevelKey.helpWindow
- Name: kCGUtilityWindowLevelKey
  SwiftName: CGWindowLevelKey.utilityWindow
- Name: kCGCursorWindowLevelKey
  SwiftName: CGWindowLevelKey.cursorWindow
- Name: kCGAssistiveTechHighWindowLevelKey
  SwiftName: CGWindowLevelKey.assistiveTechHighWindow
# CGConfigureOption
- Name: kCGConfigureForAppOnly
  SwiftName: forAppOnly
# CGScreenUpdateOperation
- Name: kCGScreenUpdateOperationRefresh
  SwiftName: refresh
# CGWindowListOption
- Name: kCGWindowListOptionAll
  SwiftName: optionAll


#
# Tags
#
Tags:
# The below are not available in Swift
- Name: CGGlypDeprecatedEnum
  Availability: nonswift
