---
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
  SwiftName: __CGGetLastMouseDelta
  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
