我想把它转换成swift,或者至少找到做同样事情的东西。
size_t width = CGImageGetWidth(spriteImage);
size_t height = CGImageGetHeight(spriteImage);
GLubyte * spriteData = (GLubyte *) calloc(width*height*4, sizeof(GLubyte));
我需要以正确大小的swift初始化spriteData指针。
答案 0 :(得分:5)
其中前两个是size_t
类型,在Swift中映射到Uint
,最后一个是GLubyte
,映射到UInt8
。此代码会将spriteData
初始化为GLubyte
数组,您可以将其传递给需要UnsafeMutablePointer<GLubyte>
或UnsafePointer<GLubyte>
的任何C函数:
let width = CGImageGetWidth(spriteImage)
let height = CGImageGetHeight(spriteImage)
var spriteData: [GLubyte] = Array(count: Int(width * height * 4), repeatedValue: 0)
您需要对spriteData
做什么?
答案 1 :(得分:1)
直截了当的方式是:
var spriteData = UnsafeMutablePointer<GLubyte>.alloc(Int(width * height * 4))
请注意,如果您这样做,则必须手动dealloc
。
spriteData.dealloc(Int(width * height * 4))
/// Deallocate `num` objects.
///
/// :param: num number of objects to deallocate. Should match exactly
/// the value that was passed to `alloc()` (partial deallocations are not
/// possible).