Parcourir la source

*** empty log message ***

Dustin Barnard il y a 18 ans
Parent
commit
3c2f78e72c
1 fichiers modifiés avec 14 ajouts et 4 suppressions
  1. 14 4
      panda/src/gobj/geomVertexColumn.cxx

+ 14 - 4
panda/src/gobj/geomVertexColumn.cxx

@@ -1821,11 +1821,21 @@ get_data4f(const unsigned char *pointer) {
 ////////////////////////////////////////////////////////////////////
 void GeomVertexColumn::Packer_argb_packed::
 set_data4f(unsigned char *pointer, const LVecBase4f &data) {
+  // when packing an argb, we want to make sure we cap 
+  // the input values at 1 since going above one will cause 
+  // the value to be truncated.
+  float newData[4];
+  for (int i = 0; i < 4; i++) {
+    if (data[i] > 1.0)
+      newData[i] = 1.0;
+    else
+      newData[i] = data[i];
+  }
   *(PN_uint32 *)pointer = GeomVertexData::pack_abcd
-    ((unsigned int)(data[3] * 255.0f),
-     (unsigned int)(data[0] * 255.0f),
-     (unsigned int)(data[1] * 255.0f),
-     (unsigned int)(data[2] * 255.0f));
+    ((unsigned int)(newData[3] * 255.0f),
+     (unsigned int)(newData[0] * 255.0f),
+     (unsigned int)(newData[1] * 255.0f),
+     (unsigned int)(newData[2] * 255.0f));
 }
 
 ////////////////////////////////////////////////////////////////////