Bugfix: fixed dead code area and NPE being thrown when loading the textures.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10231 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
Kae..pl 12 years ago
parent 2da59144c0
commit 2b94486677
  1. 28
      engine/src/blender/com/jme3/scene/plugins/blender/textures/TextureHelper.java

@ -141,7 +141,7 @@ public class TextureHelper extends AbstractBlenderHelper {
Pointer pImage = (Pointer) tex.getFieldValue("ima"); Pointer pImage = (Pointer) tex.getFieldValue("ima");
if (pImage.isNotNull()) { if (pImage.isNotNull()) {
Structure image = pImage.fetchData(blenderContext.getInputStream()).get(0); Structure image = pImage.fetchData(blenderContext.getInputStream()).get(0);
Texture loadedTexture = this.loadImage(image, blenderContext); Texture loadedTexture = this.loadTexture(image, blenderContext);
if(loadedTexture != null) { if(loadedTexture != null) {
result = loadedTexture; result = loadedTexture;
this.applyColorbandAndColorFactors(tex, result.getImage(), blenderContext); this.applyColorbandAndColorFactors(tex, result.getImage(), blenderContext);
@ -197,6 +197,9 @@ public class TextureHelper extends AbstractBlenderHelper {
result.setKey(new GeneratedTextureKey(tex.getName())); result.setKey(new GeneratedTextureKey(tex.getName()));
} }
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Adding texture {0} to the loaded features with OMA = {1}", new Object[] { result.getName(), tex.getOldMemoryAddress() });
}
blenderContext.addLoadedFeatures(tex.getOldMemoryAddress(), tex.getName(), tex, result); blenderContext.addLoadedFeatures(tex.getOldMemoryAddress(), tex.getName(), tex, result);
} }
return result; return result;
@ -481,7 +484,7 @@ public class TextureHelper extends AbstractBlenderHelper {
* This class returns a texture read from the file or from packed blender * This class returns a texture read from the file or from packed blender
* data. * data.
* *
* @param image * @param imageStructure
* image structure filled with data * image structure filled with data
* @param blenderContext * @param blenderContext
* the blender context * the blender context
@ -490,12 +493,13 @@ public class TextureHelper extends AbstractBlenderHelper {
* this exception is thrown when the blend file structure is * this exception is thrown when the blend file structure is
* somehow invalid or corrupted * somehow invalid or corrupted
*/ */
protected Texture loadImage(Structure image, BlenderContext blenderContext) throws BlenderFileException { protected Texture loadTexture(Structure imageStructure, BlenderContext blenderContext) throws BlenderFileException {
LOGGER.log(Level.FINE, "Fetching texture with OMA = {0}", image.getOldMemoryAddress()); LOGGER.log(Level.FINE, "Fetching texture with OMA = {0}", imageStructure.getOldMemoryAddress());
Texture result = new Texture2D((Image) blenderContext.getLoadedFeature(image.getOldMemoryAddress(), LoadedFeatureDataType.LOADED_FEATURE)); Texture result = null;
if (result == null) { Image im = (Image) blenderContext.getLoadedFeature(imageStructure.getOldMemoryAddress(), LoadedFeatureDataType.LOADED_FEATURE);
String texturePath = image.getFieldValue("name").toString(); if (im == null) {
Pointer pPackedFile = (Pointer) image.getFieldValue("packedfile"); String texturePath = imageStructure.getFieldValue("name").toString();
Pointer pPackedFile = (Pointer) imageStructure.getFieldValue("packedfile");
if (pPackedFile.isNull()) { if (pPackedFile.isNull()) {
LOGGER.log(Level.INFO, "Reading texture from file: {0}", texturePath); LOGGER.log(Level.INFO, "Reading texture from file: {0}", texturePath);
result = this.loadImageFromFile(texturePath, blenderContext); result = this.loadImageFromFile(texturePath, blenderContext);
@ -510,12 +514,8 @@ public class TextureHelper extends AbstractBlenderHelper {
// Should the texture be flipped? It works for sinbad .. // Should the texture be flipped? It works for sinbad ..
result = new Texture2D(imageLoader.loadImage(blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true)); result = new Texture2D(imageLoader.loadImage(blenderContext.getInputStream(), dataFileBlock.getBlockPosition(), true));
} }
if (result != null) { } else {
if (LOGGER.isLoggable(Level.FINE)) { result = new Texture2D(im);
LOGGER.log(Level.FINE, "Adding image {0} to the loaded features with OMA = {1}", new Object[] { texturePath, image.getOldMemoryAddress() });
}
blenderContext.addLoadedFeatures(image.getOldMemoryAddress(), image.getName(), image, result);
}
} }
return result; return result;
} }

Loading…
Cancel
Save