瀏覽代碼

faster hmd header decode for hide

Nicolas Cannasse 3 年之前
父節點
當前提交
90c024a679
共有 2 個文件被更改,包括 5 次插入3 次删除
  1. 4 2
      hxd/fmt/hmd/Reader.hx
  2. 1 1
      hxd/res/Model.hx

+ 4 - 2
hxd/fmt/hmd/Reader.hx

@@ -56,7 +56,7 @@ class Reader {
 		var n = HMD_STRINGS.get(name);
 		if( n != null ) return n;
 		HMD_STRINGS.set(name,name);
-		return name;	
+		return name;
 	}
 
 	function readPosition(hasScale=true) {
@@ -125,7 +125,7 @@ class Reader {
 		return s;
 	}
 
-	public function readHeader() : Data {
+	public function readHeader( fast = false ) : Data {
 		var d = new Data();
 		var h = i.readString(3);
 		if( h != "HMD" ) {
@@ -138,6 +138,8 @@ class Reader {
 		d.version = version;
 		d.geometries = [];
 		d.dataPosition = i.readInt32();
+		if( fast )
+			i = new haxe.io.BytesInput(i.read(d.dataPosition-12));
 		d.props = readProps();
 
 		for( k in 0...i.readInt32() ) {

+ 1 - 1
hxd/res/Model.hx

@@ -4,7 +4,7 @@ class Model extends Resource {
 
 	public function toHmd() : hxd.fmt.hmd.Library {
 		var fs = new hxd.fs.FileInput(entry);
-		var hmd = new hxd.fmt.hmd.Reader(fs).readHeader();
+		var hmd = new hxd.fmt.hmd.Reader(fs).readHeader(#if editor true #end);
 		fs.close();
 		return new hxd.fmt.hmd.Library(this, hmd);
 	}