82 std::array<VkVertexInputAttributeDescription, 3>
83 attributeDescriptions {};
85 attributeDescriptions[0].binding = 0;
86 attributeDescriptions[0].location = 0;
87 attributeDescriptions[0].format = VK_FORMAT_R32G32B32_SFLOAT;
88 attributeDescriptions[0].offset = offsetof(
GPUVertex,
pos);
90 attributeDescriptions[1].binding = 0;
91 attributeDescriptions[1].location = 1;
92 attributeDescriptions[1].format = VK_FORMAT_R32G32B32_SFLOAT;
95 attributeDescriptions[2].binding = 0;
96 attributeDescriptions[2].location = 2;
97 attributeDescriptions[2].format = VK_FORMAT_R32G32_SFLOAT;
100 return attributeDescriptions;
134 std::array<VkVertexInputAttributeDescription, 4>
135 attributeDescriptions {};
137 for (std::size_t i = 0; i < 4; ++i) {
138 attributeDescriptions[i].binding = 1;
139 attributeDescriptions[i].location =
static_cast<uint32_t
>(3 + i);
140 attributeDescriptions[i].format = VK_FORMAT_R32G32B32A32_SFLOAT;
141 attributeDescriptions[i].offset =
142 static_cast<uint32_t
>(i *
sizeof(glm::vec4));
145 return attributeDescriptions;
184 auto color32Bit = vertex.getColor();
185 auto red = color32Bit.getRed() / 255.0f;
186 auto green = color32Bit.getGreen() / 255.0f;
187 auto blue = color32Bit.getBlue() / 255.0f;
189 return GPUVertex { glm::vec3(vertex.getPosition().x,
190 vertex.getPosition().y,
191 vertex.getPosition().z),
192 glm::vec3(red, green, blue),
193 glm::vec2(vertex.getTextureCoordinates().x,
194 vertex.getTextureCoordinates().y) };