UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

115 lines (100 loc) 4.65 kB
// Class: starling.textures.ConcreteRectangleTexture 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 $import = require("./../../import_stub").default; var $bind = require("./../../bind_stub").default; var $extend = require("./../../extend_stub").default; function starling_textures_ConcreteTexture() {return require("./../../starling/textures/ConcreteTexture");} function starling_core_Starling() {return require("./../../starling/core/Starling");} function Std() {return require("./../../Std");} function Reflect() {return require("./../../Reflect");} function js__$Boot_HaxeError() {return require("./../../js/_Boot/HaxeError");} function js_Boot() {return require("./../../js/Boot");} function openfl_errors_Error() {return $import(require("openfl/errors/Error"));} function haxe_Timer() {return require("./../../haxe/Timer");} function openfl_events_Event() {return $import(require("openfl/events/Event"));} // Constructor var ConcreteRectangleTexture = function(base,format,width,height,premultipliedAlpha,optimizedForRenderTexture,scale) { if(scale == null) { scale = 1; } if(optimizedForRenderTexture == null) { optimizedForRenderTexture = false; } (starling_textures_ConcreteTexture().default).call(this,base,format,width,height,false,premultipliedAlpha,optimizedForRenderTexture,scale); } // Meta ConcreteRectangleTexture.__name__ = ["starling","textures","ConcreteRectangleTexture"]; ConcreteRectangleTexture.__super__ = (starling_textures_ConcreteTexture().default); ConcreteRectangleTexture.prototype = $extend((starling_textures_ConcreteTexture().default).prototype, { uploadBitmapData: function(data,async) { if(async != null) { this._textureReadyCallback = async; } this.upload(data,async != null); this.setDataUploaded(); }, createBase: function() { return (starling_core_Starling().default).get_current().get_context().createRectangleTexture((Std().default)["int"](this.get_nativeWidth()),(Std().default)["int"](this.get_nativeHeight()),this.get_format(),this.get_optimizedForRenderTexture()); }, get_rectBase: function() { return this.get_base(); }, upload: function(source,isAsync) { if(isAsync) { this.uploadAsync(source); this.get_base().addEventListener("textureReady",$bind(this,this.onTextureReady)); this.get_base().addEventListener("error",$bind(this,this.onTextureReady)); } else { this.get_rectBase().uploadFromBitmapData(source); } }, uploadAsync: function(source) { var _gthis = this; if(ConcreteRectangleTexture.sAsyncUploadEnabled) { var method = (Reflect().default).field(this.get_base(),"uploadFromBitmapDataAsync"); try { (Reflect().default).callMethod(this.get_base(),method,[source]); } catch( error ) { if (error instanceof (js__$Boot_HaxeError().default)) error = error.val; if( (js_Boot().default).__instanceof(error,(openfl_errors_Error().default)) ) { if(error.errorID == 3708 || error.errorID == 1069) { ConcreteRectangleTexture.sAsyncUploadEnabled = false; } else { throw new (js__$Boot_HaxeError().default)(error); } } else throw(error); } } if(!ConcreteRectangleTexture.sAsyncUploadEnabled) { (haxe_Timer().default).delay(function() { _gthis.get_base().dispatchEvent(new (openfl_events_Event().default)("textureReady")); },1); this.get_rectBase().uploadFromBitmapData(source); } }, onTextureReady: function(event) { this.get_base().removeEventListener("textureReady",$bind(this,this.onTextureReady)); this.get_base().removeEventListener("error",$bind(this,this.onTextureReady)); if(this._textureReadyCallback != null) { this._textureReadyCallback(this); } this._textureReadyCallback = null; } }); ConcreteRectangleTexture.prototype.__class__ = ConcreteRectangleTexture.prototype.constructor = $hxClasses["starling.textures.ConcreteRectangleTexture"] = ConcreteRectangleTexture; // Init Object.defineProperties(ConcreteRectangleTexture.prototype,{ "rectBase" : { get : function () { return this.get_rectBase (); }}}); // Statics ConcreteRectangleTexture.get_asyncUploadEnabled = function() { return ConcreteRectangleTexture.sAsyncUploadEnabled; } ConcreteRectangleTexture.set_asyncUploadEnabled = function(value) { return ConcreteRectangleTexture.sAsyncUploadEnabled = value; } ConcreteRectangleTexture.sAsyncUploadEnabled = false // Export exports.default = ConcreteRectangleTexture;