Quellcode durchsuchen

set_size_padded should not pad z for cube maps and 2d texture arrays

rdb vor 12 Jahren
Ursprung
Commit
a6eeaf42b5
1 geänderte Dateien mit 9 neuen und 2 gelöschten Zeilen
  1. 9 2
      panda/src/gobj/texture.cxx

+ 9 - 2
panda/src/gobj/texture.cxx

@@ -1756,7 +1756,14 @@ set_size_padded(int x, int y, int z) {
   if (do_get_auto_texture_scale(cdata) != ATS_none) {
     do_set_x_size(cdata, up_to_power_2(x));
     do_set_y_size(cdata, up_to_power_2(y));
-    do_set_z_size(cdata, up_to_power_2(z));
+
+    if (cdata->_texture_type == TT_3d_texture) {
+      // Only pad 3D textures.  It does not make sense
+      // to do so for cube maps or 2D texture arrays.
+      do_set_z_size(cdata, up_to_power_2(z));
+    } else {
+      do_set_z_size(cdata, z);
+    }
   } else {
     do_set_x_size(cdata, x);
     do_set_y_size(cdata, y);
@@ -5013,7 +5020,7 @@ do_set_component_type(CData *cdata, Texture::ComponentType component_type) {
     break;
 
   case T_unsigned_int_24_8:
-    //FIXME: I have no idea...
+    cdata->_component_width = 4;
     break;
   }
 }