starling-framework
Version:
A fast, productive library for 2D cross-platform development.
98 lines (80 loc) • 3.52 kB
JavaScript
// Class: starling.assets.AtfTextureFactory
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../hxClasses_stub").default;
var $hxEnums = require("./../../hxEnums_stub").default;
var $import = require("./../../import_stub").default;
var $extend = require("./../../extend_stub").default;
function starling_assets_AssetFactory() {return require("./../../starling/assets/AssetFactory");}
function openfl_utils_ByteArray() {return $import(require("openfl/utils/ByteArray"));}
function starling_textures_AtfData() {return require("./../../starling/textures/AtfData");}
function starling_utils_Execute() {return require("./../../starling/utils/Execute");}
function starling_textures_Texture() {return require("./../../starling/textures/Texture");}
function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");}
function Std() {return require("./../../Std");}
// Constructor
var AtfTextureFactory = function() {
(starling_assets_AssetFactory().default).call(this);
this.addExtensions(["atf"]);
}
// Meta
AtfTextureFactory.__name__ = "starling.assets.AtfTextureFactory";
AtfTextureFactory.__isInterface__ = false;
AtfTextureFactory.__super__ = (starling_assets_AssetFactory().default);
AtfTextureFactory.prototype = $extend((starling_assets_AssetFactory().default).prototype, {
canHandle: function(reference) {
if(((reference.get_data()) instanceof (openfl_utils_ByteArray().default))) {
return (starling_textures_AtfData().default).isAtfData(reference.get_data());
} else {
return false;
}
},
create: function(reference,helper,onComplete,onError) {
var onReloadError = null;
var createTexture = null;
onReloadError = function(error) {
var onReloadError1 = "Texture restoration failed for " + reference.get_url() + ". " + error;
helper.log(onReloadError1);
helper.onEndRestore();
};
createTexture = function() {
var texture = null;
var onReady = reference.get_textureOptions().get_onReady();
reference.get_textureOptions().set_onReady(function(_) {
(starling_utils_Execute().default).execute(onReady,[texture]);
var createTexture1 = reference.get_name();
onComplete(createTexture1,texture);
});
var url = reference.get_url();
try {
texture = (starling_textures_Texture().default).fromData(reference.get_data(),reference.get_textureOptions());
} catch( e ) {
onError(((e) instanceof (js__$Boot_HaxeError().default)) ? e.val : e);
}
if(url != null && texture != null) {
texture.get_root().set_onRestore(function(_1) {
helper.onBeginRestore();
helper.loadDataFromUrl(url,function(data,mimeType,name,extension) {
helper.executeWhenContextReady(function() {
try {
texture.get_root().uploadAtfData(data);
} catch( e1 ) {
helper.log("Texture restoration failed: " + (Std().default).string(((e1) instanceof (js__$Boot_HaxeError().default)) ? e1.val : e1));
}
helper.onEndRestore();
});
},onReloadError);
});
}
reference.set_data(null);
};
helper.executeWhenContextReady(createTexture);
}
});
AtfTextureFactory.prototype.__class__ = AtfTextureFactory.prototype.constructor = $hxClasses["starling.assets.AtfTextureFactory"] = AtfTextureFactory;
// Init
// Statics
// Export
exports.default = AtfTextureFactory;