41{
42 if (!mesh)
43 {
44 std::cout << "In Model " << name << " mesh not available.\n";
45 return;
46 }
47
48 if (!mesh->IsValid())
49 {
50 std::cout << "In Model " << name << " mesh not valid.\n";
51 return;
52 }
53
54 glBindVertexArray(vao);
55 glBindBuffer(GL_ARRAY_BUFFER, vbo);
56 glBufferData(GL_ARRAY_BUFFER,
sizeof(
Vert) * mesh->vertexCount, mesh->vert, GL_DYNAMIC_DRAW);
57 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
58 glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(int) * mesh->indexCount, mesh->indices, GL_DYNAMIC_DRAW);
59 glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE,
sizeof(
Vert), (
void *)offsetof(
Vert, position));
60 glEnableVertexAttribArray(0);
61 glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE,
sizeof(
Vert), (
void *)offsetof(
Vert, normal));
62 glEnableVertexAttribArray(1);
63 glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE,
sizeof(
Vert), (
void *)offsetof(
Vert, texCoord));
64 glEnableVertexAttribArray(2);
65 glVertexAttribPointer(3, 4, GL_FLOAT, GL_FALSE,
sizeof(
Vert), (
void *)offsetof(
Vert, extras1));
66 glEnableVertexAttribArray(3);
67}