浏览代码

use hmd models by default, remove xbx support

Nicolas Cannasse 10 年之前
父节点
当前提交
aa52cef694

+ 0 - 69
hxd/fmt/awd/Data.hx

@@ -1,69 +0,0 @@
-package hxd.fmt.awd;
-
-class Block {
-	public var id : Int;
-	public var attributes : Null<Map<String,Dynamic>>;
-	public var name : Null<String>;
-
-	public function new(id) {
-		this.id = id;
-	}
-
-	public inline function to<T:Block>( k : Class<T> ) : T {
-		return Std.instance(this, k);
-	}
-
-	function toString() {
-		return Type.getClass(this) + "#" + id + (name == null ? "" : "(" + name + ")");
-	}
-}
-
-class SceneElement extends Block {
-	public var parent : SceneElement;
-	public var transform : h3d.Matrix;
-}
-
-class Instance extends SceneElement {
-	public var geometry : TriangleGeometry;
-	public var materials : Array<SimpleMaterial>;
-}
-
-class Joint extends Block {
-	public var parent : Joint;
-	public var bindPos : h3d.Matrix;
-}
-
-class Skeleton extends Block {
-	public var joints : Map<Int,Joint>;
-	public function new(id) {
-		super(id);
-		joints = new Map();
-	}
-}
-
-class BitmapTexture extends Block {
-	public var data : haxe.io.Bytes;
-	public var url : String;
-}
-
-class SimpleMaterial extends Block {
-	public var color : Int;
-	public var texture : BitmapTexture;
-	public function new(id) {
-		super(id);
-		color = 0xFFFFFFFF;
-	}
-}
-
-class TriangleGeometry extends Block {
-	public var subMeshes : Array<SubMesh>;
-}
-
-class SubMesh {
-	public var vertexData : haxe.io.Bytes;
-	public var indexes : haxe.io.Bytes;
-	public var uvs : haxe.io.Bytes;
-	public function new() {
-	}
-}
-

+ 0 - 374
hxd/fmt/awd/Reader.hx

@@ -1,374 +0,0 @@
-package hxd.fmt.awd;
-import hxd.fmt.awd.Data;
-
-class Reader {
-
-	static inline var TTRIANGLE_GEOM = 1;
-	static inline var TINSTANCE = 23;
-	static inline var TSKELETON = 101;
-	static inline var TSIMPLE_MATERIAL = 81;
-	static inline var TBITMAP_TEXURE = 82;
-
-	var i : haxe.io.BytesInput;
-	var blocks : Map<Int,Block>;
-
-	public function new() {
-	}
-
-	public function read( bytes ) {
-		blocks = new Map();
-		i = new haxe.io.BytesInput(bytes);
-		var h = readHeader();
-		var size = h.size;
-		if( i.length - size != 12 ) throw "truncated file";
-		var uBytes = null;
-		switch( h.compress ) {
-		case 0:
-		case 1:
-			var tmp = hxd.impl.Tmp.getBytes(size);
-			i.readFullBytes(tmp, 0, size);
-			uBytes = haxe.zip.Uncompress.run(tmp, 1 << 15);
-			hxd.impl.Tmp.saveBytes(tmp);
-			i = new haxe.io.BytesInput(uBytes);
-		case 2:
-			throw "LZMA not supported";
-		default:
-			throw "assert";
-		}
-		while( i.position < i.length )
-			readBlock();
-		if( uBytes != null )
-			hxd.impl.Tmp.saveBytes(uBytes);
-		return blocks;
-	}
-
-	function readHeader() {
-		if( i.readString(3) != "AWD" ) throw "assert";
-		var major = i.readByte();
-		var minor = i.readByte();
-		var flags = i.readUInt16();
-		var compress = i.readByte();
-		var size = i.readInt32();
-		return { compress : compress, size : size };
-	}
-
-	function readMatrix() {
-		var m = new h3d.Matrix();
-		m._11 = readFloat();
-		m._12 = readFloat();
-		m._13 = readFloat();
-		m._14 = readFloat();
-		m._21 = readFloat();
-		m._22 = readFloat();
-		m._23 = readFloat();
-		m._24 = readFloat();
-		m._31 = readFloat();
-		m._32 = readFloat();
-		m._33 = readFloat();
-		m._34 = readFloat();
-		m._41 = readFloat();
-		m._42 = readFloat();
-		m._43 = readFloat();
-		m._44 = readFloat();
-		return m;
-	}
-
-	function readMatrix3x4() {
-		var m = new h3d.Matrix();
-		m._11 = readFloat();
-		m._12 = readFloat();
-		m._13 = readFloat();
-		m._14 = 0;
-		m._21 = readFloat();
-		m._22 = readFloat();
-		m._23 = readFloat();
-		m._24 = 0;
-		m._31 = readFloat();
-		m._32 = readFloat();
-		m._33 = readFloat();
-		m._34 = 0;
-		m._41 = readFloat();
-		m._42 = readFloat();
-		m._43 = readFloat();
-		m._44 = 1;
-		return m;
-	}
-
-	inline function readBool() {
-		return i.readByte() != 0;
-	}
-
-	function readString() {
-		return i.readString(i.readUInt16());
-	}
-
-	function readName() {
-		var len = i.readUInt16();
-		return len == 0 ? null : i.readString(len);
-	}
-
-	inline function readID() {
-		return i.readInt32();
-	}
-
-	inline function readList<T>( decode : Void -> T ) : Array<T> {
-		return [for( i in 0...i.readInt32() ) decode()];
-	}
-
-	inline function readFloat() {
-		return i.readFloat();
-	}
-
-	function readAttrs() {
-		var count = i.readInt32();
-		if( count == 0 )
-			return null;
-		var a = new Map<String,Dynamic>();
-		for( k in 0...count ) {
-			var ns = i.readByte();
-			var name = readString();
-			var len = i.readInt32();
-			var value : Dynamic = switch( i.readByte() ) {
-			case 1: i.readInt8();
-			case 2: i.readInt16();
-			case 3, 6: i.readInt32();
-			case 4: i.readByte();
-			case 5: i.readUInt16();
-			case 11: i.readFloat();
-			case 12: i.readDouble();
-			case 21: readBool();
-			case 22: i.readInt32(); // color
-			case 23: readID(); // block
-			case 31: i.readString(len);
-			case 32: i.read(len);
-			case 41: new h3d.Vector(readFloat(), readFloat());
-			case 42: new h3d.Vector(readFloat(), readFloat(), readFloat());
-			case 43: new h3d.Vector(readFloat(), readFloat(), readFloat(), readFloat());
-			case 51: // m3x2
-				var m = new h3d.Matrix();
-				m._11 = readFloat();
-				m._12 = readFloat();
-				m._13 = readFloat();
-				m._14 = 0;
-				m._21 = readFloat();
-				m._22 = readFloat();
-				m._23 = readFloat();
-				m._24 = 0;
-				m._31 = 0;
-				m._32 = 0;
-				m._33 = 0;
-				m._34 = 0;
-				m._41 = 0;
-				m._42 = 0;
-				m._43 = 0;
-				m._44 = 1;
-				m;
-			case 52: // m3x3
-				var m = new h3d.Matrix();
-				m._11 = readFloat();
-				m._12 = readFloat();
-				m._13 = readFloat();
-				m._14 = 0;
-				m._21 = readFloat();
-				m._22 = readFloat();
-				m._23 = readFloat();
-				m._24 = 0;
-				m._31 = readFloat();
-				m._32 = readFloat();
-				m._33 = readFloat();
-				m._34 = 0;
-				m._41 = 0;
-				m._42 = 0;
-				m._43 = 0;
-				m._44 = 1;
-				m;
-			case 53: readMatrix3x4();
-			case 54: readMatrix();
-			case unk:
-				i.read(len);
-				"?" + unk;
-			}
-			a.set(name, value);
-		};
-		return a;
-	}
-
-	function readSkelJoint( joints:Map<Int,Joint> ) {
-		var j = new Joint(i.readUInt16());
-		var pid = i.readUInt16();
-		if( pid > 0 ) {
-			var p = joints.get(pid);
-			if( p == null ) throw "Missing parent joint #" + pid;
-			j.parent = p;
-		}
-		j.name = readName();
-		j.bindPos = readMatrix3x4();
-		if( i.readInt32() != 0 ) throw "assert";
-		j.attributes = readAttrs();
-		return j;
-	}
-
-	inline function numAttribs( decode : Int -> Int -> Void ) {
-		var totalLen = i.readInt32();
-		if( totalLen == 0 ) return;
-		var end = i.position + totalLen;
-		while( i.position < end ) {
-			var aid = i.readUInt16();
-			var len = i.readInt32();
-			var pos = i.position;
-			decode(aid,len);
-			var delta = i.position - (pos + len);
-			if( delta > 0 ) throw "Invalid delta " + delta + " for attribute #" + aid;
-		}
-	}
-
-	function getBlock < T:Block > ( id : Int, c : Class<T> ) : T {
-		if( id == 0 )
-			return null;
-		var b = blocks.get(id);
-		if( b == null ) throw "Block #" + id + " not found";
-		var v = b.to(c);
-		if( v == null ) throw "Block " + b + " should be " + c;
-		return v;
-	}
-
-	function readSubMesh() {
-		var s = new SubMesh();
-		var len = i.readInt32();
-		numAttribs(function(id, len) {
-
-		});
-		var end = i.position + len;
-		while( i.position < end ) {
-			var stype = i.readByte();
-			var dtype = i.readByte();
-			var len = i.readInt32();
-			switch( [stype, dtype] ) {
-			case [1, 7]:
-				s.vertexData = i.read(len);
-			case [2, 5]:
-				s.indexes = i.read(len);
-			case [3, 7]:
-				s.uvs = i.read(len);
-			default:
-				throw "Unsupported stream " + stype + "/" + dtype+" ["+len+"]";
-			}
-		}
-		readAttrs();
-		return null;
-	}
-
-	function readBlock() {
-		var id = readID();
-		var ns = i.readByte();
-		var tid = i.readByte();
-		var flags = i.readByte();
-		var size = i.readInt32();
-		var startPos = i.position;
-		var skip = false;
-		var hasNumAttr = true;
-		var block : Block;
-
-		inline function noAttribute() {
-			if( hasNumAttr ) {
-				if( i.readInt32() != 0 ) throw "unexpected numattr";
-				hasNumAttr = false;
-			}
-		}
-
-		if( ns != 0 ) {
-			block = null;
-			skip = true;
-		} else switch( tid ) {
-		case TTRIANGLE_GEOM:
-			var g = new TriangleGeometry(id);
-			g.name = readName();
-			var subGeom = i.readUInt16();
-			numAttribs(function(id, len) {
-				switch( id ) {
-				default:
-					throw "Unknown attrib #" + id + "[" + len + "]";
-				}
-			});
-			var subMeshes = [for( i in 0...subGeom ) readSubMesh()];
-			hasNumAttr = false;
-			block = g;
-		case TINSTANCE:
-			var inst = new Instance(id);
-			inst.parent = getBlock(readID(), SceneElement);
-			inst.transform = readMatrix3x4();
-			inst.name = readName();
-			inst.geometry = getBlock(readID(), TriangleGeometry);
-			inst.materials = [for( i in 0...i.readUInt16() ) getBlock(readID(), SimpleMaterial)];
-			numAttribs(function(id, len) {
-				switch( id ) {
-				case 5:
-					var castShadows = readBool();
-				default:
-					throw "Unknown attrib #" + id + "[" + len + "]";
-				}
-			});
-			hasNumAttr = false;
-			block = inst;
-		case TSKELETON:
-			var b = new Skeleton(id);
-			b.name = readName();
-			var njoints = i.readUInt16();
-			noAttribute();
-			for( i in 0...njoints ) {
-				var j = readSkelJoint(b.joints);
-				b.joints.set(j.id, j);
-			}
-			hasNumAttr = false;
-			block = b;
-		case TBITMAP_TEXURE:
-			var b = new BitmapTexture(id);
-			b.name = readName();
-			switch( i.readByte() ) {
-			case 0: b.url = i.readString(i.readInt32());
-			case 1: b.data = i.read(i.readInt32());
-			case unk: throw "assert " + unk;
-			};
-			block = b;
-		case TSIMPLE_MATERIAL:
-			var m = new SimpleMaterial(id);
-			m.name = readName();
-			var t = i.readByte();
-			var s = i.readByte();
-			numAttribs(function(id,len) {
-				switch( id ) {
-				case 1:
-					m.color = i.readInt32();
-				case 2:
-					m.texture = getBlock(readID(), BitmapTexture);
-				default:
-					throw "Unknown attrib #" + id+"["+len+"]";
-				}
-			});
-			hasNumAttr = false;
-			block = m;
-		default:
-			#if debug
-			trace("Unknown Block #" + tid);
-			#end
-			skip = true;
-			block = null;
-		}
-
-		if( skip ) {
-			var tmp = hxd.impl.Tmp.getBytes(size);
-			i.readFullBytes(tmp, 0, size);
-			hxd.impl.Tmp.saveBytes(tmp);
-		} else {
-
-			// do not support custom attributes
-			noAttribute();
-			block.attributes = readAttrs();
-			blocks.set(block.id, block);
-
-			var delta = i.position - (startPos + size);
-			if( delta != 0 ) throw "Invalid delta " + delta + " for type " + tid;
-		}
-	}
-
-}

+ 0 - 104
hxd/fmt/fbx/XBXReader.hx

@@ -1,104 +0,0 @@
-package hxd.fmt.fbx;
-import hxd.fmt.fbx.Data;
-
-class XBXReader
-{
-	var i : haxe.io.Input;
-	var version : Int;
-
-	public function new(i) {
-		this.i = i;
-	}
-
-	function error(?msg) {
-		throw "Invalid XBX data"+((null!=msg)? (": "+msg) : "");
-	}
-
-	function readString() {
-		var len = i.readByte();
-		if( len >= 0x80 )
-			len = (i.readUInt24() << 7) | (len & 0x7F);
-		return i.readString(len);
-	}
-
-	public function read() : FbxNode {
-		if( i.readString(3) != "XBX" )
-			error("no XBX sig");
-		version = i.readByte();
-		if( version > 0 )
-			error("version err "+version);
-		return readNode();
-	}
-
-	public function readNode() : FbxNode
-	{
-		return {
-			name: readString(),
-			props: {
-				var a = [];
-				var l = i.readByte();
-				a[l-1] = null;
-				for( i in 0...l )
-					a[i] = readProp();
-				a;
-			},
-			childs: {
-				var a = [];
-				var l = i.readInt24();
-				a[l - 1] = null;
-				for( i in 0...l)
-					a[i] = readNode();
-				a;
-			}
-		};
-	}
-
-	inline function readInt() {
-		#if haxe3
-		return i.readInt32();
-		#else
-		return i.readInt31();
-		#end
-	}
-
-	public function readProp()
-	{
-		var b = i.readByte();
-		var t = switch( b )
-		{
-			case 0: PInt( readInt());
-			case 1: PFloat( i.readDouble() );
-			case 2: PString( readString() );
-			case 3: PIdent( readString() );
-			case 4:
-				var l = readInt();
-				var a = [];
-				var tmp = hxd.impl.Tmp.getBytes(l * 4);
-				i.readFullBytes(tmp, 0, l * 4);
-				var r = hxd.impl.Memory.select(tmp);
-				a[l - 1] = 0;
-				for( idx in 0...l )
-					a[idx] = r.i32(idx << 2);
-				r.end();
-				hxd.impl.Tmp.saveBytes(tmp);
-				PInts( a );
-			case 5:
-				var l = readInt();
-				var a = [];
-				var tmp = hxd.impl.Tmp.getBytes(l * 8);
-				i.readFullBytes(tmp, 0, l * 8);
-				var r = hxd.impl.Memory.select(tmp);
-				a[l - 1] = 0.;
-				for( idx in 0...l)
-					a[idx] = r.double(idx << 3);
-				r.end();
-				hxd.impl.Tmp.saveBytes(tmp);
-				PFloats( a );
-			default:
-				error( "unknown prop " + b);
-				null;
-		}
-
-		return t;
-	}
-}

+ 0 - 77
hxd/fmt/fbx/XBXWriter.hx

@@ -1,77 +0,0 @@
-package hxd.fmt.fbx;
-import hxd.fmt.fbx.Data;
-
-/**
- * ...
- * @author de
- */
-class XBXWriter
-{
-	var o : haxe.io.Output;
-	public function new(o) {
-		this.o = o;
-	}
-
-	public function write( n : FbxNode )
-	{
-		o.writeString("XBX");
-		o.writeByte(0); // version
-		writeNode(n);
-	}
-
-	function writeString( s : String ) {
-		var len = haxe.io.Bytes.ofString(s).length;
-		if( len < 0x80 )
-			o.writeByte(len);
-		else {
-			o.writeByte(0x80 | (len & 0x7F));
-			o.writeUInt24(len >> 7);
-		}
-		o.writeString(s);
-	}
-
-	public function writeNode( n : FbxNode)
-	{
-		writeString( n.name );
-		o.writeByte( n.props.length );
-		for ( p in n.props)
-			writeProperty( p );
-
-		o.writeInt24( n.childs.length );
-		for ( c in n.childs )
-			writeNode( c );
-	}
-
-	inline function writeInt(v) {
-		#if haxe3
-		o.writeInt32(v);
-		#else
-		o.writeInt31(v);
-		#end
-	}
-
-
-	public function writeProperty( p : FbxProp )
-	{
-		o.writeByte( Type.enumIndex( p ) );
-
-		switch( p )
-		{
-			case PInt( v ):		writeInt( v );
-			case PFloat( v ):	o.writeDouble(v);
-			case PString( v ):	writeString( v );
-			case PIdent( v ): 	writeString( v );
-			case PInts( va ):
-				writeInt( va.length );
-				for ( i in va ) writeInt( i );
-			case PFloats( va ):
-				#if haxe3
-				o.writeInt32( va.length );
-				#else
-				o.writeInt31( va.length );
-				#end
-				for ( i in va ) o.writeDouble(i);
-		}
-	}
-
-}

+ 1 - 3
hxd/fmt/hmd/Reader.hx

@@ -109,9 +109,7 @@ class Reader {
 		if( h != "HMD" ) {
 			if( h.charCodeAt(0) == ";".code )
 				throw "FBX was not converted to HMD";
-			if( h.charCodeAt(0) == 'X'.code )
-				throw "XBX was not converted to HMD";
-			throw "Invalid XBX header " + StringTools.urlEncode(h);
+			throw "Invalid HMD header " + StringTools.urlEncode(h);
 		}
 		version = i.readByte();
 		if( version > Data.CURRENT_VERSION ) throw "Can't read HMD v" + version;

+ 1 - 37
hxd/fs/LocalFileSystem.hx

@@ -23,8 +23,6 @@ private class LocalEntry extends FileEntry {
 		this.file = file;
 		if( fs.createHMD && (extension == "fbx" || extension == "xtra") )
 			convertToHMD();
-		else if( fs.createXBX && extension == "fbx" )
-			convertToXBX();
 		if( fs.createMP3 && extension == "wav" )
 			convertToMP3();
 	}
@@ -71,35 +69,6 @@ private class LocalEntry extends FileEntry {
 		#end
 	}
 
-	function convertToXBX() {
-		function getXBX() {
-			var fbx = null;
-			try fbx = hxd.fmt.fbx.Parser.parse(getBytes().toString()) catch( e : Dynamic ) throw Std.string(e) + " in " + relPath;
-			fbx = fs.xbxFilter(this, fbx);
-			var out = new haxe.io.BytesOutput();
-			new hxd.fmt.fbx.XBXWriter(out).write(fbx);
-			return out.getBytes();
-		}
-		var target = fs.tmpDir + "R_" + INVALID_CHARS.replace(relPath,"_") + ".xbx";
-		#if air3
-		var target = new flash.filesystem.File(target);
-		if( !target.exists || target.modificationDate.getTime() < file.modificationDate.getTime() ) {
-			var fbx = getXBX();
-			var out = new flash.filesystem.FileStream();
-			out.open(target, flash.filesystem.FileMode.WRITE);
-			out.writeBytes(fbx.getData());
-			out.close();
-		}
-		file = target;
-		#else
-		var ttime = try sys.FileSystem.stat(target) catch( e : Dynamic ) null;
-		if( ttime == null || ttime.mtime.getTime() < sys.FileSystem.stat(file).mtime.getTime() ) {
-			var fbx = getXBX();
-			sys.io.File.saveBytes(target, fbx);
-		}
-		#end
-	}
-
 	function convertToMP3() {
 		var target = fs.tmpDir + "R_" + INVALID_CHARS.replace(relPath,"_") + ".mp3";
 		#if air3
@@ -357,8 +326,7 @@ class LocalFileSystem implements FileSystem {
 	var fileCache = new Map<String,{r:flash.filesystem.File}>();
 	#end
 	public var baseDir(default,null) : String;
-	public var createXBX : Bool;
-	public var createHMD : Bool;
+	var createHMD : Bool = true;
 	public var createMP3 : Bool;
 	public var tmpDir : String;
 
@@ -383,10 +351,6 @@ class LocalFileSystem implements FileSystem {
 		tmpDir = baseDir + ".tmp/";
 	}
 
-	public dynamic function xbxFilter( entry : FileEntry, fbx : hxd.fmt.fbx.Data.FbxNode ) : hxd.fmt.fbx.Data.FbxNode {
-		return fbx;
-	}
-
 	public function getRoot() : FileEntry {
 		return root;
 	}

+ 0 - 8
hxd/res/Any.hx

@@ -27,18 +27,10 @@ class Any extends Resource {
 		this.loader = loader;
 	}
 
-	public function toFbx() {
-		return loader.loadFbxModel(entry.path).toFbx(loader);
-	}
-
 	public function toHmd() {
 		return loader.loadFbxModel(entry.path).toHmd();
 	}
 
-	public function toAwd() {
-		return loader.loadAwdModel(entry.path);
-	}
-
 	public function toTexture() {
 		return loader.loadImage(entry.path).toTexture();
 	}

+ 0 - 9
hxd/res/AwdModel.hx

@@ -1,9 +0,0 @@
-package hxd.res;
-
-class AwdModel extends Resource {
-
-	public function load() {
-		return new hxd.fmt.awd.Reader().read(entry.getBytes());
-	}
-
-}

+ 0 - 3
hxd/res/EmbedOptions.hx

@@ -2,9 +2,6 @@ package hxd.res;
 
 typedef EmbedOptions = {
 	?compressSounds : Bool,
-	?createXBX : Bool,
-	?xbxFilter : String -> hxd.fmt.fbx.Data.FbxNode -> hxd.fmt.fbx.Data.FbxNode,
-	?createHMD : Bool,
 	?tmpDir : String,
 	?fontsChars : String,
 }

+ 0 - 25
hxd/res/FbxModel.hx

@@ -2,31 +2,6 @@ package hxd.res;
 
 class FbxModel extends Resource {
 
-	public static var isLeftHanded = true;
-
-	public function toFbx( ?loader : Loader ) : hxd.fmt.fbx.Library {
-		var lib = new hxd.fmt.fbx.Library();
-		switch( entry.getSign() & 0xFF ) {
-		case ';'.code: // FBX
-			lib.load(hxd.fmt.fbx.Parser.parse(entry.getBytes().toString()));
-		case 'X'.code: // XBX
-			var f = new haxe.io.BytesInput(entry.getBytes());
-			var xbx = new hxd.fmt.fbx.XBXReader(f).read();
-			lib.load(xbx);
-			f.close();
-		case '<'.code: // XTRA
-			if( loader == null ) throw "Loader parameter required for XTRA";
-			lib = loader.load(entry.path.substr(0, -4) + "FBX").toFbx();
-			lib.loadXtra(entry.getBytes().toString());
-		case 'H'.code:
-			throw "FBX model was converted to HMD : use res.toHmd()";
-		default:
-			throw "Unsupported model format " + entry.path;
-		}
-		if( isLeftHanded ) lib.leftHandConvert();
-		return lib;
-	}
-
 	public function toHmd() : hxd.fmt.hmd.Library {
 		var hmd = new hxd.fmt.hmd.Reader(new hxd.fs.FileInput(entry)).readHeader();
 		return new hxd.fmt.hmd.Library(entry, hmd);

+ 2 - 17
hxd/res/FileTree.hx

@@ -118,7 +118,7 @@ class FileTree {
 				fullPath = tmp;
 			}
 			Context.registerModuleDependency(currentModule, fullPath);
-		case "fbx" if( options.createHMD ):
+		case "fbx":
 			var tmp = options.tmpDir + name + ".hmd";
 			if( getTime(tmp) < getTime(fullPath) ) {
 				Sys.println("Converting " + relPath);
@@ -131,19 +131,6 @@ class FileTree {
 			}
 			Context.registerModuleDependency(currentModule, fullPath);
 			fullPath = tmp;
-		case "fbx" if( options.createXBX ):
-			var tmp = options.tmpDir + name + ".xbx";
-			if( getTime(tmp) < getTime(fullPath) ) {
-				Sys.println("Converting " + relPath);
-				var fbx = hxd.fmt.fbx.Parser.parse(sys.io.File.getContent(fullPath));
-				if( options.xbxFilter != null )
-					fbx = options.xbxFilter(relPath,fbx);
-				var out = sys.io.File.write(tmp);
-				new hxd.fmt.fbx.XBXWriter(out).write(fbx);
-				out.close();
-			}
-			Context.registerModuleDependency(currentModule, fullPath);
-			fullPath = tmp;
 		default:
 		}
 
@@ -349,10 +336,8 @@ class FileTree {
 		switch( ext.toLowerCase() ) {
 		case "jpg", "png":
 			return { e : macro loader.loadImage($epath), t : macro : hxd.res.Image };
-		case "fbx", "xbx", "xtra":
+		case "fbx", "xtra":
 			return { e : macro loader.loadFbxModel($epath), t : macro : hxd.res.FbxModel };
-		case "awd":
-			return { e : macro loader.loadAwdModel($epath), t : macro : hxd.res.AwdModel };
 		case "ttf":
 			return { e : macro loader.loadFont($epath), t : macro : hxd.res.Font };
 		case "fnt":

+ 0 - 9
hxd/res/Loader.hx

@@ -27,15 +27,6 @@ class Loader {
 		return m;
 	}
 
-	function loadAwdModel( path : String ) : AwdModel {
-		var m : AwdModel = cache.get(path);
-		if( m == null ) {
-			m = new AwdModel(fs.get(path));
-			cache.set(path, m);
-		}
-		return m;
-	}
-
 	function loadImage( path : String ) : Image {
 		var i : Image = cache.get(path);
 		if( i == null ) {