88 const std::vector<ShaderStageIOSlot>& inputs,
89 const std::vector<ShaderStageBufferLayout>& layouts) {
90 auto descriptor = descriptor_ = [MTLVertexDescriptor vertexDescriptor];
95 for (
size_t i = 0;
i < inputs.size();
i++) {
96 const auto&
input = inputs[
i];
98 if (vertex_format == MTLVertexFormatInvalid) {
102 auto attrib = descriptor.attributes[
input.location];
103 attrib.format = vertex_format;
104 attrib.offset =
input.offset;
109 for (
size_t i = 0;
i < layouts.size();
i++) {
110 const auto& layout = layouts[
i];
114 vertex_layout.stride = layout.stride;
115 vertex_layout.stepRate = 1u;
117 ? MTLVertexStepFunctionPerInstance
118 : MTLVertexStepFunctionPerVertex;