Как понять glVertexAttribPointer с UnsafeMutablePointer от Swift 4.2? - PullRequest
0 голосов
/ 06 ноября 2018

Я пишу некоторый код об OpenGL ES. и я рисую треугольник и хочу нанести на него изображение в качестве текстуры. Поэтому я определяю такую ​​структуру.

struct SceneVertor {
   var postion : GLKVector3
   var texture : GLKVector2

   init(_ value:(Float, Float, Float, Float, Float)) {
      self.postion = GLKVector3(v: (value.0, value.1, value.2))
      self.texture = GLKVector2(v: (value.3, value.4))
   }
}

но когда я нашел glVertexAttribPointer функцию. Последний аргумент - это тип UnSafeRowPointer. В Objective-C этот аргумент может быть

Null + offsetof(SceneVertor, texture)

но я не понимаю, чтобы изменить это с помощью Swift.

В Swift 4.2 мы можем рассчитать смещение следующим образом

MemoryLayout<SceneVertor>.offset(of: \SceneVertor.texture)

Теперь, как я могу использовать его в функции glVertexAttribPointer.

ТНХ.

...