Swift 4.2, iOS 12.1, Xcode 10.1
Я пытаюсь использовать MetalKit для рисования кривой / линии на экране.
Вот некоторый относительный код моего класса Renderer.
//TWO Points here
var vertices: [Float] = [
0.7, 0.7 , 0.0,
0.7, 0.8, 0.0
]
//maker buffer
vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout<Float>.size, options: [])
commandEncoder?.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
commandEncoder?.drawPrimitives(type: .lineStrip , vertexStart: 0, vertexCount: vertices.count)
Вот мой код Shader.metal.
#include <metal_stdlib>
using namespace metal;
vertex float4 vertex_shader(const device packed_float3 *vertices [[ buffer(0) ]], uint vertexId [[vertex_id]]){
return float4(vertices[vertexId], 1);
}
fragment half4 fragment_shader(){
return half4(1, 0, 0, 1);
}
но, наконец, я получил это, посмотрите на картинку.
Почему это всегда конец в центре экрана, как я могу это исправить?
Кстати, есть ли хороший учебник MetalKit для изучения?