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;
 | |
| 	}
 | |
| }
 |