starling-framework
Version:
A fast, productive library for 2D cross-platform development.
89 lines (71 loc) • 3.01 kB
JavaScript
// Class: starling.textures.ConcreteVideoTexture
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 $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 Reflect() {return require("./../../Reflect");}
// Constructor
var ConcreteVideoTexture = function(base,scale) {
if(scale == null) {
scale = 1;
}
(starling_textures_ConcreteTexture().default).call(this,base,"bgra",base.videoWidth,base.videoHeight,false,false,false,scale);
}
// Meta
ConcreteVideoTexture.__name__ = "starling.textures.ConcreteVideoTexture";
ConcreteVideoTexture.__isInterface__ = false;
ConcreteVideoTexture.__super__ = (starling_textures_ConcreteTexture().default);
ConcreteVideoTexture.prototype = $extend((starling_textures_ConcreteTexture().default).prototype, {
dispose: function() {
this.get_base().removeEventListener("textureReady",$bind(this,this.onTextureReady));
if(!this._disposed) {
this.get_videoBase().attachNetStream(null);
this._disposed = true;
}
(starling_textures_ConcreteTexture().default).prototype.dispose.call(this);
},
createBase: function() {
return (starling_core_Starling().default).get_current().get_context().createVideoTexture();
},
attachVideo: function(type,attachment,onComplete) {
this._textureReadyCallback = onComplete;
var method = (Reflect().default).field(this.get_base(),"attach" + type);
(Reflect().default).callMethod(this.get_base(),method,[attachment]);
this.get_base().addEventListener("textureReady",$bind(this,this.onTextureReady));
this.setDataUploaded();
},
onTextureReady: function(event) {
this.get_base().removeEventListener("textureReady",$bind(this,this.onTextureReady));
if(this._textureReadyCallback != null) {
this._textureReadyCallback(this);
}
this._textureReadyCallback = null;
},
get_nativeWidth: function() {
return this.get_videoBase().videoWidth;
},
get_nativeHeight: function() {
return this.get_videoBase().videoHeight;
},
get_width: function() {
return this.get_nativeWidth() / this.get_scale();
},
get_height: function() {
return this.get_nativeHeight() / this.get_scale();
},
get_videoBase: function() {
return this.get_base();
}
});
ConcreteVideoTexture.prototype.__class__ = ConcreteVideoTexture.prototype.constructor = $hxClasses["starling.textures.ConcreteVideoTexture"] = ConcreteVideoTexture;
// Init
// Statics
// Export
exports.default = ConcreteVideoTexture;