forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha; | ||
|  | 
 | ||
|  | import kha.Blob; | ||
|  | import haxe.io.Bytes; | ||
|  | import kha.Kravur; | ||
|  | import sys.io.File; | ||
|  | 
 | ||
|  | class LoaderImpl { | ||
|  | 	public static function loadSoundFromDescription(desc: Dynamic, done: kha.Sound->Void, failed: AssetError->Void) { | ||
|  | 		done(new kha.korehl.Sound(desc.files[0])); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getSoundFormats(): Array<String> { | ||
|  | 		return ["wav", "ogg"]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadImageFromDescription(desc: Dynamic, done: kha.Image->Void, failed: AssetError->Void) { | ||
|  | 		var readable = Reflect.hasField(desc, "readable") ? desc.readable : false; | ||
|  | 		var image = kha.Image.fromFile(desc.files[0], readable); | ||
|  | 		if (image == null) { | ||
|  | 			failed({ | ||
|  | 				url: desc.files.join(","), | ||
|  | 				error: "Could not load image(s)", | ||
|  | 			}); | ||
|  | 		} | ||
|  | 		else { | ||
|  | 			done(image); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getImageFormats(): Array<String> { | ||
|  | 		return ["png", "jpg", "hdr"]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadBlobFromDescription(desc: Dynamic, done: Blob->Void, failed: AssetError->Void) { | ||
|  | 		// done(new Blob(File.getBytes(desc.files[0]))); | ||
|  | 		var size = 0; | ||
|  | 		var bytes = kinc_file_contents(StringHelper.convert(desc.files[0]), size); | ||
|  | 		if (bytes == null) { | ||
|  | 			failed({ | ||
|  | 				url: desc.files.join(","), | ||
|  | 				error: "Could not load blob(s)", | ||
|  | 			}); | ||
|  | 		} | ||
|  | 		else { | ||
|  | 			done(new Blob(@:privateAccess new haxe.io.Bytes(bytes, size))); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadFontFromDescription(desc: Dynamic, done: Font->Void, failed: AssetError->Void): Void { | ||
|  | 		loadBlobFromDescription(desc, function(blob: Blob) { | ||
|  | 			done(new Kravur(blob)); | ||
|  | 		}, (a: AssetError) -> { | ||
|  | 			a.error = "Could not load font(s)"; | ||
|  | 			failed(a); | ||
|  | 		}); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function loadVideoFromDescription(desc: Dynamic, done: Video->Void, failed: AssetError->Void) { | ||
|  | 		done(new kha.korehl.Video(desc.files[0])); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function getVideoFormats(): Array<String> { | ||
|  | 		return [StringHelper.fromBytes(kinc_video_format())]; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	@:hlNative("std", "kinc_file_contents") static function kinc_file_contents(name: hl.Bytes, size: hl.Ref<Int>): Pointer { | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	@:hlNative("std", "kinc_video_format") static function kinc_video_format(): Pointer { | ||
|  | 		return null; | ||
|  | 	} | ||
|  | } |