我將圖像作爲紋理添加到金屬球體中。使用swift 2.0,但我得到一個錯誤CGBitmapInfo(選項),它說:不能用類型'(UInt32)'的參數列表調用類型'CGBitmapInfo'的初始值設定項...任何人都知道如何解決它?這裏是我的代碼:無法使用類型爲'(UInt32)'的參數列表調用類型爲'CGBitmapInfo'的初始值設定項。
func textureForImage(image:UIImage, device:MTLDevice) -> MTLTexture?
{
let imageRef = image.CGImage
let width = CGImageGetWidth(imageRef)
let height = CGImageGetHeight(imageRef)
let colorSpace = CGColorSpaceCreateDeviceRGB()
let rawData = calloc(height * width * 4, sizeof(UInt8))
let bytesPerPixel = 4
let bytesPerRow = bytesPerPixel * width
let bitsPerComponent = 8
let options = CGImageAlphaInfo.PremultipliedLast.rawValue | CGBitmapInfo.ByteOrder32Big.rawValue
let context = CGBitmapContextCreate(rawData,
width,
height,
bitsPerComponent,
bytesPerRow,
colorSpace,
CGBitmapInfo(options))
CGContextDrawImage(context, CGRectMake(0, 0, CGFloat(width), CGFloat(height)), imageRef)
let textureDescriptor = MTLTextureDescriptor.texture2DDescriptorWithPixelFormat(.RGBA8Unorm,
width: Int(width),
height: Int(height),
mipmapped: true)
let texture = device.newTextureWithDescriptor(textureDescriptor)
let region = MTLRegionMake2D(0, 0, Int(width), Int(height))
texture.replaceRegion(region,
mipmapLevel: 0,
slice: 0,
withBytes: rawData,
bytesPerRow: bytesPerRow,
bytesPerImage: bytesPerRow * height)
free(rawData)
return texture
}
檢查了這一點 - http://stackoverflow.com/questions/24109149/cgbitmapcontextcreate-error-with-swift – Shripada
好〜謝謝你... – Eleanor