Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2011-01-21 14:41:35 +0000
committerStijn Buys <ingar@osirion.org>2011-01-21 14:41:35 +0000
commit035653e94a3d74b8f18c993034199d7cd08a895a (patch)
tree6acc56c14a86b499657b6e7faaf50f9e6f7ff57d /src/model/vertexarray.cc
parent4af61dca099d2b7010d4fa83833ceeeef01b0b0f (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.cc50
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;
}
}