Make sure we copy the mipmap sizes when generating texture array from images

experimental
shadowislord 10 years ago
parent a947bcb64b
commit 9965d20c44
  1. 7
      jme3-core/src/main/java/com/jme3/texture/TextureArray.java

@ -33,6 +33,7 @@ package com.jme3.texture;
import com.jme3.texture.Image.Format; import com.jme3.texture.Image.Format;
import com.jme3.texture.image.ColorSpace; import com.jme3.texture.image.ColorSpace;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -72,7 +73,9 @@ public class TextureArray extends Texture {
int height = images.get(0).getHeight(); int height = images.get(0).getHeight();
Format format = images.get(0).getFormat(); Format format = images.get(0).getFormat();
ColorSpace colorSpace = images.get(0).getColorSpace(); ColorSpace colorSpace = images.get(0).getColorSpace();
int[] mipMapSizes = images.get(0).getMipMapSizes();
Image arrayImage = new Image(format, width, height, null, colorSpace); Image arrayImage = new Image(format, width, height, null, colorSpace);
arrayImage.setMipMapSizes(mipMapSizes);
for (Image img : images) { for (Image img : images) {
if (img.getHeight() != height || img.getWidth() != width) { if (img.getHeight() != height || img.getWidth() != width) {
@ -81,9 +84,13 @@ public class TextureArray extends Texture {
if (img.getFormat() != format) { if (img.getFormat() != format) {
throw new IllegalArgumentException("Images in texture array must have same format"); throw new IllegalArgumentException("Images in texture array must have same format");
} }
if (!Arrays.equals(mipMapSizes, img.getMipMapSizes())) {
throw new IllegalArgumentException("Images in texture array must have same mipmap sizes");
}
arrayImage.addData(img.getData(0)); arrayImage.addData(img.getData(0));
} }
setImage(arrayImage); setImage(arrayImage);
} }

Loading…
Cancel
Save