MCPcopy Create free account
hub / github.com/WolfireGames/overgrowth / createVBO

Method createVBO

Source/Graphics/model.cpp:1772–1810  ·  view source on GitHub ↗

Set up simp_vertex buffer object

Source from the content-addressed store, hash-verified

1770
1771// Set up simp_vertex buffer object
1772void Model::createVBO() {
1773 CHECK_GL_ERROR();
1774
1775 VBO_vertices.Fill(kVBOFloat | kVBOStatic, vertices.size() * sizeof(float), &vertices[0]);
1776 if (!normals.empty()) {
1777 VBO_normals.Fill(kVBOFloat | kVBOStatic, vertices.size() * sizeof(float), &normals[0]);
1778 }
1779 CHECK_GL_ERROR();
1780 if (!tangents.empty()) {
1781 VBO_tangents.Fill(kVBOFloat | kVBOStatic, vertices.size() * sizeof(float), &tangents[0]);
1782 }
1783 CHECK_GL_ERROR();
1784 if (!bitangents.empty()) {
1785 VBO_bitangents.Fill(kVBOFloat | kVBOStatic, vertices.size() * sizeof(float), &bitangents[0]);
1786 }
1787
1788 CHECK_GL_ERROR();
1789 VBO_tex_coords.Fill(kVBOFloat | kVBOStatic, vertices.size() / 3 * 2 * sizeof(float), &tex_coords[0]);
1790
1791 CHECK_GL_ERROR();
1792 if (!tex_coords2.empty()) {
1793 VBO_tex_coords2.Fill(kVBOFloat | kVBOStatic, vertices.size() / 3 * 2 * sizeof(float), &tex_coords2[0]);
1794 }
1795
1796 if (!aux.empty()) {
1797 VBO_aux.Fill(kVBOFloat | kVBOStatic, vertices.size() * sizeof(float), &aux[0]);
1798 }
1799
1800 CHECK_GL_ERROR();
1801 VBO_faces.Fill(kVBOElement | kVBOStatic, faces.size() * sizeof(GLuint), &faces[0]);
1802
1803 CHECK_GL_ERROR();
1804 Graphics *graphics = Graphics::Instance();
1805 graphics->BindArrayVBO(0);
1806 graphics->BindElementVBO(0);
1807 vbo_loaded = true;
1808
1809 CHECK_GL_ERROR();
1810}
1811
1812struct ChildHit {
1813 float time;

Callers 11

RenderCubeMapMethod · 0.80
DrawMethod · 0.80
BakeTerrainTextureMethod · 0.80
DrawModelVertsFunction · 0.80
DrawItemModelFunction · 0.80
DrawModelMethod · 0.80
DrawMethod · 0.80
DrawPatchModelFunction · 0.80
DrawDepthMapMethod · 0.80
DrawMethod · 0.80
DrawInstancesMethod · 0.80

Calls 5

BindArrayVBOMethod · 0.80
BindElementVBOMethod · 0.80
FillMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected