だらだら〜個人事業〜

HatenaDiaryから引っ越してきました。Githubもnyakagawanです。

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対応してないのか…?