Swiftでなんかゲームを5
swiftでvoid*でバッファを確保しつつ、任意の構造体にキャストして値を書き込む。ということをやってみた。頂点バッファなどにつかいたい
struct Int3 { var x: Int = 1 var y: Int = 2 var z: Int = 3 } var allocSize = sizeof(Int3)*10 var usp = UnsafeMutablePointer<Void>.alloc(allocSize) for var i:Int=0; i<10; i++ { var tmp = Int3() tmp.x = i tmp.y = i tmp.z = i var usptmp = UnsafeMutablePointer<Int3>(usp) + i memcpy(usptmp, &tmp, UInt(sizeof(Int3))) } for var i=0; i<10; i++ { var usptmp = UnsafePointer<Int3>(usp) + i var i3 = usptmp.memory print("\(i) : \(i3.x),\(i3.y),\(i3.z)") } usp.dealloc(allocSize)
書き込みで、memcpyつかってるけど、直接 usptmp.memory.x でアクセスしても良い。
てか、はてな記法ってswiftのSyntaxHilight対応してないのか…?