

こんにちは、Objective-CからSwiftへの移植中に以下の代入部分で変換が出来なくなり、質問させて頂きました。

Source Code

[code]

    let positionsArray: vector_float3 = _templeVertexPositions.contents()
    
[/code]

Origin Code

[code]

    vector_float3 *positionsArray = (vector_float3 *)_templeVertexPositions.contents;
    
[/code]

Error Code

[code]

    Cannot convert value of type 'UnsafeMutableRawPointer' to specified type 'vector_float3' (aka 'SIMD3<Float>')
    
[/code]

移植を行なっているコード  
<https://developer.apple.com/documentation/metal/migrating_opengl_code_to_metal>

_vector_float3_ でも変換できず困っています。  
型が違う配列同士を変換すれば出来そうな気はするのですが、解決出来ません。  
何か良い方法があればよろしくお願いします。


CC BY-SA 4.0
2021-05-23T14:41:15.283
76029
2021-05-23T22:39:20.633
40868
question
swift objective-c
SwiftのMetalで型変換ができない


自己解決出来ました！

let positionsArray: [vector_float3] = [vector_float3](_immutableCocoaArray:
_templeVertexPositions)

※追記 多分、こっちの方が正しそうです  
let positionsArray: UnsafeMutableRawPointer =
_templeVertexPositions.contents()


CC BY-SA 4.0
2021-05-23T22:11:18.893
76033
2021-05-23T22:39:20.633
2021-05-23T22:39:20.633
40868
40868
76029
answer