diff options
author | Stijn Buys <ingar@osirion.org> | 2011-01-21 14:41:35 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2011-01-21 14:41:35 +0000 |
commit | 035653e94a3d74b8f18c993034199d7cd08a895a (patch) | |
tree | 6acc56c14a86b499657b6e7faaf50f9e6f7ff57d /src/model/vertexarray.cc | |
parent | 4af61dca099d2b7010d4fa83833ceeeef01b0b0f (diff) |
Support structures for complex entity collision,
renamed sv_arrysize cvar to mem_vertex.
Diffstat (limited to 'src/model/vertexarray.cc')
-rw-r--r-- | src/model/vertexarray.cc | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/src/model/vertexarray.cc b/src/model/vertexarray.cc index d06b976..881e266 100644 --- a/src/model/vertexarray.cc +++ b/src/model/vertexarray.cc @@ -14,37 +14,39 @@ namespace model { -VertexArray *VertexArray::vertex_instance = 0 ; +VertexArray *VertexArray::vertexarray_instance = 0 ; VertexArray::VertexArray(size_t size) { - vertex_instance = this; + assert(size > 0); + + vertexarray_instance = this; - vertex_size = size * 1024 * 1024; // megabytes - vertex_size = vertex_size / sizeof(float); // sizeof float + vertexarray_size = size * 1024 * 1024; // megabytes + vertexarray_size = vertexarray_size / sizeof(float); // sizeof float - vertex_data = (float *) malloc(vertex_size * sizeof(float)); + vertexarray_data = (float *) malloc(vertexarray_size * sizeof(float)); con_print << "^BInitializing vertex array..." << std::endl; - con_print << " " << (vertex_size * sizeof(float)) / (1024 * 1024) << " Mb allocated" << std::endl; + con_print << " " << (vertexarray_size * sizeof(float)) / (1024 * 1024) << " Mb allocated" << std::endl; clear(); } VertexArray::~VertexArray() { - free(vertex_data); + free(vertexarray_data); - vertex_instance = 0 ; + vertexarray_instance = 0 ; } void VertexArray::clear() { - vertex_dirty = true; - vertex_index = 0; - vertex_overflow = false; + vertexarray_dirty = true; + vertexarray_index = 0; + vertexarray_overflow = false; - memset(vertex_data, 0, sizeof(vertex_data)); + memset(vertexarray_data, 0, sizeof(vertexarray_data)); add_sphere(); } @@ -106,10 +108,10 @@ void VertexArray::add_sphere() size_t VertexArray::add_vertex(math::Vector3f const &v, math::Vector3f const &n, float tex_x, float tex_y) { - if (vertex_index + 8 >= vertex_size) { - if (!vertex_overflow) { + if (vertexarray_index + 8 >= vertexarray_size) { + if (!vertexarray_overflow) { con_warn << "VertexArray overflow!" << std::endl; - vertex_overflow = true; + vertexarray_overflow = true; } return 0; } @@ -117,19 +119,19 @@ size_t VertexArray::add_vertex(math::Vector3f const &v, math::Vector3f const &n, // GL_T2F_N3F_V3F // texture coordinates - vertex_data[vertex_index] = tex_x; - vertex_data[vertex_index+1] = tex_y; + vertexarray_data[vertexarray_index] = tex_x; + vertexarray_data[vertexarray_index+1] = tex_y; for (int i = 0; i < 3; i ++) { // normal - vertex_data[vertex_index+2+i] = n[i]; + vertexarray_data[vertexarray_index+2+i] = n[i]; // vertex coordinates - vertex_data[vertex_index+5+i] = v[i]; + vertexarray_data[vertexarray_index+5+i] = v[i]; } - vertex_index += 8; + vertexarray_index += 8; - vertex_dirty = true; + vertexarray_dirty = true; return 1; } @@ -138,9 +140,9 @@ void VertexArray::info() { const size_t mbfl = 1024 * 1024 / sizeof(float); con_print << " vertex array " - << vertex_index / mbfl << "/" << vertex_size / mbfl << "Mib " - << vertex_index / 8 << "/" << vertex_size / 8 << " verts " - << "^B" << vertex_index * 100 / vertex_size << "%^N used" << std::endl; + << vertexarray_index / mbfl << "/" << vertexarray_size / mbfl << "Mib " + << vertexarray_index / 8 << "/" << vertexarray_size / 8 << " verts " + << "^B" << vertexarray_index * 100 / vertexarray_size << "%^N used" << std::endl; } } |