Browse Source

fix mins, maxs

David Rose 20 years ago
parent
commit
0a69536643
1 changed files with 5 additions and 5 deletions
  1. 5 5
      panda/src/glstuff/glGraphicsStateGuardian_src.cxx

+ 5 - 5
panda/src/glstuff/glGraphicsStateGuardian_src.cxx

@@ -2519,7 +2519,7 @@ draw_tristrips(const qpGeomTristrips *primitive) {
     int index_stride = primitive->get_index_stride();
     int index_stride = primitive->get_index_stride();
 
 
     qpGeomVertexReader mins(primitive->get_mins(), 0);
     qpGeomVertexReader mins(primitive->get_mins(), 0);
-    qpGeomVertexReader maxs(primitive->get_mins(), 0);
+    qpGeomVertexReader maxs(primitive->get_maxs(), 0);
     nassertv(mins.get_num_vertices() == (int)ends.size() && 
     nassertv(mins.get_num_vertices() == (int)ends.size() && 
              maxs.get_num_vertices() == (int)ends.size());
              maxs.get_num_vertices() == (int)ends.size());
     
     
@@ -2553,7 +2553,7 @@ draw_trifans(const qpGeomTrifans *primitive) {
   int index_stride = primitive->get_index_stride();
   int index_stride = primitive->get_index_stride();
 
 
   qpGeomVertexReader mins(primitive->get_mins(), 0);
   qpGeomVertexReader mins(primitive->get_mins(), 0);
-  qpGeomVertexReader maxs(primitive->get_mins(), 0);
+  qpGeomVertexReader maxs(primitive->get_maxs(), 0);
   nassertv(mins.get_num_vertices() == (int)ends.size() && 
   nassertv(mins.get_num_vertices() == (int)ends.size() && 
            maxs.get_num_vertices() == (int)ends.size());
            maxs.get_num_vertices() == (int)ends.size());
 
 
@@ -2564,7 +2564,7 @@ draw_trifans(const qpGeomTrifans *primitive) {
                          mins.get_data1i(), maxs.get_data1i(), ends[i] - start,
                          mins.get_data1i(), maxs.get_data1i(), ends[i] - start,
                          get_numeric_type(primitive->get_index_type()), 
                          get_numeric_type(primitive->get_index_type()), 
                          client_pointer + start * index_stride);
                          client_pointer + start * index_stride);
-    start = ends[i] + 2;
+    start = ends[i];
   }
   }
     
     
   report_my_gl_errors();
   report_my_gl_errors();
@@ -2913,7 +2913,7 @@ apply_vertex_buffer(VertexBufferContext *vbc) {
         << "copying " << gvbc->get_data()->get_data_size_bytes()
         << "copying " << gvbc->get_data()->get_data_size_bytes()
         << " bytes into vertex buffer " << gvbc->_index << "\n";
         << " bytes into vertex buffer " << gvbc->_index << "\n";
     }
     }
-    if (gvbc->changed_size()) {
+    if (gvbc->changed_size() || gvbc->changed_usage_hint()) {
       _glBufferData(GL_ARRAY_BUFFER, gvbc->get_data()->get_data_size_bytes(),
       _glBufferData(GL_ARRAY_BUFFER, gvbc->get_data()->get_data_size_bytes(),
                     gvbc->get_data()->get_data(), 
                     gvbc->get_data()->get_data(), 
                     get_usage(gvbc->get_data()->get_usage_hint()));
                     get_usage(gvbc->get_data()->get_usage_hint()));
@@ -3044,7 +3044,7 @@ apply_index_buffer(IndexBufferContext *ibc) {
         << "copying " << gibc->get_data()->get_data_size_bytes()
         << "copying " << gibc->get_data()->get_data_size_bytes()
         << " bytes into index buffer " << gibc->_index << "\n";
         << " bytes into index buffer " << gibc->_index << "\n";
     }
     }
-    if (gibc->changed_size()) {
+    if (gibc->changed_size() || gibc->changed_usage_hint()) {
       _glBufferData(GL_ELEMENT_ARRAY_BUFFER, gibc->get_data()->get_data_size_bytes(),
       _glBufferData(GL_ELEMENT_ARRAY_BUFFER, gibc->get_data()->get_data_size_bytes(),
                     gibc->get_data()->get_data(), 
                     gibc->get_data()->get_data(), 
                     get_usage(gibc->get_data()->get_usage_hint()));
                     get_usage(gibc->get_data()->get_usage_hint()));