Selaa lähdekoodia

fix mins/maxs

David Rose 20 vuotta sitten
vanhempi
sitoutus
35f994c384

+ 4 - 2
panda/src/glstuff/glGraphicsStateGuardian_src.cxx

@@ -2520,7 +2520,8 @@ draw_tristrips(const qpGeomTristrips *primitive) {
 
     qpGeomVertexReader mins(primitive->get_mins(), 0);
     qpGeomVertexReader maxs(primitive->get_mins(), 0);
-    nassertv(mins.get_num_vertices() == ends.size() && maxs.get_num_vertices() == ends.size());
+    nassertv(mins.get_num_vertices() == (int)ends.size() && 
+             maxs.get_num_vertices() == (int)ends.size());
     
     unsigned int start = 0;
     for (size_t i = 0; i < ends.size(); i++) {
@@ -2553,7 +2554,8 @@ draw_trifans(const qpGeomTrifans *primitive) {
 
   qpGeomVertexReader mins(primitive->get_mins(), 0);
   qpGeomVertexReader maxs(primitive->get_mins(), 0);
-  nassertv(mins.get_num_vertices() == ends.size() && maxs.get_num_vertices() == ends.size());
+  nassertv(mins.get_num_vertices() == (int)ends.size() && 
+           maxs.get_num_vertices() == (int)ends.size());
 
   unsigned int start = 0;
   for (size_t i = 0; i < ends.size(); i++) {

+ 2 - 2
panda/src/gobj/qpgeomPrimitive.cxx

@@ -983,14 +983,14 @@ recompute_minmax(qpGeomPrimitive::CDWriter &cdata) {
 
       } else {
         min_prim = min(min_prim, vertex);
-        max_prim = min(max_prim, vertex);
+        max_prim = max(max_prim, vertex);
       }
       
       ++vi;
     }
     mins.add_data1i(min_prim);
     maxs.add_data1i(max_prim);
-    nassertv(mins.get_num_vertices() == cdata->_ends.size());
+    nassertv(mins.get_num_vertices() == (int)cdata->_ends.size());
 
   } else {
     // This is a simple primitive type like a triangle; just compute

+ 2 - 2
panda/src/gobj/qpgeomPrimitive.h

@@ -208,8 +208,8 @@ private:
     UpdateSeq _modified;
 
     bool _got_minmax;
-    unsigned short _min_vertex;
-    unsigned short _max_vertex;
+    unsigned int _min_vertex;
+    unsigned int _max_vertex;
   };
 
   PipelineCycler<CData> _cycler;

+ 0 - 2
panda/src/gobj/qpgeomTristrips.cxx

@@ -242,8 +242,6 @@ rotate_impl() const {
   qpGeomVertexReader from(vertices, 0);
   qpGeomVertexWriter to(new_vertices, 0);
 
-  bool any_odd = false;
-
   int begin = 0;
   int last_added = 0;
   CPTA_int::const_iterator ei;

+ 2 - 7
panda/src/gobj/qpgeomVertexData.cxx

@@ -1125,15 +1125,10 @@ do_set_num_vertices(int n, qpGeomVertexData::CDWriter &cdata) {
     case NT_packed_dcba:
     case NT_packed_dabc:
     case NT_uint8:
-      while (pointer < stop) {
-        memset(pointer, 0xff, num_values);
-        pointer += stride;
-      }
-      break;
-
     case NT_uint16:
+    case NT_uint32:
       while (pointer < stop) {
-        memset(pointer, 0xff, num_values * 2);
+        memset(pointer, 0xff, column->get_total_bytes());
         pointer += stride;
       }
       break;

+ 0 - 1
panda/src/gobj/qpgeomVertexWriter.cxx

@@ -465,7 +465,6 @@ set_data1i(unsigned char *pointer, int a) {
       
     case NT_uint32:
       *(PN_uint32 *)pointer = a;
-      nassertv(*(PN_uint32 *)pointer == a);
       break;
       
     case NT_packed_dcba: