*/
package com.jme3.texture;
+import com.jme3.texture.Image.Format;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
}
/**
- * Construct a TextureArray from the given list of images
- * warning, this feature is only supported on opengl 3.0 version.
+ * Construct a TextureArray from the given list of images.
* To check if a hardware supports TextureArray check :
* renderManager.getRenderer().getCaps().contains(Caps.TextureArray)
* @param images
*/
public TextureArray(List<Image> images) {
- super();
+ super();
+
int width = images.get(0).getWidth();
int height = images.get(0).getHeight();
- Image arrayImage = new Image(images.get(0).getFormat(), width, height,
- null);
+ Format format = images.get(0).getFormat();
+ Image arrayImage = new Image(format, width, height, null);
for (Image img : images) {
if (img.getHeight() != height || img.getWidth() != width) {
- Logger.getLogger(TextureArray.class.getName()).log(
- Level.WARNING,
- "all images must have the same width/height");
- continue;
+ throw new IllegalArgumentException("Images in texture array must have same dimensions");
+ }
+ if (img.getFormat() != format) {
+ throw new IllegalArgumentException("Images in texture array must have same format");
}
+
arrayImage.addData(img.getData(0));
}
setImage(arrayImage);