Android: Added setNamespaceAware(true) to ogre xml loader if running on android

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7754 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
kim..ng 14 years ago
parent 354ff46ccf
commit 09b475d893
  1. 23
      engine/src/ogre/com/jme3/scene/plugins/ogre/MeshLoader.java
  2. 21
      engine/src/ogre/com/jme3/scene/plugins/ogre/SceneLoader.java
  3. 25
      engine/src/ogre/com/jme3/scene/plugins/ogre/SkeletonLoader.java

@ -52,6 +52,7 @@ import com.jme3.scene.VertexBuffer;
import com.jme3.scene.VertexBuffer.Format;
import com.jme3.scene.VertexBuffer.Type;
import com.jme3.scene.VertexBuffer.Usage;
import com.jme3.system.JmeSystem;
import com.jme3.util.BufferUtils;
import com.jme3.util.IntMap;
import com.jme3.util.IntMap.Entry;
@ -67,6 +68,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@ -789,8 +794,18 @@ public class MeshLoader extends DefaultHandler implements AssetLoader {
}
}
XMLReader xr = XMLReaderFactory.createXMLReader();
// Added by larynx 25.06.2011
// Android needs the namespace aware flag set to true
XMLReader xr;
if (JmeSystem.getFullName().toUpperCase().contains("ANDROID")) {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
xr = factory.newSAXParser().getXMLReader();
} else {
xr = XMLReaderFactory.createXMLReader();
}
xr.setContentHandler(this);
xr.setErrorHandler(this);
InputStreamReader r = new InputStreamReader(info.openStream());
@ -802,6 +817,10 @@ public class MeshLoader extends DefaultHandler implements AssetLoader {
IOException ioEx = new IOException("Error while parsing Ogre3D mesh.xml");
ioEx.initCause(ex);
throw ioEx;
} catch (ParserConfigurationException ex) {
IOException ioEx = new IOException("Error while parsing Ogre3D mesh.xml");
ioEx.initCause(ex);
throw ioEx;
}
}

@ -45,6 +45,7 @@ import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.system.JmeSystem;
import com.jme3.util.xml.SAXUtil;
import java.io.IOException;
import java.io.InputStreamReader;
@ -52,6 +53,9 @@ import java.util.Stack;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@ -351,7 +355,18 @@ public class SceneLoader extends DefaultHandler implements AssetLoader {
logger.log(Level.WARNING, "Cannot locate material file {0}", ex.getMessage());
}
XMLReader xr = XMLReaderFactory.createXMLReader();
// Added by larynx 25.06.2011
// Android needs the namespace aware flag set to true
XMLReader xr;
if (JmeSystem.getFullName().toUpperCase().contains("ANDROID")) {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
xr = factory.newSAXParser().getXMLReader();
} else {
xr = XMLReaderFactory.createXMLReader();
}
xr.setContentHandler(this);
xr.setErrorHandler(this);
InputStreamReader r = new InputStreamReader(info.openStream());
@ -362,6 +377,10 @@ public class SceneLoader extends DefaultHandler implements AssetLoader {
IOException ioEx = new IOException("Error while parsing Ogre3D dotScene");
ioEx.initCause(ex);
throw ioEx;
} catch (ParserConfigurationException ex) {
IOException ioEx = new IOException("Error while parsing Ogre3D dotScene");
ioEx.initCause(ex);
throw ioEx;
}
}

@ -40,6 +40,7 @@ import com.jme3.asset.AssetLoader;
import com.jme3.asset.AssetManager;
import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f;
import com.jme3.system.JmeSystem;
import com.jme3.util.xml.SAXUtil;
import java.io.IOException;
import java.io.InputStream;
@ -50,6 +51,11 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Stack;
import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@ -252,7 +258,18 @@ public class SkeletonLoader extends DefaultHandler implements AssetLoader {
public Object load(InputStream in) throws IOException {
try {
XMLReader xr = XMLReaderFactory.createXMLReader();
// Added by larynx 25.06.2011
// Android needs the namespace aware flag set to true
XMLReader xr;
if (JmeSystem.getFullName().toUpperCase().contains("ANDROID")) {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
xr = factory.newSAXParser().getXMLReader();
} else {
xr = XMLReaderFactory.createXMLReader();
}
xr.setContentHandler(this);
xr.setErrorHandler(this);
InputStreamReader r = new InputStreamReader(in);
@ -269,7 +286,13 @@ public class SkeletonLoader extends DefaultHandler implements AssetLoader {
ioEx.initCause(ex);
fullReset();
throw ioEx;
} catch (ParserConfigurationException ex) {
IOException ioEx = new IOException("Error while parsing Ogre3D dotScene");
ioEx.initCause(ex);
fullReset();
throw ioEx;
}
}
public Object load(AssetInfo info) throws IOException {

Loading…
Cancel
Save