diff --git a/Assets/console.ttf b/Assets/console.ttf old mode 100755 new mode 100644 index 310b6f7a..d604425b Binary files a/Assets/console.ttf and b/Assets/console.ttf differ diff --git a/Assets/droid_sans.ttf b/Assets/droid_sans.ttf old mode 100755 new mode 100644 index 767c63ad..efd1f8bb Binary files a/Assets/droid_sans.ttf and b/Assets/droid_sans.ttf differ diff --git a/blender/arm/props_traits.py b/blender/arm/props_traits.py index 1dcfd785..a8336f3d 100755 --- a/blender/arm/props_traits.py +++ b/blender/arm/props_traits.py @@ -225,15 +225,10 @@ class ArmoryEditCanvasButton(bpy.types.Operator): write_data.write_canvasprefs(canvas_path) sdk_path = arm.utils.get_sdk_path() - electron_app_path = sdk_path + '/armory/tools/armorui/electron.js' - if arm.utils.get_os() == 'win': - electron_path = sdk_path + 'win32/Kode Studio.exe' - elif arm.utils.get_os() == 'mac': - electron_path = sdk_path + 'Kode Studio.app/Contents/MacOS/Electron' - else: - electron_path = sdk_path + 'linux64/kodestudio' - subprocess.Popen([electron_path, '--chromedebug', '--remote-debugging-port=9222', '--enable-logging', electron_app_path, canvas_path]) - + armorui_path = sdk_path + '/armory/tools/armorui/krom' + krom_location, krom_path = arm.utils.krom_paths() + os.chdir(krom_location) + subprocess.Popen([krom_path, armorui_path, armorui_path, '--nosound']) return{'FINISHED'} class ArmoryNewScriptDialog(bpy.types.Operator): diff --git a/blender/arm/write_data.py b/blender/arm/write_data.py index 905ac6d9..849a201b 100755 --- a/blender/arm/write_data.py +++ b/blender/arm/write_data.py @@ -430,7 +430,7 @@ def write_canvasjson(canvas_name): def write_canvasprefs(canvas_path): sdk_path = arm.utils.get_sdk_path() - prefs_path = sdk_path + 'armory/tools/armorui/prefs.json' + prefs_path = sdk_path + 'armory/tools/armorui/krom/prefs.json' with open(prefs_path, 'w') as f: f.write( '{ "path": "' + canvas_path.replace('\\', '/') + '" }') diff --git a/tools/armorui/DroidSans.ttf b/tools/armorui/DroidSans.ttf deleted file mode 100644 index 767c63ad..00000000 Binary files a/tools/armorui/DroidSans.ttf and /dev/null differ diff --git a/tools/armorui/electron.js b/tools/armorui/electron.js deleted file mode 100644 index 72e3f9e4..00000000 --- a/tools/armorui/electron.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; -const electron = require('electron'); -const app = electron.app; -const BrowserWindow = electron.BrowserWindow; -let mainWindow; - -function createWindow () { - mainWindow = new BrowserWindow({width: 1240, height: 640, autoHideMenuBar: true, useContentSize: true}); - mainWindow.loadURL('file://' + __dirname + '/index.html'); - mainWindow.on('closed', function() { mainWindow = null; }); -} -app.on('ready', createWindow); -app.on('window-all-closed', function () { app.quit(); }); -app.on('activate', function () { if (mainWindow === null) { createWindow(); } }); \ No newline at end of file diff --git a/tools/armorui/index.html b/tools/armorui/index.html deleted file mode 100644 index 4df14969..00000000 --- a/tools/armorui/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - ArmorUI - - - - - - - diff --git a/tools/armorui/kha.js b/tools/armorui/kha.js deleted file mode 100644 index 6201d35d..00000000 --- a/tools/armorui/kha.js +++ /dev/null @@ -1,24476 +0,0 @@ -// Generated by Haxe 3.4.2 -(function ($hx_exports, $global) { "use strict"; -$hx_exports["kha"] = $hx_exports["kha"] || {}; -$hx_exports["kha"]["input"] = $hx_exports["kha"]["input"] || {}; -;$hx_exports["kha"]["_Color"] = $hx_exports["kha"]["_Color"] || {}; -var $hxClasses = {},$estr = function() { return js_Boot.__string_rec(this,''); }; -function $extend(from, fields) { - function Inherit() {} Inherit.prototype = from; var proto = new Inherit(); - for (var name in fields) proto[name] = fields[name]; - if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString; - return proto; -} -var EReg = function(r,opt) { - this.r = new RegExp(r,opt.split("u").join("")); -}; -$hxClasses["EReg"] = EReg; -EReg.__name__ = true; -EReg.prototype = { - r: null - ,match: function(s) { - if(this.r.global) { - this.r.lastIndex = 0; - } - this.r.m = this.r.exec(s); - this.r.s = s; - return this.r.m != null; - } - ,matched: function(n) { - if(this.r.m != null && n >= 0 && n < this.r.m.length) { - return this.r.m[n]; - } else { - throw new js__$Boot_HaxeError("EReg::matched"); - } - } - ,__class__: EReg -}; -var Elements = function(canvas) { - this.drag = false; - this.handleradio = zui_Handle.global.nest(4,null); - this.handlewin = zui_Handle.global.nest(0,null); - this.selectedElem = -1; - this.bg = null; - this.initialized = false; - this.canvas = canvas; - var _onDrop = $bind(this,this.onDrop); - - document.ondragover = document.ondrop = (ev) => { - ev.preventDefault() - } - document.body.ondrop = (ev) => { - _onDrop(ev.dataTransfer.files[0].path); - ev.preventDefault() - } - ; - kha_Assets.loadEverything($bind(this,this.loadingFinished)); -}; -$hxClasses["Elements"] = Elements; -Elements.__name__ = true; -Elements.prototype = { - ui: null - ,cui: null - ,initialized: null - ,bg: null - ,canvas: null - ,onDrop: function(file) { - var _gthis = this; - kha_LoaderImpl.loadImageFromDescription({ files : [file]},function(image) { - var s = file.split("/"); - var name = s[s.length - 1]; - var asset = { name : name, file : file, image : image}; - _gthis.canvas.assets.push(asset); - }); - } - ,loadingFinished: function() { - this.initialized = true; - var t = Reflect.copy(zui_Themes.dark); - t.FILL_WINDOW_BG = true; - this.ui = new zui_Zui({ font : kha_Assets.fonts.DroidSans, theme : t}); - this.cui = new zui_Zui({ font : kha_Assets.fonts.DroidSans, autoNotifyInput : false}); - } - ,makeElem: function(type) { - var name = ""; - var height = 100; - if(type == 0) { - name = "Text"; - height = 48; - } else if(type == 2) { - name = "Button"; - } else if(type == 1) { - name = "Image"; - } - var elem = { id : 0, type : type, name : name, event : "", x : 0, y : 0, width : 150, height : height, text : name, asset : "", color : 16777215, anchor : 0, children : []}; - return elem; - } - ,selectedElem: null - ,handlewin: null - ,handleradio: null - ,render: function(framebuffer) { - if(!this.initialized) { - return; - } - if(this.bg == null) { - var w = kha_System.windowWidth(); - var h = kha_System.windowHeight(); - this.bg = kha_Image.createRenderTarget(w,h); - this.bg.get_g2().begin(true,-15461356); - var _g1 = 0; - var _g = (h / 40 | 0) + 1; - while(_g1 < _g) { - var i = _g1++; - this.bg.get_g2().set_color(-13619152); - this.bg.get_g2().drawLine(0,i * 40,w,i * 40); - this.bg.get_g2().set_color(-14671840); - this.bg.get_g2().drawLine(0,i * 40 + 20,w,i * 40 + 20); - } - var _g11 = 0; - var _g2 = (w / 40 | 0) + 1; - while(_g11 < _g2) { - var i1 = _g11++; - this.bg.get_g2().set_color(-13619152); - this.bg.get_g2().drawLine(i1 * 40,0,i1 * 40,h); - this.bg.get_g2().set_color(-14671840); - this.bg.get_g2().drawLine(i1 * 40 + 20,0,i1 * 40 + 20,h); - } - this.bg.get_g2().set_color(-1); - var tmp = kha_System.windowWidth() - this.canvas.width; - this.canvas.x = tmp - 20; - this.canvas.y = 40; - this.bg.get_g2().drawRect(this.canvas.x,this.canvas.y,this.canvas.width,this.canvas.height,1.0); - this.bg.get_g2().end(); - } - var g = framebuffer.get_g2(); - g.begin(); - g.drawImage(this.bg,0,0); - g.set_font(kha_Assets.fonts.DroidSans); - g.set_fontSize(40); - var title = this.canvas.name + ", " + this.canvas.width + "x" + this.canvas.height; - var titlew = g.get_font().width(40,title); - var titleh = g.get_font().height(40); - g.set_color(-1); - g.drawString(title,kha_System.windowWidth() - titlew - 30,kha_System.windowHeight() - titleh - 10); - zui_Canvas.draw(this.cui,this.canvas,g); - if(this.selectedElem >= 0 && this.selectedElem < this.canvas.elements.length) { - var elem = this.canvas.elements[this.selectedElem]; - g.set_color(-1); - g.drawRect(this.canvas.x + elem.x,this.canvas.y + elem.y,elem.width,elem.height,1); - } - g.end(); - this.ui.begin(g); - if(this.ui.window(this.handlewin,0,0,240,640,false)) { - if(this.ui.panel(zui_Handle.global.nest(1,{ selected : true}),"CANVAS")) { - if(this.ui.button("Save")) { - var fs = require('fs'); - fs.writeFileSync(Main.prefs.path, JSON.stringify(this.canvas)); - } - var tmp1 = this.ui; - var tmp2 = zui_Handle.global.nest(2,{ text : this.canvas.name}); - this.canvas.name = tmp1.textInput(tmp2,"Name",2); - } - this.ui.separator(); - if(this.ui.panel(zui_Handle.global.nest(3,{ selected : true}),"TREE")) { - this.ui.row([0.333333333333333315,0.333333333333333315,0.333333333333333315]); - if(this.ui.button("Text")) { - var elem1 = this.makeElem(0); - this.canvas.elements.push(elem1); - this.handleradio.position = this.canvas.elements.length - 1; - } - if(this.ui.button("Image")) { - var elem2 = this.makeElem(1); - this.canvas.elements.push(elem2); - this.handleradio.position = this.canvas.elements.length - 1; - } - if(this.ui.button("Button")) { - var elem3 = this.makeElem(2); - this.canvas.elements.push(elem3); - this.handleradio.position = this.canvas.elements.length - 1; - } - var i2 = 0; - var _g3 = 0; - var _g12 = this.canvas.elements; - while(_g3 < _g12.length) { - var elem4 = _g12[_g3]; - ++_g3; - if(this.ui.radio(this.handleradio,i2++,elem4.name)) { - this.selectedElem = i2 - 1; - } - } - if(this.canvas.elements.length > 0) { - if(this.ui.button("Remove")) { - this.canvas.elements.splice(this.selectedElem,1); - if(this.selectedElem <= this.canvas.elements.length) { - this.selectedElem--; - this.handleradio.position = this.selectedElem; - } - } - } - } - this.ui.separator(); - if(this.ui.panel(zui_Handle.global.nest(5,{ selected : true}),"PROPERTIES")) { - var i3 = this.selectedElem; - if(i3 >= 0) { - var elem5 = this.canvas.elements[i3]; - this.ui.row([0.5,0.5]); - elem5.name = this.ui.textInput(zui_Handle.global.nest(6,null).nest(i3,{ text : elem5.name}),"Name",2); - elem5.text = this.ui.textInput(zui_Handle.global.nest(7,null).nest(i3,{ text : elem5.text}),"Text",2); - this.ui.row([0.5,0.5]); - elem5.event = this.ui.textInput(zui_Handle.global.nest(8,null).nest(i3,{ text : elem5.event}),"Event",2); - elem5.asset = this.ui.textInput(zui_Handle.global.nest(9,null).nest(i3,{ text : elem5.asset}),"Asset",2); - this.ui.row([0.5,0.5]); - var handlex = elem5.x + ""; - var handlex1 = zui_Handle.global.nest(10,null).nest(i3,{ text : handlex}); - var handley = elem5.y + ""; - var handley1 = zui_Handle.global.nest(11,null).nest(i3,{ text : handley}); - handlex1.text = elem5.x + ""; - handley1.text = elem5.y + ""; - var strx = this.ui.textInput(handlex1,"X",2); - var stry = this.ui.textInput(handley1,"Y",2); - elem5.x = parseFloat(strx); - elem5.y = parseFloat(stry); - this.ui.row([0.5,0.5]); - var strw = elem5.width + ""; - var strw1 = this.ui.textInput(zui_Handle.global.nest(12,null).nest(i3,{ text : strw}),"Width",2); - var strh = elem5.height + ""; - var strh1 = this.ui.textInput(zui_Handle.global.nest(13,null).nest(i3,{ text : strh}),"Height",2); - elem5.width = parseFloat(strw1) | 0; - elem5.height = parseFloat(strh1) | 0; - this.ui.row([0.5,0.5]); - var strcol = this.ui.textInput(zui_Handle.global.nest(14,null).nest(i3,{ text : "#ffffff"}),"Color",2); - var stranch = elem5.anchor + ""; - var stranch1 = this.ui.textInput(zui_Handle.global.nest(15,null).nest(i3,{ text : stranch}),"Anchor",2); - elem5.color = kha__$Color_Color_$Impl_$.fromString(strcol); - elem5.anchor = parseFloat(stranch1) | 0; - } - } - this.ui.separator(); - if(this.ui.panel(zui_Handle.global.nest(16,{ selected : true}),"ASSETS")) { - if(this.canvas.assets.length > 0) { - var _g13 = 0; - var _g4 = this.canvas.assets.length; - while(_g13 < _g4) { - var i4 = _g13++; - var asset = this.canvas.assets[i4]; - this.ui.image(asset.image); - asset.name = this.ui.textInput(zui_Handle.global.nest(17,null).nest(i4,{ text : asset.name}),"Name",2); - } - } else { - this.ui.text("Drag & drop assets here"); - } - } - } - this.ui.end(); - } - ,drag: null - ,update: function() { - if(!this.initialized) { - return; - } - if(this.selectedElem >= 0 && this.selectedElem < this.canvas.elements.length) { - var elem = this.canvas.elements[this.selectedElem]; - if(this.ui.inputStarted && this.ui.inputX > this.canvas.x + elem.x && this.ui.inputX < this.canvas.x + elem.x + elem.width && this.ui.inputY > this.canvas.y + elem.y && this.ui.inputY < this.canvas.y + elem.y + elem.height) { - this.drag = true; - } - if(this.ui.inputReleased && this.drag) { - this.drag = false; - } - if(this.drag) { - this.handlewin.redraws = 2; - elem.x += this.ui.inputDX; - elem.y += this.ui.inputDY; - } - } - } - ,__class__: Elements -}; -var HxOverrides = function() { }; -$hxClasses["HxOverrides"] = HxOverrides; -HxOverrides.__name__ = true; -HxOverrides.strDate = function(s) { - var _g = s.length; - switch(_g) { - case 8: - var k = s.split(":"); - var d = new Date(); - d["setTime"](0); - d["setUTCHours"](k[0]); - d["setUTCMinutes"](k[1]); - d["setUTCSeconds"](k[2]); - return d; - case 10: - var k1 = s.split("-"); - return new Date(k1[0],k1[1] - 1,k1[2],0,0,0); - case 19: - var k2 = s.split(" "); - var y = k2[0].split("-"); - var t = k2[1].split(":"); - return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]); - default: - throw new js__$Boot_HaxeError("Invalid date format : " + s); - } -}; -HxOverrides.cca = function(s,index) { - var x = s.charCodeAt(index); - if(x != x) { - return undefined; - } - return x; -}; -HxOverrides.substr = function(s,pos,len) { - if(len == null) { - len = s.length; - } else if(len < 0) { - if(pos == 0) { - len = s.length + len; - } else { - return ""; - } - } - return s.substr(pos,len); -}; -HxOverrides.remove = function(a,obj) { - var i = a.indexOf(obj); - if(i == -1) { - return false; - } - a.splice(i,1); - return true; -}; -HxOverrides.iter = function(a) { - return { cur : 0, arr : a, hasNext : function() { - return this.cur < this.arr.length; - }, next : function() { - return this.arr[this.cur++]; - }}; -}; -var Lambda = function() { }; -$hxClasses["Lambda"] = Lambda; -Lambda.__name__ = true; -Lambda.array = function(it) { - var a = []; - var i = $iterator(it)(); - while(i.hasNext()) { - var i1 = i.next(); - a.push(i1); - } - return a; -}; -var List = function() { - this.length = 0; -}; -$hxClasses["List"] = List; -List.__name__ = true; -List.prototype = { - h: null - ,q: null - ,length: null - ,add: function(item) { - var x = new _$List_ListNode(item,null); - if(this.h == null) { - this.h = x; - } else { - this.q.next = x; - } - this.q = x; - this.length++; - } - ,remove: function(v) { - var prev = null; - var l = this.h; - while(l != null) { - if(l.item == v) { - if(prev == null) { - this.h = l.next; - } else { - prev.next = l.next; - } - if(this.q == l) { - this.q = prev; - } - this.length--; - return true; - } - prev = l; - l = l.next; - } - return false; - } - ,iterator: function() { - return new _$List_ListIterator(this.h); - } - ,__class__: List -}; -var _$List_ListNode = function(item,next) { - this.item = item; - this.next = next; -}; -$hxClasses["_List.ListNode"] = _$List_ListNode; -_$List_ListNode.__name__ = true; -_$List_ListNode.prototype = { - item: null - ,next: null - ,__class__: _$List_ListNode -}; -var _$List_ListIterator = function(head) { - this.head = head; -}; -$hxClasses["_List.ListIterator"] = _$List_ListIterator; -_$List_ListIterator.__name__ = true; -_$List_ListIterator.prototype = { - head: null - ,hasNext: function() { - return this.head != null; - } - ,next: function() { - var val = this.head.item; - this.head = this.head.next; - return val; - } - ,__class__: _$List_ListIterator -}; -var Main = function() { }; -$hxClasses["Main"] = Main; -Main.__name__ = true; -Main.main = function() { - kha_System.init({ title : "ArmorUI", width : 1240, height : 640},Main.initialized); -}; -Main.initialized = function() { - kha_LoaderImpl.loadBlobFromDescription({ files : ["prefs.json"]},function(blob) { - Main.prefs = JSON.parse(blob.toString()); - kha_LoaderImpl.loadBlobFromDescription({ files : [Main.prefs.path]},function(cblob) { - var raw = JSON.parse(cblob.toString()); - var inst = new Elements(raw); - kha_System.notifyOnRender($bind(inst,inst.render)); - kha_Scheduler.addTimeTask($bind(inst,inst.update),0,0.0166666666666666664); - }); - }); -}; -Math.__name__ = true; -var Reflect = function() { }; -$hxClasses["Reflect"] = Reflect; -Reflect.__name__ = true; -Reflect.field = function(o,field) { - try { - return o[field]; - } catch( e ) { - return null; - } -}; -Reflect.fields = function(o) { - var a = []; - if(o != null) { - var hasOwnProperty = Object.prototype.hasOwnProperty; - for( var f in o ) { - if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) { - a.push(f); - } - } - } - return a; -}; -Reflect.isFunction = function(f) { - if(typeof(f) == "function") { - return !(f.__name__ || f.__ename__); - } else { - return false; - } -}; -Reflect.copy = function(o) { - var o2 = { }; - var _g = 0; - var _g1 = Reflect.fields(o); - while(_g < _g1.length) { - var f = _g1[_g]; - ++_g; - o2[f] = Reflect.field(o,f); - } - return o2; -}; -var Std = function() { }; -$hxClasses["Std"] = Std; -Std.__name__ = true; -Std.string = function(s) { - return js_Boot.__string_rec(s,""); -}; -Std.parseInt = function(x) { - var v = parseInt(x,10); - if(v == 0 && (HxOverrides.cca(x,1) == 120 || HxOverrides.cca(x,1) == 88)) { - v = parseInt(x); - } - if(isNaN(v)) { - return null; - } - return v; -}; -var StringTools = function() { }; -$hxClasses["StringTools"] = StringTools; -StringTools.__name__ = true; -StringTools.endsWith = function(s,end) { - var elen = end.length; - var slen = s.length; - if(slen >= elen) { - return HxOverrides.substr(s,slen - elen,elen) == end; - } else { - return false; - } -}; -var Type = function() { }; -$hxClasses["Type"] = Type; -Type.__name__ = true; -Type.resolveClass = function(name) { - var cl = $hxClasses[name]; - if(cl == null || !cl.__name__) { - return null; - } - return cl; -}; -Type.resolveEnum = function(name) { - var e = $hxClasses[name]; - if(e == null || !e.__ename__) { - return null; - } - return e; -}; -Type.createEmptyInstance = function(cl) { - function empty() {}; empty.prototype = cl.prototype; - return new empty(); -}; -Type.createEnum = function(e,constr,params) { - var f = Reflect.field(e,constr); - if(f == null) { - throw new js__$Boot_HaxeError("No such constructor " + constr); - } - if(Reflect.isFunction(f)) { - if(params == null) { - throw new js__$Boot_HaxeError("Constructor " + constr + " need parameters"); - } - return f.apply(e,params); - } - if(params != null && params.length != 0) { - throw new js__$Boot_HaxeError("Constructor " + constr + " does not need parameters"); - } - return f; -}; -Type.createEnumIndex = function(e,index,params) { - var c = e.__constructs__[index]; - if(c == null) { - throw new js__$Boot_HaxeError(index + " is not a valid enum constructor index"); - } - return Type.createEnum(e,c,params); -}; -Type.getInstanceFields = function(c) { - var a = []; - for(var i in c.prototype) a.push(i); - HxOverrides.remove(a,"__class__"); - HxOverrides.remove(a,"__properties__"); - return a; -}; -var _$UInt_UInt_$Impl_$ = {}; -$hxClasses["_UInt.UInt_Impl_"] = _$UInt_UInt_$Impl_$; -_$UInt_UInt_$Impl_$.__name__ = true; -_$UInt_UInt_$Impl_$.gt = function(a,b) { - var aNeg = a < 0; - var bNeg = b < 0; - if(aNeg != bNeg) { - return aNeg; - } else { - return a > b; - } -}; -_$UInt_UInt_$Impl_$.gte = function(a,b) { - var aNeg = a < 0; - var bNeg = b < 0; - if(aNeg != bNeg) { - return aNeg; - } else { - return a >= b; - } -}; -_$UInt_UInt_$Impl_$.toFloat = function(this1) { - var $int = this1; - if($int < 0) { - return 4294967296.0 + $int; - } else { - return $int + 0.0; - } -}; -var haxe_IMap = function() { }; -$hxClasses["haxe.IMap"] = haxe_IMap; -haxe_IMap.__name__ = true; -haxe_IMap.prototype = { - iterator: null - ,__class__: haxe_IMap -}; -var haxe__$Int64__$_$_$Int64 = function(high,low) { - this.high = high; - this.low = low; -}; -$hxClasses["haxe._Int64.___Int64"] = haxe__$Int64__$_$_$Int64; -haxe__$Int64__$_$_$Int64.__name__ = true; -haxe__$Int64__$_$_$Int64.prototype = { - high: null - ,low: null - ,__class__: haxe__$Int64__$_$_$Int64 -}; -var haxe_Log = function() { }; -$hxClasses["haxe.Log"] = haxe_Log; -haxe_Log.__name__ = true; -haxe_Log.trace = function(v,infos) { - js_Boot.__trace(v,infos); -}; -var haxe__$Unserializer_DefaultResolver = function() { -}; -$hxClasses["haxe._Unserializer.DefaultResolver"] = haxe__$Unserializer_DefaultResolver; -haxe__$Unserializer_DefaultResolver.__name__ = true; -haxe__$Unserializer_DefaultResolver.prototype = { - resolveClass: function(name) { - return Type.resolveClass(name); - } - ,resolveEnum: function(name) { - return Type.resolveEnum(name); - } - ,__class__: haxe__$Unserializer_DefaultResolver -}; -var haxe_Unserializer = function(buf) { - this.buf = buf; - this.length = buf.length; - this.pos = 0; - this.scache = []; - this.cache = []; - var r = haxe_Unserializer.DEFAULT_RESOLVER; - if(r == null) { - r = new haxe__$Unserializer_DefaultResolver(); - haxe_Unserializer.DEFAULT_RESOLVER = r; - } - this.resolver = r; -}; -$hxClasses["haxe.Unserializer"] = haxe_Unserializer; -haxe_Unserializer.__name__ = true; -haxe_Unserializer.initCodes = function() { - var codes = []; - var _g1 = 0; - var _g = haxe_Unserializer.BASE64.length; - while(_g1 < _g) { - var i = _g1++; - codes[haxe_Unserializer.BASE64.charCodeAt(i)] = i; - } - return codes; -}; -haxe_Unserializer.run = function(v) { - return new haxe_Unserializer(v).unserialize(); -}; -haxe_Unserializer.prototype = { - buf: null - ,pos: null - ,length: null - ,cache: null - ,scache: null - ,resolver: null - ,readDigits: function() { - var k = 0; - var s = false; - var fpos = this.pos; - while(true) { - var c = this.buf.charCodeAt(this.pos); - if(c != c) { - break; - } - if(c == 45) { - if(this.pos != fpos) { - break; - } - s = true; - this.pos++; - continue; - } - if(c < 48 || c > 57) { - break; - } - k = k * 10 + (c - 48); - this.pos++; - } - if(s) { - k *= -1; - } - return k; - } - ,readFloat: function() { - var p1 = this.pos; - while(true) { - var c = this.buf.charCodeAt(this.pos); - if(c != c) { - break; - } - if(c >= 43 && c < 58 || c == 101 || c == 69) { - this.pos++; - } else { - break; - } - } - return parseFloat(HxOverrides.substr(this.buf,p1,this.pos - p1)); - } - ,unserializeObject: function(o) { - while(true) { - if(this.pos >= this.length) { - throw new js__$Boot_HaxeError("Invalid object"); - } - if(this.buf.charCodeAt(this.pos) == 103) { - break; - } - var k = this.unserialize(); - if(typeof(k) != "string") { - throw new js__$Boot_HaxeError("Invalid object key"); - } - var v = this.unserialize(); - o[k] = v; - } - this.pos++; - } - ,unserializeEnum: function(edecl,tag) { - if(this.buf.charCodeAt(this.pos++) != 58) { - throw new js__$Boot_HaxeError("Invalid enum format"); - } - var nargs = this.readDigits(); - if(nargs == 0) { - return Type.createEnum(edecl,tag); - } - var args = []; - while(nargs-- > 0) args.push(this.unserialize()); - return Type.createEnum(edecl,tag,args); - } - ,unserialize: function() { - var _g = this.buf.charCodeAt(this.pos++); - switch(_g) { - case 65: - var name = this.unserialize(); - var cl = this.resolver.resolveClass(name); - if(cl == null) { - throw new js__$Boot_HaxeError("Class not found " + name); - } - return cl; - case 66: - var name1 = this.unserialize(); - var e = this.resolver.resolveEnum(name1); - if(e == null) { - throw new js__$Boot_HaxeError("Enum not found " + name1); - } - return e; - case 67: - var name2 = this.unserialize(); - var cl1 = this.resolver.resolveClass(name2); - if(cl1 == null) { - throw new js__$Boot_HaxeError("Class not found " + name2); - } - var o = Type.createEmptyInstance(cl1); - this.cache.push(o); - o.hxUnserialize(this); - if(this.buf.charCodeAt(this.pos++) != 103) { - throw new js__$Boot_HaxeError("Invalid custom data"); - } - return o; - case 77: - var h = new haxe_ds_ObjectMap(); - this.cache.push(h); - var buf = this.buf; - while(this.buf.charCodeAt(this.pos) != 104) { - var s = this.unserialize(); - h.set(s,this.unserialize()); - } - this.pos++; - return h; - case 82: - var n = this.readDigits(); - if(n < 0 || n >= this.scache.length) { - throw new js__$Boot_HaxeError("Invalid string reference"); - } - return this.scache[n]; - case 97: - var buf1 = this.buf; - var a = []; - this.cache.push(a); - while(true) { - var c = this.buf.charCodeAt(this.pos); - if(c == 104) { - this.pos++; - break; - } - if(c == 117) { - this.pos++; - var n1 = this.readDigits(); - a[a.length + n1 - 1] = null; - } else { - a.push(this.unserialize()); - } - } - return a; - case 98: - var h1 = new haxe_ds_StringMap(); - this.cache.push(h1); - var buf2 = this.buf; - while(this.buf.charCodeAt(this.pos) != 104) { - var s1 = this.unserialize(); - var value = this.unserialize(); - if(__map_reserved[s1] != null) { - h1.setReserved(s1,value); - } else { - h1.h[s1] = value; - } - } - this.pos++; - return h1; - case 99: - var name3 = this.unserialize(); - var cl2 = this.resolver.resolveClass(name3); - if(cl2 == null) { - throw new js__$Boot_HaxeError("Class not found " + name3); - } - var o1 = Type.createEmptyInstance(cl2); - this.cache.push(o1); - this.unserializeObject(o1); - return o1; - case 100: - return this.readFloat(); - case 102: - return false; - case 105: - return this.readDigits(); - case 106: - var name4 = this.unserialize(); - var edecl = this.resolver.resolveEnum(name4); - if(edecl == null) { - throw new js__$Boot_HaxeError("Enum not found " + name4); - } - this.pos++; - var index = this.readDigits(); - var tag = edecl.__constructs__.slice()[index]; - if(tag == null) { - throw new js__$Boot_HaxeError("Unknown enum index " + name4 + "@" + index); - } - var e1 = this.unserializeEnum(edecl,tag); - this.cache.push(e1); - return e1; - case 107: - return NaN; - case 108: - var l = new List(); - this.cache.push(l); - var buf3 = this.buf; - while(this.buf.charCodeAt(this.pos) != 104) l.add(this.unserialize()); - this.pos++; - return l; - case 109: - return -Infinity; - case 110: - return null; - case 111: - var o2 = { }; - this.cache.push(o2); - this.unserializeObject(o2); - return o2; - case 112: - return Infinity; - case 113: - var h2 = new haxe_ds_IntMap(); - this.cache.push(h2); - var buf4 = this.buf; - var c1 = this.buf.charCodeAt(this.pos++); - while(c1 == 58) { - var i = this.readDigits(); - var value1 = this.unserialize(); - h2.h[i] = value1; - c1 = this.buf.charCodeAt(this.pos++); - } - if(c1 != 104) { - throw new js__$Boot_HaxeError("Invalid IntMap format"); - } - return h2; - case 114: - var n2 = this.readDigits(); - if(n2 < 0 || n2 >= this.cache.length) { - throw new js__$Boot_HaxeError("Invalid reference"); - } - return this.cache[n2]; - case 115: - var len = this.readDigits(); - var buf5 = this.buf; - if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len) { - throw new js__$Boot_HaxeError("Invalid bytes length"); - } - var codes = haxe_Unserializer.CODES; - if(codes == null) { - codes = haxe_Unserializer.initCodes(); - haxe_Unserializer.CODES = codes; - } - var i1 = this.pos; - var rest = len & 3; - var size = (len >> 2) * 3 + (rest >= 2 ? rest - 1 : 0); - var max = i1 + (len - rest); - var bytes = new haxe_io_Bytes(new ArrayBuffer(size)); - var bpos = 0; - while(i1 < max) { - var c11 = codes[buf5.charCodeAt(i1++)]; - var c2 = codes[buf5.charCodeAt(i1++)]; - bytes.b[bpos++] = (c11 << 2 | c2 >> 4) & 255; - var c3 = codes[buf5.charCodeAt(i1++)]; - bytes.b[bpos++] = (c2 << 4 | c3 >> 2) & 255; - var c4 = codes[buf5.charCodeAt(i1++)]; - bytes.b[bpos++] = (c3 << 6 | c4) & 255; - } - if(rest >= 2) { - var c12 = codes[buf5.charCodeAt(i1++)]; - var c21 = codes[buf5.charCodeAt(i1++)]; - bytes.b[bpos++] = (c12 << 2 | c21 >> 4) & 255; - if(rest == 3) { - var c31 = codes[buf5.charCodeAt(i1++)]; - bytes.b[bpos++] = (c21 << 4 | c31 >> 2) & 255; - } - } - this.pos += len; - this.cache.push(bytes); - return bytes; - case 116: - return true; - case 118: - var d; - if(this.buf.charCodeAt(this.pos) >= 48 && this.buf.charCodeAt(this.pos) <= 57 && this.buf.charCodeAt(this.pos + 1) >= 48 && this.buf.charCodeAt(this.pos + 1) <= 57 && this.buf.charCodeAt(this.pos + 2) >= 48 && this.buf.charCodeAt(this.pos + 2) <= 57 && this.buf.charCodeAt(this.pos + 3) >= 48 && this.buf.charCodeAt(this.pos + 3) <= 57 && this.buf.charCodeAt(this.pos + 4) == 45) { - d = HxOverrides.strDate(HxOverrides.substr(this.buf,this.pos,19)); - this.pos += 19; - } else { - var t = this.readFloat(); - d = new Date(t); - } - this.cache.push(d); - return d; - case 119: - var name5 = this.unserialize(); - var edecl1 = this.resolver.resolveEnum(name5); - if(edecl1 == null) { - throw new js__$Boot_HaxeError("Enum not found " + name5); - } - var e2 = this.unserializeEnum(edecl1,this.unserialize()); - this.cache.push(e2); - return e2; - case 120: - throw js__$Boot_HaxeError.wrap(this.unserialize()); - break; - case 121: - var len1 = this.readDigits(); - if(this.buf.charCodeAt(this.pos++) != 58 || this.length - this.pos < len1) { - throw new js__$Boot_HaxeError("Invalid string length"); - } - var s2 = HxOverrides.substr(this.buf,this.pos,len1); - this.pos += len1; - s2 = decodeURIComponent(s2.split("+").join(" ")); - this.scache.push(s2); - return s2; - case 122: - return 0; - default: - } - this.pos--; - throw new js__$Boot_HaxeError("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos); - } - ,__class__: haxe_Unserializer -}; -var haxe_io_Bytes = function(data) { - this.length = data.byteLength; - this.b = new Uint8Array(data); - this.b.bufferValue = data; - data.hxBytes = this; - data.bytes = this.b; -}; -$hxClasses["haxe.io.Bytes"] = haxe_io_Bytes; -haxe_io_Bytes.__name__ = true; -haxe_io_Bytes.ofString = function(s) { - var a = []; - var i = 0; - while(i < s.length) { - var c = s.charCodeAt(i++); - if(55296 <= c && c <= 56319) { - c = c - 55232 << 10 | s.charCodeAt(i++) & 1023; - } - if(c <= 127) { - a.push(c); - } else if(c <= 2047) { - a.push(192 | c >> 6); - a.push(128 | c & 63); - } else if(c <= 65535) { - a.push(224 | c >> 12); - a.push(128 | c >> 6 & 63); - a.push(128 | c & 63); - } else { - a.push(240 | c >> 18); - a.push(128 | c >> 12 & 63); - a.push(128 | c >> 6 & 63); - a.push(128 | c & 63); - } - } - return new haxe_io_Bytes(new Uint8Array(a).buffer); -}; -haxe_io_Bytes.ofData = function(b) { - var hb = b.hxBytes; - if(hb != null) { - return hb; - } - return new haxe_io_Bytes(b); -}; -haxe_io_Bytes.prototype = { - length: null - ,b: null - ,data: null - ,blit: function(pos,src,srcpos,len) { - if(pos < 0 || srcpos < 0 || len < 0 || pos + len > this.length || srcpos + len > src.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - if(srcpos == 0 && len == src.b.byteLength) { - this.b.set(src.b,pos); - } else { - this.b.set(src.b.subarray(srcpos,srcpos + len),pos); - } - } - ,sub: function(pos,len) { - if(pos < 0 || len < 0 || pos + len > this.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - return new haxe_io_Bytes(this.b.buffer.slice(pos + this.b.byteOffset,pos + this.b.byteOffset + len)); - } - ,getDouble: function(pos) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - return this.data.getFloat64(pos,true); - } - ,getFloat: function(pos) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - return this.data.getFloat32(pos,true); - } - ,setDouble: function(pos,v) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - this.data.setFloat64(pos,v,true); - } - ,setFloat: function(pos,v) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - this.data.setFloat32(pos,v,true); - } - ,getUInt16: function(pos) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - return this.data.getUint16(pos,true); - } - ,getInt32: function(pos) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - return this.data.getInt32(pos,true); - } - ,setInt32: function(pos,v) { - if(this.data == null) { - this.data = new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength); - } - this.data.setInt32(pos,v,true); - } - ,getString: function(pos,len) { - if(pos < 0 || len < 0 || pos + len > this.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - var s = ""; - var b = this.b; - var fcc = String.fromCharCode; - var i = pos; - var max = pos + len; - while(i < max) { - var c = b[i++]; - if(c < 128) { - if(c == 0) { - break; - } - s += fcc(c); - } else if(c < 224) { - s += fcc((c & 63) << 6 | b[i++] & 127); - } else if(c < 240) { - var c2 = b[i++]; - s += fcc((c & 31) << 12 | (c2 & 127) << 6 | b[i++] & 127); - } else { - var c21 = b[i++]; - var c3 = b[i++]; - var u = (c & 15) << 18 | (c21 & 127) << 12 | (c3 & 127) << 6 | b[i++] & 127; - s += fcc((u >> 10) + 55232); - s += fcc(u & 1023 | 56320); - } - } - return s; - } - ,toString: function() { - return this.getString(0,this.length); - } - ,__class__: haxe_io_Bytes -}; -var haxe_crypto_Base64 = function() { }; -$hxClasses["haxe.crypto.Base64"] = haxe_crypto_Base64; -haxe_crypto_Base64.__name__ = true; -haxe_crypto_Base64.encode = function(bytes,complement) { - if(complement == null) { - complement = true; - } - var str = new haxe_crypto_BaseCode(haxe_crypto_Base64.BYTES).encodeBytes(bytes).toString(); - if(complement) { - var _g = bytes.length % 3; - switch(_g) { - case 1: - str += "=="; - break; - case 2: - str += "="; - break; - default: - } - } - return str; -}; -var haxe_crypto_BaseCode = function(base) { - var len = base.length; - var nbits = 1; - while(len > 1 << nbits) ++nbits; - if(nbits > 8 || len != 1 << nbits) { - throw new js__$Boot_HaxeError("BaseCode : base length must be a power of two."); - } - this.base = base; - this.nbits = nbits; -}; -$hxClasses["haxe.crypto.BaseCode"] = haxe_crypto_BaseCode; -haxe_crypto_BaseCode.__name__ = true; -haxe_crypto_BaseCode.prototype = { - base: null - ,nbits: null - ,encodeBytes: function(b) { - var nbits = this.nbits; - var base = this.base; - var size = b.length * 8 / nbits | 0; - var out = new haxe_io_Bytes(new ArrayBuffer(size + (b.length * 8 % nbits == 0 ? 0 : 1))); - var buf = 0; - var curbits = 0; - var mask = (1 << nbits) - 1; - var pin = 0; - var pout = 0; - while(pout < size) { - while(curbits < nbits) { - curbits += 8; - buf <<= 8; - buf |= b.b[pin++]; - } - curbits -= nbits; - out.b[pout++] = base.b[buf >> curbits & mask] & 255; - } - if(curbits > 0) { - out.b[pout++] = base.b[buf << nbits - curbits & mask] & 255; - } - return out; - } - ,__class__: haxe_crypto_BaseCode -}; -var haxe_ds_IntMap = function() { - this.h = { }; -}; -$hxClasses["haxe.ds.IntMap"] = haxe_ds_IntMap; -haxe_ds_IntMap.__name__ = true; -haxe_ds_IntMap.__interfaces__ = [haxe_IMap]; -haxe_ds_IntMap.prototype = { - h: null - ,keys: function() { - var a = []; - for( var key in this.h ) if(this.h.hasOwnProperty(key)) { - a.push(key | 0); - } - return HxOverrides.iter(a); - } - ,iterator: function() { - return { ref : this.h, it : this.keys(), hasNext : function() { - return this.it.hasNext(); - }, next : function() { - var i = this.it.next(); - return this.ref[i]; - }}; - } - ,__class__: haxe_ds_IntMap -}; -var haxe_ds_ObjectMap = function() { - this.h = { __keys__ : { }}; -}; -$hxClasses["haxe.ds.ObjectMap"] = haxe_ds_ObjectMap; -haxe_ds_ObjectMap.__name__ = true; -haxe_ds_ObjectMap.__interfaces__ = [haxe_IMap]; -haxe_ds_ObjectMap.prototype = { - h: null - ,set: function(key,value) { - var id = key.__id__ || (key.__id__ = ++haxe_ds_ObjectMap.count); - this.h[id] = value; - this.h.__keys__[id] = key; - } - ,keys: function() { - var a = []; - for( var key in this.h.__keys__ ) { - if(this.h.hasOwnProperty(key)) { - a.push(this.h.__keys__[key]); - } - } - return HxOverrides.iter(a); - } - ,iterator: function() { - return { ref : this.h, it : this.keys(), hasNext : function() { - return this.it.hasNext(); - }, next : function() { - var i = this.it.next(); - return this.ref[i.__id__]; - }}; - } - ,__class__: haxe_ds_ObjectMap -}; -var haxe_ds__$StringMap_StringMapIterator = function(map,keys) { - this.map = map; - this.keys = keys; - this.index = 0; - this.count = keys.length; -}; -$hxClasses["haxe.ds._StringMap.StringMapIterator"] = haxe_ds__$StringMap_StringMapIterator; -haxe_ds__$StringMap_StringMapIterator.__name__ = true; -haxe_ds__$StringMap_StringMapIterator.prototype = { - map: null - ,keys: null - ,index: null - ,count: null - ,hasNext: function() { - return this.index < this.count; - } - ,next: function() { - var _this = this.map; - var key = this.keys[this.index++]; - if(__map_reserved[key] != null) { - return _this.getReserved(key); - } else { - return _this.h[key]; - } - } - ,__class__: haxe_ds__$StringMap_StringMapIterator -}; -var haxe_ds_StringMap = function() { - this.h = { }; -}; -$hxClasses["haxe.ds.StringMap"] = haxe_ds_StringMap; -haxe_ds_StringMap.__name__ = true; -haxe_ds_StringMap.__interfaces__ = [haxe_IMap]; -haxe_ds_StringMap.prototype = { - h: null - ,rh: null - ,setReserved: function(key,value) { - if(this.rh == null) { - this.rh = { }; - } - this.rh["$" + key] = value; - } - ,getReserved: function(key) { - if(this.rh == null) { - return null; - } else { - return this.rh["$" + key]; - } - } - ,existsReserved: function(key) { - if(this.rh == null) { - return false; - } - return this.rh.hasOwnProperty("$" + key); - } - ,arrayKeys: function() { - var out = []; - for( var key in this.h ) { - if(this.h.hasOwnProperty(key)) { - out.push(key); - } - } - if(this.rh != null) { - for( var key in this.rh ) { - if(key.charCodeAt(0) == 36) { - out.push(key.substr(1)); - } - } - } - return out; - } - ,iterator: function() { - return new haxe_ds__$StringMap_StringMapIterator(this,this.arrayKeys()); - } - ,__class__: haxe_ds_StringMap -}; -var haxe_io_BytesBuffer = function() { - this.b = []; -}; -$hxClasses["haxe.io.BytesBuffer"] = haxe_io_BytesBuffer; -haxe_io_BytesBuffer.__name__ = true; -haxe_io_BytesBuffer.prototype = { - b: null - ,getBytes: function() { - var bytes = new haxe_io_Bytes(new Uint8Array(this.b).buffer); - this.b = null; - return bytes; - } - ,__class__: haxe_io_BytesBuffer -}; -var haxe_io_Input = function() { }; -$hxClasses["haxe.io.Input"] = haxe_io_Input; -haxe_io_Input.__name__ = true; -haxe_io_Input.prototype = { - bigEndian: null - ,readByte: function() { - throw new js__$Boot_HaxeError("Not implemented"); - } - ,readBytes: function(s,pos,len) { - var k = len; - var b = s.b; - if(pos < 0 || len < 0 || pos + len > s.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - try { - while(k > 0) { - b[pos] = this.readByte(); - ++pos; - --k; - } - } catch( eof ) { - if (eof instanceof js__$Boot_HaxeError) eof = eof.val; - if( js_Boot.__instanceof(eof,haxe_io_Eof) ) { - } else throw(eof); - } - return len - k; - } - ,readFullBytes: function(s,pos,len) { - while(len > 0) { - var k = this.readBytes(s,pos,len); - if(k == 0) { - throw new js__$Boot_HaxeError(haxe_io_Error.Blocked); - } - pos += k; - len -= k; - } - } - ,read: function(nbytes) { - var s = new haxe_io_Bytes(new ArrayBuffer(nbytes)); - var p = 0; - while(nbytes > 0) { - var k = this.readBytes(s,p,nbytes); - if(k == 0) { - throw new js__$Boot_HaxeError(haxe_io_Error.Blocked); - } - p += k; - nbytes -= k; - } - return s; - } - ,readInt32: function() { - var ch1 = this.readByte(); - var ch2 = this.readByte(); - var ch3 = this.readByte(); - var ch4 = this.readByte(); - if(this.bigEndian) { - return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24; - } else { - return ch1 | ch2 << 8 | ch3 << 16 | ch4 << 24; - } - } - ,readString: function(len) { - var b = new haxe_io_Bytes(new ArrayBuffer(len)); - this.readFullBytes(b,0,len); - return b.toString(); - } - ,__class__: haxe_io_Input -}; -var haxe_io_BytesInput = function(b,pos,len) { - if(pos == null) { - pos = 0; - } - if(len == null) { - len = b.length - pos; - } - if(pos < 0 || len < 0 || pos + len > b.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - this.b = b.b; - this.pos = pos; - this.len = len; - this.totlen = len; -}; -$hxClasses["haxe.io.BytesInput"] = haxe_io_BytesInput; -haxe_io_BytesInput.__name__ = true; -haxe_io_BytesInput.__super__ = haxe_io_Input; -haxe_io_BytesInput.prototype = $extend(haxe_io_Input.prototype,{ - b: null - ,pos: null - ,len: null - ,totlen: null - ,set_position: function(p) { - if(p < 0) { - p = 0; - } else if(p > this.totlen) { - p = this.totlen; - } - this.len = this.totlen - p; - return this.pos = p; - } - ,readByte: function() { - if(this.len == 0) { - throw new js__$Boot_HaxeError(new haxe_io_Eof()); - } - this.len--; - return this.b[this.pos++]; - } - ,readBytes: function(buf,pos,len) { - if(pos < 0 || len < 0 || pos + len > buf.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - if(this.len == 0 && len > 0) { - throw new js__$Boot_HaxeError(new haxe_io_Eof()); - } - if(this.len < len) { - len = this.len; - } - var b1 = this.b; - var b2 = buf.b; - var _g1 = 0; - var _g = len; - while(_g1 < _g) { - var i = _g1++; - b2[pos + i] = b1[this.pos + i]; - } - this.pos += len; - this.len -= len; - return len; - } - ,__class__: haxe_io_BytesInput -}); -var haxe_io_Output = function() { }; -$hxClasses["haxe.io.Output"] = haxe_io_Output; -haxe_io_Output.__name__ = true; -haxe_io_Output.prototype = { - bigEndian: null - ,writeByte: function(c) { - throw new js__$Boot_HaxeError("Not implemented"); - } - ,writeBytes: function(s,pos,len) { - if(pos < 0 || len < 0 || pos + len > s.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - var b = s.b; - var k = len; - while(k > 0) { - this.writeByte(b[pos]); - ++pos; - --k; - } - return len; - } - ,write: function(s) { - var l = s.length; - var p = 0; - while(l > 0) { - var k = this.writeBytes(s,p,l); - if(k == 0) { - throw new js__$Boot_HaxeError(haxe_io_Error.Blocked); - } - p += k; - l -= k; - } - } - ,writeFloat: function(x) { - this.writeInt32(haxe_io_FPHelper.floatToI32(x)); - } - ,writeInt32: function(x) { - if(this.bigEndian) { - this.writeByte(x >>> 24); - this.writeByte(x >> 16 & 255); - this.writeByte(x >> 8 & 255); - this.writeByte(x & 255); - } else { - this.writeByte(x & 255); - this.writeByte(x >> 8 & 255); - this.writeByte(x >> 16 & 255); - this.writeByte(x >>> 24); - } - } - ,__class__: haxe_io_Output -}; -var haxe_io_BytesOutput = function() { - this.b = new haxe_io_BytesBuffer(); -}; -$hxClasses["haxe.io.BytesOutput"] = haxe_io_BytesOutput; -haxe_io_BytesOutput.__name__ = true; -haxe_io_BytesOutput.__super__ = haxe_io_Output; -haxe_io_BytesOutput.prototype = $extend(haxe_io_Output.prototype,{ - b: null - ,writeByte: function(c) { - this.b.b.push(c); - } - ,writeBytes: function(buf,pos,len) { - var _this = this.b; - if(pos < 0 || len < 0 || pos + len > buf.length) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - var b1 = _this.b; - var b2 = buf.b; - var _g1 = pos; - var _g = pos + len; - while(_g1 < _g) { - var i = _g1++; - _this.b.push(b2[i]); - } - return len; - } - ,getBytes: function() { - return this.b.getBytes(); - } - ,__class__: haxe_io_BytesOutput -}); -var haxe_io_Eof = function() { -}; -$hxClasses["haxe.io.Eof"] = haxe_io_Eof; -haxe_io_Eof.__name__ = true; -haxe_io_Eof.prototype = { - toString: function() { - return "Eof"; - } - ,__class__: haxe_io_Eof -}; -var haxe_io_Error = $hxClasses["haxe.io.Error"] = { __ename__ : true, __constructs__ : ["Blocked","Overflow","OutsideBounds","Custom"] }; -haxe_io_Error.Blocked = ["Blocked",0]; -haxe_io_Error.Blocked.toString = $estr; -haxe_io_Error.Blocked.__enum__ = haxe_io_Error; -haxe_io_Error.Overflow = ["Overflow",1]; -haxe_io_Error.Overflow.toString = $estr; -haxe_io_Error.Overflow.__enum__ = haxe_io_Error; -haxe_io_Error.OutsideBounds = ["OutsideBounds",2]; -haxe_io_Error.OutsideBounds.toString = $estr; -haxe_io_Error.OutsideBounds.__enum__ = haxe_io_Error; -haxe_io_Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = haxe_io_Error; $x.toString = $estr; return $x; }; -var haxe_io_FPHelper = function() { }; -$hxClasses["haxe.io.FPHelper"] = haxe_io_FPHelper; -haxe_io_FPHelper.__name__ = true; -haxe_io_FPHelper.i32ToFloat = function(i) { - var sign = 1 - (i >>> 31 << 1); - var exp = i >>> 23 & 255; - var sig = i & 8388607; - if(sig == 0 && exp == 0) { - return 0.0; - } - return sign * (1 + Math.pow(2,-23) * sig) * Math.pow(2,exp - 127); -}; -haxe_io_FPHelper.floatToI32 = function(f) { - if(f == 0) { - return 0; - } - var af = f < 0 ? -f : f; - var exp = Math.floor(Math.log(af) / 0.6931471805599453); - if(exp < -127) { - exp = -127; - } else if(exp > 128) { - exp = 128; - } - var sig = Math.round((af / Math.pow(2,exp) - 1) * 8388608); - if(sig == 8388608 && exp < 128) { - sig = 0; - ++exp; - } - return (f < 0 ? -2147483648 : 0) | exp + 127 << 23 | sig; -}; -haxe_io_FPHelper.i64ToDouble = function(low,high) { - var sign = 1 - (high >>> 31 << 1); - var exp = (high >> 20 & 2047) - 1023; - var sig = (high & 1048575) * 4294967296. + (low >>> 31) * 2147483648. + (low & 2147483647); - if(sig == 0 && exp == -1023) { - return 0.0; - } - return sign * (1.0 + Math.pow(2,-52) * sig) * Math.pow(2,exp); -}; -haxe_io_FPHelper.doubleToI64 = function(v) { - var i64 = haxe_io_FPHelper.i64tmp; - if(v == 0) { - i64.low = 0; - i64.high = 0; - } else if(!isFinite(v)) { - if(v > 0) { - i64.low = 0; - i64.high = 2146435072; - } else { - i64.low = 0; - i64.high = -1048576; - } - } else { - var av = v < 0 ? -v : v; - var exp = Math.floor(Math.log(av) / 0.6931471805599453); - var sig = Math.round((av / Math.pow(2,exp) - 1) * 4503599627370496.); - var sig_l = sig | 0; - var sig_h = sig / 4294967296.0 | 0; - i64.low = sig_l; - i64.high = (v < 0 ? -2147483648 : 0) | exp + 1023 << 20 | sig_h; - } - return i64; -}; -var haxe_io__$UInt8Array_UInt8Array_$Impl_$ = {}; -$hxClasses["haxe.io._UInt8Array.UInt8Array_Impl_"] = haxe_io__$UInt8Array_UInt8Array_$Impl_$; -haxe_io__$UInt8Array_UInt8Array_$Impl_$.__name__ = true; -haxe_io__$UInt8Array_UInt8Array_$Impl_$.fromBytes = function(bytes,bytePos,length) { - if(bytePos == null) { - bytePos = 0; - } - if(length == null) { - length = bytes.length - bytePos; - } - return new Uint8Array(bytes.b.bufferValue,bytePos,length); -}; -var js__$Boot_HaxeError = function(val) { - Error.call(this); - this.val = val; - this.message = String(val); - if(Error.captureStackTrace) { - Error.captureStackTrace(this,js__$Boot_HaxeError); - } -}; -$hxClasses["js._Boot.HaxeError"] = js__$Boot_HaxeError; -js__$Boot_HaxeError.__name__ = true; -js__$Boot_HaxeError.wrap = function(val) { - if((val instanceof Error)) { - return val; - } else { - return new js__$Boot_HaxeError(val); - } -}; -js__$Boot_HaxeError.__super__ = Error; -js__$Boot_HaxeError.prototype = $extend(Error.prototype,{ - val: null - ,__class__: js__$Boot_HaxeError -}); -var js_Boot = function() { }; -$hxClasses["js.Boot"] = js_Boot; -js_Boot.__name__ = true; -js_Boot.__unhtml = function(s) { - return s.split("&").join("&").split("<").join("<").split(">").join(">"); -}; -js_Boot.__trace = function(v,i) { - var msg = i != null ? i.fileName + ":" + i.lineNumber + ": " : ""; - msg += js_Boot.__string_rec(v,""); - if(i != null && i.customParams != null) { - var _g = 0; - var _g1 = i.customParams; - while(_g < _g1.length) { - var v1 = _g1[_g]; - ++_g; - msg += "," + js_Boot.__string_rec(v1,""); - } - } - var d; - var tmp; - if(typeof(document) != "undefined") { - d = document.getElementById("haxe:trace"); - tmp = d != null; - } else { - tmp = false; - } - if(tmp) { - d.innerHTML += js_Boot.__unhtml(msg) + "
"; - } else if(typeof console != "undefined" && console.log != null) { - console.log(msg); - } -}; -js_Boot.getClass = function(o) { - if((o instanceof Array) && o.__enum__ == null) { - return Array; - } else { - var cl = o.__class__; - if(cl != null) { - return cl; - } - var name = js_Boot.__nativeClassName(o); - if(name != null) { - return js_Boot.__resolveNativeClass(name); - } - return null; - } -}; -js_Boot.__string_rec = function(o,s) { - if(o == null) { - return "null"; - } - if(s.length >= 5) { - return "<...>"; - } - var t = typeof(o); - if(t == "function" && (o.__name__ || o.__ename__)) { - t = "object"; - } - switch(t) { - case "function": - return ""; - case "object": - if(o instanceof Array) { - if(o.__enum__) { - if(o.length == 2) { - return o[0]; - } - var str = o[0] + "("; - s += "\t"; - var _g1 = 2; - var _g = o.length; - while(_g1 < _g) { - var i = _g1++; - if(i != 2) { - str += "," + js_Boot.__string_rec(o[i],s); - } else { - str += js_Boot.__string_rec(o[i],s); - } - } - return str + ")"; - } - var l = o.length; - var i1; - var str1 = "["; - s += "\t"; - var _g11 = 0; - var _g2 = l; - while(_g11 < _g2) { - var i2 = _g11++; - str1 += (i2 > 0 ? "," : "") + js_Boot.__string_rec(o[i2],s); - } - str1 += "]"; - return str1; - } - var tostr; - try { - tostr = o.toString; - } catch( e ) { - return "???"; - } - if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") { - var s2 = o.toString(); - if(s2 != "[object Object]") { - return s2; - } - } - var k = null; - var str2 = "{\n"; - s += "\t"; - var hasp = o.hasOwnProperty != null; - for( var k in o ) { - if(hasp && !o.hasOwnProperty(k)) { - continue; - } - if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") { - continue; - } - if(str2.length != 2) { - str2 += ", \n"; - } - str2 += s + k + " : " + js_Boot.__string_rec(o[k],s); - } - s = s.substring(1); - str2 += "\n" + s + "}"; - return str2; - case "string": - return o; - default: - return String(o); - } -}; -js_Boot.__interfLoop = function(cc,cl) { - if(cc == null) { - return false; - } - if(cc == cl) { - return true; - } - var intf = cc.__interfaces__; - if(intf != null) { - var _g1 = 0; - var _g = intf.length; - while(_g1 < _g) { - var i = _g1++; - var i1 = intf[i]; - if(i1 == cl || js_Boot.__interfLoop(i1,cl)) { - return true; - } - } - } - return js_Boot.__interfLoop(cc.__super__,cl); -}; -js_Boot.__instanceof = function(o,cl) { - if(cl == null) { - return false; - } - switch(cl) { - case Array: - if((o instanceof Array)) { - return o.__enum__ == null; - } else { - return false; - } - break; - case Bool: - return typeof(o) == "boolean"; - case Dynamic: - return true; - case Float: - return typeof(o) == "number"; - case Int: - if(typeof(o) == "number") { - return (o|0) === o; - } else { - return false; - } - break; - case String: - return typeof(o) == "string"; - default: - if(o != null) { - if(typeof(cl) == "function") { - if(o instanceof cl) { - return true; - } - if(js_Boot.__interfLoop(js_Boot.getClass(o),cl)) { - return true; - } - } else if(typeof(cl) == "object" && js_Boot.__isNativeObj(cl)) { - if(o instanceof cl) { - return true; - } - } - } else { - return false; - } - if(cl == Class ? o.__name__ != null : false) { - return true; - } - if(cl == Enum ? o.__ename__ != null : false) { - return true; - } - return o.__enum__ == cl; - } -}; -js_Boot.__cast = function(o,t) { - if(js_Boot.__instanceof(o,t)) { - return o; - } else { - throw new js__$Boot_HaxeError("Cannot cast " + Std.string(o) + " to " + Std.string(t)); - } -}; -js_Boot.__nativeClassName = function(o) { - var name = js_Boot.__toStr.call(o).slice(8,-1); - if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") { - return null; - } - return name; -}; -js_Boot.__isNativeObj = function(o) { - return js_Boot.__nativeClassName(o) != null; -}; -js_Boot.__resolveNativeClass = function(name) { - return $global[name]; -}; -var js_html_compat_ArrayBuffer = function(a) { - if((a instanceof Array) && a.__enum__ == null) { - this.a = a; - this.byteLength = a.length; - } else { - var len = a; - this.a = []; - var _g1 = 0; - var _g = len; - while(_g1 < _g) { - var i = _g1++; - this.a[i] = 0; - } - this.byteLength = len; - } -}; -$hxClasses["js.html.compat.ArrayBuffer"] = js_html_compat_ArrayBuffer; -js_html_compat_ArrayBuffer.__name__ = true; -js_html_compat_ArrayBuffer.sliceImpl = function(begin,end) { - var u = new Uint8Array(this,begin,end == null ? null : end - begin); - var result = new ArrayBuffer(u.byteLength); - var resultArray = new Uint8Array(result); - resultArray.set(u); - return result; -}; -js_html_compat_ArrayBuffer.prototype = { - byteLength: null - ,a: null - ,slice: function(begin,end) { - return new js_html_compat_ArrayBuffer(this.a.slice(begin,end)); - } - ,__class__: js_html_compat_ArrayBuffer -}; -var js_html_compat_DataView = function(buffer,byteOffset,byteLength) { - this.buf = buffer; - this.offset = byteOffset == null ? 0 : byteOffset; - this.length = byteLength == null ? buffer.byteLength - this.offset : byteLength; - if(this.offset < 0 || this.length < 0 || this.offset + this.length > buffer.byteLength) { - throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds); - } - this.byteLength = this.length; - this.byteOffset = this.offset; - this.buffer = this.buf; -}; -$hxClasses["js.html.compat.DataView"] = js_html_compat_DataView; -js_html_compat_DataView.__name__ = true; -js_html_compat_DataView.prototype = { - buf: null - ,offset: null - ,length: null - ,byteLength: null - ,byteOffset: null - ,buffer: null - ,getInt8: function(byteOffset) { - var v = this.buf.a[this.offset + byteOffset]; - if(v >= 128) { - return v - 256; - } else { - return v; - } - } - ,getUint8: function(byteOffset) { - return this.buf.a[this.offset + byteOffset]; - } - ,getInt16: function(byteOffset,littleEndian) { - var v = this.getUint16(byteOffset,littleEndian); - if(v >= 32768) { - return v - 65536; - } else { - return v; - } - } - ,getUint16: function(byteOffset,littleEndian) { - if(littleEndian) { - return this.buf.a[this.offset + byteOffset] | this.buf.a[this.offset + byteOffset + 1] << 8; - } else { - return this.buf.a[this.offset + byteOffset] << 8 | this.buf.a[this.offset + byteOffset + 1]; - } - } - ,getInt32: function(byteOffset,littleEndian) { - var p = this.offset + byteOffset; - var a = this.buf.a[p++]; - var b = this.buf.a[p++]; - var c = this.buf.a[p++]; - var d = this.buf.a[p++]; - if(littleEndian) { - return a | b << 8 | c << 16 | d << 24; - } else { - return d | c << 8 | b << 16 | a << 24; - } - } - ,getUint32: function(byteOffset,littleEndian) { - var v = this.getInt32(byteOffset,littleEndian); - if(v < 0) { - return v + 4294967296.; - } else { - return v; - } - } - ,getFloat32: function(byteOffset,littleEndian) { - return haxe_io_FPHelper.i32ToFloat(this.getInt32(byteOffset,littleEndian)); - } - ,getFloat64: function(byteOffset,littleEndian) { - var a = this.getInt32(byteOffset,littleEndian); - var b = this.getInt32(byteOffset + 4,littleEndian); - return haxe_io_FPHelper.i64ToDouble(littleEndian ? a : b,littleEndian ? b : a); - } - ,setInt8: function(byteOffset,value) { - this.buf.a[byteOffset + this.offset] = value < 0 ? value + 128 & 255 : value & 255; - } - ,setUint8: function(byteOffset,value) { - this.buf.a[byteOffset + this.offset] = value & 255; - } - ,setInt16: function(byteOffset,value,littleEndian) { - this.setUint16(byteOffset,value < 0 ? value + 65536 : value,littleEndian); - } - ,setUint16: function(byteOffset,value,littleEndian) { - var p = byteOffset + this.offset; - if(littleEndian) { - this.buf.a[p] = value & 255; - this.buf.a[p++] = value >> 8 & 255; - } else { - this.buf.a[p++] = value >> 8 & 255; - this.buf.a[p] = value & 255; - } - } - ,setInt32: function(byteOffset,value,littleEndian) { - this.setUint32(byteOffset,value,littleEndian); - } - ,setUint32: function(byteOffset,value,littleEndian) { - var p = byteOffset + this.offset; - if(littleEndian) { - this.buf.a[p++] = value & 255; - this.buf.a[p++] = value >> 8 & 255; - this.buf.a[p++] = value >> 16 & 255; - this.buf.a[p++] = value >>> 24; - } else { - this.buf.a[p++] = value >>> 24; - this.buf.a[p++] = value >> 16 & 255; - this.buf.a[p++] = value >> 8 & 255; - this.buf.a[p++] = value & 255; - } - } - ,setFloat32: function(byteOffset,value,littleEndian) { - this.setUint32(byteOffset,haxe_io_FPHelper.floatToI32(value),littleEndian); - } - ,setFloat64: function(byteOffset,value,littleEndian) { - var i64 = haxe_io_FPHelper.doubleToI64(value); - if(littleEndian) { - this.setUint32(byteOffset,i64.low); - this.setUint32(byteOffset,i64.high); - } else { - this.setUint32(byteOffset,i64.high); - this.setUint32(byteOffset,i64.low); - } - } - ,__class__: js_html_compat_DataView -}; -var js_html_compat_Float32Array = function() { }; -$hxClasses["js.html.compat.Float32Array"] = js_html_compat_Float32Array; -js_html_compat_Float32Array.__name__ = true; -js_html_compat_Float32Array._new = function(arg1,offset,length) { - var arr; - if(typeof(arg1) == "number") { - arr = []; - var _g1 = 0; - var _g = arg1; - while(_g1 < _g) { - var i = _g1++; - arr[i] = 0; - } - arr.byteLength = arr.length << 2; - arr.byteOffset = 0; - var _g2 = []; - var _g21 = 0; - var _g11 = arr.length << 2; - while(_g21 < _g11) { - var i1 = _g21++; - _g2.push(0); - } - arr.buffer = new js_html_compat_ArrayBuffer(_g2); - } else if(js_Boot.__instanceof(arg1,js_html_compat_ArrayBuffer)) { - var buffer = arg1; - if(offset == null) { - offset = 0; - } - if(length == null) { - length = buffer.byteLength - offset >> 2; - } - arr = []; - var _g12 = 0; - var _g3 = length; - while(_g12 < _g3) { - var i2 = _g12++; - var val = buffer.a[offset++] | buffer.a[offset++] << 8 | buffer.a[offset++] << 16 | buffer.a[offset++] << 24; - arr.push(haxe_io_FPHelper.i32ToFloat(val)); - } - arr.byteLength = arr.length << 2; - arr.byteOffset = offset; - arr.buffer = buffer; - } else if((arg1 instanceof Array) && arg1.__enum__ == null) { - arr = arg1.slice(); - var buffer1 = []; - var _g4 = 0; - while(_g4 < arr.length) { - var f = arr[_g4]; - ++_g4; - var i3 = haxe_io_FPHelper.floatToI32(f); - buffer1.push(i3 & 255); - buffer1.push(i3 >> 8 & 255); - buffer1.push(i3 >> 16 & 255); - buffer1.push(i3 >>> 24); - } - arr.byteLength = arr.length << 2; - arr.byteOffset = 0; - arr.buffer = new js_html_compat_ArrayBuffer(buffer1); - } else { - throw new js__$Boot_HaxeError("TODO " + Std.string(arg1)); - } - arr.subarray = js_html_compat_Float32Array._subarray; - arr.set = js_html_compat_Float32Array._set; - return arr; -}; -js_html_compat_Float32Array._set = function(arg,offset) { - if(js_Boot.__instanceof(arg.buffer,js_html_compat_ArrayBuffer)) { - var a = arg; - if(arg.byteLength + offset > this.byteLength) { - throw new js__$Boot_HaxeError("set() outside of range"); - } - var _g1 = 0; - var _g = arg.byteLength; - while(_g1 < _g) { - var i = _g1++; - this[i + offset] = a[i]; - } - } else if((arg instanceof Array) && arg.__enum__ == null) { - var a1 = arg; - if(a1.length + offset > this.byteLength) { - throw new js__$Boot_HaxeError("set() outside of range"); - } - var _g11 = 0; - var _g2 = a1.length; - while(_g11 < _g2) { - var i1 = _g11++; - this[i1 + offset] = a1[i1]; - } - } else { - throw new js__$Boot_HaxeError("TODO"); - } -}; -js_html_compat_Float32Array._subarray = function(start,end) { - var a = js_html_compat_Float32Array._new(this.slice(start,end)); - a.byteOffset = start * 4; - return a; -}; -var js_html_compat_Uint8Array = function() { }; -$hxClasses["js.html.compat.Uint8Array"] = js_html_compat_Uint8Array; -js_html_compat_Uint8Array.__name__ = true; -js_html_compat_Uint8Array._new = function(arg1,offset,length) { - var arr; - if(typeof(arg1) == "number") { - arr = []; - var _g1 = 0; - var _g = arg1; - while(_g1 < _g) { - var i = _g1++; - arr[i] = 0; - } - arr.byteLength = arr.length; - arr.byteOffset = 0; - arr.buffer = new js_html_compat_ArrayBuffer(arr); - } else if(js_Boot.__instanceof(arg1,js_html_compat_ArrayBuffer)) { - var buffer = arg1; - if(offset == null) { - offset = 0; - } - if(length == null) { - length = buffer.byteLength - offset; - } - if(offset == 0) { - arr = buffer.a; - } else { - arr = buffer.a.slice(offset,offset + length); - } - arr.byteLength = arr.length; - arr.byteOffset = offset; - arr.buffer = buffer; - } else if((arg1 instanceof Array) && arg1.__enum__ == null) { - arr = arg1.slice(); - arr.byteLength = arr.length; - arr.byteOffset = 0; - arr.buffer = new js_html_compat_ArrayBuffer(arr); - } else { - throw new js__$Boot_HaxeError("TODO " + Std.string(arg1)); - } - arr.subarray = js_html_compat_Uint8Array._subarray; - arr.set = js_html_compat_Uint8Array._set; - return arr; -}; -js_html_compat_Uint8Array._set = function(arg,offset) { - if(js_Boot.__instanceof(arg.buffer,js_html_compat_ArrayBuffer)) { - var a = arg; - if(arg.byteLength + offset > this.byteLength) { - throw new js__$Boot_HaxeError("set() outside of range"); - } - var _g1 = 0; - var _g = arg.byteLength; - while(_g1 < _g) { - var i = _g1++; - this[i + offset] = a[i]; - } - } else if((arg instanceof Array) && arg.__enum__ == null) { - var a1 = arg; - if(a1.length + offset > this.byteLength) { - throw new js__$Boot_HaxeError("set() outside of range"); - } - var _g11 = 0; - var _g2 = a1.length; - while(_g11 < _g2) { - var i1 = _g11++; - this[i1 + offset] = a1[i1]; - } - } else { - throw new js__$Boot_HaxeError("TODO"); - } -}; -js_html_compat_Uint8Array._subarray = function(start,end) { - var a = js_html_compat_Uint8Array._new(this.slice(start,end)); - a.byteOffset = start; - return a; -}; -var kha__$Assets_ImageList = function() { - this.names = []; -}; -$hxClasses["kha._Assets.ImageList"] = kha__$Assets_ImageList; -kha__$Assets_ImageList.__name__ = true; -kha__$Assets_ImageList.prototype = { - names: null - ,__class__: kha__$Assets_ImageList -}; -var kha__$Assets_SoundList = function() { - this.names = []; -}; -$hxClasses["kha._Assets.SoundList"] = kha__$Assets_SoundList; -kha__$Assets_SoundList.__name__ = true; -kha__$Assets_SoundList.prototype = { - names: null - ,__class__: kha__$Assets_SoundList -}; -var kha__$Assets_BlobList = function() { - this.names = []; -}; -$hxClasses["kha._Assets.BlobList"] = kha__$Assets_BlobList; -kha__$Assets_BlobList.__name__ = true; -kha__$Assets_BlobList.prototype = { - names: null - ,__class__: kha__$Assets_BlobList -}; -var kha__$Assets_FontList = function() { - this.names = ["DroidSans"]; - this.DroidSansDescription = { files : ["DroidSans.ttf"], type : "font", name : "DroidSans"}; - this.DroidSansName = "DroidSans"; - this.DroidSans = null; -}; -$hxClasses["kha._Assets.FontList"] = kha__$Assets_FontList; -kha__$Assets_FontList.__name__ = true; -kha__$Assets_FontList.prototype = { - DroidSans: null - ,DroidSansName: null - ,DroidSansDescription: null - ,DroidSansLoad: function(done) { - kha_Assets.loadFont("DroidSans",function(font) { - done(); - }); - } - ,DroidSansUnload: function() { - this.DroidSans.unload(); - this.DroidSans = null; - } - ,names: null - ,__class__: kha__$Assets_FontList -}; -var kha__$Assets_VideoList = function() { - this.names = []; -}; -$hxClasses["kha._Assets.VideoList"] = kha__$Assets_VideoList; -kha__$Assets_VideoList.__name__ = true; -kha__$Assets_VideoList.prototype = { - names: null - ,__class__: kha__$Assets_VideoList -}; -var kha_Assets = function() { }; -$hxClasses["kha.Assets"] = kha_Assets; -kha_Assets.__name__ = true; -kha_Assets.loadEverything = function(callback) { - var fileCount = 0; - var _g = 0; - var _g1 = Type.getInstanceFields(kha__$Assets_BlobList); - while(_g < _g1.length) { - var blob = _g1[_g]; - ++_g; - if(StringTools.endsWith(blob,"Load")) { - fileCount += 1; - } - } - var _g2 = 0; - var _g11 = Type.getInstanceFields(kha__$Assets_ImageList); - while(_g2 < _g11.length) { - var image = _g11[_g2]; - ++_g2; - if(StringTools.endsWith(image,"Load")) { - fileCount += 1; - } - } - var _g3 = 0; - var _g12 = Type.getInstanceFields(kha__$Assets_SoundList); - while(_g3 < _g12.length) { - var sound = _g12[_g3]; - ++_g3; - if(StringTools.endsWith(sound,"Load")) { - fileCount += 1; - } - } - var _g4 = 0; - var _g13 = Type.getInstanceFields(kha__$Assets_FontList); - while(_g4 < _g13.length) { - var font = _g13[_g4]; - ++_g4; - if(StringTools.endsWith(font,"Load")) { - fileCount += 1; - } - } - var _g5 = 0; - var _g14 = Type.getInstanceFields(kha__$Assets_VideoList); - while(_g5 < _g14.length) { - var video = _g14[_g5]; - ++_g5; - if(StringTools.endsWith(video,"Load")) { - fileCount += 1; - } - } - if(fileCount == 0) { - callback(); - return; - } - var filesLeft = fileCount; - var _g6 = 0; - var _g15 = Type.getInstanceFields(kha__$Assets_BlobList); - while(_g6 < _g15.length) { - var blob1 = _g15[_g6]; - ++_g6; - if(StringTools.endsWith(blob1,"Load")) { - (Reflect.field(kha_Assets.blobs,blob1))(function() { - filesLeft -= 1; - kha_Assets.progress = 1 - filesLeft / fileCount; - if(filesLeft == 0) { - callback(); - } - }); - } - } - var _g7 = 0; - var _g16 = Type.getInstanceFields(kha__$Assets_ImageList); - while(_g7 < _g16.length) { - var image1 = _g16[_g7]; - ++_g7; - if(StringTools.endsWith(image1,"Load")) { - (Reflect.field(kha_Assets.images,image1))(function() { - filesLeft -= 1; - kha_Assets.progress = 1 - filesLeft / fileCount; - if(filesLeft == 0) { - callback(); - } - }); - } - } - var _g8 = 0; - var _g17 = Type.getInstanceFields(kha__$Assets_SoundList); - while(_g8 < _g17.length) { - var sound1 = [_g17[_g8]]; - ++_g8; - if(StringTools.endsWith(sound1[0],"Load")) { - (Reflect.field(kha_Assets.sounds,sound1[0]))((function(sound2) { - return function() { - var sound3 = Reflect.field(kha_Assets.sounds,sound2[0].substring(0,sound2[0].length - 4)); - sound3.uncompress((function() { - return function() { - filesLeft -= 1; - kha_Assets.progress = 1 - filesLeft / fileCount; - if(filesLeft == 0) { - callback(); - } - }; - })()); - }; - })(sound1)); - } - } - var _g9 = 0; - var _g18 = Type.getInstanceFields(kha__$Assets_FontList); - while(_g9 < _g18.length) { - var font1 = _g18[_g9]; - ++_g9; - if(StringTools.endsWith(font1,"Load")) { - (Reflect.field(kha_Assets.fonts,font1))(function() { - filesLeft -= 1; - kha_Assets.progress = 1 - filesLeft / fileCount; - if(filesLeft == 0) { - callback(); - } - }); - } - } - var _g10 = 0; - var _g19 = Type.getInstanceFields(kha__$Assets_VideoList); - while(_g10 < _g19.length) { - var video1 = _g19[_g10]; - ++_g10; - if(StringTools.endsWith(video1,"Load")) { - (Reflect.field(kha_Assets.videos,video1))(function() { - filesLeft -= 1; - kha_Assets.progress = 1 - filesLeft / fileCount; - if(filesLeft == 0) { - callback(); - } - }); - } - } -}; -kha_Assets.loadImage = function(name,done) { - var description = Reflect.field(kha_Assets.images,name + "Description"); - kha_LoaderImpl.loadImageFromDescription(description,function(image) { - kha_Assets.images[name] = image; - done(image); - }); -}; -kha_Assets.loadImageFromPath = function(path,readable,done) { - var description = { files : [path], readable : readable}; - kha_LoaderImpl.loadImageFromDescription(description,done); -}; -kha_Assets.get_imageFormats = function() { - return kha_LoaderImpl.getImageFormats(); -}; -kha_Assets.loadBlob = function(name,done) { - var description = Reflect.field(kha_Assets.blobs,name + "Description"); - kha_LoaderImpl.loadBlobFromDescription(description,function(blob) { - kha_Assets.blobs[name] = blob; - done(blob); - }); -}; -kha_Assets.loadBlobFromPath = function(path,done) { - var description = { files : [path]}; - kha_LoaderImpl.loadBlobFromDescription(description,done); -}; -kha_Assets.loadSound = function(name,done) { - var description = Reflect.field(kha_Assets.sounds,name + "Description"); - kha_LoaderImpl.loadSoundFromDescription(description,function(sound) { - kha_Assets.sounds[name] = sound; - done(sound); - }); - return; -}; -kha_Assets.loadSoundFromPath = function(path,done) { - var description = { files : [path]}; - kha_LoaderImpl.loadSoundFromDescription(description,done); - return; -}; -kha_Assets.get_soundFormats = function() { - return kha_LoaderImpl.getSoundFormats(); -}; -kha_Assets.loadFont = function(name,done) { - var description = Reflect.field(kha_Assets.fonts,name + "Description"); - kha_LoaderImpl.loadFontFromDescription(description,function(font) { - kha_Assets.fonts[name] = font; - done(font); - }); - return; -}; -kha_Assets.loadFontFromPath = function(path,done) { - var description = { files : [path]}; - kha_LoaderImpl.loadFontFromDescription(description,done); - return; -}; -kha_Assets.get_fontFormats = function() { - return ["ttf"]; -}; -kha_Assets.loadVideo = function(name,done) { - var description = Reflect.field(kha_Assets.videos,name + "Description"); - kha_LoaderImpl.loadVideoFromDescription(description,function(video) { - kha_Assets.videos[name] = video; - done(video); - }); - return; -}; -kha_Assets.loadVideoFromPath = function(path,done) { - var description = { files : [path]}; - kha_LoaderImpl.loadVideoFromDescription(description,done); - return; -}; -kha_Assets.get_videoFormats = function() { - return kha_LoaderImpl.getVideoFormats(); -}; -var kha_Canvas = function() { }; -$hxClasses["kha.Canvas"] = kha_Canvas; -kha_Canvas.__name__ = true; -kha_Canvas.prototype = { - get_width: null - ,get_height: null - ,get_g1: null - ,get_g2: null - ,get_g4: null - ,width: null - ,height: null - ,g1: null - ,g2: null - ,g4: null - ,__class__: kha_Canvas -}; -var kha_Resource = function() { }; -$hxClasses["kha.Resource"] = kha_Resource; -kha_Resource.__name__ = true; -kha_Resource.prototype = { - unload: null - ,__class__: kha_Resource -}; -var kha_Image = function() { }; -$hxClasses["kha.Image"] = kha_Image; -kha_Image.__name__ = true; -kha_Image.__interfaces__ = [kha_Resource,kha_Canvas]; -kha_Image.create = function(width,height,format,usage) { - if(format == null) { - format = kha_graphics4_TextureFormat.RGBA32; - } - if(usage == null) { - usage = kha_graphics4_Usage.StaticUsage; - } - if(kha_SystemImpl.gl == null) { - return new kha_CanvasImage(width,height,format,false); - } else { - return new kha_WebGLImage(width,height,format,false,0); - } -}; -kha_Image.create3D = function(width,height,depth,format,usage) { - return null; -}; -kha_Image.createRenderTarget = function(width,height,format,depthStencil,antiAliasingSamples,contextId) { - if(contextId == null) { - contextId = 0; - } - if(antiAliasingSamples == null) { - antiAliasingSamples = 1; - } - if(depthStencil == null) { - depthStencil = 0; - } - if(format == null) { - format = kha_graphics4_TextureFormat.RGBA32; - } - if(kha_SystemImpl.gl == null) { - return new kha_CanvasImage(width,height,format,true); - } else { - return new kha_WebGLImage(width,height,format,true,depthStencil); - } -}; -kha_Image.fromImage = function(image,readable) { - if(kha_SystemImpl.gl == null) { - var img = new kha_CanvasImage(image.width,image.height,kha_graphics4_TextureFormat.RGBA32,false); - img.image = image; - img.createTexture(); - return img; - } else { - var img1 = new kha_WebGLImage(image.width,image.height,kha_graphics4_TextureFormat.RGBA32,false,0); - img1.image = image; - img1.createTexture(); - return img1; - } -}; -kha_Image.fromBytes = function(bytes,width,height,format,usage) { - if(format == null) { - format = kha_graphics4_TextureFormat.RGBA32; - } - if(usage == null) { - usage = kha_graphics4_Usage.StaticUsage; - } - if(kha_SystemImpl.gl != null) { - var img = new kha_WebGLImage(width,height,format,false,0); - img.image = img.bytesToArray(bytes); - img.createTexture(); - return img; - } - return null; -}; -kha_Image.fromEncodedBytes = function(bytes,fileExtention,doneCallback,errorCallback,readable) { - if(readable == null) { - readable = false; - } - var dataUrl = "data:image;base64," + haxe_crypto_Base64.encode(bytes); - var imageElement = js_Boot.__cast(window.document.createElement("img") , HTMLImageElement); - imageElement.onload = function() { - var tmp = kha_Image.fromImage(imageElement,readable); - doneCallback(tmp); - }; - imageElement.onerror = function() { - errorCallback("Image was not created"); - }; - imageElement.src = dataUrl; -}; -kha_Image.fromVideo = function(video) { - if(kha_SystemImpl.gl == null) { - var img = new kha_CanvasImage(video.element.videoWidth,video.element.videoHeight,kha_graphics4_TextureFormat.RGBA32,false); - img.video = video.element; - img.createTexture(); - return img; - } else { - var img1 = new kha_WebGLImage(video.element.videoWidth,video.element.videoHeight,kha_graphics4_TextureFormat.RGBA32,false,0); - img1.video = video.element; - img1.createTexture(); - return img1; - } -}; -kha_Image.get_maxSize = function() { - if(kha_SystemImpl.gl == null) { - return 8192; - } else { - return kha_SystemImpl.gl.getParameter(3379); - } -}; -kha_Image.get_nonPow2Supported = function() { - return kha_SystemImpl.gl != null; -}; -kha_Image.prototype = { - isOpaque: function(x,y) { - return false; - } - ,at: function(x,y) { - return -16777216; - } - ,unload: function() { - } - ,lock: function(level) { - if(level == null) { - level = 0; - } - return null; - } - ,unlock: function() { - } - ,getPixels: function() { - return null; - } - ,generateMipmaps: function(levels) { - } - ,setMipmaps: function(mipmaps) { - } - ,setDepthStencilFrom: function(image) { - } - ,clear: function(x,y,z,width,height,depth,color) { - } - ,width: null - ,get_width: function() { - return 0; - } - ,height: null - ,get_height: function() { - return 0; - } - ,depth: null - ,get_depth: function() { - return 1; - } - ,realWidth: null - ,get_realWidth: function() { - return 0; - } - ,realHeight: null - ,get_realHeight: function() { - return 0; - } - ,g1: null - ,get_g1: function() { - return null; - } - ,g2: null - ,get_g2: function() { - return null; - } - ,g4: null - ,get_g4: function() { - return null; - } - ,__class__: kha_Image -}; -var kha_CanvasImage = function(width,height,format,renderTarget) { - this.g2canvas = null; - this.myWidth = width; - this.myHeight = height; - this.format = format; - this.renderTarget = renderTarget; - this.image = null; - this.video = null; - if(renderTarget) { - this.createTexture(); - } -}; -$hxClasses["kha.CanvasImage"] = kha_CanvasImage; -kha_CanvasImage.__name__ = true; -kha_CanvasImage.init = function() { - var canvas = window.document.createElement("canvas"); - if(canvas != null) { - kha_CanvasImage.context = canvas.getContext("2d"); - canvas.width = 2048; - canvas.height = 2048; - kha_CanvasImage.context.globalCompositeOperation = "copy"; - } -}; -kha_CanvasImage.upperPowerOfTwo = function(v) { - --v; - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - return ++v; -}; -kha_CanvasImage.__super__ = kha_Image; -kha_CanvasImage.prototype = $extend(kha_Image.prototype,{ - image: null - ,video: null - ,data: null - ,myWidth: null - ,myHeight: null - ,format: null - ,renderTarget: null - ,frameBuffer: null - ,graphics1: null - ,g2canvas: null - ,get_g1: function() { - if(this.graphics1 == null) { - this.graphics1 = new kha_graphics2_Graphics1(this); - } - return this.graphics1; - } - ,get_g2: function() { - if(this.g2canvas == null) { - var canvas = window.document.createElement("canvas"); - this.image = canvas; - var context = canvas.getContext("2d"); - canvas.width = this.get_width(); - canvas.height = this.get_height(); - this.g2canvas = new kha_js_CanvasGraphics(context); - } - return this.g2canvas; - } - ,get_g4: function() { - return null; - } - ,get_width: function() { - return this.myWidth; - } - ,get_height: function() { - return this.myHeight; - } - ,get_realWidth: function() { - return this.myWidth; - } - ,get_realHeight: function() { - return this.myHeight; - } - ,isOpaque: function(x,y) { - if(this.data == null) { - if(kha_CanvasImage.context == null) { - return true; - } else { - this.createImageData(); - } - } - return this.data.data[y * (this.image.width | 0) * 4 + x * 4 + 3] != 0; - } - ,at: function(x,y) { - if(this.data == null) { - if(kha_CanvasImage.context == null) { - return -16777216; - } else { - this.createImageData(); - } - } - return kha__$Color_Color_$Impl_$._new(this.data.data[y * (this.image.width | 0) * 4 + x * 4]); - } - ,createImageData: function() { - kha_CanvasImage.context.strokeStyle = "rgba(0,0,0,0)"; - kha_CanvasImage.context.fillStyle = "rgba(0,0,0,0)"; - kha_CanvasImage.context.fillRect(0,0,this.image.width,this.image.height); - kha_CanvasImage.context.drawImage(this.image,0,0,this.image.width,this.image.height,0,0,this.image.width,this.image.height); - this.data = kha_CanvasImage.context.getImageData(0,0,this.image.width,this.image.height); - } - ,texture: null - ,createTexture: function() { - if(kha_SystemImpl.gl == null) { - return; - } - this.texture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - kha_SystemImpl.gl.texParameteri(3553,10240,9729); - kha_SystemImpl.gl.texParameteri(3553,10241,9729); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - if(this.renderTarget) { - this.frameBuffer = kha_SystemImpl.gl.createFramebuffer(); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_realWidth(),this.get_realHeight(),0,6408,5121,null); - kha_SystemImpl.gl.framebufferTexture2D(36160,36064,3553,this.texture,0); - kha_SystemImpl.gl.bindFramebuffer(36160,null); - } else if(this.video != null) { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.video); - } else { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.image); - } - kha_SystemImpl.gl.bindTexture(3553,null); - } - ,set: function(stage) { - kha_SystemImpl.gl.activeTexture(33984 + stage); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - if(this.video != null) { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.video); - } - } - ,bytes: null - ,lock: function(level) { - if(level == null) { - level = 0; - } - this.bytes = new haxe_io_Bytes(new ArrayBuffer(this.format == kha_graphics4_TextureFormat.RGBA32 ? 4 * this.get_width() * this.get_height() : this.get_width() * this.get_height())); - return this.bytes; - } - ,unlock: function() { - if(kha_SystemImpl.gl != null) { - this.texture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - kha_SystemImpl.gl.texParameteri(3553,10240,9729); - kha_SystemImpl.gl.texParameteri(3553,10241,9729); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - kha_SystemImpl.gl.texImage2D(3553,0,6409,this.get_width(),this.get_height(),0,6409,5121,new Uint8Array(this.bytes.b.bufferValue)); - if(kha_SystemImpl.gl.getError() == 1282) { - var rgbaBytes = new haxe_io_Bytes(new ArrayBuffer(this.get_width() * this.get_height() * 4)); - var _g1 = 0; - var _g = this.get_height(); - while(_g1 < _g) { - var y = _g1++; - var _g3 = 0; - var _g2 = this.get_width(); - while(_g3 < _g2) { - var x = _g3++; - var _this = this.bytes; - var pos = y * this.get_width() + x; - var value = _this.b[pos]; - var pos1 = y * this.get_width() * 4 + x * 4; - rgbaBytes.b[pos1] = value & 255; - var pos2 = y * this.get_width() * 4 + x * 4 + 1; - rgbaBytes.b[pos2] = value & 255; - var pos3 = y * this.get_width() * 4 + x * 4 + 2; - rgbaBytes.b[pos3] = value & 255; - var pos4 = y * this.get_width() * 4 + x * 4 + 3; - rgbaBytes.b[pos4] = 255; - } - } - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_width(),this.get_height(),0,6408,5121,new Uint8Array(rgbaBytes.b.bufferValue)); - } - kha_SystemImpl.gl.bindTexture(3553,null); - this.bytes = null; - } - } - ,unload: function() { - this.image = null; - this.video = null; - this.data = null; - } - ,__class__: kha_CanvasImage -}); -var kha__$Color_Color_$Impl_$ = $hx_exports["kha"]["_Color"]["Color_Impl_"] = {}; -$hxClasses["kha._Color.Color_Impl_"] = kha__$Color_Color_$Impl_$; -kha__$Color_Color_$Impl_$.__name__ = true; -kha__$Color_Color_$Impl_$.fromValue = function(value) { - return kha__$Color_Color_$Impl_$._new(value); -}; -kha__$Color_Color_$Impl_$.fromBytes = function(r,g,b,a) { - if(a == null) { - a = 255; - } - return kha__$Color_Color_$Impl_$._new(a << 24 | r << 16 | g << 8 | b); -}; -kha__$Color_Color_$Impl_$.fromFloats = function(r,g,b,a) { - if(a == null) { - a = 1; - } - return kha__$Color_Color_$Impl_$._new((a * 255 | 0) << 24 | (r * 255 | 0) << 16 | (g * 255 | 0) << 8 | (b * 255 | 0)); -}; -kha__$Color_Color_$Impl_$.fromString = function(value) { - if((value.length == 7 || value.length == 9) && value.charCodeAt(0) == 35) { - var colorValue = Std.parseInt("0x" + HxOverrides.substr(value,1,null)); - if(value.length == 7) { - colorValue += -16777216; - } - return kha__$Color_Color_$Impl_$._new(colorValue); - } else { - throw new js__$Boot_HaxeError("Invalid Color string: '" + value + "'"); - } -}; -kha__$Color_Color_$Impl_$._new = function(value) { - var this1 = value; - return this1; -}; -kha__$Color_Color_$Impl_$.get_value = function(this1) { - return this1; -}; -kha__$Color_Color_$Impl_$.set_value = function(this1,value) { - this1 = value; - return this1; -}; -kha__$Color_Color_$Impl_$.get_Rb = function(this1) { - return (this1 & 16711680) >>> 16; -}; -kha__$Color_Color_$Impl_$.get_Gb = function(this1) { - return (this1 & 65280) >>> 8; -}; -kha__$Color_Color_$Impl_$.get_Bb = function(this1) { - return this1 & 255; -}; -kha__$Color_Color_$Impl_$.get_Ab = function(this1) { - return this1 >>> 24; -}; -kha__$Color_Color_$Impl_$.set_Rb = function(this1,i) { - this1 = this1 >>> 24 << 24 | i << 16 | (this1 & 65280) >>> 8 << 8 | this1 & 255; - return i; -}; -kha__$Color_Color_$Impl_$.set_Gb = function(this1,i) { - this1 = this1 >>> 24 << 24 | (this1 & 16711680) >>> 16 << 16 | i << 8 | this1 & 255; - return i; -}; -kha__$Color_Color_$Impl_$.set_Bb = function(this1,i) { - this1 = this1 >>> 24 << 24 | (this1 & 16711680) >>> 16 << 16 | (this1 & 65280) >>> 8 << 8 | i; - return i; -}; -kha__$Color_Color_$Impl_$.set_Ab = function(this1,i) { - this1 = i << 24 | (this1 & 16711680) >>> 16 << 16 | (this1 & 65280) >>> 8 << 8 | this1 & 255; - return i; -}; -kha__$Color_Color_$Impl_$.get_R = function(this1) { - return ((this1 & 16711680) >>> 16) * 0.00392156862745098; -}; -kha__$Color_Color_$Impl_$.get_G = function(this1) { - return ((this1 & 65280) >>> 8) * 0.00392156862745098; -}; -kha__$Color_Color_$Impl_$.get_B = function(this1) { - return (this1 & 255) * 0.00392156862745098; -}; -kha__$Color_Color_$Impl_$.get_A = function(this1) { - return (this1 >>> 24) * 0.00392156862745098; -}; -kha__$Color_Color_$Impl_$.set_R = function(this1,f) { - this1 = ((this1 >>> 24) * 0.00392156862745098 * 255 | 0) << 24 | (f * 255 | 0) << 16 | (((this1 & 65280) >>> 8) * 0.00392156862745098 * 255 | 0) << 8 | ((this1 & 255) * 0.00392156862745098 * 255 | 0); - return f; -}; -kha__$Color_Color_$Impl_$.set_G = function(this1,f) { - this1 = ((this1 >>> 24) * 0.00392156862745098 * 255 | 0) << 24 | (((this1 & 16711680) >>> 16) * 0.00392156862745098 * 255 | 0) << 16 | (f * 255 | 0) << 8 | ((this1 & 255) * 0.00392156862745098 * 255 | 0); - return f; -}; -kha__$Color_Color_$Impl_$.set_B = function(this1,f) { - this1 = ((this1 >>> 24) * 0.00392156862745098 * 255 | 0) << 24 | (((this1 & 16711680) >>> 16) * 0.00392156862745098 * 255 | 0) << 16 | (((this1 & 65280) >>> 8) * 0.00392156862745098 * 255 | 0) << 8 | (f * 255 | 0); - return f; -}; -kha__$Color_Color_$Impl_$.set_A = function(this1,f) { - this1 = (f * 255 | 0) << 24 | (((this1 & 16711680) >>> 16) * 0.00392156862745098 * 255 | 0) << 16 | (((this1 & 65280) >>> 8) * 0.00392156862745098 * 255 | 0) << 8 | ((this1 & 255) * 0.00392156862745098 * 255 | 0); - return f; -}; -var kha_CompilerDefines = function() { }; -$hxClasses["kha.CompilerDefines"] = kha_CompilerDefines; -kha_CompilerDefines.__name__ = true; -var kha_EnvironmentVariables = function() { -}; -$hxClasses["kha.EnvironmentVariables"] = kha_EnvironmentVariables; -kha_EnvironmentVariables.__name__ = true; -kha_EnvironmentVariables.prototype = { - getVariable: function(name) { - return ""; - } - ,__class__: kha_EnvironmentVariables -}; -var kha_Font = function() { }; -$hxClasses["kha.Font"] = kha_Font; -kha_Font.__name__ = true; -kha_Font.__interfaces__ = [kha_Resource]; -kha_Font.prototype = { - height: null - ,width: null - ,baseline: null - ,__class__: kha_Font -}; -var kha_FontStyle = function(bold,italic,underlined) { - this.bold = bold; - this.italic = italic; - this.underlined = underlined; -}; -$hxClasses["kha.FontStyle"] = kha_FontStyle; -kha_FontStyle.__name__ = true; -kha_FontStyle.prototype = { - bold: null - ,italic: null - ,underlined: null - ,getBold: function() { - return this.bold; - } - ,getItalic: function() { - return this.italic; - } - ,getUnderlined: function() { - return this.underlined; - } - ,__class__: kha_FontStyle -}; -var kha_Framebuffer = function(windowId,g1,g2,g4) { - this.windowId = windowId; - this.graphics1 = g1; - this.graphics2 = g2; - this.graphics4 = g4; -}; -$hxClasses["kha.Framebuffer"] = kha_Framebuffer; -kha_Framebuffer.__name__ = true; -kha_Framebuffer.__interfaces__ = [kha_Canvas]; -kha_Framebuffer.prototype = { - windowId: null - ,graphics1: null - ,graphics2: null - ,graphics4: null - ,init: function(g1,g2,g4) { - this.graphics1 = g1; - this.graphics2 = g2; - this.graphics4 = g4; - } - ,g1: null - ,get_g1: function() { - return this.graphics1; - } - ,g2: null - ,get_g2: function() { - return this.graphics2; - } - ,g4: null - ,get_g4: function() { - return this.graphics4; - } - ,width: null - ,get_width: function() { - return kha_System.windowWidth(this.windowId); - } - ,height: null - ,get_height: function() { - return kha_System.windowHeight(this.windowId); - } - ,__class__: kha_Framebuffer -}; -var kha_Key = $hxClasses["kha.Key"] = { __ename__ : true, __constructs__ : ["BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","CHAR","ESC","DEL","UP","DOWN","LEFT","RIGHT","BACK"] }; -kha_Key.BACKSPACE = ["BACKSPACE",0]; -kha_Key.BACKSPACE.toString = $estr; -kha_Key.BACKSPACE.__enum__ = kha_Key; -kha_Key.TAB = ["TAB",1]; -kha_Key.TAB.toString = $estr; -kha_Key.TAB.__enum__ = kha_Key; -kha_Key.ENTER = ["ENTER",2]; -kha_Key.ENTER.toString = $estr; -kha_Key.ENTER.__enum__ = kha_Key; -kha_Key.SHIFT = ["SHIFT",3]; -kha_Key.SHIFT.toString = $estr; -kha_Key.SHIFT.__enum__ = kha_Key; -kha_Key.CTRL = ["CTRL",4]; -kha_Key.CTRL.toString = $estr; -kha_Key.CTRL.__enum__ = kha_Key; -kha_Key.ALT = ["ALT",5]; -kha_Key.ALT.toString = $estr; -kha_Key.ALT.__enum__ = kha_Key; -kha_Key.CHAR = ["CHAR",6]; -kha_Key.CHAR.toString = $estr; -kha_Key.CHAR.__enum__ = kha_Key; -kha_Key.ESC = ["ESC",7]; -kha_Key.ESC.toString = $estr; -kha_Key.ESC.__enum__ = kha_Key; -kha_Key.DEL = ["DEL",8]; -kha_Key.DEL.toString = $estr; -kha_Key.DEL.__enum__ = kha_Key; -kha_Key.UP = ["UP",9]; -kha_Key.UP.toString = $estr; -kha_Key.UP.__enum__ = kha_Key; -kha_Key.DOWN = ["DOWN",10]; -kha_Key.DOWN.toString = $estr; -kha_Key.DOWN.__enum__ = kha_Key; -kha_Key.LEFT = ["LEFT",11]; -kha_Key.LEFT.toString = $estr; -kha_Key.LEFT.__enum__ = kha_Key; -kha_Key.RIGHT = ["RIGHT",12]; -kha_Key.RIGHT.toString = $estr; -kha_Key.RIGHT.__enum__ = kha_Key; -kha_Key.BACK = ["BACK",13]; -kha_Key.BACK.toString = $estr; -kha_Key.BACK.__enum__ = kha_Key; -var kha_AlignedQuad = function() { -}; -$hxClasses["kha.AlignedQuad"] = kha_AlignedQuad; -kha_AlignedQuad.__name__ = true; -kha_AlignedQuad.prototype = { - x0: null - ,y0: null - ,s0: null - ,t0: null - ,x1: null - ,y1: null - ,s1: null - ,t1: null - ,xadvance: null - ,__class__: kha_AlignedQuad -}; -var kha_KravurImage = function(size,ascent,descent,lineGap,width,height,chars,pixels) { - this.mySize = size; - this.width = width; - this.height = height; - this.chars = chars; - this.baseline = ascent; - var _g = 0; - while(_g < chars.length) { - var $char = chars[_g]; - ++_g; - $char.yoff += this.baseline; - } - this.texture = kha_Image.create(width,height,kha_graphics4_TextureFormat.L8); - var bytes = this.texture.lock(); - var pos = 0; - var _g1 = 0; - var _g2 = height; - while(_g1 < _g2) { - var y = _g1++; - var _g3 = 0; - var _g21 = width; - while(_g3 < _g21) { - var x = _g3++; - var v = pixels.readU8(pos); - bytes.b[pos] = v & 255; - ++pos; - } - } - this.texture.unlock(); -}; -$hxClasses["kha.KravurImage"] = kha_KravurImage; -kha_KravurImage.__name__ = true; -kha_KravurImage.prototype = { - mySize: null - ,chars: null - ,texture: null - ,width: null - ,height: null - ,baseline: null - ,getTexture: function() { - return this.texture; - } - ,getBakedQuad: function(char_index,xpos,ypos) { - if(char_index >= this.chars.length) { - return null; - } - var ipw = 1.0 / this.width; - var iph = 1.0 / this.height; - var b = this.chars[char_index]; - if(b == null) { - return null; - } - var round_x = Math.round(xpos + b.xoff); - var round_y = Math.round(ypos + b.yoff); - var q = new kha_AlignedQuad(); - q.x0 = round_x; - q.y0 = round_y; - q.x1 = round_x + b.x1 - b.x0; - q.y1 = round_y + b.y1 - b.y0; - q.s0 = b.x0 * ipw; - q.t0 = b.y0 * iph; - q.s1 = b.x1 * ipw; - q.t1 = b.y1 * iph; - q.xadvance = b.xadvance; - return q; - } - ,getCharWidth: function(charIndex) { - if(charIndex < 32) { - return 0; - } - if(charIndex - 32 >= this.chars.length) { - return 0; - } - return this.chars[charIndex - 32].xadvance; - } - ,getHeight: function() { - return this.mySize; - } - ,stringWidth: function(string) { - var str = new String(string); - var width = 0; - var _g1 = 0; - var _g = str.length; - while(_g1 < _g) { - var c = _g1++; - width += this.getCharWidth(HxOverrides.cca(str,c)); - } - return width; - } - ,getBaselinePosition: function() { - return this.baseline; - } - ,__class__: kha_KravurImage -}; -var kha_Kravur = function(blob) { - this.images = new haxe_ds_IntMap(); - this.blob = blob; -}; -$hxClasses["kha.Kravur"] = kha_Kravur; -kha_Kravur.__name__ = true; -kha_Kravur.__interfaces__ = [kha_Font]; -kha_Kravur.prototype = { - blob: null - ,images: null - ,_get: function(fontSize,glyphs) { - if(!this.images.h.hasOwnProperty(fontSize)) { - if(glyphs == null) { - glyphs = []; - var _g = 32; - while(_g < 256) { - var i = _g++; - glyphs.push(i); - } - } - var width = 64; - var height = 32; - var length = glyphs.length; - var this1 = new Array(length); - var baked = this1; - var _g1 = 0; - var _g2 = baked.length; - while(_g1 < _g2) { - var i1 = _g1++; - baked[i1] = new kha_graphics2_truetype_Stbtt_$bakedchar(); - } - var pixels = null; - var status = -1; - while(status < 0) { - if(height < width) { - height *= 2; - } else { - width *= 2; - } - pixels = kha_internal_BytesBlob.alloc(width * height); - status = kha_graphics2_truetype_StbTruetype.stbtt_BakeFontBitmap(this.blob,0,fontSize,pixels,width,height,glyphs,baked); - } - var info = new kha_graphics2_truetype_Stbtt_$fontinfo(); - kha_graphics2_truetype_StbTruetype.stbtt_InitFont(info,this.blob,0); - var metrics = kha_graphics2_truetype_StbTruetype.stbtt_GetFontVMetrics(info); - var scale = kha_graphics2_truetype_StbTruetype.stbtt_ScaleForPixelHeight(info,fontSize); - var ascent = Math.round(metrics.ascent * scale); - var descent = Math.round(metrics.descent * scale); - var lineGap = Math.round(metrics.lineGap * scale); - var image = new kha_KravurImage(fontSize | 0,ascent,descent,lineGap,width,height,baked,pixels); - this.images.h[fontSize] = image; - return image; - } - return this.images.h[fontSize]; - } - ,height: function(fontSize) { - return this._get(fontSize).getHeight(); - } - ,width: function(fontSize,str) { - return this._get(fontSize).stringWidth(str); - } - ,baseline: function(fontSize) { - return this._get(fontSize).getBaselinePosition(); - } - ,unload: function() { - this.blob = null; - this.images = null; - } - ,__class__: kha_Kravur -}; -var kha_LoaderImpl = function() { }; -$hxClasses["kha.LoaderImpl"] = kha_LoaderImpl; -kha_LoaderImpl.__name__ = true; -kha_LoaderImpl.getImageFormats = function() { - return ["png","jpg","hdr"]; -}; -kha_LoaderImpl.loadImageFromDescription = function(desc,done) { - var readable = Object.prototype.hasOwnProperty.call(desc,"readable") && desc.readable; - if(StringTools.endsWith(desc.files[0],".hdr")) { - kha_LoaderImpl.loadBlobFromDescription(desc,function(blob) { - var hdrImage = kha_internal_HdrFormat.parse(blob.toBytes()); - var tmp = kha_Image.fromBytes(haxe_io_Bytes.ofData(hdrImage.data.buffer),hdrImage.width,hdrImage.height,kha_graphics4_TextureFormat.RGBA128,readable ? kha_graphics4_Usage.DynamicUsage : kha_graphics4_Usage.StaticUsage); - done(tmp); - }); - } else { - var img = window.document.createElement("img"); - img.onload = function(event) { - var tmp1 = kha_Image.fromImage(img,readable); - done(tmp1); - }; - img.src = desc.files[0]; - img.crossOrigin = ""; - } -}; -kha_LoaderImpl.getSoundFormats = function() { - var element = window.document.createElement("audio"); - var formats = []; - if(element.canPlayType("audio/mp4") != "") { - formats.push("mp4"); - } - if(kha_SystemImpl._hasWebAudio || element.canPlayType("audio/ogg") != "") { - formats.push("ogg"); - } - return formats; -}; -kha_LoaderImpl.loadSoundFromDescription = function(desc,done) { - if(kha_SystemImpl._hasWebAudio) { - var element = window.document.createElement("audio"); - if(element.canPlayType("audio/mp4") != "") { - var _g1 = 0; - var _g = desc.files.length; - while(_g1 < _g) { - var i = _g1++; - var file = desc.files[i]; - if(StringTools.endsWith(file,".mp4")) { - new kha_js_WebAudioSound(file,done); - return; - } - } - } - var _g11 = 0; - var _g2 = desc.files.length; - while(_g11 < _g2) { - var i1 = _g11++; - var file1 = desc.files[i1]; - if(StringTools.endsWith(file1,".ogg")) { - new kha_js_WebAudioSound(file1,done); - return; - } - } - } else if(kha_SystemImpl.mobile) { - var element1 = window.document.createElement("audio"); - if(element1.canPlayType("audio/mp4") != "") { - var _g12 = 0; - var _g3 = desc.files.length; - while(_g12 < _g3) { - var i2 = _g12++; - var file2 = desc.files[i2]; - if(StringTools.endsWith(file2,".mp4")) { - new kha_js_MobileWebAudioSound(file2,done); - return; - } - } - } - var _g13 = 0; - var _g4 = desc.files.length; - while(_g13 < _g4) { - var i3 = _g13++; - var file3 = desc.files[i3]; - if(StringTools.endsWith(file3,".ogg")) { - new kha_js_MobileWebAudioSound(file3,done); - return; - } - } - } else { - new kha_js_Sound(desc.files,done); - } -}; -kha_LoaderImpl.getVideoFormats = function() { - return ["mp4","webm"]; -}; -kha_LoaderImpl.loadVideoFromDescription = function(desc,done) { - var video = new kha_js_Video(desc.files,done); -}; -kha_LoaderImpl.loadBlobFromDescription = function(desc,done) { - var request = new XMLHttpRequest(); - request.open("GET",desc.files[0],true); - request.responseType = "arraybuffer"; - request.onreadystatechange = function() { - if(request.readyState != 4) { - return; - } - if(request.status >= 200 && request.status < 400 || request.status == 0 && request.statusText == "") { - var bytes = null; - var arrayBuffer = request.response; - if(arrayBuffer != null) { - var byteArray = new Uint8Array(arrayBuffer); - bytes = haxe_io_Bytes.ofData(byteArray); - } else if(request.responseBody != null) { - var data = VBArray(request.responseBody).toArray(); - bytes = new haxe_io_Bytes(new ArrayBuffer(data.length)); - var _g1 = 0; - var _g = data.length; - while(_g1 < _g) { - var i = _g1++; - bytes.b[i] = data[i] & 255; - } - } else { - haxe_Log.trace("Error loading " + desc.files[0],{ fileName : "LoaderImpl.hx", lineNumber : 144, className : "kha.LoaderImpl", methodName : "loadBlobFromDescription"}); - window.console.log("loadBlob failed"); - } - done(new kha_internal_BytesBlob(bytes)); - } else { - haxe_Log.trace("Error loading " + desc.files[0],{ fileName : "LoaderImpl.hx", lineNumber : 150, className : "kha.LoaderImpl", methodName : "loadBlobFromDescription"}); - window.console.log("loadBlob failed"); - } - }; - request.send(null); -}; -kha_LoaderImpl.loadFontFromDescription = function(desc,done) { - kha_LoaderImpl.loadBlobFromDescription(desc,function(blob) { - if(kha_SystemImpl.gl == null) { - done(new kha_js_Font(new kha_Kravur(blob))); - } else { - done(new kha_Kravur(blob)); - } - }); -}; -var kha_Rotation = function(center,angle) { - this.center = center; - this.angle = angle; -}; -$hxClasses["kha.Rotation"] = kha_Rotation; -kha_Rotation.__name__ = true; -kha_Rotation.prototype = { - center: null - ,angle: null - ,__class__: kha_Rotation -}; -var kha_TimeTask = function() { -}; -$hxClasses["kha.TimeTask"] = kha_TimeTask; -kha_TimeTask.__name__ = true; -kha_TimeTask.prototype = { - task: null - ,start: null - ,period: null - ,duration: null - ,next: null - ,id: null - ,groupId: null - ,active: null - ,paused: null - ,__class__: kha_TimeTask -}; -var kha_FrameTask = function(task,priority,id) { - this.task = task; - this.priority = priority; - this.id = id; - this.active = true; - this.paused = false; -}; -$hxClasses["kha.FrameTask"] = kha_FrameTask; -kha_FrameTask.__name__ = true; -kha_FrameTask.prototype = { - task: null - ,priority: null - ,id: null - ,active: null - ,paused: null - ,__class__: kha_FrameTask -}; -var kha_Scheduler = function() { }; -$hxClasses["kha.Scheduler"] = kha_Scheduler; -kha_Scheduler.__name__ = true; -kha_Scheduler.init = function() { - kha_Scheduler.deltas = []; - var _g1 = 0; - var _g = kha_Scheduler.DIF_COUNT; - while(_g1 < _g) { - var i = _g1++; - kha_Scheduler.deltas[i] = 0; - } - kha_Scheduler.stopped = true; - kha_Scheduler.frame_tasks_sorted = true; - kha_Scheduler.current = kha_Scheduler.realTime(); - kha_Scheduler.lastTime = kha_Scheduler.realTime(); - kha_Scheduler.currentFrameTaskId = 0; - kha_Scheduler.currentTimeTaskId = 0; - kha_Scheduler.currentGroupId = 0; - kha_Scheduler.timeTasks = []; - kha_Scheduler.pausedTimeTasks = []; - kha_Scheduler.outdatedTimeTasks = []; - kha_Scheduler.timeTasksScratchpad = []; - kha_Scheduler.frameTasks = []; - kha_Scheduler.toDeleteFrame = []; -}; -kha_Scheduler.start = function(restartTimers) { - if(restartTimers == null) { - restartTimers = false; - } - kha_Scheduler.vsync = kha_System.get_vsync(); - var hz = kha_System.get_refreshRate(); - if(hz >= 57 && hz <= 63) { - hz = 60; - } - kha_Scheduler.onedifhz = 1.0 / hz; - kha_Scheduler.stopped = false; - kha_Scheduler.resetTime(); - kha_Scheduler.lastTime = kha_Scheduler.realTime() - kha_Scheduler.startTime; - var _g1 = 0; - var _g = kha_Scheduler.DIF_COUNT; - while(_g1 < _g) { - var i = _g1++; - kha_Scheduler.deltas[i] = 0; - } - if(restartTimers) { - var _g2 = 0; - var _g11 = kha_Scheduler.timeTasks; - while(_g2 < _g11.length) { - var timeTask = _g11[_g2]; - ++_g2; - timeTask.paused = false; - } - var _g3 = 0; - var _g12 = kha_Scheduler.frameTasks; - while(_g3 < _g12.length) { - var frameTask = _g12[_g3]; - ++_g3; - frameTask.paused = false; - } - } -}; -kha_Scheduler.stop = function() { - kha_Scheduler.stopped = true; -}; -kha_Scheduler.isStopped = function() { - return kha_Scheduler.stopped; -}; -kha_Scheduler.warpTimeTasks = function(time,tasks) { - var _g = 0; - while(_g < tasks.length) { - var timeTask = tasks[_g]; - ++_g; - if(timeTask.start >= time) { - timeTask.next = timeTask.start; - } else if(timeTask.period > 0) { - var sinceStart = time - timeTask.start; - var times = Math.ceil(sinceStart / timeTask.period); - timeTask.next = timeTask.start + times * timeTask.period; - } - } -}; -kha_Scheduler.back = function(time) { - if(time >= kha_Scheduler.lastTime) { - return; - } - kha_Scheduler.current = time; - kha_Scheduler.lastTime = time; - kha_Scheduler.warpTimeTasks(time,kha_Scheduler.outdatedTimeTasks); - kha_Scheduler.warpTimeTasks(time,kha_Scheduler.timeTasks); - var _g = 0; - var _g1 = kha_Scheduler.outdatedTimeTasks; - while(_g < _g1.length) { - var task = _g1[_g]; - ++_g; - if(task.next >= time) { - kha_Scheduler.timeTasksScratchpad.push(task); - } - } - var _g2 = 0; - var _g11 = kha_Scheduler.timeTasksScratchpad; - while(_g2 < _g11.length) { - var task1 = _g11[_g2]; - ++_g2; - HxOverrides.remove(kha_Scheduler.outdatedTimeTasks,task1); - } - var _g3 = 0; - var _g12 = kha_Scheduler.timeTasksScratchpad; - while(_g3 < _g12.length) { - var task2 = _g12[_g3]; - ++_g3; - kha_Scheduler.insertSorted(kha_Scheduler.timeTasks,task2); - } - while(kha_Scheduler.timeTasksScratchpad.length > 0) HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0]); - var _g4 = 0; - var _g13 = kha_Scheduler.outdatedTimeTasks; - while(_g4 < _g13.length) { - var task3 = _g13[_g4]; - ++_g4; - if(task3.next < time - 1.0) { - kha_Scheduler.timeTasksScratchpad.push(task3); - } - } - var _g5 = 0; - var _g14 = kha_Scheduler.timeTasksScratchpad; - while(_g5 < _g14.length) { - var task4 = _g14[_g5]; - ++_g5; - HxOverrides.remove(kha_Scheduler.outdatedTimeTasks,task4); - } - while(kha_Scheduler.timeTasksScratchpad.length > 0) HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0]); -}; -kha_Scheduler.executeFrame = function() { - var now = kha_Scheduler.realTime() - kha_Scheduler.startTime; - var delta = now - kha_Scheduler.lastTime; - var frameEnd = kha_Scheduler.current; - if(delta < 0) { - return; - } - if(delta > kha_Scheduler.maxframetime) { - kha_Scheduler.startTime += delta - kha_Scheduler.maxframetime; - delta = kha_Scheduler.maxframetime; - frameEnd += delta; - } else if(kha_Scheduler.vsync) { - var realdif = kha_Scheduler.onedifhz; - while(realdif < delta - kha_Scheduler.onedifhz) realdif += kha_Scheduler.onedifhz; - delta = realdif; - var _g1 = 0; - var _g = kha_Scheduler.DIF_COUNT - 2; - while(_g1 < _g) { - var i = _g1++; - delta += kha_Scheduler.deltas[i]; - kha_Scheduler.deltas[i] = kha_Scheduler.deltas[i + 1]; - } - delta += kha_Scheduler.deltas[kha_Scheduler.DIF_COUNT - 2]; - delta /= kha_Scheduler.DIF_COUNT; - kha_Scheduler.deltas[kha_Scheduler.DIF_COUNT - 2] = realdif; - frameEnd += delta; - } else { - var _g11 = 0; - var _g2 = kha_Scheduler.DIF_COUNT - 1; - while(_g11 < _g2) { - var i1 = _g11++; - kha_Scheduler.deltas[i1] = kha_Scheduler.deltas[i1 + 1]; - } - kha_Scheduler.deltas[kha_Scheduler.DIF_COUNT - 1] = delta; - var next = 0; - var _g12 = 0; - var _g3 = kha_Scheduler.DIF_COUNT; - while(_g12 < _g3) { - var i2 = _g12++; - next += kha_Scheduler.deltas[i2]; - } - next /= kha_Scheduler.DIF_COUNT; - frameEnd += next; - } - kha_Scheduler.lastTime = frameEnd; - if(!kha_Scheduler.stopped) { - kha_Scheduler.current = frameEnd; - } - var _g4 = 0; - var _g13 = kha_Scheduler.pausedTimeTasks; - while(_g4 < _g13.length) { - var pausedTask = _g13[_g4]; - ++_g4; - pausedTask.next += delta; - } - if(kha_Scheduler.stopped) { - var _g5 = 0; - var _g14 = kha_Scheduler.timeTasks; - while(_g5 < _g14.length) { - var timeTask = _g14[_g5]; - ++_g5; - timeTask.next += delta; - } - } - while(kha_Scheduler.timeTasks.length > 0) { - kha_Scheduler.activeTimeTask = kha_Scheduler.timeTasks[0]; - if(kha_Scheduler.activeTimeTask.next <= frameEnd) { - kha_Scheduler.activeTimeTask.next += kha_Scheduler.activeTimeTask.period; - HxOverrides.remove(kha_Scheduler.timeTasks,kha_Scheduler.activeTimeTask); - if(kha_Scheduler.activeTimeTask.active && kha_Scheduler.activeTimeTask.task()) { - if(kha_Scheduler.activeTimeTask.period > 0 && (kha_Scheduler.activeTimeTask.duration == 0 || kha_Scheduler.activeTimeTask.duration >= kha_Scheduler.activeTimeTask.start + kha_Scheduler.activeTimeTask.next)) { - kha_Scheduler.insertSorted(kha_Scheduler.timeTasks,kha_Scheduler.activeTimeTask); - } else { - kha_Scheduler.archiveTimeTask(kha_Scheduler.activeTimeTask,frameEnd); - } - } else { - kha_Scheduler.activeTimeTask.active = false; - kha_Scheduler.archiveTimeTask(kha_Scheduler.activeTimeTask,frameEnd); - } - } else { - break; - } - } - kha_Scheduler.activeTimeTask = null; - kha_Scheduler.sortFrameTasks(); - var _g6 = 0; - var _g15 = kha_Scheduler.frameTasks; - while(_g6 < _g15.length) { - var frameTask = _g15[_g6]; - ++_g6; - if(!kha_Scheduler.stopped && !frameTask.paused && frameTask.active) { - if(!frameTask.task()) { - frameTask.active = false; - } - } - } - var _g7 = 0; - var _g16 = kha_Scheduler.frameTasks; - while(_g7 < _g16.length) { - var frameTask1 = _g16[_g7]; - ++_g7; - if(!frameTask1.active) { - kha_Scheduler.toDeleteFrame.push(frameTask1); - } - } - while(kha_Scheduler.toDeleteFrame.length > 0) HxOverrides.remove(kha_Scheduler.frameTasks,kha_Scheduler.toDeleteFrame.pop()); -}; -kha_Scheduler.archiveTimeTask = function(timeTask,frameEnd) { -}; -kha_Scheduler.time = function() { - return kha_Scheduler.current; -}; -kha_Scheduler.realTime = function() { - return kha_System.get_time(); -}; -kha_Scheduler.resetTime = function() { - var now = kha_System.get_time(); - var dif = now - kha_Scheduler.startTime; - kha_Scheduler.startTime = now; - var _g = 0; - var _g1 = kha_Scheduler.timeTasks; - while(_g < _g1.length) { - var timeTask = _g1[_g]; - ++_g; - timeTask.start -= dif; - timeTask.next -= dif; - } - var _g11 = 0; - var _g2 = kha_Scheduler.DIF_COUNT; - while(_g11 < _g2) { - var i = _g11++; - kha_Scheduler.deltas[i] = 0; - } - kha_Scheduler.current = 0; - kha_Scheduler.lastTime = 0; -}; -kha_Scheduler.addBreakableFrameTask = function(task,priority) { - kha_Scheduler.frameTasks.push(new kha_FrameTask(task,priority,++kha_Scheduler.currentFrameTaskId)); - kha_Scheduler.frame_tasks_sorted = false; - return kha_Scheduler.currentFrameTaskId; -}; -kha_Scheduler.addFrameTask = function(task,priority) { - return kha_Scheduler.addBreakableFrameTask(function() { - task(); - return true; - },priority); -}; -kha_Scheduler.pauseFrameTask = function(id,paused) { - var _g = 0; - var _g1 = kha_Scheduler.frameTasks; - while(_g < _g1.length) { - var frameTask = _g1[_g]; - ++_g; - if(frameTask.id == id) { - frameTask.paused = paused; - break; - } - } -}; -kha_Scheduler.removeFrameTask = function(id) { - var _g = 0; - var _g1 = kha_Scheduler.frameTasks; - while(_g < _g1.length) { - var frameTask = _g1[_g]; - ++_g; - if(frameTask.id == id) { - frameTask.active = false; - break; - } - } -}; -kha_Scheduler.generateGroupId = function() { - return ++kha_Scheduler.currentGroupId; -}; -kha_Scheduler.addBreakableTimeTaskToGroup = function(groupId,task,start,period,duration) { - if(duration == null) { - duration = 0; - } - if(period == null) { - period = 0; - } - var t = new kha_TimeTask(); - t.active = true; - t.task = task; - t.id = ++kha_Scheduler.currentTimeTaskId; - t.groupId = groupId; - t.start = kha_Scheduler.current + start; - t.period = 0; - if(period != 0) { - t.period = period; - } - t.duration = 0; - if(duration != 0) { - t.duration = t.start + duration; - } - t.next = t.start; - kha_Scheduler.insertSorted(kha_Scheduler.timeTasks,t); - return t.id; -}; -kha_Scheduler.addTimeTaskToGroup = function(groupId,task,start,period,duration) { - if(duration == null) { - duration = 0; - } - if(period == null) { - period = 0; - } - return kha_Scheduler.addBreakableTimeTaskToGroup(groupId,function() { - task(); - return true; - },start,period,duration); -}; -kha_Scheduler.addBreakableTimeTask = function(task,start,period,duration) { - if(duration == null) { - duration = 0; - } - if(period == null) { - period = 0; - } - return kha_Scheduler.addBreakableTimeTaskToGroup(0,task,start,period,duration); -}; -kha_Scheduler.addTimeTask = function(task,start,period,duration) { - if(duration == null) { - duration = 0; - } - if(period == null) { - period = 0; - } - return kha_Scheduler.addTimeTaskToGroup(0,task,start,period,duration); -}; -kha_Scheduler.getTimeTask = function(id) { - if(kha_Scheduler.activeTimeTask != null && kha_Scheduler.activeTimeTask.id == id) { - return kha_Scheduler.activeTimeTask; - } - var _g = 0; - var _g1 = kha_Scheduler.timeTasks; - while(_g < _g1.length) { - var timeTask = _g1[_g]; - ++_g; - if(timeTask.id == id) { - return timeTask; - } - } - var _g2 = 0; - var _g11 = kha_Scheduler.pausedTimeTasks; - while(_g2 < _g11.length) { - var timeTask1 = _g11[_g2]; - ++_g2; - if(timeTask1.id == id) { - return timeTask1; - } - } - return null; -}; -kha_Scheduler.pauseTimeTask = function(id,paused) { - var timeTask = kha_Scheduler.getTimeTask(id); - if(timeTask != null) { - kha_Scheduler.pauseRunningTimeTask(timeTask,paused); - } - if(kha_Scheduler.activeTimeTask != null && kha_Scheduler.activeTimeTask.id == id) { - kha_Scheduler.activeTimeTask.paused = paused; - } -}; -kha_Scheduler.pauseRunningTimeTask = function(timeTask,paused) { - timeTask.paused = paused; - if(paused) { - HxOverrides.remove(kha_Scheduler.timeTasks,timeTask); - kha_Scheduler.pausedTimeTasks.push(timeTask); - } else { - kha_Scheduler.insertSorted(kha_Scheduler.timeTasks,timeTask); - HxOverrides.remove(kha_Scheduler.pausedTimeTasks,timeTask); - } -}; -kha_Scheduler.pauseTimeTasks = function(groupId,paused) { - var _g = 0; - var _g1 = kha_Scheduler.timeTasks; - while(_g < _g1.length) { - var timeTask = _g1[_g]; - ++_g; - if(timeTask.groupId == groupId) { - kha_Scheduler.pauseRunningTimeTask(timeTask,paused); - } - } - if(kha_Scheduler.activeTimeTask != null && kha_Scheduler.activeTimeTask.groupId == groupId) { - kha_Scheduler.activeTimeTask.paused = paused; - } -}; -kha_Scheduler.removeTimeTask = function(id) { - var timeTask = kha_Scheduler.getTimeTask(id); - if(timeTask != null) { - timeTask.active = false; - HxOverrides.remove(kha_Scheduler.timeTasks,timeTask); - } -}; -kha_Scheduler.removeTimeTasks = function(groupId) { - var _g = 0; - var _g1 = kha_Scheduler.timeTasks; - while(_g < _g1.length) { - var timeTask = _g1[_g]; - ++_g; - if(timeTask.groupId == groupId) { - timeTask.active = false; - kha_Scheduler.timeTasksScratchpad.push(timeTask); - } - } - var _g2 = 0; - var _g11 = kha_Scheduler.timeTasksScratchpad; - while(_g2 < _g11.length) { - var timeTask1 = _g11[_g2]; - ++_g2; - HxOverrides.remove(kha_Scheduler.timeTasks,timeTask1); - } - while(kha_Scheduler.timeTasksScratchpad.length > 0) HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0]); - if(kha_Scheduler.activeTimeTask != null && kha_Scheduler.activeTimeTask.groupId == groupId) { - kha_Scheduler.activeTimeTask.active = false; - } -}; -kha_Scheduler.numTasksInSchedule = function() { - return kha_Scheduler.timeTasks.length + kha_Scheduler.frameTasks.length; -}; -kha_Scheduler.insertSorted = function(list,task) { - var _g1 = 0; - var _g = list.length; - while(_g1 < _g) { - var i = _g1++; - if(list[i].next > task.next) { - list.splice(i,0,task); - return; - } - } - list.push(task); -}; -kha_Scheduler.sortFrameTasks = function() { - if(kha_Scheduler.frame_tasks_sorted) { - return; - } - kha_Scheduler.frameTasks.sort(function(a,b) { - if(a.priority > b.priority) { - return 1; - } else if(a.priority < b.priority) { - return -1; - } else { - return 0; - } - }); - kha_Scheduler.frame_tasks_sorted = true; -}; -var kha_ScreenRotation = $hxClasses["kha.ScreenRotation"] = { __ename__ : true, __constructs__ : ["RotationNone","Rotation90","Rotation180","Rotation270"] }; -kha_ScreenRotation.RotationNone = ["RotationNone",0]; -kha_ScreenRotation.RotationNone.toString = $estr; -kha_ScreenRotation.RotationNone.__enum__ = kha_ScreenRotation; -kha_ScreenRotation.Rotation90 = ["Rotation90",1]; -kha_ScreenRotation.Rotation90.toString = $estr; -kha_ScreenRotation.Rotation90.__enum__ = kha_ScreenRotation; -kha_ScreenRotation.Rotation180 = ["Rotation180",2]; -kha_ScreenRotation.Rotation180.toString = $estr; -kha_ScreenRotation.Rotation180.__enum__ = kha_ScreenRotation; -kha_ScreenRotation.Rotation270 = ["Rotation270",3]; -kha_ScreenRotation.Rotation270.toString = $estr; -kha_ScreenRotation.Rotation270.__enum__ = kha_ScreenRotation; -var kha_Shaders = function() { }; -$hxClasses["kha.Shaders"] = kha_Shaders; -kha_Shaders.__name__ = true; -kha_Shaders.init = function() { - var blobs = []; - var _g = 0; - while(_g < 3) { - var i = _g++; - var data = Reflect.field(kha_Shaders,"painter_colored_fragData" + i); - var bytes = haxe_Unserializer.run(data); - blobs.push(kha_internal_BytesBlob.fromBytes(bytes)); - } - kha_Shaders.painter_colored_frag = new kha_graphics4_FragmentShader(blobs,["painter-colored.frag.essl","painter-colored-relaxed.frag.essl","painter-colored-webgl2.frag.essl"]); - var blobs1 = []; - var _g1 = 0; - while(_g1 < 3) { - var i1 = _g1++; - var data1 = Reflect.field(kha_Shaders,"painter_colored_vertData" + i1); - var bytes1 = haxe_Unserializer.run(data1); - blobs1.push(kha_internal_BytesBlob.fromBytes(bytes1)); - } - kha_Shaders.painter_colored_vert = new kha_graphics4_VertexShader(blobs1,["painter-colored.vert.essl","painter-colored-relaxed.vert.essl","painter-colored-webgl2.vert.essl"]); - var blobs2 = []; - var _g2 = 0; - while(_g2 < 3) { - var i2 = _g2++; - var data2 = Reflect.field(kha_Shaders,"painter_image_fragData" + i2); - var bytes2 = haxe_Unserializer.run(data2); - blobs2.push(kha_internal_BytesBlob.fromBytes(bytes2)); - } - kha_Shaders.painter_image_frag = new kha_graphics4_FragmentShader(blobs2,["painter-image.frag.essl","painter-image-relaxed.frag.essl","painter-image-webgl2.frag.essl"]); - var blobs3 = []; - var _g3 = 0; - while(_g3 < 3) { - var i3 = _g3++; - var data3 = Reflect.field(kha_Shaders,"painter_image_vertData" + i3); - var bytes3 = haxe_Unserializer.run(data3); - blobs3.push(kha_internal_BytesBlob.fromBytes(bytes3)); - } - kha_Shaders.painter_image_vert = new kha_graphics4_VertexShader(blobs3,["painter-image.vert.essl","painter-image-relaxed.vert.essl","painter-image-webgl2.vert.essl"]); - var blobs4 = []; - var _g4 = 0; - while(_g4 < 3) { - var i4 = _g4++; - var data4 = Reflect.field(kha_Shaders,"painter_text_fragData" + i4); - var bytes4 = haxe_Unserializer.run(data4); - blobs4.push(kha_internal_BytesBlob.fromBytes(bytes4)); - } - kha_Shaders.painter_text_frag = new kha_graphics4_FragmentShader(blobs4,["painter-text.frag.essl","painter-text-relaxed.frag.essl","painter-text-webgl2.frag.essl"]); - var blobs5 = []; - var _g5 = 0; - while(_g5 < 3) { - var i5 = _g5++; - var data5 = Reflect.field(kha_Shaders,"painter_text_vertData" + i5); - var bytes5 = haxe_Unserializer.run(data5); - blobs5.push(kha_internal_BytesBlob.fromBytes(bytes5)); - } - kha_Shaders.painter_text_vert = new kha_graphics4_VertexShader(blobs5,["painter-text.vert.essl","painter-text-relaxed.vert.essl","painter-text-webgl2.vert.essl"]); - var blobs6 = []; - var _g6 = 0; - while(_g6 < 3) { - var i6 = _g6++; - var data6 = Reflect.field(kha_Shaders,"painter_video_fragData" + i6); - var bytes6 = haxe_Unserializer.run(data6); - blobs6.push(kha_internal_BytesBlob.fromBytes(bytes6)); - } - kha_Shaders.painter_video_frag = new kha_graphics4_FragmentShader(blobs6,["painter-video.frag.essl","painter-video-relaxed.frag.essl","painter-video-webgl2.frag.essl"]); - var blobs7 = []; - var _g7 = 0; - while(_g7 < 3) { - var i7 = _g7++; - var data7 = Reflect.field(kha_Shaders,"painter_video_vertData" + i7); - var bytes7 = haxe_Unserializer.run(data7); - blobs7.push(kha_internal_BytesBlob.fromBytes(bytes7)); - } - kha_Shaders.painter_video_vert = new kha_graphics4_VertexShader(blobs7,["painter-video.vert.essl","painter-video-relaxed.vert.essl","painter-video-webgl2.vert.essl"]); -}; -var kha_Sound = function() { -}; -$hxClasses["kha.Sound"] = kha_Sound; -kha_Sound.__name__ = true; -kha_Sound.__interfaces__ = [kha_Resource]; -kha_Sound.prototype = { - compressedData: null - ,uncompressedData: null - ,uncompress: function(done) { - var output = new haxe_io_BytesOutput(); - var header = kha_audio2_ogg_vorbis_Reader.readAll(this.compressedData,output,true); - var soundBytes = output.getBytes(); - var count = soundBytes.length / 4 | 0; - if(header.channel == 1) { - var this1 = new Array(count * 2); - this.uncompressedData = this1; - var _g1 = 0; - var _g = count; - while(_g1 < _g) { - var i = _g1++; - this.uncompressedData[i * 2] = soundBytes.getFloat(i * 4); - this.uncompressedData[i * 2 + 1] = soundBytes.getFloat(i * 4); - } - } else { - var this2 = new Array(count); - this.uncompressedData = this2; - var _g11 = 0; - var _g2 = count; - while(_g11 < _g2) { - var i1 = _g11++; - this.uncompressedData[i1] = soundBytes.getFloat(i1 * 4); - } - } - this.compressedData = null; - done(); - } - ,unload: function() { - this.compressedData = null; - this.uncompressedData = null; - } - ,__class__: kha_Sound -}; -var kha_System = function() { }; -$hxClasses["kha.System"] = kha_System; -kha_System.__name__ = true; -kha_System.init = function(options,callback) { - if(options.title == null) { - options.title = "Kha"; - } - if(options.width == null) { - options.width = 800; - } - if(options.height == null) { - options.height = 600; - } - if(options.samplesPerPixel == null) { - options.samplesPerPixel = 1; - } - if(options.vSync == null) { - options.vSync = true; - } - if(options.windowMode == null) { - options.windowMode = kha_WindowMode.Window; - } - kha_System.theTitle = options.title; - kha_SystemImpl.init(options,callback); -}; -kha_System.initEx = function(title,options,windowCallback,callback) { - kha_System.theTitle = title; - kha_SystemImpl.initEx(title,options,windowCallback,callback); -}; -kha_System.get_title = function() { - return kha_System.theTitle; -}; -kha_System.notifyOnRender = function(listener,id) { - if(id == null) { - id = 0; - } - while(id >= kha_System.renderListeners.length) kha_System.renderListeners.push([]); - kha_System.renderListeners[id].push(listener); -}; -kha_System.removeRenderListener = function(listener,id) { - if(id == null) { - id = 0; - } - HxOverrides.remove(kha_System.renderListeners[id],listener); -}; -kha_System.notifyOnApplicationState = function(foregroundListener,resumeListener,pauseListener,backgroundListener,shutdownListener) { - if(foregroundListener != null) { - kha_System.foregroundListeners.push(foregroundListener); - } - if(resumeListener != null) { - kha_System.resumeListeners.push(resumeListener); - } - if(pauseListener != null) { - kha_System.pauseListeners.push(pauseListener); - } - if(backgroundListener != null) { - kha_System.backgroundListeners.push(backgroundListener); - } - if(shutdownListener != null) { - kha_System.shutdownListeners.push(shutdownListener); - } -}; -kha_System.render = function(id,framebuffer) { - if(kha_System.renderListeners.length == 0) { - return; - } - var _g = 0; - var _g1 = kha_System.renderListeners[id]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(framebuffer); - } -}; -kha_System.foreground = function() { - var _g = 0; - var _g1 = kha_System.foregroundListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } -}; -kha_System.resume = function() { - var _g = 0; - var _g1 = kha_System.resumeListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } -}; -kha_System.pause = function() { - var _g = 0; - var _g1 = kha_System.pauseListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } -}; -kha_System.background = function() { - var _g = 0; - var _g1 = kha_System.backgroundListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } -}; -kha_System.shutdown = function() { - var _g = 0; - var _g1 = kha_System.shutdownListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } -}; -kha_System.get_time = function() { - return kha_SystemImpl.getTime(); -}; -kha_System.windowWidth = function(windowId) { - if(windowId == null) { - windowId = 0; - } - return kha_SystemImpl.windowWidth(windowId); -}; -kha_System.windowHeight = function(windowId) { - if(windowId == null) { - windowId = 0; - } - return kha_SystemImpl.windowHeight(windowId); -}; -kha_System.screenDpi = function() { - return kha_SystemImpl.screenDpi(); -}; -kha_System.get_screenRotation = function() { - return kha_SystemImpl.getScreenRotation(); -}; -kha_System.get_vsync = function() { - return kha_SystemImpl.getVsync(); -}; -kha_System.get_refreshRate = function() { - return kha_SystemImpl.getRefreshRate(); -}; -kha_System.get_systemId = function() { - return kha_SystemImpl.getSystemId(); -}; -kha_System.requestShutdown = function() { - kha_SystemImpl.requestShutdown(); -}; -kha_System.changeResolution = function(width,height) { - kha_SystemImpl.changeResolution(width,height); -}; -kha_System.loadUrl = function(url) { - kha_SystemImpl.loadUrl(url); -}; -var kha_GamepadStates = function() { - this.axes = []; - this.buttons = []; -}; -$hxClasses["kha.GamepadStates"] = kha_GamepadStates; -kha_GamepadStates.__name__ = true; -kha_GamepadStates.prototype = { - axes: null - ,buttons: null - ,__class__: kha_GamepadStates -}; -var kha_SystemImpl = function() { }; -$hxClasses["kha.SystemImpl"] = kha_SystemImpl; -kha_SystemImpl.__name__ = true; -kha_SystemImpl.initPerformanceTimer = function() { - if(window.performance != null && ($_=window.performance,$bind($_,$_.now)) != null) { - kha_SystemImpl.performance = window.performance; - } else { - kha_SystemImpl.performance = window.Date; - } -}; -kha_SystemImpl.errorHandler = function(message,source,lineno,colno,error) { - window.console.error(error.stack); - return true; -}; -kha_SystemImpl.init = function(options,callback) { - kha_SystemImpl.options = options; - kha_SystemImpl.mobile = kha_SystemImpl.isMobile(); - kha_SystemImpl.chrome = kha_SystemImpl.isChrome(); - kha_SystemImpl.init2(); - callback(); -}; -kha_SystemImpl.initEx = function(title,options,windowCallback,callback) { - haxe_Log.trace("initEx is not supported on the html5 target, running init() with first window options",{ fileName : "SystemImpl.hx", lineNumber : 86, className : "kha.SystemImpl", methodName : "initEx"}); - kha_SystemImpl.init({ title : title, width : options[0].width, height : options[0].height},callback); - if(windowCallback != null) { - windowCallback(0); - } -}; -kha_SystemImpl.isMobile = function() { - var agent = window.navigator.userAgent; - if(agent.indexOf("Android") >= 0 || agent.indexOf("webOS") >= 0 || agent.indexOf("iPhone") >= 0 || agent.indexOf("iPad") >= 0 || agent.indexOf("iPod") >= 0 || agent.indexOf("BlackBerry") >= 0 || agent.indexOf("Windows Phone") >= 0) { - return true; - } else { - return false; - } -}; -kha_SystemImpl.isChrome = function() { - var agent = window.navigator.userAgent; - if(agent.indexOf("Chrome") >= 0) { - return true; - } else { - return false; - } -}; -kha_SystemImpl.windowWidth = function(windowId) { - if(windowId == null) { - windowId = 0; - } - if(kha_SystemImpl.khanvas.width == 0 && kha_SystemImpl.options.width != null) { - return kha_SystemImpl.options.width; - } else { - return kha_SystemImpl.khanvas.width; - } -}; -kha_SystemImpl.windowHeight = function(windowId) { - if(windowId == null) { - windowId = 0; - } - if(kha_SystemImpl.khanvas.height == 0 && kha_SystemImpl.options.height != null) { - return kha_SystemImpl.options.height; - } else { - return kha_SystemImpl.khanvas.height; - } -}; -kha_SystemImpl.screenDpi = function() { - var dpiElement = window.document.createElement("div"); - dpiElement.style.position = "absolute"; - dpiElement.style.width = "1in"; - dpiElement.style.height = "1in"; - dpiElement.style.left = "-100%"; - dpiElement.style.top = "-100%"; - window.document.body.appendChild(dpiElement); - var dpi = dpiElement.offsetHeight; - dpiElement.remove(); - return dpi; -}; -kha_SystemImpl.setCanvas = function(canvas) { - kha_SystemImpl.khanvas = canvas; -}; -kha_SystemImpl.getScreenRotation = function() { - return kha_ScreenRotation.RotationNone; -}; -kha_SystemImpl.getTime = function() { - return kha_SystemImpl.performance.now() / 1000; -}; -kha_SystemImpl.getVsync = function() { - return true; -}; -kha_SystemImpl.getRefreshRate = function() { - return 60; -}; -kha_SystemImpl.getSystemId = function() { - return "HTML5"; -}; -kha_SystemImpl.requestShutdown = function() { - window.close(); -}; -kha_SystemImpl.init2 = function(backbufferFormat) { - haxe_Log.trace = js_Boot.__trace; - kha_SystemImpl.keyboard = new kha_input_Keyboard(); - kha_SystemImpl.mouse = new kha_input_MouseImpl(); - kha_SystemImpl.surface = new kha_input_Surface(); - kha_SystemImpl.gamepads = []; - kha_SystemImpl.gamepadStates = []; - var _g = 0; - while(_g < 4) { - var i = _g++; - kha_SystemImpl.gamepads[i] = new kha_input_Gamepad(i); - kha_SystemImpl.gamepadStates[i] = new kha_GamepadStates(); - } - kha_SystemImpl.pressedKeys = []; - var _g1 = 0; - while(_g1 < 256) { - var i1 = _g1++; - kha_SystemImpl.pressedKeys.push(false); - } - var _g2 = 0; - while(_g2 < 256) { - var i2 = _g2++; - kha_SystemImpl.pressedKeys.push(null); - } - kha_CanvasImage.init(); - kha_SystemImpl.initPerformanceTimer(); - kha_Scheduler.init(); - kha_SystemImpl.loadFinished(); - kha_EnvironmentVariables.instance = new kha_js_EnvironmentVariables(); -}; -kha_SystemImpl.getMouse = function(num) { - if(num != 0) { - return null; - } - return kha_SystemImpl.mouse; -}; -kha_SystemImpl.getKeyboard = function(num) { - if(num != 0) { - return null; - } - return kha_SystemImpl.keyboard; -}; -kha_SystemImpl.checkGamepad = function(pad) { - var _g1 = 0; - var _g = pad.axes.length; - while(_g1 < _g) { - var i = _g1++; - if(pad.axes[i] != null) { - if(kha_SystemImpl.gamepadStates[pad.index].axes[i] != pad.axes[i]) { - var axis = pad.axes[i]; - if(i % 2 == 1) { - axis = -axis; - } - kha_SystemImpl.gamepadStates[pad.index].axes[i] = axis; - kha_SystemImpl.gamepads[pad.index].sendAxisEvent(i,axis); - } - } - } - var _g11 = 0; - var _g2 = pad.buttons.length; - while(_g11 < _g2) { - var i1 = _g11++; - if(pad.buttons[i1] != null) { - if(kha_SystemImpl.gamepadStates[pad.index].buttons[i1] != pad.buttons[i1].value) { - kha_SystemImpl.gamepadStates[pad.index].buttons[i1] = pad.buttons[i1].value; - kha_SystemImpl.gamepads[pad.index].sendButtonEvent(i1,pad.buttons[i1].value); - } - } - } - if(pad.axes.length <= 4 && pad.buttons.length > 7) { - kha_SystemImpl.gamepadStates[pad.index].axes[4] = pad.buttons[6].value; - kha_SystemImpl.gamepads[pad.index].sendAxisEvent(4,pad.buttons[6].value); - kha_SystemImpl.gamepadStates[pad.index].axes[5] = pad.buttons[7].value; - kha_SystemImpl.gamepads[pad.index].sendAxisEvent(5,pad.buttons[7].value); - } -}; -kha_SystemImpl.loadFinished = function() { - var canvas = kha_SystemImpl.khanvas; - if(canvas == null) { - canvas = window.document.getElementById(kha_CompilerDefines.canvas_id); - } - canvas.style.cursor = "default"; - var gl = false; - try { - kha_SystemImpl.gl = canvas.getContext("webgl2",{ alpha : false, antialias : kha_SystemImpl.options.samplesPerPixel > 1, stencil : true, preserveDrawingBuffer : true}); - kha_SystemImpl.gl.pixelStorei(37441,1); - kha_SystemImpl.halfFloat = { HALF_FLOAT_OES : 5131}; - kha_SystemImpl.depthTexture = { UNSIGNED_INT_24_8_WEBGL : 34042}; - kha_SystemImpl.drawBuffers = { COLOR_ATTACHMENT0_WEBGL : 36064}; - kha_SystemImpl.elementIndexUint = true; - kha_SystemImpl.gl.getExtension("EXT_color_buffer_float"); - kha_SystemImpl.gl.getExtension("OES_texture_float_linear"); - kha_SystemImpl.gl.getExtension("OES_texture_half_float_linear"); - kha_SystemImpl.anisotropicFilter = kha_SystemImpl.gl.getExtension("EXT_texture_filter_anisotropic"); - if(kha_SystemImpl.anisotropicFilter == null) { - kha_SystemImpl.anisotropicFilter = kha_SystemImpl.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); - } - gl = true; - kha_SystemImpl.gl2 = true; - kha_Shaders.init(); - } catch( e ) { - haxe_Log.trace("Could not initialize WebGL 2, falling back to WebGL.",{ fileName : "SystemImpl.hx", lineNumber : 302, className : "kha.SystemImpl", methodName : "loadFinished"}); - } - if(!kha_SystemImpl.gl2) { - try { - kha_SystemImpl.gl = canvas.getContext("experimental-webgl",{ alpha : false, antialias : kha_SystemImpl.options.samplesPerPixel > 1, stencil : true, preserveDrawingBuffer : true}); - if(kha_SystemImpl.gl != null) { - kha_SystemImpl.gl.pixelStorei(37441,1); - kha_SystemImpl.gl.getExtension("OES_texture_float"); - kha_SystemImpl.gl.getExtension("OES_texture_float_linear"); - kha_SystemImpl.halfFloat = kha_SystemImpl.gl.getExtension("OES_texture_half_float"); - kha_SystemImpl.gl.getExtension("OES_texture_half_float_linear"); - kha_SystemImpl.depthTexture = kha_SystemImpl.gl.getExtension("WEBGL_depth_texture"); - kha_SystemImpl.gl.getExtension("EXT_shader_texture_lod"); - kha_SystemImpl.gl.getExtension("OES_standard_derivatives"); - kha_SystemImpl.anisotropicFilter = kha_SystemImpl.gl.getExtension("EXT_texture_filter_anisotropic"); - if(kha_SystemImpl.anisotropicFilter == null) { - kha_SystemImpl.anisotropicFilter = kha_SystemImpl.gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); - } - kha_SystemImpl.drawBuffers = kha_SystemImpl.gl.getExtension("WEBGL_draw_buffers"); - kha_SystemImpl.elementIndexUint = kha_SystemImpl.gl.getExtension("OES_element_index_uint"); - gl = true; - kha_Shaders.init(); - } - } catch( e1 ) { - haxe_Log.trace("Could not initialize WebGL, falling back to Canvas.",{ fileName : "SystemImpl.hx", lineNumber : 326, className : "kha.SystemImpl", methodName : "loadFinished"}); - } - } - kha_SystemImpl.setCanvas(canvas); - if(gl) { - var g4 = gl ? new kha_js_graphics4_Graphics() : null; - kha_SystemImpl.frame = new kha_Framebuffer(0,null,null,g4); - kha_SystemImpl.frame.init(new kha_graphics2_Graphics1(kha_SystemImpl.frame),new kha_js_graphics4_Graphics2(kha_SystemImpl.frame),g4); - } else { - var g2 = new kha_js_CanvasGraphics(canvas.getContext("2d")); - kha_SystemImpl.frame = new kha_Framebuffer(0,null,g2,null); - kha_SystemImpl.frame.init(new kha_graphics2_Graphics1(kha_SystemImpl.frame),g2,null); - } - if(!kha_SystemImpl.mobile && kha_audio2_Audio._init()) { - kha_SystemImpl._hasWebAudio = true; - kha_audio2_Audio1._init(); - } else if(kha_SystemImpl.mobile) { - kha_SystemImpl._hasWebAudio = false; - kha_js_MobileWebAudio._init(); - kha_audio2_Audio1 = kha_js_MobileWebAudio; - } else { - kha_SystemImpl._hasWebAudio = false; - kha_js_AudioElementAudio._compile(); - kha_audio2_Audio1 = kha_js_AudioElementAudio; - } - kha_vr_VrInterface.instance = new kha_js_vr_VrInterface(); - kha_Scheduler.start(); - var $window = window; - var requestAnimationFrame = $window.requestAnimationFrame; - if(requestAnimationFrame == null) { - requestAnimationFrame = $window.mozRequestAnimationFrame; - } - if(requestAnimationFrame == null) { - requestAnimationFrame = $window.webkitRequestAnimationFrame; - } - if(requestAnimationFrame == null) { - requestAnimationFrame = $window.msRequestAnimationFrame; - } - var animate = null; - animate = function(timestamp) { - var window1 = window; - if(requestAnimationFrame == null) { - window1.setTimeout(animate,16.6666666666666679); - } else { - requestAnimationFrame(animate); - } - var sysGamepads = kha_SystemImpl.getGamepads(); - if(sysGamepads != null) { - var _g1 = 0; - var _g = sysGamepads.length; - while(_g1 < _g) { - var i = _g1++; - var pad = sysGamepads[i]; - if(pad != null) { - kha_SystemImpl.checkGamepad(pad); - } - } - } - kha_Scheduler.executeFrame(); - if(canvas.getContext) { - var displayWidth = canvas.clientWidth; - var displayHeight = canvas.clientHeight; - if(canvas.width != displayWidth || canvas.height != displayHeight) { - canvas.width = displayWidth; - canvas.height = displayHeight; - } - kha_System.render(0,kha_SystemImpl.frame); - if(kha_SystemImpl.gl != null) { - kha_SystemImpl.gl.clearColor(1,1,1,1); - kha_SystemImpl.gl.colorMask(false,false,false,true); - kha_SystemImpl.gl.clear(16384); - kha_SystemImpl.gl.colorMask(true,true,true,true); - } - } - }; - var animate1 = animate; - if(requestAnimationFrame == null) { - $window.setTimeout(animate1,16.6666666666666679); - } else { - requestAnimationFrame(animate1); - } - if(canvas.getAttribute("tabindex") == null) { - canvas.setAttribute("tabindex","0"); - } - canvas.focus(); - canvas.oncontextmenu = function(event) { - event.stopPropagation(); - event.preventDefault(); - }; - canvas.onmousedown = kha_SystemImpl.mouseDown; - canvas.onmousemove = kha_SystemImpl.mouseMove; - if(kha_SystemImpl.keyboard != null) { - canvas.onkeydown = kha_SystemImpl.keyDown; - canvas.onkeyup = kha_SystemImpl.keyUp; - } - canvas.onblur = kha_SystemImpl.onBlur; - canvas.onfocus = kha_SystemImpl.onFocus; - canvas.onmousewheel = canvas.onwheel = kha_SystemImpl.mouseWheel; - canvas.onmouseleave = kha_SystemImpl.mouseLeave; - canvas.addEventListener("wheel mousewheel",kha_SystemImpl.mouseWheel,false); - canvas.addEventListener("touchstart",kha_SystemImpl.touchDown,false); - canvas.addEventListener("touchend",kha_SystemImpl.touchUp,false); - canvas.addEventListener("touchmove",kha_SystemImpl.touchMove,false); - window.addEventListener("unload",kha_SystemImpl.unload); -}; -kha_SystemImpl.lockMouse = function() { - if(($_=kha_SystemImpl.khanvas,$bind($_,$_.requestPointerLock))) { - kha_SystemImpl.khanvas.requestPointerLock(); - } else if(kha_SystemImpl.khanvas.mozRequestPointerLock) { - kha_SystemImpl.khanvas.mozRequestPointerLock(); - } else if(kha_SystemImpl.khanvas.webkitRequestPointerLock) { - kha_SystemImpl.khanvas.webkitRequestPointerLock(); - } -}; -kha_SystemImpl.unlockMouse = function() { - if(document.exitPointerLock) { - document.exitPointerLock(); - } else if(document.mozExitPointerLock) { - document.mozExitPointerLock(); - } else if(document.webkitExitPointerLock) { - document.webkitExitPointerLock(); - } -}; -kha_SystemImpl.canLockMouse = function() { - return 'pointerLockElement' in document || - 'mozPointerLockElement' in document || - 'webkitPointerLockElement' in document; -}; -kha_SystemImpl.isMouseLocked = function() { - return document.pointerLockElement === kha_Sys.khanvas || - document.mozPointerLockElement === kha_Sys.khanvas || - document.webkitPointerLockElement === kha_Sys.khanvas; -}; -kha_SystemImpl.notifyOfMouseLockChange = function(func,error) { - window.document.addEventListener("pointerlockchange",func,false); - window.document.addEventListener("mozpointerlockchange",func,false); - window.document.addEventListener("webkitpointerlockchange",func,false); - window.document.addEventListener("pointerlockerror",error,false); - window.document.addEventListener("mozpointerlockerror",error,false); - window.document.addEventListener("webkitpointerlockerror",error,false); -}; -kha_SystemImpl.removeFromMouseLockChange = function(func,error) { - window.document.removeEventListener("pointerlockchange",func,false); - window.document.removeEventListener("mozpointerlockchange",func,false); - window.document.removeEventListener("webkitpointerlockchange",func,false); - window.document.removeEventListener("pointerlockerror",error,false); - window.document.removeEventListener("mozpointerlockerror",error,false); - window.document.removeEventListener("webkitpointerlockerror",error,false); -}; -kha_SystemImpl.unload = function(_) { -}; -kha_SystemImpl.setMouseXY = function(event) { - var rect = kha_SystemImpl.khanvas.getBoundingClientRect(); - var borderWidth = kha_SystemImpl.khanvas.clientLeft; - var borderHeight = kha_SystemImpl.khanvas.clientTop; - kha_SystemImpl.mouseX = (event.clientX - rect.left - borderWidth) * kha_SystemImpl.khanvas.width / (rect.width - 2 * borderWidth) | 0; - kha_SystemImpl.mouseY = (event.clientY - rect.top - borderHeight) * kha_SystemImpl.khanvas.height / (rect.height - 2 * borderHeight) | 0; -}; -kha_SystemImpl.unlockSoundOnIOS = function() { - if(!kha_SystemImpl.mobile || kha_SystemImpl.iosSoundEnabled) { - return; - } - var buffer = kha_js_MobileWebAudio._context.createBuffer(1,1,22050); - var source = kha_js_MobileWebAudio._context.createBufferSource(); - source.buffer = buffer; - source.connect(kha_js_MobileWebAudio._context.destination); - if(source.noteOn) { - source.noteOn(0); - } - kha_SystemImpl.iosSoundEnabled = true; -}; -kha_SystemImpl.mouseLeave = function() { - kha_SystemImpl.mouse.sendLeaveEvent(0); -}; -kha_SystemImpl.mouseWheel = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - event.preventDefault(); - if(event.deltaMode == 0) { - if(event.deltaY < 0) { - kha_SystemImpl.mouse.sendWheelEvent(0,-1); - } else if(event.deltaY > 0) { - kha_SystemImpl.mouse.sendWheelEvent(0,1); - } - kha_SystemImpl.insideInputEvent = false; - return false; - } - if(event.deltaMode == 1) { - kha_SystemImpl.minimumScroll = Math.min(kha_SystemImpl.minimumScroll,Math.abs(event.deltaY)) | 0; - kha_SystemImpl.mouse.sendWheelEvent(0,event.deltaY / kha_SystemImpl.minimumScroll | 0); - kha_SystemImpl.insideInputEvent = false; - return false; - } - kha_SystemImpl.insideInputEvent = false; - return false; -}; -kha_SystemImpl.mouseDown = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - kha_SystemImpl.setMouseXY(event); - if(event.which == 1) { - if(event.ctrlKey) { - kha_SystemImpl.leftMouseCtrlDown = true; - kha_SystemImpl.mouse.sendDownEvent(0,1,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - } else { - kha_SystemImpl.leftMouseCtrlDown = false; - kha_SystemImpl.mouse.sendDownEvent(0,0,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - } - if(($_=kha_SystemImpl.khanvas,$bind($_,$_.setCapture)) != null) { - kha_SystemImpl.khanvas.setCapture(); - } - kha_SystemImpl.khanvas.ownerDocument.addEventListener("mouseup",kha_SystemImpl.mouseLeftUp); - } else if(event.which == 2) { - kha_SystemImpl.mouse.sendDownEvent(0,2,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - kha_SystemImpl.khanvas.ownerDocument.addEventListener("mouseup",kha_SystemImpl.mouseMiddleUp); - } else if(event.which == 3) { - kha_SystemImpl.mouse.sendDownEvent(0,1,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - kha_SystemImpl.khanvas.ownerDocument.addEventListener("mouseup",kha_SystemImpl.mouseRightUp); - } - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.mouseLeftUp = function(event) { - kha_SystemImpl.unlockSoundOnIOS(); - if(event.which != 1) { - return; - } - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.khanvas.ownerDocument.removeEventListener("mouseup",kha_SystemImpl.mouseLeftUp); - if(($_=kha_SystemImpl.khanvas,$bind($_,$_.releaseCapture)) != null) { - kha_SystemImpl.khanvas.ownerDocument.releaseCapture(); - } - if(kha_SystemImpl.leftMouseCtrlDown) { - kha_SystemImpl.mouse.sendUpEvent(0,1,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - } else { - kha_SystemImpl.mouse.sendUpEvent(0,0,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - } - kha_SystemImpl.leftMouseCtrlDown = false; - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.mouseMiddleUp = function(event) { - kha_SystemImpl.unlockSoundOnIOS(); - if(event.which != 2) { - return; - } - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.khanvas.ownerDocument.removeEventListener("mouseup",kha_SystemImpl.mouseMiddleUp); - kha_SystemImpl.mouse.sendUpEvent(0,2,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.mouseRightUp = function(event) { - kha_SystemImpl.unlockSoundOnIOS(); - if(event.which != 3) { - return; - } - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.khanvas.ownerDocument.removeEventListener("mouseup",kha_SystemImpl.mouseRightUp); - kha_SystemImpl.mouse.sendUpEvent(0,1,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY); - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.mouseMove = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - var lastMouseX = kha_SystemImpl.mouseX; - var lastMouseY = kha_SystemImpl.mouseY; - kha_SystemImpl.setMouseXY(event); - var movementX = event.movementX; - var movementY = event.movementY; - if(event.movementX == null) { - if(event.mozMovementX != null) { - movementX = event.mozMovementX; - } else if(event.webkitMovementX != null) { - movementX = event.webkitMovementX; - } else { - movementX = kha_SystemImpl.mouseX - lastMouseX; - } - if(event.mozMovementY != null) { - movementY = event.mozMovementY; - } else if(event.webkitMovementY != null) { - movementY = event.webkitMovementY; - } else { - movementY = kha_SystemImpl.mouseY - lastMouseY; - } - } - kha_SystemImpl.mouse.sendMoveEvent(0,kha_SystemImpl.mouseX,kha_SystemImpl.mouseY,movementX,movementY); - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.setTouchXY = function(touch) { - var rect = kha_SystemImpl.khanvas.getBoundingClientRect(); - var borderWidth = kha_SystemImpl.khanvas.clientLeft; - var borderHeight = kha_SystemImpl.khanvas.clientTop; - kha_SystemImpl.touchX = (touch.clientX - rect.left - borderWidth) * kha_SystemImpl.khanvas.width / (rect.width - 2 * borderWidth) | 0; - kha_SystemImpl.touchY = (touch.clientY - rect.top - borderHeight) * kha_SystemImpl.khanvas.height / (rect.height - 2 * borderHeight) | 0; -}; -kha_SystemImpl.touchDown = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - event.stopPropagation(); - event.preventDefault(); - var _g = 0; - var _g1 = event.changedTouches; - while(_g < _g1.length) { - var touch = _g1[_g]; - ++_g; - kha_SystemImpl.setTouchXY(touch); - kha_SystemImpl.mouse.sendDownEvent(0,0,kha_SystemImpl.touchX,kha_SystemImpl.touchY); - kha_SystemImpl.surface.sendTouchStartEvent(touch.identifier,kha_SystemImpl.touchX,kha_SystemImpl.touchY); - } - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.touchUp = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - var _g = 0; - var _g1 = event.changedTouches; - while(_g < _g1.length) { - var touch = _g1[_g]; - ++_g; - kha_SystemImpl.setTouchXY(touch); - kha_SystemImpl.mouse.sendUpEvent(0,0,kha_SystemImpl.touchX,kha_SystemImpl.touchY); - kha_SystemImpl.surface.sendTouchEndEvent(touch.identifier,kha_SystemImpl.touchX,kha_SystemImpl.touchY); - } - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.touchMove = function(event) { - kha_SystemImpl.insideInputEvent = true; - kha_SystemImpl.unlockSoundOnIOS(); - var index = 0; - var _g = 0; - var _g1 = event.changedTouches; - while(_g < _g1.length) { - var touch = _g1[_g]; - ++_g; - kha_SystemImpl.setTouchXY(touch); - if(index == 0) { - var movementX = kha_SystemImpl.touchX - kha_SystemImpl.lastFirstTouchX; - var movementY = kha_SystemImpl.touchY - kha_SystemImpl.lastFirstTouchY; - kha_SystemImpl.lastFirstTouchX = kha_SystemImpl.touchX; - kha_SystemImpl.lastFirstTouchY = kha_SystemImpl.touchY; - kha_SystemImpl.mouse.sendMoveEvent(0,kha_SystemImpl.touchX,kha_SystemImpl.touchY,movementX,movementY); - } - kha_SystemImpl.surface.sendMoveEvent(touch.identifier,kha_SystemImpl.touchX,kha_SystemImpl.touchY); - ++index; - } - kha_SystemImpl.insideInputEvent = false; -}; -kha_SystemImpl.onBlur = function() { - kha_System.background(); -}; -kha_SystemImpl.onFocus = function() { - kha_System.foreground(); -}; -kha_SystemImpl.keycodeToChar = function(key,keycode,shift) { - if(key != null) { - if(key.length == 1) { - return key; - } - switch(key) { - case "Add": - return "+"; - case "Divide": - return "/"; - case "Multiply": - return "*"; - case "Subtract": - return "-"; - } - } - switch(keycode) { - case 48: - if(shift) { - return "="; - } else { - return "0"; - } - break; - case 49: - if(shift) { - return "!"; - } else { - return "1"; - } - break; - case 50: - if(shift) { - return "\""; - } else { - return "2"; - } - break; - case 51: - if(shift) { - return "§"; - } else { - return "3"; - } - break; - case 52: - if(shift) { - return "$"; - } else { - return "4"; - } - break; - case 53: - if(shift) { - return "%"; - } else { - return "5"; - } - break; - case 54: - if(shift) { - return "&"; - } else { - return "6"; - } - break; - case 55: - if(shift) { - return "/"; - } else { - return "7"; - } - break; - case 56: - if(shift) { - return "("; - } else { - return "8"; - } - break; - case 57: - if(shift) { - return ")"; - } else { - return "9"; - } - break; - case 106: - return "*"; - case 107: - return "+"; - case 109: - return "-"; - case 111: - return "/"; - case 187: - if(shift) { - return "*"; - } else { - return "+"; - } - break; - case 188: - if(shift) { - return ";"; - } else { - return ","; - } - break; - case 189: - if(shift) { - return "_"; - } else { - return "-"; - } - break; - case 190: - if(shift) { - return ":"; - } else { - return "."; - } - break; - case 191: - if(shift) { - return "'"; - } else { - return "#"; - } - break; - case 212: - if(shift) { - return "`"; - } else { - return "´"; - } - break; - case 219: - if(shift) { - return "?"; - } else { - return "ß"; - } - break; - case 226: - if(shift) { - return ">"; - } else { - return "<"; - } - break; - } - if(keycode >= 96 && keycode <= 105) { - return String.fromCharCode(-48 + keycode); - } - if(keycode >= 65 && keycode <= 90) { - if(shift) { - return String.fromCharCode(keycode); - } else { - return String.fromCharCode(keycode - 65 + 97); - } - } - return String.fromCharCode(keycode); -}; -kha_SystemImpl.keyDown = function(event) { - event.stopPropagation(); - if(kha_SystemImpl.pressedKeys[event.keyCode]) { - event.preventDefault(); - return; - } - kha_SystemImpl.pressedKeys[event.keyCode] = true; - var _g = event.keyCode; - switch(_g) { - case 8: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.BACKSPACE,""); - event.preventDefault(); - break; - case 9: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.TAB,""); - event.preventDefault(); - break; - case 13: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.ENTER,""); - event.preventDefault(); - break; - case 16: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.SHIFT,""); - event.preventDefault(); - break; - case 17: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.CTRL,""); - event.preventDefault(); - break; - case 18: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.ALT,""); - event.preventDefault(); - break; - case 27: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.ESC,""); - event.preventDefault(); - break; - case 32: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.CHAR," "); - event.preventDefault(); - break; - case 37: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.LEFT,""); - event.preventDefault(); - break; - case 38: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.UP,""); - event.preventDefault(); - break; - case 39: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.RIGHT,""); - event.preventDefault(); - break; - case 40: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.DOWN,""); - event.preventDefault(); - break; - case 46: - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.DEL,""); - event.preventDefault(); - break; - default: - if(!event.altKey) { - var $char = kha_SystemImpl.keycodeToChar(event.key,event.keyCode,event.shiftKey); - kha_SystemImpl.keyboard.sendDownEvent(kha_Key.CHAR,$char); - } - } -}; -kha_SystemImpl.keyUp = function(event) { - event.preventDefault(); - event.stopPropagation(); - kha_SystemImpl.pressedKeys[event.keyCode] = false; - var _g = event.keyCode; - switch(_g) { - case 8: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.BACKSPACE,""); - break; - case 9: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.TAB,""); - break; - case 13: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.ENTER,""); - break; - case 16: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.SHIFT,""); - break; - case 17: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.CTRL,""); - break; - case 18: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.ALT,""); - break; - case 27: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.ESC,""); - break; - case 32: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.CHAR," "); - break; - case 37: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.LEFT,""); - break; - case 38: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.UP,""); - break; - case 39: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.RIGHT,""); - break; - case 40: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.DOWN,""); - break; - case 46: - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.DEL,""); - break; - default: - if(!event.altKey) { - var $char = kha_SystemImpl.keycodeToChar(event.key,event.keyCode,event.shiftKey); - kha_SystemImpl.keyboard.sendUpEvent(kha_Key.CHAR,$char); - } - } -}; -kha_SystemImpl.canSwitchFullscreen = function() { - return 'fullscreenElement ' in document || - 'mozFullScreenElement' in document || - 'webkitFullscreenElement' in document || - 'msFullscreenElement' in document - ; -}; -kha_SystemImpl.isFullscreen = function() { - return document.fullscreenElement === this.khanvas || - document.mozFullScreenElement === this.khanvas || - document.webkitFullscreenElement === this.khanvas || - document.msFullscreenElement === this.khanvas ; -}; -kha_SystemImpl.requestFullscreen = function() { - if(($_=kha_SystemImpl.khanvas,$bind($_,$_.requestFullscreen))) { - kha_SystemImpl.khanvas.requestFullscreen(); - } else if(kha_SystemImpl.khanvas.msRequestFullscreen) { - kha_SystemImpl.khanvas.msRequestFullscreen(); - } else if(kha_SystemImpl.khanvas.mozRequestFullScreen) { - kha_SystemImpl.khanvas.mozRequestFullScreen(); - } else if(kha_SystemImpl.khanvas.webkitRequestFullscreen) { - kha_SystemImpl.khanvas.webkitRequestFullscreen(); - } -}; -kha_SystemImpl.exitFullscreen = function() { - if(document.exitFullscreen) { - document.exitFullscreen(); - } else if(document.msExitFullscreen) { - document.msExitFullscreen(); - } else if(document.mozCancelFullScreen) { - document.mozCancelFullScreen(); - } else if(document.webkitExitFullscreen) { - document.webkitExitFullscreen(); - } -}; -kha_SystemImpl.notifyOfFullscreenChange = function(func,error) { - window.document.addEventListener("fullscreenchange",func,false); - window.document.addEventListener("mozfullscreenchange",func,false); - window.document.addEventListener("webkitfullscreenchange",func,false); - window.document.addEventListener("MSFullscreenChange",func,false); - window.document.addEventListener("fullscreenerror",error,false); - window.document.addEventListener("mozfullscreenerror",error,false); - window.document.addEventListener("webkitfullscreenerror",error,false); - window.document.addEventListener("MSFullscreenError",error,false); -}; -kha_SystemImpl.removeFromFullscreenChange = function(func,error) { - window.document.removeEventListener("fullscreenchange",func,false); - window.document.removeEventListener("mozfullscreenchange",func,false); - window.document.removeEventListener("webkitfullscreenchange",func,false); - window.document.removeEventListener("MSFullscreenChange",func,false); - window.document.removeEventListener("fullscreenerror",error,false); - window.document.removeEventListener("mozfullscreenerror",error,false); - window.document.removeEventListener("webkitfullscreenerror",error,false); - window.document.removeEventListener("MSFullscreenError",error,false); -}; -kha_SystemImpl.changeResolution = function(width,height) { -}; -kha_SystemImpl.setKeepScreenOn = function(on) { -}; -kha_SystemImpl.loadUrl = function(url) { - window.open(url,"_blank"); -}; -kha_SystemImpl.getGamepadId = function(index) { - var sysGamepads = kha_SystemImpl.getGamepads(); - if(sysGamepads != null && sysGamepads[index]) { - return sysGamepads[index].id; - } - return "unkown"; -}; -kha_SystemImpl.getGamepads = function() { - if(kha_SystemImpl.chrome && kha_vr_VrInterface.instance.IsVrEnabled()) { - return null; - } - if(navigator.getGamepads) { - return window.navigator.getGamepads(); - } else { - return null; - } -}; -var kha_Video = function() { -}; -$hxClasses["kha.Video"] = kha_Video; -kha_Video.__name__ = true; -kha_Video.__interfaces__ = [kha_Resource]; -kha_Video.prototype = { - width: function() { - return 100; - } - ,height: function() { - return 100; - } - ,play: function(loop) { - if(loop == null) { - loop = false; - } - } - ,pause: function() { - } - ,stop: function() { - } - ,getLength: function() { - return 0; - } - ,getCurrentPos: function() { - return 0; - } - ,get_position: function() { - return 0; - } - ,set_position: function(value) { - return 0; - } - ,getVolume: function() { - return 1; - } - ,setVolume: function(volume) { - } - ,isFinished: function() { - return this.getCurrentPos() >= this.getLength(); - } - ,unload: function() { - } - ,__class__: kha_Video -}; -var kha_WebGLImage = function(width,height,format,renderTarget,depthStencilFormat) { - this.pixels = null; - this.depthTexture = null; - this.texture = null; - this.renderBuffer = null; - this.frameBuffer = null; - this.myWidth = width; - this.myHeight = height; - this.format = format; - this.renderTarget = renderTarget; - this.image = null; - this.video = null; - this.depthStencilFormat = depthStencilFormat; - kha_WebGLImage.init(); - if(renderTarget) { - this.createTexture(); - } -}; -$hxClasses["kha.WebGLImage"] = kha_WebGLImage; -kha_WebGLImage.__name__ = true; -kha_WebGLImage.init = function() { - if(kha_WebGLImage.context == null) { - var canvas = window.document.createElement("canvas"); - if(canvas != null) { - kha_WebGLImage.context = canvas.getContext("2d"); - canvas.width = 2048; - canvas.height = 2048; - kha_WebGLImage.context.globalCompositeOperation = "copy"; - } - } -}; -kha_WebGLImage.upperPowerOfTwo = function(v) { - --v; - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - return ++v; -}; -kha_WebGLImage.formatByteSize = function(format) { - switch(format[1]) { - case 0: - return 4; - case 1: - return 1; - case 2: - return 16; - case 3: - return 2; - case 4: - return 8; - case 5: - return 4; - case 6: - return 2; - } -}; -kha_WebGLImage.__super__ = kha_Image; -kha_WebGLImage.prototype = $extend(kha_Image.prototype,{ - image: null - ,video: null - ,data: null - ,myWidth: null - ,myHeight: null - ,format: null - ,renderTarget: null - ,frameBuffer: null - ,renderBuffer: null - ,texture: null - ,depthTexture: null - ,graphics1: null - ,graphics2: null - ,graphics4: null - ,depthStencilFormat: null - ,get_g1: function() { - if(this.graphics1 == null) { - this.graphics1 = new kha_graphics2_Graphics1(this); - } - return this.graphics1; - } - ,get_g2: function() { - if(this.graphics2 == null) { - this.graphics2 = new kha_js_graphics4_Graphics2(this); - } - return this.graphics2; - } - ,get_g4: function() { - if(this.graphics4 == null) { - this.graphics4 = new kha_js_graphics4_Graphics(this); - } - return this.graphics4; - } - ,get_width: function() { - return this.myWidth; - } - ,get_height: function() { - return this.myHeight; - } - ,get_realWidth: function() { - return this.myWidth; - } - ,get_realHeight: function() { - return this.myHeight; - } - ,isOpaque: function(x,y) { - if(this.data == null) { - if(kha_WebGLImage.context == null) { - return true; - } else { - this.createImageData(); - } - } - return this.data.data[y * (this.image.width | 0) * 4 + x * 4 + 3] != 0; - } - ,at: function(x,y) { - if(this.data == null) { - if(kha_WebGLImage.context == null) { - return -16777216; - } else { - this.createImageData(); - } - } - var r = this.data.data[y * (this.image.width | 0) * 4 + x * 4]; - var g = this.data.data[y * (this.image.width | 0) * 4 + x * 4 + 1]; - var b = this.data.data[y * (this.image.width | 0) * 4 + x * 4 + 2]; - var a = this.data.data[y * (this.image.width | 0) * 4 + x * 4 + 3]; - return kha__$Color_Color_$Impl_$._new(a << 24 | r << 16 | g << 8 | b); - } - ,createImageData: function() { - if(js_Boot.__instanceof(this.image,Uint8Array)) { - this.data = new ImageData(new Uint8ClampedArray(this.image.buffer),this.get_width(),this.get_height()); - } else { - kha_WebGLImage.context.strokeStyle = "rgba(0,0,0,0)"; - kha_WebGLImage.context.fillStyle = "rgba(0,0,0,0)"; - kha_WebGLImage.context.fillRect(0,0,this.image.width,this.image.height); - kha_WebGLImage.context.drawImage(this.image,0,0,this.image.width,this.image.height,0,0,this.image.width,this.image.height); - this.data = kha_WebGLImage.context.getImageData(0,0,this.image.width,this.image.height); - } - } - ,createTexture: function() { - if(kha_SystemImpl.gl == null) { - return; - } - this.texture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - kha_SystemImpl.gl.texParameteri(3553,10240,9729); - kha_SystemImpl.gl.texParameteri(3553,10241,9729); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - if(this.renderTarget) { - this.frameBuffer = kha_SystemImpl.gl.createFramebuffer(); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - var _g = this.format; - switch(_g[1]) { - case 0: - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_realWidth(),this.get_realHeight(),0,6408,5121,null); - break; - case 2: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34836 : 6408,this.get_realWidth(),this.get_realHeight(),0,6408,5126,null); - break; - case 3: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33189 : 6402,this.get_realWidth(),this.get_realHeight(),0,6402,5123,null); - break; - case 4: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34842 : 6408,this.get_realWidth(),this.get_realHeight(),0,6408,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,null); - break; - case 5: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33326 : 6406,this.get_realWidth(),this.get_realHeight(),0,6406,5126,null); - break; - case 6: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33325 : 6406,this.get_realWidth(),this.get_realHeight(),0,6406,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,null); - break; - default: - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_realWidth(),this.get_realHeight(),0,6408,5121,null); - } - if(this.format == kha_graphics4_TextureFormat.DEPTH16) { - kha_SystemImpl.gl.texParameteri(3553,10240,9728); - kha_SystemImpl.gl.texParameteri(3553,10241,9728); - kha_SystemImpl.gl.framebufferTexture2D(36160,36096,3553,this.texture,0); - if(navigator.appVersion.indexOf("Win") == -1) { - var colortex = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,colortex); - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_realWidth(),this.get_realHeight(),0,6408,5121,null); - kha_SystemImpl.gl.framebufferTexture2D(36160,36064,3553,colortex,0); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - } - } else { - kha_SystemImpl.gl.framebufferTexture2D(36160,36064,3553,this.texture,0); - } - this.initDepthStencilBuffer(this.depthStencilFormat); - if(kha_SystemImpl.gl.checkFramebufferStatus(36160) != 36053) { - haxe_Log.trace("WebGL error: Framebuffer incomplete",{ fileName : "WebGLImage.hx", lineNumber : 205, className : "kha.WebGLImage", methodName : "createTexture"}); - } - kha_SystemImpl.gl.bindRenderbuffer(36161,null); - kha_SystemImpl.gl.bindFramebuffer(36160,null); - } else if(this.video != null) { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.video); - } else { - var _g1 = this.format; - switch(_g1[1]) { - case 0: - if(js_Boot.__instanceof(this.image,Uint8Array)) { - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.myWidth,this.myHeight,0,6408,5121,this.image); - } else { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.image); - } - break; - case 2: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34836 : 6408,this.myWidth,this.myHeight,0,6408,5126,this.image); - break; - case 4: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34842 : 6408,this.myWidth,this.myHeight,0,6408,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,this.image); - break; - case 5: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33326 : 6406,this.myWidth,this.myHeight,0,6406,5126,this.image); - break; - case 6: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33325 : 6406,this.myWidth,this.myHeight,0,6406,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,this.image); - break; - default: - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.image); - } - } - kha_SystemImpl.gl.bindTexture(3553,null); - } - ,initDepthStencilBuffer: function(depthStencilFormat) { - switch(depthStencilFormat) { - case 0: - break; - case 1:case 5: - if(kha_SystemImpl.depthTexture == null) { - this.renderBuffer = kha_SystemImpl.gl.createRenderbuffer(); - kha_SystemImpl.gl.bindRenderbuffer(36161,this.renderBuffer); - kha_SystemImpl.gl.renderbufferStorage(36161,33189,this.get_realWidth(),this.get_realHeight()); - kha_SystemImpl.gl.framebufferRenderbuffer(36160,36096,36161,this.renderBuffer); - } else { - this.depthTexture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.depthTexture); - if(depthStencilFormat == 1) { - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33190 : 6402,this.get_realWidth(),this.get_realHeight(),0,6402,5125,null); - } else { - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33189 : 6402,this.get_realWidth(),this.get_realHeight(),0,6402,5123,null); - } - kha_SystemImpl.gl.texParameteri(3553,10240,9728); - kha_SystemImpl.gl.texParameteri(3553,10241,9728); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,36096,3553,this.depthTexture,0); - } - break; - case 2:case 3:case 4: - if(kha_SystemImpl.depthTexture == null) { - this.renderBuffer = kha_SystemImpl.gl.createRenderbuffer(); - kha_SystemImpl.gl.bindRenderbuffer(36161,this.renderBuffer); - kha_SystemImpl.gl.renderbufferStorage(36161,34041,this.get_realWidth(),this.get_realHeight()); - kha_SystemImpl.gl.framebufferRenderbuffer(36160,33306,36161,this.renderBuffer); - } else { - this.depthTexture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.depthTexture); - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 35056 : 34041,this.get_realWidth(),this.get_realHeight(),0,34041,kha_SystemImpl.depthTexture.UNSIGNED_INT_24_8_WEBGL,null); - kha_SystemImpl.gl.texParameteri(3553,10240,9728); - kha_SystemImpl.gl.texParameteri(3553,10241,9728); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,33306,3553,this.depthTexture,0); - } - break; - } - } - ,set: function(stage) { - kha_SystemImpl.gl.activeTexture(33984 + stage); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - if(this.video != null) { - kha_SystemImpl.gl.texImage2D(3553,0,6408,6408,5121,this.video); - } - } - ,setDepth: function(stage) { - kha_SystemImpl.gl.activeTexture(33984 + stage); - kha_SystemImpl.gl.bindTexture(3553,this.depthTexture); - } - ,setDepthStencilFrom: function(image) { - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,36096,3553,(js_Boot.__cast(image , kha_WebGLImage)).depthTexture,0); - } - ,bytesToArray: function(bytes) { - var _g = this.format; - switch(_g[1]) { - case 0:case 1: - return new Uint8Array(bytes.b.bufferValue); - case 2:case 4:case 5:case 6: - return new Float32Array(bytes.b.bufferValue); - default: - return new Uint8Array(bytes.b.bufferValue); - } - } - ,bytes: null - ,lock: function(level) { - if(level == null) { - level = 0; - } - this.bytes = new haxe_io_Bytes(new ArrayBuffer(kha_WebGLImage.formatByteSize(this.format) * this.get_width() * this.get_height())); - return this.bytes; - } - ,unlock: function() { - if(kha_SystemImpl.gl != null) { - this.texture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(3553,this.texture); - kha_SystemImpl.gl.texParameteri(3553,10240,9729); - kha_SystemImpl.gl.texParameteri(3553,10241,9729); - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - var _g = this.format; - switch(_g[1]) { - case 0: - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_width(),this.get_height(),0,6408,5121,this.bytesToArray(this.bytes)); - break; - case 1: - kha_SystemImpl.gl.texImage2D(3553,0,6409,this.get_width(),this.get_height(),0,6409,5121,this.bytesToArray(this.bytes)); - if(kha_SystemImpl.gl.getError() == 1282) { - var rgbaBytes = new haxe_io_Bytes(new ArrayBuffer(this.get_width() * this.get_height() * 4)); - var _g1 = 0; - var _g2 = this.get_height(); - while(_g1 < _g2) { - var y = _g1++; - var _g3 = 0; - var _g21 = this.get_width(); - while(_g3 < _g21) { - var x = _g3++; - var _this = this.bytes; - var pos = y * this.get_width() + x; - var value = _this.b[pos]; - var pos1 = y * this.get_width() * 4 + x * 4; - rgbaBytes.b[pos1] = value & 255; - var pos2 = y * this.get_width() * 4 + x * 4 + 1; - rgbaBytes.b[pos2] = value & 255; - var pos3 = y * this.get_width() * 4 + x * 4 + 2; - rgbaBytes.b[pos3] = value & 255; - var pos4 = y * this.get_width() * 4 + x * 4 + 3; - rgbaBytes.b[pos4] = 255; - } - } - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_width(),this.get_height(),0,6408,5121,this.bytesToArray(rgbaBytes)); - } - break; - case 2: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34836 : 6408,this.get_width(),this.get_height(),0,6408,5126,this.bytesToArray(this.bytes)); - break; - case 4: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 34842 : 6408,this.get_width(),this.get_height(),0,6408,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,this.bytesToArray(this.bytes)); - break; - case 5: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33326 : 6406,this.get_width(),this.get_height(),0,6406,5126,this.bytesToArray(this.bytes)); - break; - case 6: - kha_SystemImpl.gl.texImage2D(3553,0,kha_SystemImpl.gl2 ? 33325 : 6406,this.get_width(),this.get_height(),0,6406,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,this.bytesToArray(this.bytes)); - break; - default: - kha_SystemImpl.gl.texImage2D(3553,0,6408,this.get_width(),this.get_height(),0,6408,5121,this.bytesToArray(this.bytes)); - } - kha_SystemImpl.gl.bindTexture(3553,null); - this.bytes = null; - } - } - ,pixels: null - ,getPixels: function() { - if(this.frameBuffer == null) { - return null; - } - if(this.pixels == null) { - this.pixels = new Uint8Array(this.format == kha_graphics4_TextureFormat.RGBA32 ? 4 * this.get_width() * this.get_height() : this.get_width() * this.get_height()); - } - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.readPixels(0,0,this.myWidth,this.myHeight,6408,5121,this.pixels); - return haxe_io_Bytes.ofData(this.pixels.buffer); - } - ,unload: function() { - if(this.texture != null) { - kha_SystemImpl.gl.deleteTexture(this.texture); - } - if(this.depthTexture != null) { - kha_SystemImpl.gl.deleteTexture(this.depthTexture); - } - if(this.frameBuffer != null) { - kha_SystemImpl.gl.deleteFramebuffer(this.frameBuffer); - } - if(this.renderBuffer != null) { - kha_SystemImpl.gl.deleteRenderbuffer(this.renderBuffer); - } - } - ,generateMipmaps: function(levels) { - kha_SystemImpl.gl.bindTexture(3553,this.texture); - kha_SystemImpl.gl.generateMipmap(3553); - } - ,setMipmaps: function(mipmaps) { - kha_SystemImpl.gl.bindTexture(3553,this.texture); - if(this.format == kha_graphics4_TextureFormat.RGBA128) { - var _g1 = 0; - var _g = mipmaps.length; - while(_g1 < _g) { - var i = _g1++; - kha_SystemImpl.gl.texImage2D(3553,i + 1,kha_SystemImpl.gl2 ? 34836 : 6408,mipmaps[i].get_width(),mipmaps[i].get_height(),0,6408,5126,(js_Boot.__cast(mipmaps[i] , kha_WebGLImage)).image); - } - } else if(this.format == kha_graphics4_TextureFormat.RGBA64) { - var _g11 = 0; - var _g2 = mipmaps.length; - while(_g11 < _g2) { - var i1 = _g11++; - kha_SystemImpl.gl.texImage2D(3553,i1 + 1,kha_SystemImpl.gl2 ? 34842 : 6408,mipmaps[i1].get_width(),mipmaps[i1].get_height(),0,6408,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,(js_Boot.__cast(mipmaps[i1] , kha_WebGLImage)).image); - } - } else { - var _g12 = 0; - var _g3 = mipmaps.length; - while(_g12 < _g3) { - var i2 = _g12++; - kha_SystemImpl.gl.texImage2D(3553,i2 + 1,6408,6408,5121,(js_Boot.__cast(mipmaps[i2] , kha_WebGLImage)).image); - } - } - } - ,__class__: kha_WebGLImage -}); -var kha_WindowMode = $hxClasses["kha.WindowMode"] = { __ename__ : true, __constructs__ : ["Window","BorderlessWindow","Fullscreen"] }; -kha_WindowMode.Window = ["Window",0]; -kha_WindowMode.Window.toString = $estr; -kha_WindowMode.Window.__enum__ = kha_WindowMode; -kha_WindowMode.BorderlessWindow = ["BorderlessWindow",1]; -kha_WindowMode.BorderlessWindow.toString = $estr; -kha_WindowMode.BorderlessWindow.__enum__ = kha_WindowMode; -kha_WindowMode.Fullscreen = ["Fullscreen",2]; -kha_WindowMode.Fullscreen.toString = $estr; -kha_WindowMode.Fullscreen.__enum__ = kha_WindowMode; -var kha_Position = $hxClasses["kha.Position"] = { __ename__ : true, __constructs__ : ["Center","Fixed"] }; -kha_Position.Center = ["Center",0]; -kha_Position.Center.toString = $estr; -kha_Position.Center.__enum__ = kha_Position; -kha_Position.Fixed = function(v) { var $x = ["Fixed",1,v]; $x.__enum__ = kha_Position; $x.toString = $estr; return $x; }; -var kha_TargetDisplay = $hxClasses["kha.TargetDisplay"] = { __ename__ : true, __constructs__ : ["Primary","ById"] }; -kha_TargetDisplay.Primary = ["Primary",0]; -kha_TargetDisplay.Primary.toString = $estr; -kha_TargetDisplay.Primary.__enum__ = kha_TargetDisplay; -kha_TargetDisplay.ById = function(id) { var $x = ["ById",1,id]; $x.__enum__ = kha_TargetDisplay; $x.toString = $estr; return $x; }; -var kha_RendererOptions = function(textureFormat,depthStencilFormat,samplesPerPixel) { - this.textureFormat = textureFormat; - this.depthStencilFormat = depthStencilFormat; - this.samplesPerPixel = samplesPerPixel; -}; -$hxClasses["kha.RendererOptions"] = kha_RendererOptions; -kha_RendererOptions.__name__ = true; -kha_RendererOptions.prototype = { - textureFormat: null - ,depthStencilFormat: null - ,samplesPerPixel: null - ,__class__: kha_RendererOptions -}; -var kha_WindowedModeOptions = function(minimizable,maximizable,resizable) { - this.minimizable = minimizable; - this.maximizable = maximizable; - this.resizable = resizable; -}; -$hxClasses["kha.WindowedModeOptions"] = kha_WindowedModeOptions; -kha_WindowedModeOptions.__name__ = true; -kha_WindowedModeOptions.prototype = { - minimizable: null - ,maximizable: null - ,resizable: null - ,__class__: kha_WindowedModeOptions -}; -var kha_WindowOptions = function(width,height,mode,title,x,y,targetDisplay,rendererOptions,windowedModeOptions) { - this.width = width; - this.height = height; - this.mode = mode; - this.title = title; - this.x = x; - this.y = y; - this.targetDisplay = targetDisplay; - this.rendererOptions = rendererOptions; - this.windowedModeOptions = windowedModeOptions; -}; -$hxClasses["kha.WindowOptions"] = kha_WindowOptions; -kha_WindowOptions.__name__ = true; -kha_WindowOptions.prototype = { - width: null - ,height: null - ,mode: null - ,title: null - ,x: null - ,y: null - ,targetDisplay: null - ,rendererOptions: null - ,windowedModeOptions: null - ,__class__: kha_WindowOptions -}; -var kha_arrays__$Float32Array_Float32Array_$Impl_$ = {}; -$hxClasses["kha.arrays._Float32Array.Float32Array_Impl_"] = kha_arrays__$Float32Array_Float32Array_$Impl_$; -kha_arrays__$Float32Array_Float32Array_$Impl_$.__name__ = true; -kha_arrays__$Float32Array_Float32Array_$Impl_$._new = function(elements) { - var this1 = new Float32Array(elements); - return this1; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.get_length = function(this1) { - return this1.length; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.set = function(this1,index,value) { - return this1[index] = value; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.get = function(this1,index) { - return this1[index]; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.data = function(this1) { - return this1; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.arrayRead = function(this1,index) { - return this1[index]; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.arrayWrite = function(this1,index,value) { - return this1[index] = value; -}; -kha_arrays__$Float32Array_Float32Array_$Impl_$.subarray = function(this1,start,end) { - return this1.subarray(start,end); -}; -var kha_arrays__$Uint32Array_Uint32Array_$Impl_$ = {}; -$hxClasses["kha.arrays._Uint32Array.Uint32Array_Impl_"] = kha_arrays__$Uint32Array_Uint32Array_$Impl_$; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.__name__ = true; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$._new = function(elements) { - var this1 = new Uint32Array(elements); - return this1; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.get_length = function(this1) { - return this1.length; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.set = function(this1,index,value) { - return this1[index] = value; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.get = function(this1,index) { - return this1[index]; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.data = function(this1) { - return this1; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.arrayRead = function(this1,index) { - return this1[index]; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.arrayWrite = function(this1,index,value) { - return this1[index] = value; -}; -kha_arrays__$Uint32Array_Uint32Array_$Impl_$.subarray = function(this1,start,end) { - return this1.subarray(start,end); -}; -var kha_audio1_AudioChannel = function() { }; -$hxClasses["kha.audio1.AudioChannel"] = kha_audio1_AudioChannel; -kha_audio1_AudioChannel.__name__ = true; -kha_audio1_AudioChannel.prototype = { - play: null - ,pause: null - ,stop: null - ,length: null - ,get_length: null - ,position: null - ,get_position: null - ,get_volume: null - ,set_volume: null - ,finished: null - ,get_finished: null - ,__class__: kha_audio1_AudioChannel -}; -var kha_audio2_Audio = function() { }; -$hxClasses["kha.audio2.Audio"] = kha_audio2_Audio; -kha_audio2_Audio.__name__ = true; -kha_audio2_Audio.initContext = function() { - try { - kha_audio2_Audio._context = new AudioContext(); - return; - } catch( e ) { - } - try { - this._context = new webkitAudioContext(); - return; - } catch( e1 ) { - } -}; -kha_audio2_Audio._init = function() { - kha_audio2_Audio.initContext(); - if(kha_audio2_Audio._context == null) { - return false; - } - var bufferSize = 2048; - kha_audio2_Audio.buffer = new kha_audio2_Buffer(bufferSize * 4,2,kha_audio2_Audio._context.sampleRate | 0); - kha_audio2_Audio.processingNode = kha_audio2_Audio._context.createScriptProcessor(bufferSize,0,2); - kha_audio2_Audio.processingNode.onaudioprocess = function(e) { - var output1 = e.outputBuffer.getChannelData(0); - var output2 = e.outputBuffer.getChannelData(1); - if(kha_audio2_Audio.audioCallback != null) { - kha_audio2_Audio.audioCallback(e.outputBuffer.length * 2,kha_audio2_Audio.buffer); - var _g1 = 0; - var _g = e.outputBuffer.length; - while(_g1 < _g) { - var i = _g1++; - output1[i] = kha_audio2_Audio.buffer.data[kha_audio2_Audio.buffer.readLocation]; - kha_audio2_Audio.buffer.readLocation += 1; - output2[i] = kha_audio2_Audio.buffer.data[kha_audio2_Audio.buffer.readLocation]; - kha_audio2_Audio.buffer.readLocation += 1; - if(kha_audio2_Audio.buffer.readLocation >= kha_audio2_Audio.buffer.size) { - kha_audio2_Audio.buffer.readLocation = 0; - } - } - } else { - var _g11 = 0; - var _g2 = e.outputBuffer.length; - while(_g11 < _g2) { - var i1 = _g11++; - output1[i1] = 0; - output2[i1] = 0; - } - } - }; - kha_audio2_Audio.processingNode.connect(kha_audio2_Audio._context.destination); - return true; -}; -kha_audio2_Audio.stream = function(sound,loop) { - if(loop == null) { - loop = false; - } - var element = window.document.createElement("audio"); - var blob = new Blob([sound.compressedData.b.bufferValue],{ type : "audio/mp4"}); - element.src = URL.createObjectURL(blob); - element.loop = loop; - var channel = new kha_js_AEAudioChannel(element); - channel.play(); - return channel; -}; -var kha_audio2_Audio1 = function() { }; -$hxClasses["kha.audio2.Audio1"] = kha_audio2_Audio1; -kha_audio2_Audio1.__name__ = true; -kha_audio2_Audio1._init = function() { - var this1 = new Array(16); - kha_audio2_Audio1.soundChannels = this1; - var this2 = new Array(16); - kha_audio2_Audio1.streamChannels = this2; - var this3 = new Array(16); - kha_audio2_Audio1.internalSoundChannels = this3; - var this4 = new Array(16); - kha_audio2_Audio1.internalStreamChannels = this4; - var this5 = new Array(512); - kha_audio2_Audio1.sampleCache1 = this5; - var this6 = new Array(512); - kha_audio2_Audio1.sampleCache2 = this6; - kha_audio2_Audio.audioCallback = kha_audio2_Audio1._mix; -}; -kha_audio2_Audio1.max = function(a,b) { - if(a > b) { - return a; - } else { - return b; - } -}; -kha_audio2_Audio1.min = function(a,b) { - if(a < b) { - return a; - } else { - return b; - } -}; -kha_audio2_Audio1._mix = function(samples,buffer) { - if(kha_audio2_Audio1.sampleCache1.length < samples) { - var this1 = new Array(samples); - kha_audio2_Audio1.sampleCache1 = this1; - var this2 = new Array(samples); - kha_audio2_Audio1.sampleCache2 = this2; - } - var _g1 = 0; - var _g = samples; - while(_g1 < _g) { - var i = _g1++; - kha_audio2_Audio1.sampleCache2[i] = 0; - } - var _g2 = 0; - while(_g2 < 16) { - var i1 = _g2++; - kha_audio2_Audio1.internalSoundChannels[i1] = kha_audio2_Audio1.soundChannels[i1]; - } - var _g3 = 0; - while(_g3 < 16) { - var i2 = _g3++; - kha_audio2_Audio1.internalStreamChannels[i2] = kha_audio2_Audio1.streamChannels[i2]; - } - var _g4 = 0; - var _g11 = kha_audio2_Audio1.internalSoundChannels; - while(_g4 < _g11.length) { - var channel = _g11[_g4]; - ++_g4; - if(channel == null || channel.get_finished()) { - continue; - } - channel.nextSamples(kha_audio2_Audio1.sampleCache1,samples,buffer.samplesPerSecond); - var _g31 = 0; - var _g21 = samples; - while(_g31 < _g21) { - var i3 = _g31++; - var _g41 = i3; - var _g5 = kha_audio2_Audio1.sampleCache2; - var val = kha_audio2_Audio1.sampleCache1[i3] * channel.get_volume(); - _g5[_g41] = _g5[_g41] + val; - } - } - var _g6 = 0; - var _g12 = kha_audio2_Audio1.internalStreamChannels; - while(_g6 < _g12.length) { - var channel1 = _g12[_g6]; - ++_g6; - if(channel1 == null || channel1.get_finished()) { - continue; - } - channel1.nextSamples(kha_audio2_Audio1.sampleCache1,samples,buffer.samplesPerSecond); - var _g32 = 0; - var _g22 = samples; - while(_g32 < _g22) { - var i4 = _g32++; - var _g42 = i4; - var _g51 = kha_audio2_Audio1.sampleCache2; - var val1 = kha_audio2_Audio1.sampleCache1[i4] * channel1.get_volume(); - _g51[_g42] = _g51[_g42] + val1; - } - } - var _g13 = 0; - var _g7 = samples; - while(_g13 < _g7) { - var i5 = _g13++; - var a = kha_audio2_Audio1.sampleCache2[i5]; - var a1 = a < 1.0 ? a : 1.0; - buffer.data[buffer.writeLocation] = a1 > -1.0 ? a1 : -1.0; - buffer.writeLocation += 1; - if(buffer.writeLocation >= buffer.size) { - buffer.writeLocation = 0; - } - } -}; -kha_audio2_Audio1.play = function(sound,loop) { - if(loop == null) { - loop = false; - } - var channel = null; - var _g = 0; - while(_g < 16) { - var i = _g++; - if(kha_audio2_Audio1.soundChannels[i] == null || kha_audio2_Audio1.soundChannels[i].get_finished()) { - channel = new kha_audio2_AudioChannel(loop); - channel.data = sound.uncompressedData; - kha_audio2_Audio1.soundChannels[i] = channel; - break; - } - } - return channel; -}; -kha_audio2_Audio1._playAgain = function(channel) { - var _g = 0; - while(_g < 16) { - var i = _g++; - if(kha_audio2_Audio1.soundChannels[i] == null || kha_audio2_Audio1.soundChannels[i].get_finished() || kha_audio2_Audio1.soundChannels[i] == channel) { - kha_audio2_Audio1.soundChannels[i] = channel; - break; - } - } -}; -kha_audio2_Audio1.stream = function(sound,loop) { - if(loop == null) { - loop = false; - } - var hardwareChannel = kha_audio2_Audio.stream(sound,loop); - if(hardwareChannel != null) { - return hardwareChannel; - } - var channel = null; - var _g = 0; - while(_g < 16) { - var i = _g++; - if(kha_audio2_Audio1.streamChannels[i] == null || kha_audio2_Audio1.streamChannels[i].get_finished()) { - channel = new kha_audio2_StreamChannel(sound.compressedData,loop); - kha_audio2_Audio1.streamChannels[i] = channel; - break; - } - } - return channel; -}; -var kha_audio2_AudioChannel = function(looping) { - this.paused = false; - this.looping = looping; - this.myVolume = 1; - this.myPosition = 0; -}; -$hxClasses["kha.audio2.AudioChannel"] = kha_audio2_AudioChannel; -kha_audio2_AudioChannel.__name__ = true; -kha_audio2_AudioChannel.__interfaces__ = [kha_audio1_AudioChannel]; -kha_audio2_AudioChannel.prototype = { - data: null - ,myVolume: null - ,myPosition: null - ,paused: null - ,looping: null - ,nextSamples: function(samples,length,sampleRate) { - if(this.paused) { - var _g1 = 0; - var _g = length; - while(_g1 < _g) { - var i = _g1++; - samples[i] = 0; - } - return; - } - var _g11 = 0; - var _g2 = length; - while(_g11 < _g2) { - var i1 = _g11++; - if(this.myPosition >= this.data.length && this.looping) { - this.myPosition = 0; - } - samples[i1] = this.myPosition < this.data.length ? this.data[this.myPosition] : 0; - ++this.myPosition; - } - } - ,play: function() { - this.paused = false; - if(this.get_finished()) { - this.myPosition = 0; - kha_audio2_Audio1._playAgain(this); - } - } - ,pause: function() { - this.paused = true; - } - ,stop: function() { - this.myPosition = this.data.length; - } - ,length: null - ,get_length: function() { - return this.data.length / 44100 / 2; - } - ,position: null - ,get_position: function() { - return this.myPosition / 44100 / 2; - } - ,get_volume: function() { - return this.myVolume; - } - ,set_volume: function(value) { - return this.myVolume = value; - } - ,finished: null - ,get_finished: function() { - return this.myPosition >= this.data.length; - } - ,__class__: kha_audio2_AudioChannel -}; -var kha_audio2_Buffer = function(size,channels,samplesPerSecond) { - this.size = size; - var this1 = new Array(size); - this.data = this1; - this.channels = channels; - this.samplesPerSecond = samplesPerSecond; - this.readLocation = 0; - this.writeLocation = 0; -}; -$hxClasses["kha.audio2.Buffer"] = kha_audio2_Buffer; -kha_audio2_Buffer.__name__ = true; -kha_audio2_Buffer.prototype = { - channels: null - ,samplesPerSecond: null - ,data: null - ,size: null - ,readLocation: null - ,writeLocation: null - ,__class__: kha_audio2_Buffer -}; -var kha_audio2_StreamChannel = function(data,loop) { - this.paused = false; - this.atend = false; - this.myVolume = 1; - this.loop = loop; - this.reader = kha_audio2_ogg_vorbis_Reader.openFromBytes(data); -}; -$hxClasses["kha.audio2.StreamChannel"] = kha_audio2_StreamChannel; -kha_audio2_StreamChannel.__name__ = true; -kha_audio2_StreamChannel.__interfaces__ = [kha_audio1_AudioChannel]; -kha_audio2_StreamChannel.prototype = { - reader: null - ,atend: null - ,loop: null - ,myVolume: null - ,paused: null - ,nextSamples: function(samples,length,sampleRate) { - if(this.paused) { - var _g1 = 0; - var _g = length; - while(_g1 < _g) { - var i = _g1++; - samples[i] = 0; - } - return; - } - var count = this.reader.read(samples,length / 2 | 0,2,sampleRate,true) * 2; - if(count < length) { - if(this.loop) { - this.reader.set_currentMillisecond(0); - } else { - this.atend = true; - } - var _g11 = count; - var _g2 = length; - while(_g11 < _g2) { - var i1 = _g11++; - samples[i1] = 0; - } - } - } - ,play: function() { - this.paused = false; - } - ,pause: function() { - this.paused = true; - } - ,stop: function() { - this.atend = true; - } - ,length: null - ,get_length: function() { - return this.reader.get_totalMillisecond() / 1000.0; - } - ,position: null - ,get_position: function() { - return this.reader.get_currentMillisecond() / 1000.0; - } - ,get_volume: function() { - return this.myVolume; - } - ,set_volume: function(value) { - return this.myVolume = value; - } - ,finished: null - ,get_finished: function() { - return this.atend; - } - ,__class__: kha_audio2_StreamChannel -}; -var kha_audio2_ogg_tools_Crc32 = function() { }; -$hxClasses["kha.audio2.ogg.tools.Crc32"] = kha_audio2_ogg_tools_Crc32; -kha_audio2_ogg_tools_Crc32.__name__ = true; -kha_audio2_ogg_tools_Crc32.init = function() { - if(kha_audio2_ogg_tools_Crc32.table != null) { - return; - } - var this1 = new Array(256); - kha_audio2_ogg_tools_Crc32.table = this1; - var _g = 0; - while(_g < 256) { - var i = _g++; - var s = i << 24; - var _g1 = 0; - while(_g1 < 8) { - var j = _g1++; - s = s << 1 ^ (_$UInt_UInt_$Impl_$.gte(s,1 << 31) ? 79764919 : 0); - } - kha_audio2_ogg_tools_Crc32.table[i] = s; - } -}; -kha_audio2_ogg_tools_Crc32.update = function(crc,$byte) { - return crc << 8 ^ kha_audio2_ogg_tools_Crc32.table[$byte ^ crc >>> 24]; -}; -var kha_audio2_ogg_tools_MathTools = function() { }; -$hxClasses["kha.audio2.ogg.tools.MathTools"] = kha_audio2_ogg_tools_MathTools; -kha_audio2_ogg_tools_MathTools.__name__ = true; -kha_audio2_ogg_tools_MathTools.ilog = function(n) { - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - if(n < 16384) { - if(n < 16) { - return log2_4[n]; - } else if(n < 512) { - return 5 + log2_4[n >> 5]; - } else { - return 10 + log2_4[n >> 10]; - } - } else if(n < 16777216) { - if(n < 524288) { - return 15 + log2_4[n >> 15]; - } else { - return 20 + log2_4[n >> 20]; - } - } else if(n < 536870912) { - return 25 + log2_4[n >> 25]; - } else if(n < -2147483648) { - return 30 + log2_4[n >> 30]; - } else { - return 0; - } -}; -var kha_audio2_ogg_tools_Mdct = function() { }; -$hxClasses["kha.audio2.ogg.tools.Mdct"] = kha_audio2_ogg_tools_Mdct; -kha_audio2_ogg_tools_Mdct.__name__ = true; -kha_audio2_ogg_tools_Mdct.inverseTransform = function(buffer,n,a,b,c,bitReverse) { - var n2 = n >> 1; - var n4 = n >> 2; - var n8 = n >> 3; - var this1 = new Array(n2); - var buf2 = this1; - var dOffset = n2 - 2; - var aaOffset = 0; - var eOffset = 0; - var eStopOffset = n2; - while(eOffset != eStopOffset) { - buf2[dOffset + 1] = buffer[eOffset] * a[aaOffset] - buffer[eOffset + 2] * a[aaOffset + 1]; - buf2[dOffset] = buffer[eOffset] * a[aaOffset + 1] + buffer[eOffset + 2] * a[aaOffset]; - dOffset -= 2; - aaOffset += 2; - eOffset += 4; - } - eOffset = n2 - 3; - while(dOffset >= 0) { - buf2[dOffset + 1] = -buffer[eOffset + 2] * a[aaOffset] - -buffer[eOffset] * a[aaOffset + 1]; - buf2[dOffset] = -buffer[eOffset + 2] * a[aaOffset + 1] + -buffer[eOffset] * a[aaOffset]; - dOffset -= 2; - aaOffset += 2; - eOffset -= 4; - } - var u = buffer; - var v = buf2; - var aaOffset1 = n2 - 8; - var eOffset0 = n4; - var eOffset1 = 0; - var dOffset0 = n4; - var dOffset1 = 0; - while(aaOffset1 >= 0) { - var v41_21 = v[eOffset0 + 1] - v[eOffset1 + 1]; - var v40_20 = v[eOffset0] - v[eOffset1]; - u[dOffset0 + 1] = v[eOffset0 + 1] + v[eOffset1 + 1]; - u[dOffset0] = v[eOffset0] + v[eOffset1]; - u[dOffset1 + 1] = v41_21 * a[aaOffset1 + 4] - v40_20 * a[aaOffset1 + 5]; - u[dOffset1] = v40_20 * a[aaOffset1 + 4] + v41_21 * a[aaOffset1 + 5]; - v41_21 = v[eOffset0 + 3] - v[eOffset1 + 3]; - v40_20 = v[eOffset0 + 2] - v[eOffset1 + 2]; - u[dOffset0 + 3] = v[eOffset0 + 3] + v[eOffset1 + 3]; - u[dOffset0 + 2] = v[eOffset0 + 2] + v[eOffset1 + 2]; - u[dOffset1 + 3] = v41_21 * a[aaOffset1] - v40_20 * a[aaOffset1 + 1]; - u[dOffset1 + 2] = v40_20 * a[aaOffset1] + v41_21 * a[aaOffset1 + 1]; - aaOffset1 -= 8; - dOffset0 += 4; - dOffset1 += 4; - eOffset0 += 4; - eOffset1 += 4; - } - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var ld = (n < 16384 ? n < 16 ? log2_4[n] : n < 512 ? 5 + log2_4[n >> 5] : 10 + log2_4[n >> 10] : n < 16777216 ? n < 524288 ? 15 + log2_4[n >> 15] : 20 + log2_4[n >> 20] : n < 536870912 ? 25 + log2_4[n >> 25] : n < -2147483648 ? 30 + log2_4[n >> 30] : 0) - 1; - var i_off = n2 - 1 - n4 * 0; - var eeOffset0 = i_off; - var eeOffset2 = i_off + -(n >> 3); - var aOffset = 0; - var i = (n >> 4 >> 2) + 1; - while(--i > 0) { - var k00_20 = u[eeOffset0] - u[eeOffset2]; - var k01_21 = u[eeOffset0 + -1] - u[eeOffset2 + -1]; - var _g = eeOffset0; - var _g1 = u; - _g1[_g] = _g1[_g] + u[eeOffset2]; - var _g2 = eeOffset0 + -1; - var _g11 = u; - _g11[_g2] = _g11[_g2] + u[eeOffset2 + -1]; - u[eeOffset2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -1] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -2] - u[eeOffset2 + -2]; - k01_21 = u[eeOffset0 + -3] - u[eeOffset2 + -3]; - var _g3 = eeOffset0 + -2; - var _g12 = u; - _g12[_g3] = _g12[_g3] + u[eeOffset2 + -2]; - var _g4 = eeOffset0 + -3; - var _g13 = u; - _g13[_g4] = _g13[_g4] + u[eeOffset2 + -3]; - u[eeOffset2 + -2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -3] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -4] - u[eeOffset2 + -4]; - k01_21 = u[eeOffset0 + -5] - u[eeOffset2 + -5]; - var _g5 = eeOffset0 + -4; - var _g14 = u; - _g14[_g5] = _g14[_g5] + u[eeOffset2 + -4]; - var _g6 = eeOffset0 + -5; - var _g15 = u; - _g15[_g6] = _g15[_g6] + u[eeOffset2 + -5]; - u[eeOffset2 + -4] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -5] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -6] - u[eeOffset2 + -6]; - k01_21 = u[eeOffset0 + -7] - u[eeOffset2 + -7]; - var _g7 = eeOffset0 + -6; - var _g16 = u; - _g16[_g7] = _g16[_g7] + u[eeOffset2 + -6]; - var _g8 = eeOffset0 + -7; - var _g17 = u; - _g17[_g8] = _g17[_g8] + u[eeOffset2 + -7]; - u[eeOffset2 + -6] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -7] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - eeOffset0 -= 8; - eeOffset2 -= 8; - } - var i_off1 = n2 - 1 - n4; - var eeOffset01 = i_off1; - var eeOffset21 = i_off1 + -(n >> 3); - var aOffset1 = 0; - var i1 = (n >> 4 >> 2) + 1; - while(--i1 > 0) { - var k00_201 = u[eeOffset01] - u[eeOffset21]; - var k01_211 = u[eeOffset01 + -1] - u[eeOffset21 + -1]; - var _g9 = eeOffset01; - var _g18 = u; - _g18[_g9] = _g18[_g9] + u[eeOffset21]; - var _g10 = eeOffset01 + -1; - var _g19 = u; - _g19[_g10] = _g19[_g10] + u[eeOffset21 + -1]; - u[eeOffset21] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -1] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -2] - u[eeOffset21 + -2]; - k01_211 = u[eeOffset01 + -3] - u[eeOffset21 + -3]; - var _g20 = eeOffset01 + -2; - var _g110 = u; - _g110[_g20] = _g110[_g20] + u[eeOffset21 + -2]; - var _g21 = eeOffset01 + -3; - var _g111 = u; - _g111[_g21] = _g111[_g21] + u[eeOffset21 + -3]; - u[eeOffset21 + -2] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -3] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -4] - u[eeOffset21 + -4]; - k01_211 = u[eeOffset01 + -5] - u[eeOffset21 + -5]; - var _g22 = eeOffset01 + -4; - var _g112 = u; - _g112[_g22] = _g112[_g22] + u[eeOffset21 + -4]; - var _g23 = eeOffset01 + -5; - var _g113 = u; - _g113[_g23] = _g113[_g23] + u[eeOffset21 + -5]; - u[eeOffset21 + -4] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -5] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -6] - u[eeOffset21 + -6]; - k01_211 = u[eeOffset01 + -7] - u[eeOffset21 + -7]; - var _g24 = eeOffset01 + -6; - var _g114 = u; - _g114[_g24] = _g114[_g24] + u[eeOffset21 + -6]; - var _g25 = eeOffset01 + -7; - var _g115 = u; - _g115[_g25] = _g115[_g25] + u[eeOffset21 + -7]; - u[eeOffset21 + -6] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -7] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - eeOffset01 -= 8; - eeOffset21 -= 8; - } - var d0 = n2 - 1 - n8 * 0; - var aOffset2 = 0; - var eOffset01 = d0; - var eOffset2 = d0 + -(n >> 4); - var i2 = (n >> 5 >> 2) + 1; - while(--i2 > 0) { - var k00_202 = u[eOffset01] - u[eOffset2]; - var k01_212 = u[eOffset01 + -1] - u[eOffset2 + -1]; - var _g26 = eOffset01; - var _g116 = u; - _g116[_g26] = _g116[_g26] + u[eOffset2]; - var _g27 = eOffset01 + -1; - var _g117 = u; - _g117[_g27] = _g117[_g27] + u[eOffset2 + -1]; - u[eOffset2] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -1] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -2] - u[eOffset2 + -2]; - k01_212 = u[eOffset01 + -3] - u[eOffset2 + -3]; - var _g28 = eOffset01 + -2; - var _g118 = u; - _g118[_g28] = _g118[_g28] + u[eOffset2 + -2]; - var _g29 = eOffset01 + -3; - var _g119 = u; - _g119[_g29] = _g119[_g29] + u[eOffset2 + -3]; - u[eOffset2 + -2] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -3] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -4] - u[eOffset2 + -4]; - k01_212 = u[eOffset01 + -5] - u[eOffset2 + -5]; - var _g30 = eOffset01 + -4; - var _g120 = u; - _g120[_g30] = _g120[_g30] + u[eOffset2 + -4]; - var _g31 = eOffset01 + -5; - var _g121 = u; - _g121[_g31] = _g121[_g31] + u[eOffset2 + -5]; - u[eOffset2 + -4] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -5] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -6] - u[eOffset2 + -6]; - k01_212 = u[eOffset01 + -7] - u[eOffset2 + -7]; - var _g32 = eOffset01 + -6; - var _g122 = u; - _g122[_g32] = _g122[_g32] + u[eOffset2 + -6]; - var _g33 = eOffset01 + -7; - var _g123 = u; - _g123[_g33] = _g123[_g33] + u[eOffset2 + -7]; - u[eOffset2 + -6] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -7] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - eOffset01 -= 8; - eOffset2 -= 8; - aOffset2 += 16; - } - var d01 = n2 - 1 - n8; - var aOffset3 = 0; - var eOffset02 = d01; - var eOffset21 = d01 + -(n >> 4); - var i3 = (n >> 5 >> 2) + 1; - while(--i3 > 0) { - var k00_203 = u[eOffset02] - u[eOffset21]; - var k01_213 = u[eOffset02 + -1] - u[eOffset21 + -1]; - var _g34 = eOffset02; - var _g124 = u; - _g124[_g34] = _g124[_g34] + u[eOffset21]; - var _g35 = eOffset02 + -1; - var _g125 = u; - _g125[_g35] = _g125[_g35] + u[eOffset21 + -1]; - u[eOffset21] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -1] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -2] - u[eOffset21 + -2]; - k01_213 = u[eOffset02 + -3] - u[eOffset21 + -3]; - var _g36 = eOffset02 + -2; - var _g126 = u; - _g126[_g36] = _g126[_g36] + u[eOffset21 + -2]; - var _g37 = eOffset02 + -3; - var _g127 = u; - _g127[_g37] = _g127[_g37] + u[eOffset21 + -3]; - u[eOffset21 + -2] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -3] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -4] - u[eOffset21 + -4]; - k01_213 = u[eOffset02 + -5] - u[eOffset21 + -5]; - var _g38 = eOffset02 + -4; - var _g128 = u; - _g128[_g38] = _g128[_g38] + u[eOffset21 + -4]; - var _g39 = eOffset02 + -5; - var _g129 = u; - _g129[_g39] = _g129[_g39] + u[eOffset21 + -5]; - u[eOffset21 + -4] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -5] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -6] - u[eOffset21 + -6]; - k01_213 = u[eOffset02 + -7] - u[eOffset21 + -7]; - var _g40 = eOffset02 + -6; - var _g130 = u; - _g130[_g40] = _g130[_g40] + u[eOffset21 + -6]; - var _g41 = eOffset02 + -7; - var _g131 = u; - _g131[_g41] = _g131[_g41] + u[eOffset21 + -7]; - u[eOffset21 + -6] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -7] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - eOffset02 -= 8; - eOffset21 -= 8; - aOffset3 += 16; - } - var d02 = n2 - 1 - n8 * 2; - var aOffset4 = 0; - var eOffset03 = d02; - var eOffset22 = d02 + -(n >> 4); - var i4 = (n >> 5 >> 2) + 1; - while(--i4 > 0) { - var k00_204 = u[eOffset03] - u[eOffset22]; - var k01_214 = u[eOffset03 + -1] - u[eOffset22 + -1]; - var _g42 = eOffset03; - var _g132 = u; - _g132[_g42] = _g132[_g42] + u[eOffset22]; - var _g43 = eOffset03 + -1; - var _g133 = u; - _g133[_g43] = _g133[_g43] + u[eOffset22 + -1]; - u[eOffset22] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -1] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -2] - u[eOffset22 + -2]; - k01_214 = u[eOffset03 + -3] - u[eOffset22 + -3]; - var _g44 = eOffset03 + -2; - var _g134 = u; - _g134[_g44] = _g134[_g44] + u[eOffset22 + -2]; - var _g45 = eOffset03 + -3; - var _g135 = u; - _g135[_g45] = _g135[_g45] + u[eOffset22 + -3]; - u[eOffset22 + -2] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -3] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -4] - u[eOffset22 + -4]; - k01_214 = u[eOffset03 + -5] - u[eOffset22 + -5]; - var _g46 = eOffset03 + -4; - var _g136 = u; - _g136[_g46] = _g136[_g46] + u[eOffset22 + -4]; - var _g47 = eOffset03 + -5; - var _g137 = u; - _g137[_g47] = _g137[_g47] + u[eOffset22 + -5]; - u[eOffset22 + -4] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -5] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -6] - u[eOffset22 + -6]; - k01_214 = u[eOffset03 + -7] - u[eOffset22 + -7]; - var _g48 = eOffset03 + -6; - var _g138 = u; - _g138[_g48] = _g138[_g48] + u[eOffset22 + -6]; - var _g49 = eOffset03 + -7; - var _g139 = u; - _g139[_g49] = _g139[_g49] + u[eOffset22 + -7]; - u[eOffset22 + -6] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -7] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - eOffset03 -= 8; - eOffset22 -= 8; - aOffset4 += 16; - } - var d03 = n2 - 1 - n8 * 3; - var aOffset5 = 0; - var eOffset04 = d03; - var eOffset23 = d03 + -(n >> 4); - var i5 = (n >> 5 >> 2) + 1; - while(--i5 > 0) { - var k00_205 = u[eOffset04] - u[eOffset23]; - var k01_215 = u[eOffset04 + -1] - u[eOffset23 + -1]; - var _g50 = eOffset04; - var _g140 = u; - _g140[_g50] = _g140[_g50] + u[eOffset23]; - var _g51 = eOffset04 + -1; - var _g141 = u; - _g141[_g51] = _g141[_g51] + u[eOffset23 + -1]; - u[eOffset23] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -1] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -2] - u[eOffset23 + -2]; - k01_215 = u[eOffset04 + -3] - u[eOffset23 + -3]; - var _g52 = eOffset04 + -2; - var _g142 = u; - _g142[_g52] = _g142[_g52] + u[eOffset23 + -2]; - var _g53 = eOffset04 + -3; - var _g143 = u; - _g143[_g53] = _g143[_g53] + u[eOffset23 + -3]; - u[eOffset23 + -2] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -3] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -4] - u[eOffset23 + -4]; - k01_215 = u[eOffset04 + -5] - u[eOffset23 + -5]; - var _g54 = eOffset04 + -4; - var _g144 = u; - _g144[_g54] = _g144[_g54] + u[eOffset23 + -4]; - var _g55 = eOffset04 + -5; - var _g145 = u; - _g145[_g55] = _g145[_g55] + u[eOffset23 + -5]; - u[eOffset23 + -4] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -5] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -6] - u[eOffset23 + -6]; - k01_215 = u[eOffset04 + -7] - u[eOffset23 + -7]; - var _g56 = eOffset04 + -6; - var _g146 = u; - _g146[_g56] = _g146[_g56] + u[eOffset23 + -6]; - var _g57 = eOffset04 + -7; - var _g147 = u; - _g147[_g57] = _g147[_g57] + u[eOffset23 + -7]; - u[eOffset23 + -6] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -7] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - eOffset04 -= 8; - eOffset23 -= 8; - aOffset5 += 16; - } - var _g148 = 2; - var _g58 = ld - 3 >> 1; - while(_g148 < _g58) { - var l = _g148++; - var k0 = n >> l + 2; - var k0_2 = k0 >> 1; - var lim = 1 << l + 1; - var _g310 = 0; - var _g210 = lim; - while(_g310 < _g210) { - var i6 = _g310++; - var d04 = n2 - 1 - k0 * i6; - var k1 = 1 << l + 3; - var aOffset6 = 0; - var eOffset05 = d04; - var eOffset24 = d04 + -k0_2; - var i7 = (n >> l + 4 >> 2) + 1; - while(--i7 > 0) { - var k00_206 = u[eOffset05] - u[eOffset24]; - var k01_216 = u[eOffset05 + -1] - u[eOffset24 + -1]; - var _g59 = eOffset05; - var _g149 = u; - _g149[_g59] = _g149[_g59] + u[eOffset24]; - var _g60 = eOffset05 + -1; - var _g150 = u; - _g150[_g60] = _g150[_g60] + u[eOffset24 + -1]; - u[eOffset24] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -1] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -2] - u[eOffset24 + -2]; - k01_216 = u[eOffset05 + -3] - u[eOffset24 + -3]; - var _g61 = eOffset05 + -2; - var _g151 = u; - _g151[_g61] = _g151[_g61] + u[eOffset24 + -2]; - var _g62 = eOffset05 + -3; - var _g152 = u; - _g152[_g62] = _g152[_g62] + u[eOffset24 + -3]; - u[eOffset24 + -2] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -3] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -4] - u[eOffset24 + -4]; - k01_216 = u[eOffset05 + -5] - u[eOffset24 + -5]; - var _g63 = eOffset05 + -4; - var _g153 = u; - _g153[_g63] = _g153[_g63] + u[eOffset24 + -4]; - var _g64 = eOffset05 + -5; - var _g154 = u; - _g154[_g64] = _g154[_g64] + u[eOffset24 + -5]; - u[eOffset24 + -4] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -5] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -6] - u[eOffset24 + -6]; - k01_216 = u[eOffset05 + -7] - u[eOffset24 + -7]; - var _g65 = eOffset05 + -6; - var _g155 = u; - _g155[_g65] = _g155[_g65] + u[eOffset24 + -6]; - var _g66 = eOffset05 + -7; - var _g156 = u; - _g156[_g66] = _g156[_g66] + u[eOffset24 + -7]; - u[eOffset24 + -6] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -7] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - eOffset05 -= 8; - eOffset24 -= 8; - aOffset6 += k1; - } - } - } - var _g157 = ld - 3 >> 1; - var _g67 = ld - 6; - while(_g157 < _g67) { - var l1 = _g157++; - var k01 = n >> l1 + 2; - var k11 = 1 << l1 + 3; - var k0_21 = k01 >> 1; - var rlim = n >> l1 + 6; - var lim1 = 1 << l1 + 1; - var aOffset7 = 0; - var i_off2 = n2 - 1; - var r = rlim + 1; - while(--r > 0) { - var A0 = a[aOffset7]; - var A1 = a[aOffset7 + 1]; - var A2 = a[aOffset7 + k11]; - var A3 = a[aOffset7 + k11 + 1]; - var A4 = a[aOffset7 + k11 * 2]; - var A5 = a[aOffset7 + k11 * 2 + 1]; - var A6 = a[aOffset7 + k11 * 3]; - var A7 = a[aOffset7 + k11 * 3 + 1]; - var eeOffset02 = i_off2; - var eeOffset22 = i_off2 + -k0_21; - var i8 = lim1 + 1; - while(--i8 > 0) { - var k00 = u[eeOffset02] - u[eeOffset22]; - var k111 = u[eeOffset02 + -1] - u[eeOffset22 + -1]; - u[eeOffset02] = u[eeOffset02] + u[eeOffset22]; - u[eeOffset02 + -1] = u[eeOffset02 + -1] + u[eeOffset22 + -1]; - u[eeOffset22] = k00 * A0 - k111 * A1; - u[eeOffset22 + -1] = k111 * A0 + k00 * A1; - k00 = u[eeOffset02 + -2] - u[eeOffset22 + -2]; - k111 = u[eeOffset02 + -3] - u[eeOffset22 + -3]; - u[eeOffset02 + -2] = u[eeOffset02 + -2] + u[eeOffset22 + -2]; - u[eeOffset02 + -3] = u[eeOffset02 + -3] + u[eeOffset22 + -3]; - u[eeOffset22 + -2] = k00 * A2 - k111 * A3; - u[eeOffset22 + -3] = k111 * A2 + k00 * A3; - k00 = u[eeOffset02 + -4] - u[eeOffset22 + -4]; - k111 = u[eeOffset02 + -5] - u[eeOffset22 + -5]; - u[eeOffset02 + -4] = u[eeOffset02 + -4] + u[eeOffset22 + -4]; - u[eeOffset02 + -5] = u[eeOffset02 + -5] + u[eeOffset22 + -5]; - u[eeOffset22 + -4] = k00 * A4 - k111 * A5; - u[eeOffset22 + -5] = k111 * A4 + k00 * A5; - k00 = u[eeOffset02 + -6] - u[eeOffset22 + -6]; - k111 = u[eeOffset02 + -7] - u[eeOffset22 + -7]; - u[eeOffset02 + -6] = u[eeOffset02 + -6] + u[eeOffset22 + -6]; - u[eeOffset02 + -7] = u[eeOffset02 + -7] + u[eeOffset22 + -7]; - u[eeOffset22 + -6] = k00 * A6 - k111 * A7; - u[eeOffset22 + -7] = k111 * A6 + k00 * A7; - eeOffset02 -= k01; - eeOffset22 -= k01; - } - aOffset7 += k11 * 4; - i_off2 -= 8; - } - } - var i_off3 = n2 - 1; - var A21 = a[n >> 3]; - var zOffset = i_off3; - var baseOffset = i_off3 - 16 * (n >> 5); - while(zOffset > baseOffset) { - var t0 = u[zOffset]; - var t1 = u[zOffset + -8]; - u[zOffset + -8] = t0 - t1; - u[zOffset] = t0 + t1; - t0 = u[zOffset + -1]; - t1 = u[zOffset + -9]; - u[zOffset + -9] = t0 - t1; - u[zOffset + -1] = t0 + t1; - t0 = u[zOffset + -2]; - t1 = u[zOffset + -10]; - var k001 = t0 - t1; - u[zOffset + -2] = t0 + t1; - t0 = u[zOffset + -3]; - t1 = u[zOffset + -11]; - var k112 = t0 - t1; - u[zOffset + -3] = t0 + t1; - u[zOffset + -10] = (k001 + k112) * A21; - u[zOffset + -11] = (k112 - k001) * A21; - t0 = u[zOffset + -4]; - t1 = u[zOffset + -12]; - k001 = t1 - t0; - u[zOffset + -4] = t0 + t1; - t0 = u[zOffset + -5]; - t1 = u[zOffset + -13]; - k112 = t0 - t1; - u[zOffset + -5] = t0 + t1; - u[zOffset + -12] = k112; - u[zOffset + -13] = k001; - t0 = u[zOffset + -6]; - t1 = u[zOffset + -14]; - k001 = t1 - t0; - u[zOffset + -6] = t0 + t1; - t0 = u[zOffset + -7]; - t1 = u[zOffset + -15]; - k112 = t0 - t1; - u[zOffset + -7] = t0 + t1; - u[zOffset + -14] = (k001 + k112) * A21; - u[zOffset + -15] = (k001 - k112) * A21; - var t01 = u[zOffset]; - var t11 = u[zOffset + -4]; - var k002 = t01 - t11; - var y0 = t01 + t11; - t01 = u[zOffset + -2]; - t11 = u[zOffset + -6]; - var y2 = t01 + t11; - var k22 = t01 - t11; - u[zOffset] = y0 + y2; - u[zOffset + -2] = y0 - y2; - var k33 = u[zOffset + -3] - u[zOffset + -7]; - u[zOffset + -4] = k002 + k33; - u[zOffset + -6] = k002 - k33; - t01 = u[zOffset + -1]; - t11 = u[zOffset + -5]; - var k113 = t01 - t11; - var y1 = t01 + t11; - var y3 = u[zOffset + -3] + u[zOffset + -7]; - u[zOffset + -1] = y1 + y3; - u[zOffset + -3] = y1 - y3; - u[zOffset + -5] = k113 - k22; - u[zOffset + -7] = k113 + k22; - var zOffset1 = zOffset - 8; - var t02 = u[zOffset1]; - var t12 = u[zOffset1 + -4]; - var k003 = t02 - t12; - var y01 = t02 + t12; - t02 = u[zOffset1 + -2]; - t12 = u[zOffset1 + -6]; - var y21 = t02 + t12; - var k221 = t02 - t12; - u[zOffset1] = y01 + y21; - u[zOffset1 + -2] = y01 - y21; - var k331 = u[zOffset1 + -3] - u[zOffset1 + -7]; - u[zOffset1 + -4] = k003 + k331; - u[zOffset1 + -6] = k003 - k331; - t02 = u[zOffset1 + -1]; - t12 = u[zOffset1 + -5]; - var k114 = t02 - t12; - var y11 = t02 + t12; - var y31 = u[zOffset1 + -3] + u[zOffset1 + -7]; - u[zOffset1 + -1] = y11 + y31; - u[zOffset1 + -3] = y11 - y31; - u[zOffset1 + -5] = k114 - k221; - u[zOffset1 + -7] = k114 + k221; - zOffset -= 16; - } - var brOffset = 0; - var dOffset01 = n4 - 4; - var dOffset11 = n2 - 4; - while(dOffset01 >= 0) { - var k4 = bitReverse[brOffset]; - v[dOffset11 + 3] = u[k4]; - v[dOffset11 + 2] = u[k4 + 1]; - v[dOffset01 + 3] = u[k4 + 2]; - v[dOffset01 + 2] = u[k4 + 3]; - k4 = bitReverse[brOffset + 1]; - v[dOffset11 + 1] = u[k4]; - v[dOffset11] = u[k4 + 1]; - v[dOffset01 + 1] = u[k4 + 2]; - v[dOffset01] = u[k4 + 3]; - dOffset01 -= 4; - dOffset11 -= 4; - brOffset += 2; - } - var cOffset = 0; - var dOffset2 = 0; - var eOffset3 = n2 - 4; - while(dOffset2 < eOffset3) { - var a02 = v[dOffset2] - v[eOffset3 + 2]; - var a11 = v[dOffset2 + 1] + v[eOffset3 + 3]; - var b0 = c[cOffset + 1] * a02 + c[cOffset] * a11; - var b1 = c[cOffset + 1] * a11 - c[cOffset] * a02; - var b2 = v[dOffset2] + v[eOffset3 + 2]; - var b3 = v[dOffset2 + 1] - v[eOffset3 + 3]; - v[dOffset2] = b2 + b0; - v[dOffset2 + 1] = b3 + b1; - v[eOffset3 + 2] = b2 - b0; - v[eOffset3 + 3] = b1 - b3; - a02 = v[dOffset2 + 2] - v[eOffset3]; - a11 = v[dOffset2 + 3] + v[eOffset3 + 1]; - b0 = c[cOffset + 3] * a02 + c[cOffset + 2] * a11; - b1 = c[cOffset + 3] * a11 - c[cOffset + 2] * a02; - b2 = v[dOffset2 + 2] + v[eOffset3]; - b3 = v[dOffset2 + 3] - v[eOffset3 + 1]; - v[dOffset2 + 2] = b2 + b0; - v[dOffset2 + 3] = b3 + b1; - v[eOffset3] = b2 - b0; - v[eOffset3 + 1] = b1 - b3; - cOffset += 4; - dOffset2 += 4; - eOffset3 -= 4; - } - var bOffset = n2 - 8; - var eOffset4 = n2 - 8; - var dOffset02 = 0; - var dOffset12 = n2 - 4; - var dOffset21 = n2; - var dOffset3 = n - 4; - while(eOffset4 >= 0) { - var p3 = buf2[eOffset4 + 6] * b[bOffset + 7] - buf2[eOffset4 + 7] * b[bOffset + 6]; - var p2 = -buf2[eOffset4 + 6] * b[bOffset + 6] - buf2[eOffset4 + 7] * b[bOffset + 7]; - buffer[dOffset02] = p3; - buffer[dOffset12 + 3] = -p3; - buffer[dOffset21] = p2; - buffer[dOffset3 + 3] = p2; - var p1 = buf2[eOffset4 + 4] * b[bOffset + 5] - buf2[eOffset4 + 5] * b[bOffset + 4]; - var p0 = -buf2[eOffset4 + 4] * b[bOffset + 4] - buf2[eOffset4 + 5] * b[bOffset + 5]; - buffer[dOffset02 + 1] = p1; - buffer[dOffset12 + 2] = -p1; - buffer[dOffset21 + 1] = p0; - buffer[dOffset3 + 2] = p0; - p3 = buf2[eOffset4 + 2] * b[bOffset + 3] - buf2[eOffset4 + 3] * b[bOffset + 2]; - p2 = -buf2[eOffset4 + 2] * b[bOffset + 2] - buf2[eOffset4 + 3] * b[bOffset + 3]; - buffer[dOffset02 + 2] = p3; - buffer[dOffset12 + 1] = -p3; - buffer[dOffset21 + 2] = p2; - buffer[dOffset3 + 1] = p2; - p1 = buf2[eOffset4] * b[bOffset + 1] - buf2[eOffset4 + 1] * b[bOffset]; - p0 = -buf2[eOffset4] * b[bOffset] - buf2[eOffset4 + 1] * b[bOffset + 1]; - buffer[dOffset02 + 3] = p1; - buffer[dOffset12] = -p1; - buffer[dOffset21 + 3] = p0; - buffer[dOffset3] = p0; - bOffset -= 8; - eOffset4 -= 8; - dOffset02 += 4; - dOffset21 += 4; - dOffset12 -= 4; - dOffset3 -= 4; - } -}; -kha_audio2_ogg_tools_Mdct.step3Iter0Loop = function(n,e,i_off,k_off,a) { - var eeOffset0 = i_off; - var eeOffset2 = i_off + k_off; - var aOffset = 0; - var i = (n >> 2) + 1; - while(--i > 0) { - var k00_20 = e[eeOffset0] - e[eeOffset2]; - var k01_21 = e[eeOffset0 + -1] - e[eeOffset2 + -1]; - var _g = eeOffset0; - var _g1 = e; - _g1[_g] = _g1[_g] + e[eeOffset2]; - var _g2 = eeOffset0 + -1; - var _g11 = e; - _g11[_g2] = _g11[_g2] + e[eeOffset2 + -1]; - e[eeOffset2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eeOffset2 + -1] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = e[eeOffset0 + -2] - e[eeOffset2 + -2]; - k01_21 = e[eeOffset0 + -3] - e[eeOffset2 + -3]; - var _g3 = eeOffset0 + -2; - var _g12 = e; - _g12[_g3] = _g12[_g3] + e[eeOffset2 + -2]; - var _g4 = eeOffset0 + -3; - var _g13 = e; - _g13[_g4] = _g13[_g4] + e[eeOffset2 + -3]; - e[eeOffset2 + -2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eeOffset2 + -3] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = e[eeOffset0 + -4] - e[eeOffset2 + -4]; - k01_21 = e[eeOffset0 + -5] - e[eeOffset2 + -5]; - var _g5 = eeOffset0 + -4; - var _g14 = e; - _g14[_g5] = _g14[_g5] + e[eeOffset2 + -4]; - var _g6 = eeOffset0 + -5; - var _g15 = e; - _g15[_g6] = _g15[_g6] + e[eeOffset2 + -5]; - e[eeOffset2 + -4] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eeOffset2 + -5] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = e[eeOffset0 + -6] - e[eeOffset2 + -6]; - k01_21 = e[eeOffset0 + -7] - e[eeOffset2 + -7]; - var _g7 = eeOffset0 + -6; - var _g16 = e; - _g16[_g7] = _g16[_g7] + e[eeOffset2 + -6]; - var _g8 = eeOffset0 + -7; - var _g17 = e; - _g17[_g8] = _g17[_g8] + e[eeOffset2 + -7]; - e[eeOffset2 + -6] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eeOffset2 + -7] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - eeOffset0 -= 8; - eeOffset2 -= 8; - } -}; -kha_audio2_ogg_tools_Mdct.step3InnerRLoop = function(lim,e,d0,k_off,a,k1) { - var aOffset = 0; - var eOffset0 = d0; - var eOffset2 = d0 + k_off; - var i = (lim >> 2) + 1; - while(--i > 0) { - var k00_20 = e[eOffset0] - e[eOffset2]; - var k01_21 = e[eOffset0 + -1] - e[eOffset2 + -1]; - var _g = eOffset0; - var _g1 = e; - _g1[_g] = _g1[_g] + e[eOffset2]; - var _g2 = eOffset0 + -1; - var _g11 = e; - _g11[_g2] = _g11[_g2] + e[eOffset2 + -1]; - e[eOffset2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eOffset2 + -1] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += k1; - k00_20 = e[eOffset0 + -2] - e[eOffset2 + -2]; - k01_21 = e[eOffset0 + -3] - e[eOffset2 + -3]; - var _g3 = eOffset0 + -2; - var _g12 = e; - _g12[_g3] = _g12[_g3] + e[eOffset2 + -2]; - var _g4 = eOffset0 + -3; - var _g13 = e; - _g13[_g4] = _g13[_g4] + e[eOffset2 + -3]; - e[eOffset2 + -2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eOffset2 + -3] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += k1; - k00_20 = e[eOffset0 + -4] - e[eOffset2 + -4]; - k01_21 = e[eOffset0 + -5] - e[eOffset2 + -5]; - var _g5 = eOffset0 + -4; - var _g14 = e; - _g14[_g5] = _g14[_g5] + e[eOffset2 + -4]; - var _g6 = eOffset0 + -5; - var _g15 = e; - _g15[_g6] = _g15[_g6] + e[eOffset2 + -5]; - e[eOffset2 + -4] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eOffset2 + -5] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += k1; - k00_20 = e[eOffset0 + -6] - e[eOffset2 + -6]; - k01_21 = e[eOffset0 + -7] - e[eOffset2 + -7]; - var _g7 = eOffset0 + -6; - var _g16 = e; - _g16[_g7] = _g16[_g7] + e[eOffset2 + -6]; - var _g8 = eOffset0 + -7; - var _g17 = e; - _g17[_g8] = _g17[_g8] + e[eOffset2 + -7]; - e[eOffset2 + -6] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - e[eOffset2 + -7] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - eOffset0 -= 8; - eOffset2 -= 8; - aOffset += k1; - } -}; -kha_audio2_ogg_tools_Mdct.step3InnerSLoop = function(n,e,i_off,k_off,a,aOffset0,aOffset1,k0) { - var A0 = a[aOffset0]; - var A1 = a[aOffset0 + 1]; - var A2 = a[aOffset0 + aOffset1]; - var A3 = a[aOffset0 + aOffset1 + 1]; - var A4 = a[aOffset0 + aOffset1 * 2]; - var A5 = a[aOffset0 + aOffset1 * 2 + 1]; - var A6 = a[aOffset0 + aOffset1 * 3]; - var A7 = a[aOffset0 + aOffset1 * 3 + 1]; - var eeOffset0 = i_off; - var eeOffset2 = i_off + k_off; - var i = n + 1; - while(--i > 0) { - var k00 = e[eeOffset0] - e[eeOffset2]; - var k11 = e[eeOffset0 + -1] - e[eeOffset2 + -1]; - e[eeOffset0] = e[eeOffset0] + e[eeOffset2]; - e[eeOffset0 + -1] = e[eeOffset0 + -1] + e[eeOffset2 + -1]; - e[eeOffset2] = k00 * A0 - k11 * A1; - e[eeOffset2 + -1] = k11 * A0 + k00 * A1; - k00 = e[eeOffset0 + -2] - e[eeOffset2 + -2]; - k11 = e[eeOffset0 + -3] - e[eeOffset2 + -3]; - e[eeOffset0 + -2] = e[eeOffset0 + -2] + e[eeOffset2 + -2]; - e[eeOffset0 + -3] = e[eeOffset0 + -3] + e[eeOffset2 + -3]; - e[eeOffset2 + -2] = k00 * A2 - k11 * A3; - e[eeOffset2 + -3] = k11 * A2 + k00 * A3; - k00 = e[eeOffset0 + -4] - e[eeOffset2 + -4]; - k11 = e[eeOffset0 + -5] - e[eeOffset2 + -5]; - e[eeOffset0 + -4] = e[eeOffset0 + -4] + e[eeOffset2 + -4]; - e[eeOffset0 + -5] = e[eeOffset0 + -5] + e[eeOffset2 + -5]; - e[eeOffset2 + -4] = k00 * A4 - k11 * A5; - e[eeOffset2 + -5] = k11 * A4 + k00 * A5; - k00 = e[eeOffset0 + -6] - e[eeOffset2 + -6]; - k11 = e[eeOffset0 + -7] - e[eeOffset2 + -7]; - e[eeOffset0 + -6] = e[eeOffset0 + -6] + e[eeOffset2 + -6]; - e[eeOffset0 + -7] = e[eeOffset0 + -7] + e[eeOffset2 + -7]; - e[eeOffset2 + -6] = k00 * A6 - k11 * A7; - e[eeOffset2 + -7] = k11 * A6 + k00 * A7; - eeOffset0 -= k0; - eeOffset2 -= k0; - } -}; -kha_audio2_ogg_tools_Mdct.iter54 = function(e,zOffset) { - var t0 = e[zOffset]; - var t1 = e[zOffset + -4]; - var k00 = t0 - t1; - var y0 = t0 + t1; - t0 = e[zOffset + -2]; - t1 = e[zOffset + -6]; - var y2 = t0 + t1; - var k22 = t0 - t1; - e[zOffset] = y0 + y2; - e[zOffset + -2] = y0 - y2; - var k33 = e[zOffset + -3] - e[zOffset + -7]; - e[zOffset + -4] = k00 + k33; - e[zOffset + -6] = k00 - k33; - t0 = e[zOffset + -1]; - t1 = e[zOffset + -5]; - var k11 = t0 - t1; - var y1 = t0 + t1; - var y3 = e[zOffset + -3] + e[zOffset + -7]; - e[zOffset + -1] = y1 + y3; - e[zOffset + -3] = y1 - y3; - e[zOffset + -5] = k11 - k22; - e[zOffset + -7] = k11 + k22; -}; -kha_audio2_ogg_tools_Mdct.step3InnerSLoopLd654 = function(n,e,i_off,a,baseN) { - var A2 = a[baseN >> 3]; - var zOffset = i_off; - var baseOffset = i_off - 16 * n; - while(zOffset > baseOffset) { - var t0 = e[zOffset]; - var t1 = e[zOffset + -8]; - e[zOffset + -8] = t0 - t1; - e[zOffset] = t0 + t1; - t0 = e[zOffset + -1]; - t1 = e[zOffset + -9]; - e[zOffset + -9] = t0 - t1; - e[zOffset + -1] = t0 + t1; - t0 = e[zOffset + -2]; - t1 = e[zOffset + -10]; - var k00 = t0 - t1; - e[zOffset + -2] = t0 + t1; - t0 = e[zOffset + -3]; - t1 = e[zOffset + -11]; - var k11 = t0 - t1; - e[zOffset + -3] = t0 + t1; - e[zOffset + -10] = (k00 + k11) * A2; - e[zOffset + -11] = (k11 - k00) * A2; - t0 = e[zOffset + -4]; - t1 = e[zOffset + -12]; - k00 = t1 - t0; - e[zOffset + -4] = t0 + t1; - t0 = e[zOffset + -5]; - t1 = e[zOffset + -13]; - k11 = t0 - t1; - e[zOffset + -5] = t0 + t1; - e[zOffset + -12] = k11; - e[zOffset + -13] = k00; - t0 = e[zOffset + -6]; - t1 = e[zOffset + -14]; - k00 = t1 - t0; - e[zOffset + -6] = t0 + t1; - t0 = e[zOffset + -7]; - t1 = e[zOffset + -15]; - k11 = t0 - t1; - e[zOffset + -7] = t0 + t1; - e[zOffset + -14] = (k00 + k11) * A2; - e[zOffset + -15] = (k00 - k11) * A2; - var t01 = e[zOffset]; - var t11 = e[zOffset + -4]; - var k001 = t01 - t11; - var y0 = t01 + t11; - t01 = e[zOffset + -2]; - t11 = e[zOffset + -6]; - var y2 = t01 + t11; - var k22 = t01 - t11; - e[zOffset] = y0 + y2; - e[zOffset + -2] = y0 - y2; - var k33 = e[zOffset + -3] - e[zOffset + -7]; - e[zOffset + -4] = k001 + k33; - e[zOffset + -6] = k001 - k33; - t01 = e[zOffset + -1]; - t11 = e[zOffset + -5]; - var k111 = t01 - t11; - var y1 = t01 + t11; - var y3 = e[zOffset + -3] + e[zOffset + -7]; - e[zOffset + -1] = y1 + y3; - e[zOffset + -3] = y1 - y3; - e[zOffset + -5] = k111 - k22; - e[zOffset + -7] = k111 + k22; - var zOffset1 = zOffset - 8; - var t02 = e[zOffset1]; - var t12 = e[zOffset1 + -4]; - var k002 = t02 - t12; - var y01 = t02 + t12; - t02 = e[zOffset1 + -2]; - t12 = e[zOffset1 + -6]; - var y21 = t02 + t12; - var k221 = t02 - t12; - e[zOffset1] = y01 + y21; - e[zOffset1 + -2] = y01 - y21; - var k331 = e[zOffset1 + -3] - e[zOffset1 + -7]; - e[zOffset1 + -4] = k002 + k331; - e[zOffset1 + -6] = k002 - k331; - t02 = e[zOffset1 + -1]; - t12 = e[zOffset1 + -5]; - var k112 = t02 - t12; - var y11 = t02 + t12; - var y31 = e[zOffset1 + -3] + e[zOffset1 + -7]; - e[zOffset1 + -1] = y11 + y31; - e[zOffset1 + -3] = y11 - y31; - e[zOffset1 + -5] = k112 - k221; - e[zOffset1 + -7] = k112 + k221; - zOffset -= 16; - } -}; -var kha_audio2_ogg_vorbis_Reader = function(input,seekFunc,inputLength) { - this.seekFunc = seekFunc; - this.inputLength = inputLength; - this.decoder = kha_audio2_ogg_vorbis_VorbisDecoder.start(input); - this.decoder.setupSampleNumber(seekFunc,inputLength); - this.loopStart = this.get_header().comment.get_loopStart(); - this.loopLength = this.get_header().comment.get_loopLength(); -}; -$hxClasses["kha.audio2.ogg.vorbis.Reader"] = kha_audio2_ogg_vorbis_Reader; -kha_audio2_ogg_vorbis_Reader.__name__ = true; -kha_audio2_ogg_vorbis_Reader.openFromBytes = function(bytes) { - var input = new haxe_io_BytesInput(bytes); - var a1 = input; - return new kha_audio2_ogg_vorbis_Reader(input,function(a2) { - kha_audio2_ogg_vorbis_Reader.seekBytes(a1,a2); - },bytes.length); -}; -kha_audio2_ogg_vorbis_Reader.seekBytes = function(bytes,pos) { - bytes.set_position(pos); -}; -kha_audio2_ogg_vorbis_Reader.readAll = function(bytes,output,useFloat) { - if(useFloat == null) { - useFloat = false; - } - var input = new haxe_io_BytesInput(bytes); - var decoder = kha_audio2_ogg_vorbis_VorbisDecoder.start(input); - var a1 = input; - decoder.setupSampleNumber(function(a2) { - kha_audio2_ogg_vorbis_Reader.seekBytes(a1,a2); - },bytes.length); - var header = decoder.header; - var count = 0; - var bufferSize = 4096; - var length = bufferSize * header.channel; - var this1 = new Array(length); - var buffer = this1; - while(true) { - var n = decoder.read(buffer,bufferSize,header.channel,header.sampleRate,useFloat); - var _g1 = 0; - var _g = n * header.channel; - while(_g1 < _g) { - var i = _g1++; - output.writeFloat(buffer[i]); - } - if(n == 0) { - break; - } - count += n; - } - return decoder.header; -}; -kha_audio2_ogg_vorbis_Reader.prototype = { - decoder: null - ,get_header: function() { - return this.decoder.header; - } - ,get_totalSample: function() { - return this.decoder.totalSample; - } - ,get_totalMillisecond: function() { - var samples = this.decoder.totalSample; - var b = this.get_header().sampleRate; - return _$UInt_UInt_$Impl_$.toFloat(samples) / _$UInt_UInt_$Impl_$.toFloat(b) * 1000; - } - ,get_currentSample: function() { - return this.decoder.currentSample; - } - ,set_currentSample: function(value) { - this.decoder.seek(this.seekFunc,this.inputLength,value); - return this.decoder.currentSample; - } - ,get_currentMillisecond: function() { - var samples = this.get_currentSample(); - var b = this.get_header().sampleRate; - return _$UInt_UInt_$Impl_$.toFloat(samples) / _$UInt_UInt_$Impl_$.toFloat(b) * 1000; - } - ,set_currentMillisecond: function(value) { - var _g = value / 1000; - var _g1 = this.get_header().sampleRate; - this.set_currentSample(Math.floor(_$UInt_UInt_$Impl_$.toFloat(_g1) * _g)); - return this.get_currentMillisecond(); - } - ,loopStart: null - ,loopLength: null - ,seekFunc: null - ,inputLength: null - ,read: function(output,samples,channels,sampleRate,useFloat) { - if(useFloat == null) { - useFloat = false; - } - this.decoder.ensurePosition(this.seekFunc); - if(samples == null) { - samples = this.decoder.totalSample; - } - if(channels == null) { - channels = this.get_header().channel; - } - if(sampleRate == null) { - sampleRate = this.get_header().sampleRate; - } - return this.decoder.read(output,samples,channels,sampleRate,useFloat); - } - ,clone: function() { - var reader = Type.createEmptyInstance(kha_audio2_ogg_vorbis_Reader); - reader.seekFunc = this.seekFunc; - reader.inputLength = this.inputLength; - reader.decoder = this.decoder.clone(this.seekFunc); - reader.loopStart = this.loopStart; - reader.loopLength = this.loopLength; - return reader; - } - ,sampleToMillisecond: function(samples) { - var b = this.get_header().sampleRate; - return _$UInt_UInt_$Impl_$.toFloat(samples) / _$UInt_UInt_$Impl_$.toFloat(b) * 1000; - } - ,millisecondToSample: function(millseconds) { - var _g = millseconds / 1000; - var _g1 = this.get_header().sampleRate; - return Math.floor(_$UInt_UInt_$Impl_$.toFloat(_g1) * _g); - } - ,__class__: kha_audio2_ogg_vorbis_Reader -}; -var kha_audio2_ogg_vorbis_VorbisDecodeState = function(input) { - this.nextSeg = 0; - this.firstDecode = false; - this.bytesInSeg = 0; - this.validBits = 0; - this.input = input; - this.inputPosition = 0; - this.page = new kha_audio2_ogg_vorbis_data_Page(); - kha_audio2_ogg_tools_Crc32.init(); -}; -$hxClasses["kha.audio2.ogg.vorbis.VorbisDecodeState"] = kha_audio2_ogg_vorbis_VorbisDecodeState; -kha_audio2_ogg_vorbis_VorbisDecodeState.__name__ = true; -kha_audio2_ogg_vorbis_VorbisDecodeState.prototype = { - page: null - ,eof: null - ,pFirst: null - ,pLast: null - ,validBits: null - ,inputPosition: null - ,input: null - ,discardSamplesDeferred: null - ,segments: null - ,bytesInSeg: null - ,channelBuffers: null - ,channelBufferStart: null - ,channelBufferEnd: null - ,currentSample: null - ,previousWindow: null - ,previousLength: null - ,finalY: null - ,firstDecode: null - ,nextSeg: null - ,acc: null - ,lastSeg: null - ,lastSegWhich: null - ,endSegWithKnownLoc: null - ,knownLocForPacket: null - ,error: null - ,currentLoc: null - ,currentLocValid: null - ,firstAudioPageOffset: null - ,setup: function(loc0,loc1) { - this.inputPosition += 1; - var segmentCount = this.input.readByte(); - this.inputPosition += segmentCount; - var this1 = new Array(segmentCount); - var vec = this1; - var _g1 = 0; - var _g = segmentCount; - while(_g1 < _g) { - var i = _g1++; - vec[i] = this.input.readByte(); - } - this.segments = vec; - this.endSegWithKnownLoc = -2; - if(loc0 != -1 || loc1 != -1) { - var i1 = segmentCount - 1; - while(i1 >= 0) { - if(this.segments[i1] < 255) { - break; - } - if(i1 >= 0) { - this.endSegWithKnownLoc = i1; - this.knownLocForPacket = loc0; - } - --i1; - } - } - if(this.firstDecode) { - var i2 = 0; - var len = 0; - var p = new kha_audio2_ogg_vorbis_data_ProbedPage(); - var _g11 = 0; - var _g2 = segmentCount; - while(_g11 < _g2) { - var i3 = _g11++; - len += this.segments[i3]; - } - len += 27 + segmentCount; - p.pageStart = this.firstAudioPageOffset; - p.pageEnd = p.pageStart + len; - p.firstDecodedSample = 0; - p.lastDecodedSample = loc0; - this.pFirst = p; - } - this.nextSeg = 0; - } - ,clone: function(seekFunc) { - var state = Type.createEmptyInstance(kha_audio2_ogg_vorbis_VorbisDecodeState); - seekFunc(this.inputPosition); - state.input = this.input; - state.eof = this.eof; - state.validBits = this.validBits; - state.discardSamplesDeferred = this.discardSamplesDeferred; - state.firstDecode = this.firstDecode; - state.nextSeg = this.nextSeg; - state.bytesInSeg = this.bytesInSeg; - state.acc = state.acc; - state.lastSeg = this.lastSeg; - state.lastSegWhich = this.lastSegWhich; - state.currentLoc = this.currentLoc; - state.currentLocValid = this.currentLocValid; - state.inputPosition = this.inputPosition; - state.firstAudioPageOffset = this.firstAudioPageOffset; - state.error = this.error; - state.segments = this.segments; - state.pFirst = this.pFirst; - state.pLast = this.pLast; - state.page = this.page.clone(); - return state; - } - ,next: function() { - if(this.lastSeg) { - return 0; - } - if(this.nextSeg == -1) { - this.lastSegWhich = this.segments.length - 1; - try { - this.page.start(this); - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - if( js_Boot.__instanceof(e,kha_audio2_ogg_vorbis_data_ReaderError) ) { - this.lastSeg = true; - this.error = e; - return 0; - } else throw(e); - } - if((this.page.flag & 1) == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 171, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "next"})); - } - } - var len = this.segments[this.nextSeg++]; - if(len < 255) { - this.lastSeg = true; - this.lastSegWhich = this.nextSeg - 1; - } - if(this.nextSeg >= this.segments.length) { - this.nextSeg = -1; - } - var b = this.bytesInSeg == 0; - this.bytesInSeg = len; - return len; - } - ,startPacket: function() { - while(this.nextSeg == -1) { - this.page.start(this); - if((this.page.flag & 1) != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 193, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "startPacket"})); - } - } - this.lastSeg = false; - this.validBits = 0; - this.bytesInSeg = 0; - } - ,maybeStartPacket: function() { - if(this.nextSeg == -1) { - var eof = false; - var x; - try { - this.inputPosition += 1; - x = this.input.readByte(); - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - if( js_Boot.__instanceof(e,haxe_io_Eof) ) { - eof = true; - x = 0; - } else throw(e); - } - if(eof) { - return false; - } - var tmp; - var tmp1; - var tmp2; - if(x == 79) { - this.inputPosition += 1; - tmp2 = this.input.readByte() != 103; - } else { - tmp2 = true; - } - if(!tmp2) { - this.inputPosition += 1; - tmp1 = this.input.readByte() != 103; - } else { - tmp1 = true; - } - if(!tmp1) { - this.inputPosition += 1; - tmp = this.input.readByte() != 83; - } else { - tmp = true; - } - if(tmp) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 218, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "maybeStartPacket"})); - } - this.page.startWithoutCapturePattern(this); - } - this.startPacket(); - return true; - } - ,readBits: function(n) { - if(this.validBits < 0) { - return 0; - } else if(this.validBits < n) { - if(n > 24) { - return this.readBits(24) + (this.readBits(n - 24) << 24); - } else { - if(this.validBits == 0) { - this.acc = 0; - } - while(true) { - if(this.bytesInSeg == 0 && (this.lastSeg || this.next() == 0)) { - this.validBits = -1; - break; - } else { - this.bytesInSeg--; - this.inputPosition += 1; - this.acc = this.acc + (this.input.readByte() << this.validBits); - this.validBits += 8; - } - if(!(this.validBits < n)) { - break; - } - } - if(this.validBits < 0) { - return 0; - } else { - var z = this.acc & (1 << n) - 1; - this.acc = this.acc >>> n; - this.validBits -= n; - return z; - } - } - } else { - var z1 = this.acc & (1 << n) - 1; - this.acc = this.acc >>> n; - this.validBits -= n; - return z1; - } - } - ,readPacketRaw: function() { - if(this.bytesInSeg == 0 && (this.lastSeg || this.next() == 0)) { - return -1; - } else { - this.bytesInSeg--; - this.inputPosition += 1; - return this.input.readByte(); - } - } - ,readPacket: function() { - var x; - if(this.bytesInSeg == 0 && (this.lastSeg || this.next() == 0)) { - x = -1; - } else { - this.bytesInSeg--; - this.inputPosition += 1; - x = this.input.readByte(); - } - this.validBits = 0; - return x; - } - ,flushPacket: function() { - while(this.bytesInSeg != 0 || !this.lastSeg && this.next() != 0) { - this.bytesInSeg--; - this.inputPosition += 1; - this.input.readByte(); - } - } - ,vorbisValidate: function() { - var header = new haxe_io_Bytes(new ArrayBuffer(6)); - var _g = 0; - while(_g < 6) { - var i = _g++; - var x; - if(this.bytesInSeg == 0 && (this.lastSeg || this.next() == 0)) { - x = -1; - } else { - this.bytesInSeg--; - this.inputPosition += 1; - x = this.input.readByte(); - } - this.validBits = 0; - header.b[i] = x & 255; - } - if(header.toString() != "vorbis") { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"vorbis header",{ fileName : "VorbisDecodeState.hx", lineNumber : 300, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "vorbisValidate"})); - } - } - ,firstPageValidate: function() { - if(this.segments.length != 1) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"segmentCount",{ fileName : "VorbisDecodeState.hx", lineNumber : 307, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "firstPageValidate"})); - } - if(this.segments[0] != 30) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"decodeState head",{ fileName : "VorbisDecodeState.hx", lineNumber : 310, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "firstPageValidate"})); - } - } - ,startFirstDecode: function() { - this.firstAudioPageOffset = this.inputPosition; - this.firstDecode = true; - } - ,capturePattern: function() { - var tmp; - var tmp1; - var tmp2; - this.inputPosition += 1; - if(this.input.readByte() == 79) { - this.inputPosition += 1; - tmp2 = this.input.readByte() != 103; - } else { - tmp2 = true; - } - if(!tmp2) { - this.inputPosition += 1; - tmp1 = this.input.readByte() != 103; - } else { - tmp1 = true; - } - if(!tmp1) { - this.inputPosition += 1; - tmp = this.input.readByte() != 83; - } else { - tmp = true; - } - if(tmp) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 323, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "capturePattern"})); - } - } - ,skip: function(len) { - this.inputPosition += len; - var this1 = new Array(len); - var vec = this1; - var _g1 = 0; - var _g = len; - while(_g1 < _g) { - var i = _g1++; - vec[i] = this.input.readByte(); - } - } - ,prepHuffman: function() { - if(this.validBits <= 24) { - if(this.validBits == 0) { - this.acc = 0; - } - while(true) { - if(this.bytesInSeg == 0 && (this.lastSeg || this.next() == 0)) { - return; - } else { - this.bytesInSeg--; - this.inputPosition += 1; - this.acc = this.acc + (this.input.readByte() << this.validBits); - this.validBits += 8; - } - if(!(this.validBits <= 24)) { - break; - } - } - } - } - ,decode: function(c) { - if(this.validBits < 10) { - this.prepHuffman(); - } - var i = c.fastHuffman[this.acc & 1023]; - var val; - if(i >= 0) { - var l = c.codewordLengths[i]; - this.acc = this.acc >>> l; - this.validBits -= l; - if(this.validBits < 0) { - this.validBits = 0; - val = -1; - } else { - val = i; - } - } else { - val = this.decodeScalarRaw(c); - } - if(c.sparse) { - val = c.sortedValues[val]; - } - return val; - } - ,decodeRaw: function(c) { - if(this.validBits < 10) { - this.prepHuffman(); - } - var i = c.fastHuffman[this.acc & 1023]; - if(i >= 0) { - var l = c.codewordLengths[i]; - this.acc = this.acc >>> l; - this.validBits -= l; - if(this.validBits < 0) { - this.validBits = 0; - return -1; - } else { - return i; - } - } else { - return this.decodeScalarRaw(c); - } - } - ,isLastByte: function() { - if(this.bytesInSeg == 0) { - return this.lastSeg; - } else { - return false; - } - } - ,finishDecodePacket: function(previousLength,n,r) { - var left = r.left.start; - var currentLocValid = false; - var n2 = n >> 1; - if(this.firstDecode) { - this.currentLoc = -n2; - this.discardSamplesDeferred = n - r.right.end; - currentLocValid = true; - this.firstDecode = false; - } else if(this.discardSamplesDeferred != 0) { - r.left.start += this.discardSamplesDeferred; - left = r.left.start; - this.discardSamplesDeferred = 0; - } else { - var tmp = previousLength == 0 && currentLocValid; - } - if(this.lastSegWhich == this.endSegWithKnownLoc) { - if(currentLocValid && (this.page.flag & 4) != 0) { - var currentEnd = this.knownLocForPacket - (n - r.right.end); - if(currentEnd < this.currentLoc + r.right.end) { - var len = currentEnd < this.currentLoc ? 0 : currentEnd - this.currentLoc; - len += r.left.start; - this.currentLoc += len; - return { len : len, left : left, right : r.right.start}; - } - } - this.currentLoc = this.knownLocForPacket - (n2 - r.left.start); - currentLocValid = true; - } - if(currentLocValid) { - this.currentLoc += r.right.start - r.left.start; - } - return { len : r.right.end, left : left, right : r.right.start}; - } - ,readInt32: function() { - this.inputPosition += 4; - return this.input.readInt32(); - } - ,readByte: function() { - this.inputPosition += 1; - return this.input.readByte(); - } - ,read: function(n) { - this.inputPosition += n; - var this1 = new Array(n); - var vec = this1; - var _g1 = 0; - var _g = n; - while(_g1 < _g) { - var i = _g1++; - vec[i] = this.input.readByte(); - } - return vec; - } - ,readBytes: function(n) { - this.inputPosition += n; - return this.input.read(n); - } - ,readString: function(n) { - this.inputPosition += n; - return this.input.readString(n); - } - ,getSampleNumber: function(seekFunc,inputLength) { - var restoreOffset = this.inputPosition; - var previousSafe = _$UInt_UInt_$Impl_$.gte(inputLength,65536) && _$UInt_UInt_$Impl_$.gte(inputLength - 65536,this.firstAudioPageOffset) ? inputLength - 65536 : this.firstAudioPageOffset; - seekFunc(this.inputPosition = previousSafe); - var end = 0; - var last = false; - var _g = this.findPage(seekFunc,inputLength); - switch(_g[1]) { - case 0: - var l = _g[3]; - var e = _g[2]; - end = e; - last = l; - break; - case 1: - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 518, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "getSampleNumber"})); - break; - } - var lastPageLoc = this.inputPosition; - try { - while(!last) { - seekFunc(this.inputPosition = end); - var _g1 = this.findPage(seekFunc,inputLength); - switch(_g1[1]) { - case 0: - var l1 = _g1[3]; - var e1 = _g1[2]; - end = e1; - last = l1; - break; - case 1: - throw "__break__"; - break; - } - previousSafe = lastPageLoc + 1; - lastPageLoc = this.inputPosition; - } - } catch( e ) { if( e != "__break__" ) throw e; } - seekFunc(this.inputPosition = lastPageLoc); - this.inputPosition += 6; - var this1 = new Array(6); - var vec = this1; - var _g11 = 0; - var _g2 = 6; - while(_g11 < _g2) { - var i = _g11++; - vec[i] = this.input.readByte(); - } - var vorbisHeader = vec; - this.inputPosition += 4; - var lo = this.input.readInt32(); - this.inputPosition += 4; - var hi = this.input.readInt32(); - if(lo == -1 && hi == -1 || hi > 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 552, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "getSampleNumber"})); - } - this.pLast = new kha_audio2_ogg_vorbis_data_ProbedPage(); - this.pLast.pageStart = lastPageLoc; - this.pLast.pageEnd = end; - this.pLast.lastDecodedSample = lo; - this.pLast.firstDecodedSample = null; - this.pLast.afterPreviousPageStart = previousSafe; - seekFunc(this.inputPosition = restoreOffset); - return lo; - } - ,forcePageResync: function() { - this.nextSeg = -1; - } - ,setInputOffset: function(seekFunc,n) { - seekFunc(this.inputPosition = n); - } - ,findPage: function(seekFunc,inputLength) { - try { - while(true) { - this.inputPosition += 1; - var n = this.input.readByte(); - if(n == 79) { - var retryLoc = this.inputPosition; - if(retryLoc - 25 > inputLength) { - return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound; - } - var tmp; - var tmp1; - this.inputPosition += 1; - if(this.input.readByte() == 103) { - this.inputPosition += 1; - tmp1 = this.input.readByte() != 103; - } else { - tmp1 = true; - } - if(!tmp1) { - this.inputPosition += 1; - tmp = this.input.readByte() != 83; - } else { - tmp = true; - } - if(tmp) { - continue; - } - var this1 = new Array(27); - var header = this1; - header[0] = 79; - header[1] = 103; - header[2] = 103; - header[3] = 83; - var _g = 4; - while(_g < 27) { - var i = _g++; - this.inputPosition += 1; - header[i] = this.input.readByte(); - } - if(header[4] != 0) { - seekFunc(this.inputPosition = retryLoc); - continue; - } - var goal = header[22] + (header[23] << 8) + (header[24] << 16) + (header[25] << 24); - var _g1 = 22; - while(_g1 < 26) { - var i1 = _g1++; - header[i1] = 0; - } - var crc = 0; - var _g2 = 0; - while(_g2 < 27) { - var i2 = _g2++; - crc = crc << 8 ^ kha_audio2_ogg_tools_Crc32.table[header[i2] ^ crc >>> 24]; - } - var len = 0; - try { - var _g11 = 0; - var _g3 = header[26]; - while(_g11 < _g3) { - var i3 = _g11++; - this.inputPosition += 1; - var s = this.input.readByte(); - crc = crc << 8 ^ kha_audio2_ogg_tools_Crc32.table[s ^ crc >>> 24]; - len += s; - } - var _g12 = 0; - var _g4 = len; - while(_g12 < _g4) { - var i4 = _g12++; - this.inputPosition += 1; - var $byte = this.input.readByte(); - crc = crc << 8 ^ kha_audio2_ogg_tools_Crc32.table[$byte ^ crc >>> 24]; - } - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - if( js_Boot.__instanceof(e,haxe_io_Eof) ) { - return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound; - } else throw(e); - } - if(crc == goal) { - var end = this.inputPosition; - seekFunc(this.inputPosition = retryLoc - 1); - return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.Found(end,(header[5] & 4) != 0); - } - } - } - } catch( e1 ) { - if (e1 instanceof js__$Boot_HaxeError) e1 = e1.val; - if( js_Boot.__instanceof(e1,haxe_io_Eof) ) { - return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound; - } else throw(e1); - } - } - ,analyzePage: function(seekFunc,h) { - var z = new kha_audio2_ogg_vorbis_data_ProbedPage(); - var this1 = new Array(255); - var packetType = this1; - z.pageStart = this.inputPosition; - this.inputPosition += 27; - var this2 = new Array(27); - var vec = this2; - var _g1 = 0; - var _g = 27; - while(_g1 < _g) { - var i = _g1++; - vec[i] = this.input.readByte(); - } - var pageHeader = vec; - var n = pageHeader[26]; - this.inputPosition += n; - var this3 = new Array(n); - var vec1 = this3; - var _g11 = 0; - var _g2 = n; - while(_g11 < _g2) { - var i1 = _g11++; - vec1[i1] = this.input.readByte(); - } - var lacing = vec1; - var len = 0; - var _g12 = 0; - var _g3 = pageHeader[26]; - while(_g12 < _g3) { - var i2 = _g12++; - len += lacing[i2]; - } - z.pageEnd = z.pageStart + 27 + pageHeader[26] + len; - z.lastDecodedSample = pageHeader[6] + (pageHeader[7] << 8) + (pageHeader[8] << 16) + (pageHeader[9] << 16); - if((pageHeader[5] & 4) != 0) { - z.firstDecodedSample = null; - seekFunc(this.inputPosition = z.pageStart); - return z; - } - var numPacket = 0; - var packetStart = (pageHeader[5] & 1) == 0; - var modeCount = h.modes.length; - var _g13 = 0; - var _g4 = pageHeader[26]; - while(_g13 < _g4) { - var i3 = _g13++; - if(packetStart) { - if(lacing[i3] == 0) { - seekFunc(this.inputPosition = z.pageStart); - return null; - } - this.inputPosition += 1; - var n1 = this.input.readByte(); - if((n1 & 1) != 0) { - seekFunc(this.inputPosition = z.pageStart); - return null; - } - n1 >>= 1; - var n2 = modeCount - 1; - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var b = n2 < 16384 ? n2 < 16 ? log2_4[n2] : n2 < 512 ? 5 + log2_4[n2 >> 5] : 10 + log2_4[n2 >> 10] : n2 < 16777216 ? n2 < 524288 ? 15 + log2_4[n2 >> 15] : 20 + log2_4[n2 >> 20] : n2 < 536870912 ? 25 + log2_4[n2 >> 25] : n2 < -2147483648 ? 30 + log2_4[n2 >> 30] : 0; - n1 &= (1 << b) - 1; - if(n1 >= modeCount) { - seekFunc(this.inputPosition = z.pageStart); - return null; - } - packetType[numPacket++] = h.modes[n1].blockflag; - var len1 = lacing[i3] - 1; - this.inputPosition += len1; - var this4 = new Array(len1); - var vec2 = this4; - var _g14 = 0; - var _g5 = len1; - while(_g14 < _g5) { - var i4 = _g14++; - vec2[i4] = this.input.readByte(); - } - } else { - var len2 = lacing[i3]; - this.inputPosition += len2; - var this5 = new Array(len2); - var vec3 = this5; - var _g15 = 0; - var _g6 = len2; - while(_g15 < _g6) { - var i5 = _g15++; - vec3[i5] = this.input.readByte(); - } - } - packetStart = lacing[i3] < 255; - } - var samples = 0; - if(numPacket > 1) { - samples += packetType[numPacket - 1] ? h.blocksize1 : h.blocksize0; - } - var i6 = numPacket - 2; - while(i6 >= 1) { - --i6; - if(packetType[i6]) { - if(packetType[i6 + 1]) { - samples += h.blocksize1 >> 1; - } else { - samples += (h.blocksize1 - h.blocksize0 >> 2) + (h.blocksize0 >> 1); - } - } else { - samples += h.blocksize0 >> 1; - } - --i6; - } - z.firstDecodedSample = z.lastDecodedSample - samples; - seekFunc(this.inputPosition = z.pageStart); - return z; - } - ,decodeScalarRaw: function(c) { - this.prepHuffman(); - var b = c.sortedCodewords != null || c.codewords != null; - var codewordLengths = c.codewordLengths; - var codewords = c.codewords; - var sortedCodewords = c.sortedCodewords; - if(c.entries > 8 ? sortedCodewords != null : codewords != null) { - var n = this.acc; - n = (n & -1431655766) >>> 1 | (n & 1431655765) << 1; - n = (n & -858993460) >>> 2 | (n & 858993459) << 2; - n = (n & -252645136) >>> 4 | (n & 252645135) << 4; - n = (n & -16711936) >>> 8 | (n & 16711935) << 8; - var code = n >>> 16 | n << 16; - var x = 0; - var n1 = c.sortedEntries; - while(n1 > 1) { - var m = x + (n1 >> 1); - if(_$UInt_UInt_$Impl_$.gte(code,sortedCodewords[m])) { - x = m; - n1 -= n1 >> 1; - } else { - n1 >>= 1; - } - } - if(!c.sparse) { - x = c.sortedValues[x]; - } - var len = codewordLengths[x]; - if(this.validBits >= len) { - this.acc = this.acc >>> len; - this.validBits -= len; - return x; - } - this.validBits = 0; - return -1; - } - var b1 = !c.sparse; - var _g1 = 0; - var _g = c.entries; - while(_g1 < _g) { - var i = _g1++; - var cl = codewordLengths[i]; - if(cl == 255) { - continue; - } - if(codewords[i] == (this.acc & (1 << cl) - 1)) { - if(this.validBits >= cl) { - this.acc = this.acc >>> cl; - this.validBits -= cl; - return i; - } - this.validBits = 0; - return -1; - } - } - this.error = new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 846, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "decodeScalarRaw"}); - this.validBits = 0; - return -1; - } - ,__class__: kha_audio2_ogg_vorbis_VorbisDecodeState -}; -var kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult = $hxClasses["kha.audio2.ogg.vorbis._VorbisDecodeState.FindPageResult"] = { __ename__ : true, __constructs__ : ["Found","NotFound"] }; -kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.Found = function(end,last) { var $x = ["Found",0,end,last]; $x.__enum__ = kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult; $x.toString = $estr; return $x; }; -kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound = ["NotFound",1]; -kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound.toString = $estr; -kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound.__enum__ = kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult; -var kha_audio2_ogg_vorbis_VorbisDecoder = function(header,decodeState) { - this.header = header; - this.decodeState = decodeState; - this.totalSample = null; - this.currentSample = 0; - this.previousLength = 0; - var length = header.channel; - var this1 = new Array(length); - this.channelBuffers = this1; - var length1 = header.channel; - var this2 = new Array(length1); - this.previousWindow = this2; - var length2 = header.channel; - var this3 = new Array(length2); - this.finalY = this3; - var _g1 = 0; - var _g = header.channel; - while(_g1 < _g) { - var i = _g1++; - var this4 = this.channelBuffers; - var len = header.blocksize1; - var this5 = new Array(len); - var vec = this5; - this4[i] = vec; - var this6 = this.previousWindow; - var len1 = header.blocksize1 / 2 | 0; - var this7 = new Array(len1); - var vec1 = this7; - this6[i] = vec1; - this.finalY[i] = []; - } - var this8 = new Array(2); - this.a = this8; - var this9 = new Array(2); - this.b = this9; - var this10 = new Array(2); - this.c = this10; - var this11 = new Array(2); - this.window = this11; - var this12 = new Array(2); - this.bitReverseData = this12; - this.initBlocksize(0,header.blocksize0); - this.initBlocksize(1,header.blocksize1); -}; -$hxClasses["kha.audio2.ogg.vorbis.VorbisDecoder"] = kha_audio2_ogg_vorbis_VorbisDecoder; -kha_audio2_ogg_vorbis_VorbisDecoder.__name__ = true; -kha_audio2_ogg_vorbis_VorbisDecoder.start = function(input) { - var decodeState = new kha_audio2_ogg_vorbis_VorbisDecodeState(input); - var header = kha_audio2_ogg_vorbis_data_Header.read(decodeState); - var decoder = new kha_audio2_ogg_vorbis_VorbisDecoder(header,decodeState); - decodeState.startFirstDecode(); - decoder.pumpFirstFrame(); - return decoder; -}; -kha_audio2_ogg_vorbis_VorbisDecoder.prototype = { - previousWindow: null - ,previousLength: null - ,finalY: null - ,a: null - ,b: null - ,c: null - ,window: null - ,bitReverseData: null - ,channelBuffers: null - ,channelBufferStart: null - ,channelBufferEnd: null - ,header: null - ,currentSample: null - ,totalSample: null - ,decodeState: null - ,read: function(output,samples,channels,sampleRate,useFloat) { - var b = this.header.sampleRate; - if((_$UInt_UInt_$Impl_$.toFloat(sampleRate) % _$UInt_UInt_$Impl_$.toFloat(b) | 0) != 0) { - throw new js__$Boot_HaxeError("Unsupported sampleRate : can't convert " + Std.string(_$UInt_UInt_$Impl_$.toFloat(this.header.sampleRate)) + " to " + sampleRate); - } - if(channels % this.header.channel != 0) { - throw new js__$Boot_HaxeError("Unsupported channels : can't convert " + this.header.channel + " to " + channels); - } - var b1 = this.header.sampleRate; - var sampleRepeat = _$UInt_UInt_$Impl_$.toFloat(sampleRate) / _$UInt_UInt_$Impl_$.toFloat(b1) | 0; - var channelRepeat = channels / this.header.channel | 0; - var n = 0; - var len = Math.floor(samples / sampleRepeat); - if(this.totalSample != null && len > this.totalSample - this.currentSample) { - len = this.totalSample - this.currentSample; - } - var index = 0; - while(n < len) { - var k = this.channelBufferEnd - this.channelBufferStart; - if(k >= len - n) { - k = len - n; - } - var _g1 = this.channelBufferStart; - var _g = this.channelBufferStart + k; - while(_g1 < _g) { - var j = _g1++; - var _g3 = 0; - var _g2 = sampleRepeat; - while(_g3 < _g2) { - var sr = _g3++; - var _g5 = 0; - var _g4 = this.header.channel; - while(_g5 < _g4) { - var i = _g5++; - var _g7 = 0; - var _g6 = channelRepeat; - while(_g7 < _g6) { - var cr = _g7++; - var value = this.channelBuffers[i][j]; - if(value > 1) { - value = 1; - } else if(value < -1) { - value = -1; - } - if(useFloat) { - output[index] = value; - ++index; - } - } - } - } - } - n += k; - this.channelBufferStart += k; - if(n == len || this.getFrameFloat() == 0) { - break; - } - } - var _g11 = n; - var _g8 = len; - while(_g11 < _g8) { - var j1 = _g11++; - var _g31 = 0; - var _g21 = sampleRepeat; - while(_g31 < _g21) { - var sr1 = _g31++; - var _g51 = 0; - var _g41 = this.header.channel; - while(_g51 < _g41) { - var i1 = _g51++; - var _g71 = 0; - var _g61 = channelRepeat; - while(_g71 < _g61) { - var cr1 = _g71++; - if(useFloat) { - output[index] = 0; - ++index; - } - } - } - } - } - this.currentSample += len; - return len * sampleRepeat; - } - ,skipSamples: function(len) { - var n = 0; - if(this.totalSample != null && len > this.totalSample - this.currentSample) { - len = this.totalSample - this.currentSample; - } - while(n < len) { - var k = this.channelBufferEnd - this.channelBufferStart; - if(k >= len - n) { - k = len - n; - } - n += k; - this.channelBufferStart += k; - if(n == len || this.getFrameFloat() == 0) { - break; - } - } - this.currentSample += len; - return len; - } - ,setupSampleNumber: function(seekFunc,inputLength) { - if(this.totalSample == null) { - this.totalSample = this.decodeState.getSampleNumber(seekFunc,inputLength); - } - } - ,seek: function(seekFunc,inputLength,sampleNumber) { - if(this.currentSample == sampleNumber) { - return; - } - if(this.totalSample == null) { - this.setupSampleNumber(seekFunc,inputLength); - if(this.totalSample == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE,null,{ fileName : "VorbisDecoder.hx", lineNumber : 187, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "seek"})); - } - } - if(sampleNumber < 0) { - sampleNumber = 0; - } - var p0 = this.decodeState.pFirst; - var p1 = this.decodeState.pLast; - if(sampleNumber >= p1.lastDecodedSample) { - sampleNumber = p1.lastDecodedSample - 1; - } - if(sampleNumber < p0.lastDecodedSample) { - this.seekFrameFromPage(seekFunc,p0.pageStart,0,sampleNumber); - } else { - var attempts = 0; - while(p0.pageEnd < p1.pageStart) { - var startOffset = p0.pageEnd; - var endOffset = p1.afterPreviousPageStart; - var startSample = p0.lastDecodedSample; - var endSample = p1.lastDecodedSample; - if(startSample == null || endSample == null) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{ fileName : "VorbisDecoder.hx", lineNumber : 219, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "seek"})); - } - if(_$UInt_UInt_$Impl_$.gt(endOffset,startOffset + 4000)) { - endOffset = endOffset - 4000; - } - var probe = startOffset + Math.floor(_$UInt_UInt_$Impl_$.toFloat(endOffset - startOffset) / _$UInt_UInt_$Impl_$.toFloat(endSample - startSample) * (sampleNumber - startSample)); - if(attempts >= 4) { - var probe2 = startOffset + (endOffset - startOffset >>> 1); - if(attempts >= 8) { - probe = probe2; - } else if(_$UInt_UInt_$Impl_$.gt(probe2,probe)) { - probe = probe + (probe2 - probe >>> 1); - } else { - probe = probe2 + (probe - probe2 >>> 1); - } - } - ++attempts; - seekFunc(this.decodeState.inputPosition = probe); - var _g = this.decodeState.findPage(seekFunc,inputLength); - switch(_g[1]) { - case 0: - break; - case 1: - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{ fileName : "VorbisDecoder.hx", lineNumber : 249, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "seek"})); - break; - } - var q = this.decodeState.analyzePage(seekFunc,this.header); - if(q == null) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{ fileName : "VorbisDecoder.hx", lineNumber : 255, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "seek"})); - } - q.afterPreviousPageStart = probe; - if(q.pageStart == p1.pageStart) { - p1 = q; - continue; - } - if(sampleNumber < q.lastDecodedSample) { - p1 = q; - } else { - p0 = q; - } - } - if(p0.lastDecodedSample <= sampleNumber && sampleNumber < p1.lastDecodedSample) { - this.seekFrameFromPage(seekFunc,p1.pageStart,p0.lastDecodedSample,sampleNumber); - } else { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{ fileName : "VorbisDecoder.hx", lineNumber : 275, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "seek"})); - } - } - } - ,seekFrameFromPage: function(seekFunc,pageStart,firstSample,targetSample) { - var frame = 0; - var frameStart = firstSample; - seekFunc(this.decodeState.inputPosition = pageStart); - this.decodeState.nextSeg = -1; - var leftEnd = 0; - var leftStart = 0; - var prevState = null; - var lastState = null; - while(true) { - prevState = lastState; - lastState = this.decodeState.clone(seekFunc); - var initialResult = this.decodeInitial(); - if(initialResult == null) { - lastState = prevState; - break; - } - leftStart = initialResult.left.start; - leftEnd = initialResult.left.end; - var start = frame == 0 ? leftEnd : leftStart; - if(targetSample < frameStart + initialResult.right.start - start) { - break; - } - var _this = this.decodeState; - while(_this.bytesInSeg != 0 || !_this.lastSeg && _this.next() != 0) { - _this.bytesInSeg--; - _this.inputPosition += 1; - _this.input.readByte(); - } - frameStart += initialResult.right.start - start; - ++frame; - } - this.decodeState = lastState; - seekFunc(this.decodeState.inputPosition); - this.previousLength = 0; - this.pumpFirstFrame(); - this.currentSample = frameStart; - this.skipSamples(targetSample - frameStart); - } - ,clone: function(seekFunc) { - var decoder = Type.createEmptyInstance(kha_audio2_ogg_vorbis_VorbisDecoder); - decoder.currentSample = this.currentSample; - decoder.totalSample = this.totalSample; - decoder.previousLength = this.previousLength; - decoder.channelBufferStart = this.channelBufferStart; - decoder.channelBufferEnd = this.channelBufferEnd; - decoder.a = this.a; - decoder.b = this.b; - decoder.c = this.c; - decoder.window = this.window; - decoder.bitReverseData = this.bitReverseData; - decoder.header = this.header; - decoder.decodeState = this.decodeState.clone(seekFunc); - var length = this.header.channel; - var this1 = new Array(length); - decoder.channelBuffers = this1; - var length1 = this.header.channel; - var this2 = new Array(length1); - decoder.previousWindow = this2; - var length2 = this.header.channel; - var this3 = new Array(length2); - decoder.finalY = this3; - var _g1 = 0; - var _g = this.header.channel; - while(_g1 < _g) { - var i = _g1++; - decoder.channelBuffers[i] = kha_audio2_ogg_vorbis_VorbisTools.copyVector(this.channelBuffers[i]); - decoder.previousWindow[i] = kha_audio2_ogg_vorbis_VorbisTools.copyVector(this.previousWindow[i]); - decoder.finalY[i] = Lambda.array(this.finalY[i]); - } - return decoder; - } - ,ensurePosition: function(seekFunc) { - seekFunc(this.decodeState.inputPosition); - } - ,getFrameFloat: function() { - var result = this.decodePacket(); - if(result == null) { - this.channelBufferStart = this.channelBufferEnd = 0; - return 0; - } - var len = this.finishFrame(result); - this.channelBufferStart = result.left; - this.channelBufferEnd = result.left + len; - return len; - } - ,pumpFirstFrame: function() { - this.finishFrame(this.decodePacket()); - } - ,finishFrame: function(r) { - var len = r.len; - var right = r.right; - var left = r.left; - if(this.previousLength != 0) { - var n = this.previousLength; - var w = this.getWindow(n); - var _g1 = 0; - var _g = this.header.channel; - while(_g1 < _g) { - var i = _g1++; - var cb = this.channelBuffers[i]; - var pw = this.previousWindow[i]; - var _g3 = 0; - var _g2 = n; - while(_g3 < _g2) { - var j = _g3++; - cb[left + j] = cb[left + j] * w[j] + pw[j] * w[n - 1 - j]; - } - } - } - var prev = this.previousLength; - this.previousLength = len - right; - var _g11 = 0; - var _g4 = this.header.channel; - while(_g11 < _g4) { - var i1 = _g11++; - var pw1 = this.previousWindow[i1]; - var cb1 = this.channelBuffers[i1]; - var _g31 = 0; - var _g21 = len - right; - while(_g31 < _g21) { - var j1 = _g31++; - pw1[j1] = cb1[right + j1]; - } - } - if(prev == 0) { - return 0; - } - if(len < right) { - right = len; - } - return right - left; - } - ,getWindow: function(len) { - len <<= 1; - if(len == this.header.blocksize0) { - return this.window[0]; - } else if(len == this.header.blocksize1) { - return this.window[1]; - } else { - return null; - } - } - ,initBlocksize: function(bs,n) { - var n2 = n >> 1; - var n4 = n >> 2; - var n8 = n >> 3; - var this1 = this.a; - var this2 = new Array(n2); - this1[bs] = this2; - var this3 = this.b; - var this4 = new Array(n2); - this3[bs] = this4; - var this5 = this.c; - var this6 = new Array(n4); - this5[bs] = this6; - var this7 = this.window; - var this8 = new Array(n2); - this7[bs] = this8; - var this9 = this.bitReverseData; - var this10 = new Array(n8); - this9[bs] = this10; - kha_audio2_ogg_vorbis_VorbisTools.computeTwiddleFactors(n,this.a[bs],this.b[bs],this.c[bs]); - kha_audio2_ogg_vorbis_VorbisTools.computeWindow(n,this.window[bs]); - kha_audio2_ogg_vorbis_VorbisTools.computeBitReverse(n,this.bitReverseData[bs]); - } - ,inverseMdct: function(buffer,n,blocktype) { - var bt = blocktype ? 1 : 0; - var a = this.a[bt]; - var b = this.b[bt]; - var c = this.c[bt]; - var bitReverse = this.bitReverseData[bt]; - var n2 = n >> 1; - var n4 = n >> 2; - var n8 = n >> 3; - var this1 = new Array(n2); - var buf2 = this1; - var dOffset = n2 - 2; - var aaOffset = 0; - var eOffset = 0; - var eStopOffset = n2; - while(eOffset != eStopOffset) { - buf2[dOffset + 1] = buffer[eOffset] * a[aaOffset] - buffer[eOffset + 2] * a[aaOffset + 1]; - buf2[dOffset] = buffer[eOffset] * a[aaOffset + 1] + buffer[eOffset + 2] * a[aaOffset]; - dOffset -= 2; - aaOffset += 2; - eOffset += 4; - } - eOffset = n2 - 3; - while(dOffset >= 0) { - buf2[dOffset + 1] = -buffer[eOffset + 2] * a[aaOffset] - -buffer[eOffset] * a[aaOffset + 1]; - buf2[dOffset] = -buffer[eOffset + 2] * a[aaOffset + 1] + -buffer[eOffset] * a[aaOffset]; - dOffset -= 2; - aaOffset += 2; - eOffset -= 4; - } - var u = buffer; - var v = buf2; - var aaOffset1 = n2 - 8; - var eOffset0 = n4; - var eOffset1 = 0; - var dOffset0 = n4; - var dOffset1 = 0; - while(aaOffset1 >= 0) { - var v41_21 = v[eOffset0 + 1] - v[eOffset1 + 1]; - var v40_20 = v[eOffset0] - v[eOffset1]; - u[dOffset0 + 1] = v[eOffset0 + 1] + v[eOffset1 + 1]; - u[dOffset0] = v[eOffset0] + v[eOffset1]; - u[dOffset1 + 1] = v41_21 * a[aaOffset1 + 4] - v40_20 * a[aaOffset1 + 5]; - u[dOffset1] = v40_20 * a[aaOffset1 + 4] + v41_21 * a[aaOffset1 + 5]; - v41_21 = v[eOffset0 + 3] - v[eOffset1 + 3]; - v40_20 = v[eOffset0 + 2] - v[eOffset1 + 2]; - u[dOffset0 + 3] = v[eOffset0 + 3] + v[eOffset1 + 3]; - u[dOffset0 + 2] = v[eOffset0 + 2] + v[eOffset1 + 2]; - u[dOffset1 + 3] = v41_21 * a[aaOffset1] - v40_20 * a[aaOffset1 + 1]; - u[dOffset1 + 2] = v40_20 * a[aaOffset1] + v41_21 * a[aaOffset1 + 1]; - aaOffset1 -= 8; - dOffset0 += 4; - dOffset1 += 4; - eOffset0 += 4; - eOffset1 += 4; - } - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var ld = (n < 16384 ? n < 16 ? log2_4[n] : n < 512 ? 5 + log2_4[n >> 5] : 10 + log2_4[n >> 10] : n < 16777216 ? n < 524288 ? 15 + log2_4[n >> 15] : 20 + log2_4[n >> 20] : n < 536870912 ? 25 + log2_4[n >> 25] : n < -2147483648 ? 30 + log2_4[n >> 30] : 0) - 1; - var i_off = n2 - 1 - n4 * 0; - var eeOffset0 = i_off; - var eeOffset2 = i_off + -(n >> 3); - var aOffset = 0; - var i = (n >> 4 >> 2) + 1; - while(--i > 0) { - var k00_20 = u[eeOffset0] - u[eeOffset2]; - var k01_21 = u[eeOffset0 + -1] - u[eeOffset2 + -1]; - var _g = eeOffset0; - var _g1 = u; - _g1[_g] = _g1[_g] + u[eeOffset2]; - var _g2 = eeOffset0 + -1; - var _g11 = u; - _g11[_g2] = _g11[_g2] + u[eeOffset2 + -1]; - u[eeOffset2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -1] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -2] - u[eeOffset2 + -2]; - k01_21 = u[eeOffset0 + -3] - u[eeOffset2 + -3]; - var _g3 = eeOffset0 + -2; - var _g12 = u; - _g12[_g3] = _g12[_g3] + u[eeOffset2 + -2]; - var _g4 = eeOffset0 + -3; - var _g13 = u; - _g13[_g4] = _g13[_g4] + u[eeOffset2 + -3]; - u[eeOffset2 + -2] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -3] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -4] - u[eeOffset2 + -4]; - k01_21 = u[eeOffset0 + -5] - u[eeOffset2 + -5]; - var _g5 = eeOffset0 + -4; - var _g14 = u; - _g14[_g5] = _g14[_g5] + u[eeOffset2 + -4]; - var _g6 = eeOffset0 + -5; - var _g15 = u; - _g15[_g6] = _g15[_g6] + u[eeOffset2 + -5]; - u[eeOffset2 + -4] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -5] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - k00_20 = u[eeOffset0 + -6] - u[eeOffset2 + -6]; - k01_21 = u[eeOffset0 + -7] - u[eeOffset2 + -7]; - var _g7 = eeOffset0 + -6; - var _g16 = u; - _g16[_g7] = _g16[_g7] + u[eeOffset2 + -6]; - var _g8 = eeOffset0 + -7; - var _g17 = u; - _g17[_g8] = _g17[_g8] + u[eeOffset2 + -7]; - u[eeOffset2 + -6] = k00_20 * a[aOffset] - k01_21 * a[aOffset + 1]; - u[eeOffset2 + -7] = k01_21 * a[aOffset] + k00_20 * a[aOffset + 1]; - aOffset += 8; - eeOffset0 -= 8; - eeOffset2 -= 8; - } - var i_off1 = n2 - 1 - n4; - var eeOffset01 = i_off1; - var eeOffset21 = i_off1 + -(n >> 3); - var aOffset1 = 0; - var i1 = (n >> 4 >> 2) + 1; - while(--i1 > 0) { - var k00_201 = u[eeOffset01] - u[eeOffset21]; - var k01_211 = u[eeOffset01 + -1] - u[eeOffset21 + -1]; - var _g9 = eeOffset01; - var _g18 = u; - _g18[_g9] = _g18[_g9] + u[eeOffset21]; - var _g10 = eeOffset01 + -1; - var _g19 = u; - _g19[_g10] = _g19[_g10] + u[eeOffset21 + -1]; - u[eeOffset21] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -1] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -2] - u[eeOffset21 + -2]; - k01_211 = u[eeOffset01 + -3] - u[eeOffset21 + -3]; - var _g20 = eeOffset01 + -2; - var _g110 = u; - _g110[_g20] = _g110[_g20] + u[eeOffset21 + -2]; - var _g21 = eeOffset01 + -3; - var _g111 = u; - _g111[_g21] = _g111[_g21] + u[eeOffset21 + -3]; - u[eeOffset21 + -2] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -3] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -4] - u[eeOffset21 + -4]; - k01_211 = u[eeOffset01 + -5] - u[eeOffset21 + -5]; - var _g22 = eeOffset01 + -4; - var _g112 = u; - _g112[_g22] = _g112[_g22] + u[eeOffset21 + -4]; - var _g23 = eeOffset01 + -5; - var _g113 = u; - _g113[_g23] = _g113[_g23] + u[eeOffset21 + -5]; - u[eeOffset21 + -4] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -5] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - k00_201 = u[eeOffset01 + -6] - u[eeOffset21 + -6]; - k01_211 = u[eeOffset01 + -7] - u[eeOffset21 + -7]; - var _g24 = eeOffset01 + -6; - var _g114 = u; - _g114[_g24] = _g114[_g24] + u[eeOffset21 + -6]; - var _g25 = eeOffset01 + -7; - var _g115 = u; - _g115[_g25] = _g115[_g25] + u[eeOffset21 + -7]; - u[eeOffset21 + -6] = k00_201 * a[aOffset1] - k01_211 * a[aOffset1 + 1]; - u[eeOffset21 + -7] = k01_211 * a[aOffset1] + k00_201 * a[aOffset1 + 1]; - aOffset1 += 8; - eeOffset01 -= 8; - eeOffset21 -= 8; - } - var d0 = n2 - 1 - n8 * 0; - var aOffset2 = 0; - var eOffset01 = d0; - var eOffset2 = d0 + -(n >> 4); - var i2 = (n >> 5 >> 2) + 1; - while(--i2 > 0) { - var k00_202 = u[eOffset01] - u[eOffset2]; - var k01_212 = u[eOffset01 + -1] - u[eOffset2 + -1]; - var _g26 = eOffset01; - var _g116 = u; - _g116[_g26] = _g116[_g26] + u[eOffset2]; - var _g27 = eOffset01 + -1; - var _g117 = u; - _g117[_g27] = _g117[_g27] + u[eOffset2 + -1]; - u[eOffset2] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -1] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -2] - u[eOffset2 + -2]; - k01_212 = u[eOffset01 + -3] - u[eOffset2 + -3]; - var _g28 = eOffset01 + -2; - var _g118 = u; - _g118[_g28] = _g118[_g28] + u[eOffset2 + -2]; - var _g29 = eOffset01 + -3; - var _g119 = u; - _g119[_g29] = _g119[_g29] + u[eOffset2 + -3]; - u[eOffset2 + -2] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -3] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -4] - u[eOffset2 + -4]; - k01_212 = u[eOffset01 + -5] - u[eOffset2 + -5]; - var _g30 = eOffset01 + -4; - var _g120 = u; - _g120[_g30] = _g120[_g30] + u[eOffset2 + -4]; - var _g31 = eOffset01 + -5; - var _g121 = u; - _g121[_g31] = _g121[_g31] + u[eOffset2 + -5]; - u[eOffset2 + -4] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -5] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - aOffset2 += 16; - k00_202 = u[eOffset01 + -6] - u[eOffset2 + -6]; - k01_212 = u[eOffset01 + -7] - u[eOffset2 + -7]; - var _g32 = eOffset01 + -6; - var _g122 = u; - _g122[_g32] = _g122[_g32] + u[eOffset2 + -6]; - var _g33 = eOffset01 + -7; - var _g123 = u; - _g123[_g33] = _g123[_g33] + u[eOffset2 + -7]; - u[eOffset2 + -6] = k00_202 * a[aOffset2] - k01_212 * a[aOffset2 + 1]; - u[eOffset2 + -7] = k01_212 * a[aOffset2] + k00_202 * a[aOffset2 + 1]; - eOffset01 -= 8; - eOffset2 -= 8; - aOffset2 += 16; - } - var d01 = n2 - 1 - n8; - var aOffset3 = 0; - var eOffset02 = d01; - var eOffset21 = d01 + -(n >> 4); - var i3 = (n >> 5 >> 2) + 1; - while(--i3 > 0) { - var k00_203 = u[eOffset02] - u[eOffset21]; - var k01_213 = u[eOffset02 + -1] - u[eOffset21 + -1]; - var _g34 = eOffset02; - var _g124 = u; - _g124[_g34] = _g124[_g34] + u[eOffset21]; - var _g35 = eOffset02 + -1; - var _g125 = u; - _g125[_g35] = _g125[_g35] + u[eOffset21 + -1]; - u[eOffset21] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -1] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -2] - u[eOffset21 + -2]; - k01_213 = u[eOffset02 + -3] - u[eOffset21 + -3]; - var _g36 = eOffset02 + -2; - var _g126 = u; - _g126[_g36] = _g126[_g36] + u[eOffset21 + -2]; - var _g37 = eOffset02 + -3; - var _g127 = u; - _g127[_g37] = _g127[_g37] + u[eOffset21 + -3]; - u[eOffset21 + -2] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -3] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -4] - u[eOffset21 + -4]; - k01_213 = u[eOffset02 + -5] - u[eOffset21 + -5]; - var _g38 = eOffset02 + -4; - var _g128 = u; - _g128[_g38] = _g128[_g38] + u[eOffset21 + -4]; - var _g39 = eOffset02 + -5; - var _g129 = u; - _g129[_g39] = _g129[_g39] + u[eOffset21 + -5]; - u[eOffset21 + -4] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -5] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - aOffset3 += 16; - k00_203 = u[eOffset02 + -6] - u[eOffset21 + -6]; - k01_213 = u[eOffset02 + -7] - u[eOffset21 + -7]; - var _g40 = eOffset02 + -6; - var _g130 = u; - _g130[_g40] = _g130[_g40] + u[eOffset21 + -6]; - var _g41 = eOffset02 + -7; - var _g131 = u; - _g131[_g41] = _g131[_g41] + u[eOffset21 + -7]; - u[eOffset21 + -6] = k00_203 * a[aOffset3] - k01_213 * a[aOffset3 + 1]; - u[eOffset21 + -7] = k01_213 * a[aOffset3] + k00_203 * a[aOffset3 + 1]; - eOffset02 -= 8; - eOffset21 -= 8; - aOffset3 += 16; - } - var d02 = n2 - 1 - n8 * 2; - var aOffset4 = 0; - var eOffset03 = d02; - var eOffset22 = d02 + -(n >> 4); - var i4 = (n >> 5 >> 2) + 1; - while(--i4 > 0) { - var k00_204 = u[eOffset03] - u[eOffset22]; - var k01_214 = u[eOffset03 + -1] - u[eOffset22 + -1]; - var _g42 = eOffset03; - var _g132 = u; - _g132[_g42] = _g132[_g42] + u[eOffset22]; - var _g43 = eOffset03 + -1; - var _g133 = u; - _g133[_g43] = _g133[_g43] + u[eOffset22 + -1]; - u[eOffset22] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -1] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -2] - u[eOffset22 + -2]; - k01_214 = u[eOffset03 + -3] - u[eOffset22 + -3]; - var _g44 = eOffset03 + -2; - var _g134 = u; - _g134[_g44] = _g134[_g44] + u[eOffset22 + -2]; - var _g45 = eOffset03 + -3; - var _g135 = u; - _g135[_g45] = _g135[_g45] + u[eOffset22 + -3]; - u[eOffset22 + -2] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -3] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -4] - u[eOffset22 + -4]; - k01_214 = u[eOffset03 + -5] - u[eOffset22 + -5]; - var _g46 = eOffset03 + -4; - var _g136 = u; - _g136[_g46] = _g136[_g46] + u[eOffset22 + -4]; - var _g47 = eOffset03 + -5; - var _g137 = u; - _g137[_g47] = _g137[_g47] + u[eOffset22 + -5]; - u[eOffset22 + -4] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -5] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - aOffset4 += 16; - k00_204 = u[eOffset03 + -6] - u[eOffset22 + -6]; - k01_214 = u[eOffset03 + -7] - u[eOffset22 + -7]; - var _g48 = eOffset03 + -6; - var _g138 = u; - _g138[_g48] = _g138[_g48] + u[eOffset22 + -6]; - var _g49 = eOffset03 + -7; - var _g139 = u; - _g139[_g49] = _g139[_g49] + u[eOffset22 + -7]; - u[eOffset22 + -6] = k00_204 * a[aOffset4] - k01_214 * a[aOffset4 + 1]; - u[eOffset22 + -7] = k01_214 * a[aOffset4] + k00_204 * a[aOffset4 + 1]; - eOffset03 -= 8; - eOffset22 -= 8; - aOffset4 += 16; - } - var d03 = n2 - 1 - n8 * 3; - var aOffset5 = 0; - var eOffset04 = d03; - var eOffset23 = d03 + -(n >> 4); - var i5 = (n >> 5 >> 2) + 1; - while(--i5 > 0) { - var k00_205 = u[eOffset04] - u[eOffset23]; - var k01_215 = u[eOffset04 + -1] - u[eOffset23 + -1]; - var _g50 = eOffset04; - var _g140 = u; - _g140[_g50] = _g140[_g50] + u[eOffset23]; - var _g51 = eOffset04 + -1; - var _g141 = u; - _g141[_g51] = _g141[_g51] + u[eOffset23 + -1]; - u[eOffset23] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -1] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -2] - u[eOffset23 + -2]; - k01_215 = u[eOffset04 + -3] - u[eOffset23 + -3]; - var _g52 = eOffset04 + -2; - var _g142 = u; - _g142[_g52] = _g142[_g52] + u[eOffset23 + -2]; - var _g53 = eOffset04 + -3; - var _g143 = u; - _g143[_g53] = _g143[_g53] + u[eOffset23 + -3]; - u[eOffset23 + -2] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -3] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -4] - u[eOffset23 + -4]; - k01_215 = u[eOffset04 + -5] - u[eOffset23 + -5]; - var _g54 = eOffset04 + -4; - var _g144 = u; - _g144[_g54] = _g144[_g54] + u[eOffset23 + -4]; - var _g55 = eOffset04 + -5; - var _g145 = u; - _g145[_g55] = _g145[_g55] + u[eOffset23 + -5]; - u[eOffset23 + -4] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -5] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - aOffset5 += 16; - k00_205 = u[eOffset04 + -6] - u[eOffset23 + -6]; - k01_215 = u[eOffset04 + -7] - u[eOffset23 + -7]; - var _g56 = eOffset04 + -6; - var _g146 = u; - _g146[_g56] = _g146[_g56] + u[eOffset23 + -6]; - var _g57 = eOffset04 + -7; - var _g147 = u; - _g147[_g57] = _g147[_g57] + u[eOffset23 + -7]; - u[eOffset23 + -6] = k00_205 * a[aOffset5] - k01_215 * a[aOffset5 + 1]; - u[eOffset23 + -7] = k01_215 * a[aOffset5] + k00_205 * a[aOffset5 + 1]; - eOffset04 -= 8; - eOffset23 -= 8; - aOffset5 += 16; - } - var _g148 = 2; - var _g58 = ld - 3 >> 1; - while(_g148 < _g58) { - var l = _g148++; - var k0 = n >> l + 2; - var k0_2 = k0 >> 1; - var lim = 1 << l + 1; - var _g310 = 0; - var _g210 = lim; - while(_g310 < _g210) { - var i6 = _g310++; - var d04 = n2 - 1 - k0 * i6; - var k1 = 1 << l + 3; - var aOffset6 = 0; - var eOffset05 = d04; - var eOffset24 = d04 + -k0_2; - var i7 = (n >> l + 4 >> 2) + 1; - while(--i7 > 0) { - var k00_206 = u[eOffset05] - u[eOffset24]; - var k01_216 = u[eOffset05 + -1] - u[eOffset24 + -1]; - var _g59 = eOffset05; - var _g149 = u; - _g149[_g59] = _g149[_g59] + u[eOffset24]; - var _g60 = eOffset05 + -1; - var _g150 = u; - _g150[_g60] = _g150[_g60] + u[eOffset24 + -1]; - u[eOffset24] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -1] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -2] - u[eOffset24 + -2]; - k01_216 = u[eOffset05 + -3] - u[eOffset24 + -3]; - var _g61 = eOffset05 + -2; - var _g151 = u; - _g151[_g61] = _g151[_g61] + u[eOffset24 + -2]; - var _g62 = eOffset05 + -3; - var _g152 = u; - _g152[_g62] = _g152[_g62] + u[eOffset24 + -3]; - u[eOffset24 + -2] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -3] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -4] - u[eOffset24 + -4]; - k01_216 = u[eOffset05 + -5] - u[eOffset24 + -5]; - var _g63 = eOffset05 + -4; - var _g153 = u; - _g153[_g63] = _g153[_g63] + u[eOffset24 + -4]; - var _g64 = eOffset05 + -5; - var _g154 = u; - _g154[_g64] = _g154[_g64] + u[eOffset24 + -5]; - u[eOffset24 + -4] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -5] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - aOffset6 += k1; - k00_206 = u[eOffset05 + -6] - u[eOffset24 + -6]; - k01_216 = u[eOffset05 + -7] - u[eOffset24 + -7]; - var _g65 = eOffset05 + -6; - var _g155 = u; - _g155[_g65] = _g155[_g65] + u[eOffset24 + -6]; - var _g66 = eOffset05 + -7; - var _g156 = u; - _g156[_g66] = _g156[_g66] + u[eOffset24 + -7]; - u[eOffset24 + -6] = k00_206 * a[aOffset6] - k01_216 * a[aOffset6 + 1]; - u[eOffset24 + -7] = k01_216 * a[aOffset6] + k00_206 * a[aOffset6 + 1]; - eOffset05 -= 8; - eOffset24 -= 8; - aOffset6 += k1; - } - } - } - var _g157 = ld - 3 >> 1; - var _g67 = ld - 6; - while(_g157 < _g67) { - var l1 = _g157++; - var k01 = n >> l1 + 2; - var k11 = 1 << l1 + 3; - var k0_21 = k01 >> 1; - var rlim = n >> l1 + 6; - var lim1 = 1 << l1 + 1; - var aOffset7 = 0; - var i_off2 = n2 - 1; - var r = rlim + 1; - while(--r > 0) { - var A0 = a[aOffset7]; - var A1 = a[aOffset7 + 1]; - var A2 = a[aOffset7 + k11]; - var A3 = a[aOffset7 + k11 + 1]; - var A4 = a[aOffset7 + k11 * 2]; - var A5 = a[aOffset7 + k11 * 2 + 1]; - var A6 = a[aOffset7 + k11 * 3]; - var A7 = a[aOffset7 + k11 * 3 + 1]; - var eeOffset02 = i_off2; - var eeOffset22 = i_off2 + -k0_21; - var i8 = lim1 + 1; - while(--i8 > 0) { - var k00 = u[eeOffset02] - u[eeOffset22]; - var k111 = u[eeOffset02 + -1] - u[eeOffset22 + -1]; - u[eeOffset02] = u[eeOffset02] + u[eeOffset22]; - u[eeOffset02 + -1] = u[eeOffset02 + -1] + u[eeOffset22 + -1]; - u[eeOffset22] = k00 * A0 - k111 * A1; - u[eeOffset22 + -1] = k111 * A0 + k00 * A1; - k00 = u[eeOffset02 + -2] - u[eeOffset22 + -2]; - k111 = u[eeOffset02 + -3] - u[eeOffset22 + -3]; - u[eeOffset02 + -2] = u[eeOffset02 + -2] + u[eeOffset22 + -2]; - u[eeOffset02 + -3] = u[eeOffset02 + -3] + u[eeOffset22 + -3]; - u[eeOffset22 + -2] = k00 * A2 - k111 * A3; - u[eeOffset22 + -3] = k111 * A2 + k00 * A3; - k00 = u[eeOffset02 + -4] - u[eeOffset22 + -4]; - k111 = u[eeOffset02 + -5] - u[eeOffset22 + -5]; - u[eeOffset02 + -4] = u[eeOffset02 + -4] + u[eeOffset22 + -4]; - u[eeOffset02 + -5] = u[eeOffset02 + -5] + u[eeOffset22 + -5]; - u[eeOffset22 + -4] = k00 * A4 - k111 * A5; - u[eeOffset22 + -5] = k111 * A4 + k00 * A5; - k00 = u[eeOffset02 + -6] - u[eeOffset22 + -6]; - k111 = u[eeOffset02 + -7] - u[eeOffset22 + -7]; - u[eeOffset02 + -6] = u[eeOffset02 + -6] + u[eeOffset22 + -6]; - u[eeOffset02 + -7] = u[eeOffset02 + -7] + u[eeOffset22 + -7]; - u[eeOffset22 + -6] = k00 * A6 - k111 * A7; - u[eeOffset22 + -7] = k111 * A6 + k00 * A7; - eeOffset02 -= k01; - eeOffset22 -= k01; - } - aOffset7 += k11 * 4; - i_off2 -= 8; - } - } - var i_off3 = n2 - 1; - var A21 = a[n >> 3]; - var zOffset = i_off3; - var baseOffset = i_off3 - 16 * (n >> 5); - while(zOffset > baseOffset) { - var t0 = u[zOffset]; - var t1 = u[zOffset + -8]; - u[zOffset + -8] = t0 - t1; - u[zOffset] = t0 + t1; - t0 = u[zOffset + -1]; - t1 = u[zOffset + -9]; - u[zOffset + -9] = t0 - t1; - u[zOffset + -1] = t0 + t1; - t0 = u[zOffset + -2]; - t1 = u[zOffset + -10]; - var k001 = t0 - t1; - u[zOffset + -2] = t0 + t1; - t0 = u[zOffset + -3]; - t1 = u[zOffset + -11]; - var k112 = t0 - t1; - u[zOffset + -3] = t0 + t1; - u[zOffset + -10] = (k001 + k112) * A21; - u[zOffset + -11] = (k112 - k001) * A21; - t0 = u[zOffset + -4]; - t1 = u[zOffset + -12]; - k001 = t1 - t0; - u[zOffset + -4] = t0 + t1; - t0 = u[zOffset + -5]; - t1 = u[zOffset + -13]; - k112 = t0 - t1; - u[zOffset + -5] = t0 + t1; - u[zOffset + -12] = k112; - u[zOffset + -13] = k001; - t0 = u[zOffset + -6]; - t1 = u[zOffset + -14]; - k001 = t1 - t0; - u[zOffset + -6] = t0 + t1; - t0 = u[zOffset + -7]; - t1 = u[zOffset + -15]; - k112 = t0 - t1; - u[zOffset + -7] = t0 + t1; - u[zOffset + -14] = (k001 + k112) * A21; - u[zOffset + -15] = (k001 - k112) * A21; - var t01 = u[zOffset]; - var t11 = u[zOffset + -4]; - var k002 = t01 - t11; - var y0 = t01 + t11; - t01 = u[zOffset + -2]; - t11 = u[zOffset + -6]; - var y2 = t01 + t11; - var k22 = t01 - t11; - u[zOffset] = y0 + y2; - u[zOffset + -2] = y0 - y2; - var k33 = u[zOffset + -3] - u[zOffset + -7]; - u[zOffset + -4] = k002 + k33; - u[zOffset + -6] = k002 - k33; - t01 = u[zOffset + -1]; - t11 = u[zOffset + -5]; - var k113 = t01 - t11; - var y1 = t01 + t11; - var y3 = u[zOffset + -3] + u[zOffset + -7]; - u[zOffset + -1] = y1 + y3; - u[zOffset + -3] = y1 - y3; - u[zOffset + -5] = k113 - k22; - u[zOffset + -7] = k113 + k22; - var zOffset1 = zOffset - 8; - var t02 = u[zOffset1]; - var t12 = u[zOffset1 + -4]; - var k003 = t02 - t12; - var y01 = t02 + t12; - t02 = u[zOffset1 + -2]; - t12 = u[zOffset1 + -6]; - var y21 = t02 + t12; - var k221 = t02 - t12; - u[zOffset1] = y01 + y21; - u[zOffset1 + -2] = y01 - y21; - var k331 = u[zOffset1 + -3] - u[zOffset1 + -7]; - u[zOffset1 + -4] = k003 + k331; - u[zOffset1 + -6] = k003 - k331; - t02 = u[zOffset1 + -1]; - t12 = u[zOffset1 + -5]; - var k114 = t02 - t12; - var y11 = t02 + t12; - var y31 = u[zOffset1 + -3] + u[zOffset1 + -7]; - u[zOffset1 + -1] = y11 + y31; - u[zOffset1 + -3] = y11 - y31; - u[zOffset1 + -5] = k114 - k221; - u[zOffset1 + -7] = k114 + k221; - zOffset -= 16; - } - var brOffset = 0; - var dOffset01 = n4 - 4; - var dOffset11 = n2 - 4; - while(dOffset01 >= 0) { - var k4 = bitReverse[brOffset]; - v[dOffset11 + 3] = u[k4]; - v[dOffset11 + 2] = u[k4 + 1]; - v[dOffset01 + 3] = u[k4 + 2]; - v[dOffset01 + 2] = u[k4 + 3]; - k4 = bitReverse[brOffset + 1]; - v[dOffset11 + 1] = u[k4]; - v[dOffset11] = u[k4 + 1]; - v[dOffset01 + 1] = u[k4 + 2]; - v[dOffset01] = u[k4 + 3]; - dOffset01 -= 4; - dOffset11 -= 4; - brOffset += 2; - } - var cOffset = 0; - var dOffset2 = 0; - var eOffset3 = n2 - 4; - while(dOffset2 < eOffset3) { - var a02 = v[dOffset2] - v[eOffset3 + 2]; - var a11 = v[dOffset2 + 1] + v[eOffset3 + 3]; - var b0 = c[cOffset + 1] * a02 + c[cOffset] * a11; - var b1 = c[cOffset + 1] * a11 - c[cOffset] * a02; - var b2 = v[dOffset2] + v[eOffset3 + 2]; - var b3 = v[dOffset2 + 1] - v[eOffset3 + 3]; - v[dOffset2] = b2 + b0; - v[dOffset2 + 1] = b3 + b1; - v[eOffset3 + 2] = b2 - b0; - v[eOffset3 + 3] = b1 - b3; - a02 = v[dOffset2 + 2] - v[eOffset3]; - a11 = v[dOffset2 + 3] + v[eOffset3 + 1]; - b0 = c[cOffset + 3] * a02 + c[cOffset + 2] * a11; - b1 = c[cOffset + 3] * a11 - c[cOffset + 2] * a02; - b2 = v[dOffset2 + 2] + v[eOffset3]; - b3 = v[dOffset2 + 3] - v[eOffset3 + 1]; - v[dOffset2 + 2] = b2 + b0; - v[dOffset2 + 3] = b3 + b1; - v[eOffset3] = b2 - b0; - v[eOffset3 + 1] = b1 - b3; - cOffset += 4; - dOffset2 += 4; - eOffset3 -= 4; - } - var bOffset = n2 - 8; - var eOffset4 = n2 - 8; - var dOffset02 = 0; - var dOffset12 = n2 - 4; - var dOffset21 = n2; - var dOffset3 = n - 4; - while(eOffset4 >= 0) { - var p3 = buf2[eOffset4 + 6] * b[bOffset + 7] - buf2[eOffset4 + 7] * b[bOffset + 6]; - var p2 = -buf2[eOffset4 + 6] * b[bOffset + 6] - buf2[eOffset4 + 7] * b[bOffset + 7]; - buffer[dOffset02] = p3; - buffer[dOffset12 + 3] = -p3; - buffer[dOffset21] = p2; - buffer[dOffset3 + 3] = p2; - var p1 = buf2[eOffset4 + 4] * b[bOffset + 5] - buf2[eOffset4 + 5] * b[bOffset + 4]; - var p0 = -buf2[eOffset4 + 4] * b[bOffset + 4] - buf2[eOffset4 + 5] * b[bOffset + 5]; - buffer[dOffset02 + 1] = p1; - buffer[dOffset12 + 2] = -p1; - buffer[dOffset21 + 1] = p0; - buffer[dOffset3 + 2] = p0; - p3 = buf2[eOffset4 + 2] * b[bOffset + 3] - buf2[eOffset4 + 3] * b[bOffset + 2]; - p2 = -buf2[eOffset4 + 2] * b[bOffset + 2] - buf2[eOffset4 + 3] * b[bOffset + 3]; - buffer[dOffset02 + 2] = p3; - buffer[dOffset12 + 1] = -p3; - buffer[dOffset21 + 2] = p2; - buffer[dOffset3 + 1] = p2; - p1 = buf2[eOffset4] * b[bOffset + 1] - buf2[eOffset4 + 1] * b[bOffset]; - p0 = -buf2[eOffset4] * b[bOffset] - buf2[eOffset4 + 1] * b[bOffset + 1]; - buffer[dOffset02 + 3] = p1; - buffer[dOffset12] = -p1; - buffer[dOffset21 + 3] = p0; - buffer[dOffset3] = p0; - bOffset -= 8; - eOffset4 -= 8; - dOffset02 += 4; - dOffset21 += 4; - dOffset12 -= 4; - dOffset3 -= 4; - } - } - ,decodePacket: function() { - var result = this.decodeInitial(); - if(result == null) { - return null; - } - var rest = this.decodePacketRest(result); - return rest; - } - ,decodeInitial: function() { - this.channelBufferStart = this.channelBufferEnd = 0; - while(true) { - if(!this.decodeState.maybeStartPacket()) { - return null; - } - var _this = this.decodeState; - var tmp; - if(_this.validBits < 0) { - tmp = 0; - } else if(_this.validBits < 1) { - if(_this.validBits == 0) { - _this.acc = 0; - } - while(true) { - if(_this.bytesInSeg == 0 && (_this.lastSeg || _this.next() == 0)) { - _this.validBits = -1; - break; - } else { - _this.bytesInSeg--; - _this.inputPosition += 1; - _this.acc = _this.acc + (_this.input.readByte() << _this.validBits); - _this.validBits += 8; - } - if(!(_this.validBits < 1)) { - break; - } - } - if(_this.validBits < 0) { - tmp = 0; - } else { - var z = _this.acc & 1; - _this.acc = _this.acc >>> 1; - _this.validBits -= 1; - tmp = z; - } - } else { - var z1 = _this.acc & 1; - _this.acc = _this.acc >>> 1; - _this.validBits -= 1; - tmp = z1; - } - if(tmp != 0) { - while(true) { - var _this1 = this.decodeState; - var x; - if(_this1.bytesInSeg == 0 && (_this1.lastSeg || _this1.next() == 0)) { - x = -1; - } else { - _this1.bytesInSeg--; - _this1.inputPosition += 1; - x = _this1.input.readByte(); - } - _this1.validBits = 0; - if(!(-1 != x)) { - break; - } - } - continue; - } - break; - } - var _this2 = this.decodeState; - var n = this.header.modes.length - 1; - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n1 = n < 16384 ? n < 16 ? log2_4[n] : n < 512 ? 5 + log2_4[n >> 5] : 10 + log2_4[n >> 10] : n < 16777216 ? n < 524288 ? 15 + log2_4[n >> 15] : 20 + log2_4[n >> 20] : n < 536870912 ? 25 + log2_4[n >> 25] : n < -2147483648 ? 30 + log2_4[n >> 30] : 0; - var i; - if(_this2.validBits < 0) { - i = 0; - } else if(_this2.validBits < n1) { - if(n1 > 24) { - i = _this2.readBits(24) + (_this2.readBits(n1 - 24) << 24); - } else { - if(_this2.validBits == 0) { - _this2.acc = 0; - } - while(true) { - if(_this2.bytesInSeg == 0 && (_this2.lastSeg || _this2.next() == 0)) { - _this2.validBits = -1; - break; - } else { - _this2.bytesInSeg--; - _this2.inputPosition += 1; - _this2.acc = _this2.acc + (_this2.input.readByte() << _this2.validBits); - _this2.validBits += 8; - } - if(!(_this2.validBits < n1)) { - break; - } - } - if(_this2.validBits < 0) { - i = 0; - } else { - var z2 = _this2.acc & (1 << n1) - 1; - _this2.acc = _this2.acc >>> n1; - _this2.validBits -= n1; - i = z2; - } - } - } else { - var z3 = _this2.acc & (1 << n1) - 1; - _this2.acc = _this2.acc >>> n1; - _this2.validBits -= n1; - i = z3; - } - if(i == -1 || i >= this.header.modes.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{ fileName : "VorbisDecoder.hx", lineNumber : 519, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "decodeInitial"})); - } - var m = this.header.modes[i]; - var n2; - var prev; - var next; - if(m.blockflag) { - n2 = this.header.blocksize1; - var _this3 = this.decodeState; - if(_this3.validBits < 0) { - prev = 0; - } else if(_this3.validBits < 1) { - if(_this3.validBits == 0) { - _this3.acc = 0; - } - while(true) { - if(_this3.bytesInSeg == 0 && (_this3.lastSeg || _this3.next() == 0)) { - _this3.validBits = -1; - break; - } else { - _this3.bytesInSeg--; - _this3.inputPosition += 1; - _this3.acc = _this3.acc + (_this3.input.readByte() << _this3.validBits); - _this3.validBits += 8; - } - if(!(_this3.validBits < 1)) { - break; - } - } - if(_this3.validBits < 0) { - prev = 0; - } else { - var z4 = _this3.acc & 1; - _this3.acc = _this3.acc >>> 1; - _this3.validBits -= 1; - prev = z4; - } - } else { - var z5 = _this3.acc & 1; - _this3.acc = _this3.acc >>> 1; - _this3.validBits -= 1; - prev = z5; - } - var _this4 = this.decodeState; - if(_this4.validBits < 0) { - next = 0; - } else if(_this4.validBits < 1) { - if(_this4.validBits == 0) { - _this4.acc = 0; - } - while(true) { - if(_this4.bytesInSeg == 0 && (_this4.lastSeg || _this4.next() == 0)) { - _this4.validBits = -1; - break; - } else { - _this4.bytesInSeg--; - _this4.inputPosition += 1; - _this4.acc = _this4.acc + (_this4.input.readByte() << _this4.validBits); - _this4.validBits += 8; - } - if(!(_this4.validBits < 1)) { - break; - } - } - if(_this4.validBits < 0) { - next = 0; - } else { - var z6 = _this4.acc & 1; - _this4.acc = _this4.acc >>> 1; - _this4.validBits -= 1; - next = z6; - } - } else { - var z7 = _this4.acc & 1; - _this4.acc = _this4.acc >>> 1; - _this4.validBits -= 1; - next = z7; - } - } else { - next = 0; - prev = next; - n2 = this.header.blocksize0; - } - var windowCenter = n2 >> 1; - return { mode : i, left : m.blockflag && prev == 0 ? { start : n2 - this.header.blocksize0 >> 2, end : n2 + this.header.blocksize0 >> 2} : { start : 0, end : windowCenter}, right : m.blockflag && next == 0 ? { start : n2 * 3 - this.header.blocksize0 >> 2, end : n2 * 3 + this.header.blocksize0 >> 2} : { start : windowCenter, end : n2}}; - } - ,decodePacketRest: function(r) { - var len = 0; - var m = this.header.modes[r.mode]; - var this1 = new Array(256); - var zeroChannel = this1; - var this2 = new Array(256); - var reallyZeroChannel = this2; - var n = m.blockflag ? this.header.blocksize1 : this.header.blocksize0; - var map = this.header.mapping[m.mapping]; - var n2 = n >> 1; - var rangeList = [256,128,86,64]; - var codebooks = this.header.codebooks; - var _g1 = 0; - var _g = this.header.channel; - while(_g1 < _g) { - var i = _g1++; - var s = map.chan[i].mux; - zeroChannel[i] = false; - var floor = this.header.floorConfig[map.submapFloor[s]]; - if(floor.type == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{ fileName : "VorbisDecoder.hx", lineNumber : 581, className : "kha.audio2.ogg.vorbis.VorbisDecoder", methodName : "decodePacketRest"})); - } else { - var g = floor.floor1; - var _this = this.decodeState; - var tmp; - if(_this.validBits < 0) { - tmp = 0; - } else if(_this.validBits < 1) { - if(_this.validBits == 0) { - _this.acc = 0; - } - while(true) { - if(_this.bytesInSeg == 0 && (_this.lastSeg || _this.next() == 0)) { - _this.validBits = -1; - break; - } else { - _this.bytesInSeg--; - _this.inputPosition += 1; - _this.acc = _this.acc + (_this.input.readByte() << _this.validBits); - _this.validBits += 8; - } - if(!(_this.validBits < 1)) { - break; - } - } - if(_this.validBits < 0) { - tmp = 0; - } else { - var z = _this.acc & 1; - _this.acc = _this.acc >>> 1; - _this.validBits -= 1; - tmp = z; - } - } else { - var z1 = _this.acc & 1; - _this.acc = _this.acc >>> 1; - _this.validBits -= 1; - tmp = z1; - } - if(tmp != 0) { - var fy = []; - var this3 = new Array(256); - var step2Flag = this3; - var range = rangeList[g.floor1Multiplier - 1]; - var offset = 2; - fy = this.finalY[i]; - var _this1 = this.decodeState; - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n1 = (range < 16384 ? range < 16 ? log2_4[range] : range < 512 ? 5 + log2_4[range >> 5] : 10 + log2_4[range >> 10] : range < 16777216 ? range < 524288 ? 15 + log2_4[range >> 15] : 20 + log2_4[range >> 20] : range < 536870912 ? 25 + log2_4[range >> 25] : range < -2147483648 ? 30 + log2_4[range >> 30] : 0) - 1; - var tmp1; - if(_this1.validBits < 0) { - tmp1 = 0; - } else if(_this1.validBits < n1) { - if(n1 > 24) { - tmp1 = _this1.readBits(24) + (_this1.readBits(n1 - 24) << 24); - } else { - if(_this1.validBits == 0) { - _this1.acc = 0; - } - while(true) { - if(_this1.bytesInSeg == 0 && (_this1.lastSeg || _this1.next() == 0)) { - _this1.validBits = -1; - break; - } else { - _this1.bytesInSeg--; - _this1.inputPosition += 1; - _this1.acc = _this1.acc + (_this1.input.readByte() << _this1.validBits); - _this1.validBits += 8; - } - if(!(_this1.validBits < n1)) { - break; - } - } - if(_this1.validBits < 0) { - tmp1 = 0; - } else { - var z2 = _this1.acc & (1 << n1) - 1; - _this1.acc = _this1.acc >>> n1; - _this1.validBits -= n1; - tmp1 = z2; - } - } - } else { - var z3 = _this1.acc & (1 << n1) - 1; - _this1.acc = _this1.acc >>> n1; - _this1.validBits -= n1; - tmp1 = z3; - } - fy[0] = tmp1; - var _this2 = this.decodeState; - var log2_41 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n3 = (range < 16384 ? range < 16 ? log2_41[range] : range < 512 ? 5 + log2_41[range >> 5] : 10 + log2_41[range >> 10] : range < 16777216 ? range < 524288 ? 15 + log2_41[range >> 15] : 20 + log2_41[range >> 20] : range < 536870912 ? 25 + log2_41[range >> 25] : range < -2147483648 ? 30 + log2_41[range >> 30] : 0) - 1; - var tmp2; - if(_this2.validBits < 0) { - tmp2 = 0; - } else if(_this2.validBits < n3) { - if(n3 > 24) { - tmp2 = _this2.readBits(24) + (_this2.readBits(n3 - 24) << 24); - } else { - if(_this2.validBits == 0) { - _this2.acc = 0; - } - while(true) { - if(_this2.bytesInSeg == 0 && (_this2.lastSeg || _this2.next() == 0)) { - _this2.validBits = -1; - break; - } else { - _this2.bytesInSeg--; - _this2.inputPosition += 1; - _this2.acc = _this2.acc + (_this2.input.readByte() << _this2.validBits); - _this2.validBits += 8; - } - if(!(_this2.validBits < n3)) { - break; - } - } - if(_this2.validBits < 0) { - tmp2 = 0; - } else { - var z4 = _this2.acc & (1 << n3) - 1; - _this2.acc = _this2.acc >>> n3; - _this2.validBits -= n3; - tmp2 = z4; - } - } - } else { - var z5 = _this2.acc & (1 << n3) - 1; - _this2.acc = _this2.acc >>> n3; - _this2.validBits -= n3; - tmp2 = z5; - } - fy[1] = tmp2; - var _g3 = 0; - var _g2 = g.partitions; - while(_g3 < _g2) { - var j = _g3++; - var pclass = g.partitionClassList[j]; - var cdim = g.classDimensions[pclass]; - var cbits = g.classSubclasses[pclass]; - var csub = (1 << cbits) - 1; - var cval = 0; - if(cbits != 0) { - var c = codebooks[g.classMasterbooks[pclass]]; - var _this3 = this.decodeState; - if(_this3.validBits < 10) { - _this3.prepHuffman(); - } - var i1 = c.fastHuffman[_this3.acc & 1023]; - var val; - if(i1 >= 0) { - var l = c.codewordLengths[i1]; - _this3.acc = _this3.acc >>> l; - _this3.validBits -= l; - if(_this3.validBits < 0) { - _this3.validBits = 0; - val = -1; - } else { - val = i1; - } - } else { - val = _this3.decodeScalarRaw(c); - } - if(c.sparse) { - val = c.sortedValues[val]; - } - cval = val; - } - var books = g.subclassBooks[pclass]; - var _g5 = 0; - var _g4 = cdim; - while(_g5 < _g4) { - var k = _g5++; - var book = books[cval & csub]; - cval >>= cbits; - var tmp3 = offset++; - var tmp4; - if(book >= 0) { - var _this4 = this.decodeState; - var c1 = codebooks[book]; - if(_this4.validBits < 10) { - _this4.prepHuffman(); - } - var i2 = c1.fastHuffman[_this4.acc & 1023]; - var val1; - if(i2 >= 0) { - var l1 = c1.codewordLengths[i2]; - _this4.acc = _this4.acc >>> l1; - _this4.validBits -= l1; - if(_this4.validBits < 0) { - _this4.validBits = 0; - val1 = -1; - } else { - val1 = i2; - } - } else { - val1 = _this4.decodeScalarRaw(c1); - } - if(c1.sparse) { - val1 = c1.sortedValues[val1]; - } - tmp4 = val1; - } else { - tmp4 = 0; - } - fy[tmp3] = tmp4; - } - } - if(this.decodeState.validBits == -1) { - zeroChannel[i] = true; - continue; - } - step2Flag[0] = step2Flag[1] = true; - var naighbors = g.neighbors; - var xlist = g.xlist; - var _g31 = 2; - var _g21 = g.values; - while(_g31 < _g21) { - var j1 = _g31++; - var low = naighbors[j1][0]; - var high = naighbors[j1][1]; - var x0 = xlist[low]; - var y0 = fy[low]; - var dy = fy[high] - y0; - var adx = xlist[high] - x0; - var err = Math.abs(dy) * (xlist[j1] - x0); - var off = err / adx | 0; - var lowroom = dy < 0 ? y0 - off : y0 + off; - var val2 = fy[j1]; - var highroom = range - lowroom; - var room = highroom < lowroom ? highroom * 2 : lowroom * 2; - if(val2 != 0) { - step2Flag[low] = step2Flag[high] = true; - step2Flag[j1] = true; - if(val2 >= room) { - if(highroom > lowroom) { - fy[j1] = val2 - lowroom + lowroom; - } else { - fy[j1] = lowroom - val2 + highroom - 1; - } - } else if((val2 & 1) != 0) { - fy[j1] = lowroom - (val2 + 1 >> 1); - } else { - fy[j1] = lowroom + (val2 >> 1); - } - } else { - step2Flag[j1] = false; - fy[j1] = lowroom; - } - } - var _g32 = 0; - var _g22 = g.values; - while(_g32 < _g22) { - var j2 = _g32++; - if(!step2Flag[j2]) { - fy[j2] = -1; - } - } - } else { - zeroChannel[i] = true; - } - } - } - var _g11 = 0; - var _g6 = this.header.channel; - while(_g11 < _g6) { - var i3 = _g11++; - reallyZeroChannel[i3] = zeroChannel[i3]; - } - var _g12 = 0; - var _g7 = map.couplingSteps; - while(_g12 < _g7) { - var i4 = _g12++; - if(!zeroChannel[map.chan[i4].magnitude] || !zeroChannel[map.chan[i4].angle]) { - zeroChannel[map.chan[i4].magnitude] = zeroChannel[map.chan[i4].angle] = false; - } - } - var _g13 = 0; - var _g8 = map.submaps; - while(_g13 < _g8) { - var i5 = _g13++; - var length = this.header.channel; - var this4 = new Array(length); - var residueBuffers = this4; - var this5 = new Array(256); - var doNotDecode = this5; - var ch = 0; - var _g33 = 0; - var _g23 = this.header.channel; - while(_g33 < _g23) { - var j3 = _g33++; - if(map.chan[j3].mux == i5) { - if(zeroChannel[j3]) { - doNotDecode[ch] = true; - residueBuffers[ch] = null; - } else { - doNotDecode[ch] = false; - residueBuffers[ch] = this.channelBuffers[j3]; - } - ++ch; - } - } - var r1 = map.submapResidue[i5]; - var residue = this.header.residueConfig[r1]; - residue.decode(this.decodeState,this.header,residueBuffers,ch,n2,doNotDecode,this.channelBuffers); - } - var i6 = map.couplingSteps; - var n21 = n >> 1; - while(--i6 >= 0) { - var m1 = this.channelBuffers[map.chan[i6].magnitude]; - var a = this.channelBuffers[map.chan[i6].angle]; - var _g14 = 0; - var _g9 = n21; - while(_g14 < _g9) { - var j4 = _g14++; - var a2; - var m2; - if(m1[j4] > 0) { - if(a[j4] > 0) { - m2 = m1[j4]; - a2 = m1[j4] - a[j4]; - } else { - a2 = m1[j4]; - m2 = m1[j4] + a[j4]; - } - } else if(a[j4] > 0) { - m2 = m1[j4]; - a2 = m1[j4] + a[j4]; - } else { - a2 = m1[j4]; - m2 = m1[j4] - a[j4]; - } - m1[j4] = m2; - a[j4] = a2; - } - } - var _g15 = 0; - var _g10 = this.header.channel; - while(_g15 < _g10) { - var i7 = _g15++; - if(reallyZeroChannel[i7]) { - var _g34 = 0; - var _g24 = n21; - while(_g34 < _g24) { - var j5 = _g34++; - this.channelBuffers[i7][j5] = 0; - } - } else { - map.doFloor(this.header.floorConfig,i7,n,this.channelBuffers[i7],this.finalY[i7],null); - } - } - var _g16 = 0; - var _g17 = this.header.channel; - while(_g16 < _g17) { - var i8 = _g16++; - this.inverseMdct(this.channelBuffers[i8],n,m.blockflag); - } - var _this5 = this.decodeState; - while(_this5.bytesInSeg != 0 || !_this5.lastSeg && _this5.next() != 0) { - _this5.bytesInSeg--; - _this5.inputPosition += 1; - _this5.input.readByte(); - } - return this.decodeState.finishDecodePacket(this.previousLength,n,r); - } - ,__class__: kha_audio2_ogg_vorbis_VorbisDecoder -}; -var kha_audio2_ogg_vorbis_VorbisTools = function() { }; -$hxClasses["kha.audio2.ogg.vorbis.VorbisTools"] = kha_audio2_ogg_vorbis_VorbisTools; -kha_audio2_ogg_vorbis_VorbisTools.__name__ = true; -kha_audio2_ogg_vorbis_VorbisTools.assert = function(b,p) { -}; -kha_audio2_ogg_vorbis_VorbisTools.neighbors = function(x,n) { - var low = -1; - var high = 65536; - var plow = 0; - var phigh = 0; - var _g1 = 0; - var _g = n; - while(_g1 < _g) { - var i = _g1++; - if(x[i] > low && x[i] < x[n]) { - plow = i; - low = x[i]; - } - if(x[i] < high && x[i] > x[n]) { - phigh = i; - high = x[i]; - } - } - return { low : plow, high : phigh}; -}; -kha_audio2_ogg_vorbis_VorbisTools.floatUnpack = function(x) { - var mantissa = _$UInt_UInt_$Impl_$.toFloat(x & 2097151); - var sign = x & -2147483648; - var exp = (x & 2145386496) >>> 21; - var res = sign != 0 ? -mantissa : mantissa; - return res * Math.pow(2,exp - 788); -}; -kha_audio2_ogg_vorbis_VorbisTools.bitReverse = function(n) { - n = (n & -1431655766) >>> 1 | (n & 1431655765) << 1; - n = (n & -858993460) >>> 2 | (n & 858993459) << 2; - n = (n & -252645136) >>> 4 | (n & 252645135) << 4; - n = (n & -16711936) >>> 8 | (n & 16711935) << 8; - return n >>> 16 | n << 16; -}; -kha_audio2_ogg_vorbis_VorbisTools.pointCompare = function(a,b) { - if(a.x < b.x) { - return -1; - } else if(a.x > b.x) { - return 1; - } else { - return 0; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.uintAsc = function(a,b) { - if(_$UInt_UInt_$Impl_$.gt(b,a)) { - return -1; - } else if(a == b) { - return 0; - } else { - return 1; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.lookup1Values = function(entries,dim) { - var r = Math.exp(Math.log(entries) / dim) | 0; - if((Math.pow(r + 1,dim) | 0) <= entries) { - ++r; - } - var b = Math.pow(r + 1,dim) > entries; - var b1 = (Math.pow(r,dim) | 0) <= entries; - return r; -}; -kha_audio2_ogg_vorbis_VorbisTools.computeWindow = function(n,window) { - var n2 = n >> 1; - var _g1 = 0; - var _g = n2; - while(_g1 < _g) { - var i = _g1++; - window[i] = Math.sin(1.57079632679489656 * kha_audio2_ogg_vorbis_VorbisTools.square(Math.sin((i + 0.5) / n2 * 0.5 * 3.14159265358979323846264))); - } -}; -kha_audio2_ogg_vorbis_VorbisTools.square = function(f) { - return f * f; -}; -kha_audio2_ogg_vorbis_VorbisTools.computeBitReverse = function(n,rev) { - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var ld = (n < 16384 ? n < 16 ? log2_4[n] : n < 512 ? 5 + log2_4[n >> 5] : 10 + log2_4[n >> 10] : n < 16777216 ? n < 524288 ? 15 + log2_4[n >> 15] : 20 + log2_4[n >> 20] : n < 536870912 ? 25 + log2_4[n >> 25] : n < -2147483648 ? 30 + log2_4[n >> 30] : 0) - 1; - var n8 = n >> 3; - var _g1 = 0; - var _g = n8; - while(_g1 < _g) { - var i = _g1++; - var n1 = i; - n1 = (n1 & -1431655766) >>> 1 | (n1 & 1431655765) << 1; - n1 = (n1 & -858993460) >>> 2 | (n1 & 858993459) << 2; - n1 = (n1 & -252645136) >>> 4 | (n1 & 252645135) << 4; - n1 = (n1 & -16711936) >>> 8 | (n1 & 16711935) << 8; - rev[i] = (n1 >>> 16 | n1 << 16) >>> 32 - ld + 3 << 2; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.computeTwiddleFactors = function(n,af,bf,cf) { - var n4 = n >> 2; - var n8 = n >> 3; - var k2 = 0; - var _g1 = 0; - var _g = n4; - while(_g1 < _g) { - var k = _g1++; - af[k2] = Math.cos(4 * k * 3.14159265358979323846264 / n); - af[k2 + 1] = -Math.sin(4 * k * 3.14159265358979323846264 / n); - bf[k2] = Math.cos((k2 + 1) * 3.14159265358979323846264 / n / 2) * 0.5; - bf[k2 + 1] = Math.sin((k2 + 1) * 3.14159265358979323846264 / n / 2) * 0.5; - k2 += 2; - } - var k21 = 0; - var _g11 = 0; - var _g2 = n8; - while(_g11 < _g2) { - var k1 = _g11++; - cf[k21] = Math.cos(2 * (k21 + 1) * 3.14159265358979323846264 / n); - cf[k21 + 1] = -Math.sin(2 * (k21 + 1) * 3.14159265358979323846264 / n); - k21 += 2; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.drawLine = function(output,x0,y0,x1,y1,n) { - if(kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable == null) { - var this1 = new Array(32); - kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable = this1; - var _g = 0; - while(_g < 32) { - var i = _g++; - var this2 = kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable; - var this3 = new Array(64); - this2[i] = this3; - var _g1 = 1; - while(_g1 < 64) { - var j = _g1++; - kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable[i][j] = i / j | 0; - } - } - } - var dy = y1 - y0; - var adx = x1 - x0; - var ady = dy < 0 ? -dy : dy; - var base; - var x = x0; - var y = y0; - var err = 0; - var sy; - if(adx < 64 && ady < 32) { - if(dy < 0) { - base = -kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable[ady][adx]; - sy = base - 1; - } else { - base = kha_audio2_ogg_vorbis_VorbisTools.integerDivideTable[ady][adx]; - sy = base + 1; - } - } else { - base = dy / adx | 0; - if(dy < 0) { - sy = base - 1; - } else { - sy = base + 1; - } - } - ady -= (base < 0 ? -base : base) * adx; - if(x1 > n) { - x1 = n; - } - var _g2 = x; - var _g11 = output; - _g11[_g2] = _g11[_g2] * kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE[y]; - var _g12 = x + 1; - var _g3 = x1; - while(_g12 < _g3) { - var i1 = _g12++; - err += ady; - if(err >= adx) { - err -= adx; - y += sy; - } else { - y += base; - } - var _g21 = i1; - var _g31 = output; - _g31[_g21] = _g31[_g21] * kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE[y]; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.predictPoint = function(x,x0,x1,y0,y1) { - var dy = y1 - y0; - var adx = x1 - x0; - var err = Math.abs(dy) * (x - x0); - var off = err / adx | 0; - if(dy < 0) { - return y0 - off; - } else { - return y0 + off; - } -}; -kha_audio2_ogg_vorbis_VorbisTools.emptyFloatVector = function(len) { - var this1 = new Array(len); - var vec = this1; - return vec; -}; -kha_audio2_ogg_vorbis_VorbisTools.copyVector = function(source) { - var length = source.length; - var this1 = new Array(length); - var dest = this1; - var _g1 = 0; - var _g = source.length; - while(_g1 < _g) { - var i = _g1++; - dest[i] = source[i]; - } - return dest; -}; -var kha_audio2_ogg_vorbis_data_Codebook = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Codebook"] = kha_audio2_ogg_vorbis_data_Codebook; -kha_audio2_ogg_vorbis_data_Codebook.__name__ = true; -kha_audio2_ogg_vorbis_data_Codebook.read = function(decodeState) { - var c = new kha_audio2_ogg_vorbis_data_Codebook(); - var tmp; - var tmp1; - var tmp2; - if(decodeState.validBits < 0) { - tmp2 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp2 = 0; - } else { - var z = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp2 = z; - } - } else { - var z1 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp2 = z1; - } - if(tmp2 == 66) { - var tmp3; - if(decodeState.validBits < 0) { - tmp3 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp3 = 0; - } else { - var z2 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z2; - } - } else { - var z3 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z3; - } - tmp1 = tmp3 != 67; - } else { - tmp1 = true; - } - if(!tmp1) { - var tmp4; - if(decodeState.validBits < 0) { - tmp4 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp4 = 0; - } else { - var z4 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp4 = z4; - } - } else { - var z5 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp4 = z5; - } - tmp = tmp4 != 86; - } else { - tmp = true; - } - if(tmp) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Codebook.hx", lineNumber : 40, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "read"})); - } - var x; - if(decodeState.validBits < 0) { - x = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - x = 0; - } else { - var z6 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - x = z6; - } - } else { - var z7 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - x = z7; - } - var tmp5; - if(decodeState.validBits < 0) { - tmp5 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp5 = 0; - } else { - var z8 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp5 = z8; - } - } else { - var z9 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp5 = z9; - } - c.dimensions = (tmp5 << 8) + x; - var x1; - if(decodeState.validBits < 0) { - x1 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - x1 = 0; - } else { - var z10 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - x1 = z10; - } - } else { - var z11 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - x1 = z11; - } - var y; - if(decodeState.validBits < 0) { - y = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - y = 0; - } else { - var z12 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - y = z12; - } - } else { - var z13 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - y = z13; - } - var tmp6; - if(decodeState.validBits < 0) { - tmp6 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp6 = 0; - } else { - var z14 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp6 = z14; - } - } else { - var z15 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp6 = z15; - } - c.entries = (tmp6 << 16) + (y << 8) + x1; - var ordered; - if(decodeState.validBits < 0) { - ordered = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - ordered = 0; - } else { - var z16 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - ordered = z16; - } - } else { - var z17 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - ordered = z17; - } - var tmp7; - if(ordered != 0) { - tmp7 = false; - } else { - var tmp8; - if(decodeState.validBits < 0) { - tmp8 = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp8 = 0; - } else { - var z18 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp8 = z18; - } - } else { - var z19 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp8 = z19; - } - tmp7 = tmp8 != 0; - } - c.sparse = tmp7; - var length = c.entries; - var this1 = new Array(length); - var lengths = this1; - if(!c.sparse) { - c.codewordLengths = lengths; - } - var total = 0; - if(ordered != 0) { - var currentEntry = 0; - var currentLength; - if(decodeState.validBits < 0) { - currentLength = 0; - } else if(decodeState.validBits < 5) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 5)) { - break; - } - } - if(decodeState.validBits < 0) { - currentLength = 0; - } else { - var z20 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - currentLength = z20; - } - } else { - var z21 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - currentLength = z21; - } - var currentLength1 = currentLength + 1; - while(currentEntry < c.entries) { - var limit = c.entries - currentEntry; - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n = limit < 16384 ? limit < 16 ? log2_4[limit] : limit < 512 ? 5 + log2_4[limit >> 5] : 10 + log2_4[limit >> 10] : limit < 16777216 ? limit < 524288 ? 15 + log2_4[limit >> 15] : 20 + log2_4[limit >> 20] : limit < 536870912 ? 25 + log2_4[limit >> 25] : limit < -2147483648 ? 30 + log2_4[limit >> 30] : 0; - var n1; - if(decodeState.validBits < 0) { - n1 = 0; - } else if(decodeState.validBits < n) { - if(n > 24) { - n1 = decodeState.readBits(24) + (decodeState.readBits(n - 24) << 24); - } else { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < n)) { - break; - } - } - if(decodeState.validBits < 0) { - n1 = 0; - } else { - var z22 = decodeState.acc & (1 << n) - 1; - decodeState.acc = decodeState.acc >>> n; - decodeState.validBits -= n; - n1 = z22; - } - } - } else { - var z23 = decodeState.acc & (1 << n) - 1; - decodeState.acc = decodeState.acc >>> n; - decodeState.validBits -= n; - n1 = z23; - } - if(currentEntry + n1 > c.entries) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"codebook entrys",{ fileName : "Codebook.hx", lineNumber : 67, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "read"})); - } - var _g1 = 0; - var _g = n1; - while(_g1 < _g) { - var i = _g1++; - lengths[currentEntry + i] = currentLength1; - } - currentEntry += n1; - ++currentLength1; - } - } else { - var _g11 = 0; - var _g2 = c.entries; - while(_g11 < _g2) { - var j = _g11++; - var present; - if(c.sparse) { - if(decodeState.validBits < 0) { - present = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - present = 0; - } else { - var z24 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - present = z24; - } - } else { - var z25 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - present = z25; - } - } else { - present = 1; - } - if(present != 0) { - var val; - if(decodeState.validBits < 0) { - val = 0; - } else if(decodeState.validBits < 5) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 5)) { - break; - } - } - if(decodeState.validBits < 0) { - val = 0; - } else { - var z26 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - val = z26; - } - } else { - var z27 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - val = z27; - } - lengths[j] = val + 1; - ++total; - } else { - lengths[j] = 255; - } - } - } - if(c.sparse && total >= c.entries >> 2) { - c.codewordLengths = lengths; - c.sparse = false; - } - var tmp9; - if(c.sparse) { - tmp9 = total; - } else { - var sortedCount = 0; - var _g12 = 0; - var _g3 = c.entries; - while(_g12 < _g3) { - var j1 = _g12++; - var l = lengths[j1]; - if(l > 10 && l != 255) { - ++sortedCount; - } - } - tmp9 = sortedCount; - } - c.sortedEntries = tmp9; - var values = null; - if(!c.sparse) { - var length1 = c.entries; - var this2 = new Array(length1); - c.codewords = this2; - } else { - if(c.sortedEntries != 0) { - var length2 = c.sortedEntries; - var this3 = new Array(length2); - c.codewordLengths = this3; - var length3 = c.entries; - var this4 = new Array(length3); - c.codewords = this4; - var length4 = c.entries; - var this5 = new Array(length4); - values = this5; - } - var size = c.entries + 64 * c.sortedEntries; - } - if(!c.computeCodewords(lengths,c.entries,values)) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"compute codewords",{ fileName : "Codebook.hx", lineNumber : 120, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "read"})); - } - if(c.sortedEntries != 0) { - c.sortedCodewords = []; - var length5 = c.sortedEntries; - var this6 = new Array(length5); - c.sortedValues = this6; - c.computeSortedHuffman(lengths,values); - } - if(c.sparse) { - values = null; - c.codewords = null; - lengths = null; - } - c.computeAcceleratedHuffman(); - var tmp10; - if(decodeState.validBits < 0) { - tmp10 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp10 = 0; - } else { - var z28 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp10 = z28; - } - } else { - var z29 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp10 = z29; - } - c.lookupType = tmp10; - if(c.lookupType > 2) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"codebook lookup type",{ fileName : "Codebook.hx", lineNumber : 143, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "read"})); - } - if(c.lookupType > 0) { - var x2; - if(decodeState.validBits < 0) { - x2 = 0; - } else if(decodeState.validBits < 32) { - x2 = decodeState.readBits(24) + (decodeState.readBits(8) << 24); - } else { - var z30 = decodeState.acc & -1; - decodeState.acc = decodeState.acc >>> 32; - decodeState.validBits -= 32; - x2 = z30; - } - var mantissa = _$UInt_UInt_$Impl_$.toFloat(x2 & 2097151); - var sign = x2 & -2147483648; - var exp = (x2 & 2145386496) >>> 21; - var res = sign != 0 ? -mantissa : mantissa; - c.minimumValue = res * Math.pow(2,exp - 788); - var x3; - if(decodeState.validBits < 0) { - x3 = 0; - } else if(decodeState.validBits < 32) { - x3 = decodeState.readBits(24) + (decodeState.readBits(8) << 24); - } else { - var z31 = decodeState.acc & -1; - decodeState.acc = decodeState.acc >>> 32; - decodeState.validBits -= 32; - x3 = z31; - } - var mantissa1 = _$UInt_UInt_$Impl_$.toFloat(x3 & 2097151); - var sign1 = x3 & -2147483648; - var exp1 = (x3 & 2145386496) >>> 21; - var res1 = sign1 != 0 ? -mantissa1 : mantissa1; - c.deltaValue = res1 * Math.pow(2,exp1 - 788); - var tmp11; - if(decodeState.validBits < 0) { - tmp11 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp11 = 0; - } else { - var z32 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp11 = z32; - } - } else { - var z33 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp11 = z33; - } - c.valueBits = tmp11 + 1; - var tmp12; - if(decodeState.validBits < 0) { - tmp12 = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp12 = 0; - } else { - var z34 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp12 = z34; - } - } else { - var z35 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp12 = z35; - } - c.sequenceP = tmp12 != 0; - if(c.lookupType == 1) { - c.lookupValues = kha_audio2_ogg_vorbis_VorbisTools.lookup1Values(c.entries,c.dimensions); - } else { - c.lookupValues = c.entries * c.dimensions; - } - var length6 = c.lookupValues; - var this7 = new Array(length6); - var mults = this7; - var _g13 = 0; - var _g4 = c.lookupValues; - while(_g13 < _g4) { - var j2 = _g13++; - var n2 = c.valueBits; - var q; - if(decodeState.validBits < 0) { - q = 0; - } else if(decodeState.validBits < n2) { - if(n2 > 24) { - q = decodeState.readBits(24) + (decodeState.readBits(n2 - 24) << 24); - } else { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < n2)) { - break; - } - } - if(decodeState.validBits < 0) { - q = 0; - } else { - var z36 = decodeState.acc & (1 << n2) - 1; - decodeState.acc = decodeState.acc >>> n2; - decodeState.validBits -= n2; - q = z36; - } - } - } else { - var z37 = decodeState.acc & (1 << n2) - 1; - decodeState.acc = decodeState.acc >>> n2; - decodeState.validBits -= n2; - q = z37; - } - if(q == -1) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"fail lookup",{ fileName : "Codebook.hx", lineNumber : 161, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "read"})); - } - mults[j2] = q; - } - var length7 = c.lookupValues; - var this8 = new Array(length7); - c.multiplicands = this8; - var _g14 = 0; - var _g5 = c.lookupValues; - while(_g14 < _g5) { - var j3 = _g14++; - c.multiplicands[j3] = mults[j3] * c.deltaValue + c.minimumValue; - } - if(c.lookupType == 2 && c.sequenceP) { - var _g15 = 1; - var _g6 = c.lookupValues; - while(_g15 < _g6) { - var j4 = _g15++; - c.multiplicands[j4] = c.multiplicands[j4 - 1]; - } - c.sequenceP = false; - } - } - return c; -}; -kha_audio2_ogg_vorbis_data_Codebook.prototype = { - dimensions: null - ,entries: null - ,codewordLengths: null - ,minimumValue: null - ,deltaValue: null - ,valueBits: null - ,lookupType: null - ,sequenceP: null - ,sparse: null - ,lookupValues: null - ,multiplicands: null - ,codewords: null - ,fastHuffman: null - ,sortedCodewords: null - ,sortedValues: null - ,sortedEntries: null - ,addEntry: function(huffCode,symbol,count,len,values) { - if(!this.sparse) { - this.codewords[symbol] = huffCode; - } else { - this.codewords[count] = huffCode; - this.codewordLengths[count] = len; - values[count] = symbol; - } - } - ,includeInSort: function(len) { - if(this.sparse) { - return true; - } else if(len == 255) { - return false; - } else if(len > 10) { - return true; - } else { - return false; - } - } - ,computeCodewords: function(len,n,values) { - var this1 = new Array(32); - var available = this1; - var _g = 0; - while(_g < 32) { - var x = _g++; - available[x] = 0; - } - var k = 0; - while(k < n) { - if(len[k] < 255) { - break; - } - ++k; - } - if(k == n) { - var b = this.sortedEntries == 0; - return true; - } - var m = 0; - var count = m++; - if(!this.sparse) { - this.codewords[k] = 0; - } else { - this.codewords[count] = 0; - this.codewordLengths[count] = len[k]; - values[count] = k; - } - var i = 0; - while(++i <= len[k]) available[i] = 1 << 32 - i; - i = k; - while(++i < n) { - var z = len[i]; - if(z == 255) { - continue; - } - while(z > 0 && available[z] == 0) --z; - if(z == 0) { - return false; - } - var res = available[z]; - available[z] = 0; - var n1 = res; - n1 = (n1 & -1431655766) >>> 1 | (n1 & 1431655765) << 1; - n1 = (n1 & -858993460) >>> 2 | (n1 & 858993459) << 2; - n1 = (n1 & -252645136) >>> 4 | (n1 & 252645135) << 4; - n1 = (n1 & -16711936) >>> 8 | (n1 & 16711935) << 8; - var huffCode = n1 >>> 16 | n1 << 16; - var count1 = m++; - if(!this.sparse) { - this.codewords[i] = huffCode; - } else { - this.codewords[count1] = huffCode; - this.codewordLengths[count1] = len[i]; - values[count1] = i; - } - if(z != len[i]) { - var y = len[i]; - while(y > z) { - available[y] = res + (1 << 32 - y); - --y; - } - } - } - return true; - } - ,computeSortedHuffman: function(lengths,values) { - if(!this.sparse) { - var k = 0; - var _g1 = 0; - var _g = this.entries; - while(_g1 < _g) { - var i = _g1++; - var len = lengths[i]; - if(this.sparse ? true : len == 255 ? false : len > 10) { - var n = this.codewords[i]; - n = (n & -1431655766) >>> 1 | (n & 1431655765) << 1; - n = (n & -858993460) >>> 2 | (n & 858993459) << 2; - n = (n & -252645136) >>> 4 | (n & 252645135) << 4; - n = (n & -16711936) >>> 8 | (n & 16711935) << 8; - this.sortedCodewords[k++] = n >>> 16 | n << 16; - } - } - var b = k == this.sortedEntries; - } else { - var _g11 = 0; - var _g2 = this.sortedEntries; - while(_g11 < _g2) { - var i1 = _g11++; - var n1 = this.codewords[i1]; - n1 = (n1 & -1431655766) >>> 1 | (n1 & 1431655765) << 1; - n1 = (n1 & -858993460) >>> 2 | (n1 & 858993459) << 2; - n1 = (n1 & -252645136) >>> 4 | (n1 & 252645135) << 4; - n1 = (n1 & -16711936) >>> 8 | (n1 & 16711935) << 8; - this.sortedCodewords[i1] = n1 >>> 16 | n1 << 16; - } - } - this.sortedCodewords[this.sortedEntries] = -1; - this.sortedCodewords.sort(kha_audio2_ogg_vorbis_VorbisTools.uintAsc); - var len1 = this.sparse ? this.sortedEntries : this.entries; - var _g12 = 0; - var _g3 = len1; - while(_g12 < _g3) { - var i2 = _g12++; - var huffLen = this.sparse ? lengths[values[i2]] : lengths[i2]; - if(this.sparse ? true : huffLen == 255 ? false : huffLen > 10) { - var n2 = this.codewords[i2]; - n2 = (n2 & -1431655766) >>> 1 | (n2 & 1431655765) << 1; - n2 = (n2 & -858993460) >>> 2 | (n2 & 858993459) << 2; - n2 = (n2 & -252645136) >>> 4 | (n2 & 252645135) << 4; - n2 = (n2 & -16711936) >>> 8 | (n2 & 16711935) << 8; - var code = n2 >>> 16 | n2 << 16; - var x = 0; - var n3 = this.sortedEntries; - while(n3 > 1) { - var m = x + (n3 >> 1); - if(_$UInt_UInt_$Impl_$.gte(code,this.sortedCodewords[m])) { - x = m; - n3 -= n3 >> 1; - } else { - n3 >>= 1; - } - } - if(this.sparse) { - this.sortedValues[x] = values[i2]; - this.codewordLengths[x] = huffLen; - } else { - this.sortedValues[x] = i2; - } - } - } - } - ,computeAcceleratedHuffman: function() { - var this1 = new Array(1024); - this.fastHuffman = this1; - this.fastHuffman[0] = -1; - var _g1 = 0; - var _g = 1024; - while(_g1 < _g) { - var i = _g1++; - this.fastHuffman[i] = -1; - } - var len = this.sparse ? this.sortedEntries : this.entries; - var _g11 = 0; - var _g2 = len; - while(_g11 < _g2) { - var i1 = _g11++; - if(this.codewordLengths[i1] <= 10) { - var z; - if(this.sparse) { - var n = this.sortedCodewords[i1]; - n = (n & -1431655766) >>> 1 | (n & 1431655765) << 1; - n = (n & -858993460) >>> 2 | (n & 858993459) << 2; - n = (n & -252645136) >>> 4 | (n & 252645135) << 4; - n = (n & -16711936) >>> 8 | (n & 16711935) << 8; - z = n >>> 16 | n << 16; - } else { - z = this.codewords[i1]; - } - while(z < 1024) { - this.fastHuffman[z] = i1; - z += 1 << this.codewordLengths[i1]; - } - } - } - } - ,codebookDecode: function(decodeState,output,offset,len) { - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i = this.fastHuffman[decodeState.acc & 1023]; - var val; - if(i >= 0) { - var l = this.codewordLengths[i]; - decodeState.acc = decodeState.acc >>> l; - decodeState.validBits -= l; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val = -1; - } else { - val = i; - } - } else { - val = decodeState.decodeScalarRaw(this); - } - if(this.sparse) { - val = this.sortedValues[val]; - } - var z = val; - var lookupValues = this.lookupValues; - var sequenceP = this.sequenceP; - var multiplicands = this.multiplicands; - var minimumValue = this.minimumValue; - if(z < 0) { - return false; - } - if(len > this.dimensions) { - len = this.dimensions; - } - if(this.lookupType == 1) { - var div = 1; - var last = 0.0; - var _g1 = 0; - var _g = len; - while(_g1 < _g) { - var i1 = _g1++; - var off = _$UInt_UInt_$Impl_$.toFloat(z / div | 0) % _$UInt_UInt_$Impl_$.toFloat(lookupValues) | 0; - var val1 = multiplicands[off] + last; - var _g2 = offset + i1; - var _g3 = output; - _g3[_g2] = _g3[_g2] + val1; - if(sequenceP) { - last = val1 + minimumValue; - } - div = div * lookupValues; - } - return true; - } - z *= this.dimensions; - if(sequenceP) { - var last1 = 0.0; - var _g11 = 0; - var _g4 = len; - while(_g11 < _g4) { - var i2 = _g11++; - var val2 = multiplicands[z + i2] + last1; - var _g21 = offset + i2; - var _g31 = output; - _g31[_g21] = _g31[_g21] + val2; - last1 = val2 + minimumValue; - } - } else { - var last2 = 0.0; - var _g12 = 0; - var _g5 = len; - while(_g12 < _g5) { - var i3 = _g12++; - var _g22 = offset + i3; - var _g32 = output; - _g32[_g22] = _g32[_g22] + (multiplicands[z + i3] + last2); - } - } - return true; - } - ,codebookDecodeStep: function(decodeState,output,offset,len,step) { - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i = this.fastHuffman[decodeState.acc & 1023]; - var val; - if(i >= 0) { - var l = this.codewordLengths[i]; - decodeState.acc = decodeState.acc >>> l; - decodeState.validBits -= l; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val = -1; - } else { - val = i; - } - } else { - val = decodeState.decodeScalarRaw(this); - } - if(this.sparse) { - val = this.sortedValues[val]; - } - var z = val; - var last = 0.0; - if(z < 0) { - return false; - } - if(len > this.dimensions) { - len = this.dimensions; - } - var lookupValues = this.lookupValues; - var sequenceP = this.sequenceP; - var multiplicands = this.multiplicands; - if(this.lookupType == 1) { - var div = 1; - var _g1 = 0; - var _g = len; - while(_g1 < _g) { - var i1 = _g1++; - var off = _$UInt_UInt_$Impl_$.toFloat(z / div | 0) % _$UInt_UInt_$Impl_$.toFloat(lookupValues) | 0; - var val1 = multiplicands[off] + last; - var _g2 = offset + i1 * step; - var _g3 = output; - _g3[_g2] = _g3[_g2] + val1; - if(sequenceP) { - last = val1; - } - div = div * lookupValues; - } - return true; - } - z *= this.dimensions; - var _g11 = 0; - var _g4 = len; - while(_g11 < _g4) { - var i2 = _g11++; - var val2 = multiplicands[z + i2] + last; - var _g21 = offset + i2 * step; - var _g31 = output; - _g31[_g21] = _g31[_g21] + val2; - if(sequenceP) { - last = val2; - } - } - return true; - } - ,decodeStart: function(decodeState) { - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i = this.fastHuffman[decodeState.acc & 1023]; - var val; - if(i >= 0) { - var l = this.codewordLengths[i]; - decodeState.acc = decodeState.acc >>> l; - decodeState.validBits -= l; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val = -1; - } else { - val = i; - } - } else { - val = decodeState.decodeScalarRaw(this); - } - if(this.sparse) { - val = this.sortedValues[val]; - } - return val; - } - ,decodeDeinterleaveRepeat: function(decodeState,residueBuffers,ch,cInter,pInter,len,totalDecode) { - var effective = this.dimensions; - if(this.lookupType == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{ fileName : "Codebook.hx", lineNumber : 488, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "decodeDeinterleaveRepeat"})); - } - var multiplicands = this.multiplicands; - var sequenceP = this.sequenceP; - var lookupValues = this.lookupValues; - while(totalDecode > 0) { - var last = 0.0; - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i = this.fastHuffman[decodeState.acc & 1023]; - var val; - if(i >= 0) { - var l = this.codewordLengths[i]; - decodeState.acc = decodeState.acc >>> l; - decodeState.validBits -= l; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val = -1; - } else { - val = i; - } - } else { - val = decodeState.decodeScalarRaw(this); - } - if(this.sparse) { - val = this.sortedValues[val]; - } - var z = val; - if(z < 0) { - if(decodeState.bytesInSeg == 0 && decodeState.lastSeg) { - return null; - } - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{ fileName : "Codebook.hx", lineNumber : 503, className : "kha.audio2.ogg.vorbis.data.Codebook", methodName : "decodeDeinterleaveRepeat"})); - } - if(cInter + pInter * ch + effective > len * ch) { - effective = len * ch - (pInter * ch - cInter); - } - if(this.lookupType == 1) { - var div = 1; - if(sequenceP) { - var _g1 = 0; - var _g = effective; - while(_g1 < _g) { - var i1 = _g1++; - var off = _$UInt_UInt_$Impl_$.toFloat(z / div | 0) % _$UInt_UInt_$Impl_$.toFloat(lookupValues) | 0; - var val1 = multiplicands[off] + last; - var _g2 = pInter; - var _g3 = residueBuffers[cInter]; - _g3[_g2] = _g3[_g2] + val1; - if(++cInter == ch) { - cInter = 0; - ++pInter; - } - last = val1; - div = div * lookupValues; - } - } else { - var _g11 = 0; - var _g4 = effective; - while(_g11 < _g4) { - var i2 = _g11++; - var off1 = _$UInt_UInt_$Impl_$.toFloat(z / div | 0) % _$UInt_UInt_$Impl_$.toFloat(lookupValues) | 0; - var val2 = multiplicands[off1] + last; - var _g21 = pInter; - var _g31 = residueBuffers[cInter]; - _g31[_g21] = _g31[_g21] + val2; - if(++cInter == ch) { - cInter = 0; - ++pInter; - } - div = div * lookupValues; - } - } - } else { - z *= this.dimensions; - if(sequenceP) { - var _g12 = 0; - var _g5 = effective; - while(_g12 < _g5) { - var i3 = _g12++; - var val3 = multiplicands[z + i3] + last; - var _g22 = pInter; - var _g32 = residueBuffers[cInter]; - _g32[_g22] = _g32[_g22] + val3; - if(++cInter == ch) { - cInter = 0; - ++pInter; - } - last = val3; - } - } else { - var _g13 = 0; - var _g6 = effective; - while(_g13 < _g6) { - var i4 = _g13++; - var val4 = multiplicands[z + i4] + last; - var _g23 = pInter; - var _g33 = residueBuffers[cInter]; - _g33[_g23] = _g33[_g23] + val4; - if(++cInter == ch) { - cInter = 0; - ++pInter; - } - } - } - } - totalDecode -= effective; - } - return { cInter : cInter, pInter : pInter}; - } - ,residueDecode: function(decodeState,target,offset,n,rtype) { - if(rtype == 0) { - var step = n / this.dimensions | 0; - var _g1 = 0; - var _g = step; - while(_g1 < _g) { - var k = _g1++; - if(!this.codebookDecodeStep(decodeState,target,offset + k,n - offset - k,step)) { - return false; - } - } - } else { - var k1 = 0; - while(k1 < n) { - if(!this.codebookDecode(decodeState,target,offset,n - k1)) { - return false; - } - k1 += this.dimensions; - offset += this.dimensions; - } - } - return true; - } - ,__class__: kha_audio2_ogg_vorbis_data_Codebook -}; -var kha_audio2_ogg_vorbis_data_Comment = function() { - this.data = new haxe_ds_StringMap(); -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Comment"] = kha_audio2_ogg_vorbis_data_Comment; -kha_audio2_ogg_vorbis_data_Comment.__name__ = true; -kha_audio2_ogg_vorbis_data_Comment.prototype = { - data: null - ,get_title: function() { - return this.getString("title"); - } - ,get_loopStart: function() { - return Std.parseInt(this.getString("loopstart")); - } - ,get_loopLength: function() { - return Std.parseInt(this.getString("looplength")); - } - ,get_version: function() { - return this.getString("version"); - } - ,get_album: function() { - return this.getString("album"); - } - ,get_organization: function() { - return this.getString("organization"); - } - ,get_tracknumber: function() { - return this.getString("tracknumber"); - } - ,get_performer: function() { - return this.getString("performer"); - } - ,get_copyright: function() { - return this.getString("copyright"); - } - ,get_license: function() { - return this.getString("license"); - } - ,get_artist: function() { - return this.getString("artist"); - } - ,get_description: function() { - return this.getString("description"); - } - ,get_genre: function() { - return this.getString("genre"); - } - ,get_date: function() { - return this.getString("date"); - } - ,get_location: function() { - return this.getString("location"); - } - ,get_contact: function() { - return this.getString("contact"); - } - ,get_isrc: function() { - return this.getString("isrc"); - } - ,get_artists: function() { - return this.getArray("artist"); - } - ,add: function(key,value) { - key = key.toLowerCase(); - var _this = this.data; - if(__map_reserved[key] != null ? _this.existsReserved(key) : _this.h.hasOwnProperty(key)) { - var _this1 = this.data; - (__map_reserved[key] != null ? _this1.getReserved(key) : _this1.h[key]).push(value); - } else { - var v = [value]; - var _this2 = this.data; - if(__map_reserved[key] != null) { - _this2.setReserved(key,v); - } else { - _this2.h[key] = v; - } - } - } - ,getString: function(key) { - key = key.toLowerCase(); - var _this = this.data; - if(__map_reserved[key] != null ? _this.existsReserved(key) : _this.h.hasOwnProperty(key)) { - var _this1 = this.data; - return (__map_reserved[key] != null ? _this1.getReserved(key) : _this1.h[key])[0]; - } else { - return null; - } - } - ,getArray: function(key) { - key = key.toLowerCase(); - var _this = this.data; - if(__map_reserved[key] != null ? _this.existsReserved(key) : _this.h.hasOwnProperty(key)) { - var _this1 = this.data; - if(__map_reserved[key] != null) { - return _this1.getReserved(key); - } else { - return _this1.h[key]; - } - } else { - return null; - } - } - ,__class__: kha_audio2_ogg_vorbis_data_Comment -}; -var kha_audio2_ogg_vorbis_data_Floor = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Floor"] = kha_audio2_ogg_vorbis_data_Floor; -kha_audio2_ogg_vorbis_data_Floor.__name__ = true; -kha_audio2_ogg_vorbis_data_Floor.read = function(decodeState,codebooks) { - var floor = new kha_audio2_ogg_vorbis_data_Floor(); - var tmp; - if(decodeState.validBits < 0) { - tmp = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp = 0; - } else { - var z = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z; - } - } else { - var z1 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z1; - } - floor.type = tmp; - if(floor.type > 1) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Floor.hx", lineNumber : 28, className : "kha.audio2.ogg.vorbis.data.Floor", methodName : "read"})); - } - if(floor.type == 0) { - var g = floor.floor0 = new kha_audio2_ogg_vorbis_data_Floor0(); - var tmp1; - if(decodeState.validBits < 0) { - tmp1 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp1 = 0; - } else { - var z2 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp1 = z2; - } - } else { - var z3 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp1 = z3; - } - g.order = tmp1; - var tmp2; - if(decodeState.validBits < 0) { - tmp2 = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp2 = 0; - } else { - var z4 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp2 = z4; - } - } else { - var z5 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp2 = z5; - } - g.rate = tmp2; - var tmp3; - if(decodeState.validBits < 0) { - tmp3 = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp3 = 0; - } else { - var z6 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp3 = z6; - } - } else { - var z7 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp3 = z7; - } - g.barkMapSize = tmp3; - var tmp4; - if(decodeState.validBits < 0) { - tmp4 = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp4 = 0; - } else { - var z8 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - tmp4 = z8; - } - } else { - var z9 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - tmp4 = z9; - } - g.amplitudeBits = tmp4; - var tmp5; - if(decodeState.validBits < 0) { - tmp5 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp5 = 0; - } else { - var z10 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp5 = z10; - } - } else { - var z11 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp5 = z11; - } - g.amplitudeOffset = tmp5; - var tmp6; - if(decodeState.validBits < 0) { - tmp6 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp6 = 0; - } else { - var z12 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp6 = z12; - } - } else { - var z13 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp6 = z13; - } - g.numberOfBooks = tmp6 + 1; - var _g1 = 0; - var _g = g.numberOfBooks; - while(_g1 < _g) { - var j = _g1++; - var this1 = g.bookList; - var val; - if(decodeState.validBits < 0) { - val = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val = 0; - } else { - var z14 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z14; - } - } else { - var z15 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z15; - } - this1[j] = val; - } - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED,null,{ fileName : "Floor.hx", lineNumber : 41, className : "kha.audio2.ogg.vorbis.data.Floor", methodName : "read"})); - } else { - var p = []; - var g1 = floor.floor1 = new kha_audio2_ogg_vorbis_data_Floor1(); - var maxClass = -1; - var tmp7; - if(decodeState.validBits < 0) { - tmp7 = 0; - } else if(decodeState.validBits < 5) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 5)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp7 = 0; - } else { - var z16 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - tmp7 = z16; - } - } else { - var z17 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - tmp7 = z17; - } - g1.partitions = tmp7; - var length = g1.partitions; - var this2 = new Array(length); - g1.partitionClassList = this2; - var _g11 = 0; - var _g2 = g1.partitions; - while(_g11 < _g2) { - var j1 = _g11++; - var this3 = g1.partitionClassList; - var val1; - if(decodeState.validBits < 0) { - val1 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - val1 = 0; - } else { - var z18 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - val1 = z18; - } - } else { - var z19 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - val1 = z19; - } - this3[j1] = val1; - if(g1.partitionClassList[j1] > maxClass) { - maxClass = g1.partitionClassList[j1]; - } - } - var this4 = new Array(maxClass + 1); - g1.classDimensions = this4; - var this5 = new Array(maxClass + 1); - g1.classMasterbooks = this5; - var this6 = new Array(maxClass + 1); - g1.classSubclasses = this6; - var this7 = new Array(maxClass + 1); - g1.subclassBooks = this7; - var _g12 = 0; - var _g3 = maxClass + 1; - while(_g12 < _g3) { - var j2 = _g12++; - var this8 = g1.classDimensions; - var val2; - if(decodeState.validBits < 0) { - val2 = 0; - } else if(decodeState.validBits < 3) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 3)) { - break; - } - } - if(decodeState.validBits < 0) { - val2 = 0; - } else { - var z20 = decodeState.acc & 7; - decodeState.acc = decodeState.acc >>> 3; - decodeState.validBits -= 3; - val2 = z20; - } - } else { - var z21 = decodeState.acc & 7; - decodeState.acc = decodeState.acc >>> 3; - decodeState.validBits -= 3; - val2 = z21; - } - this8[j2] = val2 + 1; - var this9 = g1.classSubclasses; - var val3; - if(decodeState.validBits < 0) { - val3 = 0; - } else if(decodeState.validBits < 2) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 2)) { - break; - } - } - if(decodeState.validBits < 0) { - val3 = 0; - } else { - var z22 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - val3 = z22; - } - } else { - var z23 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - val3 = z23; - } - this9[j2] = val3; - if(g1.classSubclasses[j2] != 0) { - var this10 = g1.classMasterbooks; - var val4; - if(decodeState.validBits < 0) { - val4 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val4 = 0; - } else { - var z24 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val4 = z24; - } - } else { - var z25 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val4 = z25; - } - this10[j2] = val4; - if(g1.classMasterbooks[j2] >= codebooks.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Floor.hx", lineNumber : 64, className : "kha.audio2.ogg.vorbis.data.Floor", methodName : "read"})); - } - } - var kl = 1 << g1.classSubclasses[j2]; - var this11 = g1.subclassBooks; - var this12 = new Array(kl); - this11[j2] = this12; - var _g31 = 0; - var _g21 = kl; - while(_g31 < _g21) { - var k = _g31++; - var this13 = g1.subclassBooks[j2]; - var val5; - if(decodeState.validBits < 0) { - val5 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val5 = 0; - } else { - var z26 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val5 = z26; - } - } else { - var z27 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val5 = z27; - } - this13[k] = val5 - 1; - if(g1.subclassBooks[j2][k] >= codebooks.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Floor.hx", lineNumber : 73, className : "kha.audio2.ogg.vorbis.data.Floor", methodName : "read"})); - } - } - } - var tmp8; - if(decodeState.validBits < 0) { - tmp8 = 0; - } else if(decodeState.validBits < 2) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 2)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp8 = 0; - } else { - var z28 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - tmp8 = z28; - } - } else { - var z29 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - tmp8 = z29; - } - g1.floor1Multiplier = tmp8 + 1; - var tmp9; - if(decodeState.validBits < 0) { - tmp9 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp9 = 0; - } else { - var z30 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp9 = z30; - } - } else { - var z31 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp9 = z31; - } - g1.rangebits = tmp9; - var this14 = new Array(250); - g1.xlist = this14; - g1.xlist[0] = 0; - g1.xlist[1] = 1 << g1.rangebits; - g1.values = 2; - var _g13 = 0; - var _g4 = g1.partitions; - while(_g13 < _g4) { - var j3 = _g13++; - var c = g1.partitionClassList[j3]; - var _g32 = 0; - var _g22 = g1.classDimensions[c]; - while(_g32 < _g22) { - var k1 = _g32++; - var this15 = g1.xlist; - var index = g1.values; - var n = g1.rangebits; - var val6; - if(decodeState.validBits < 0) { - val6 = 0; - } else if(decodeState.validBits < n) { - if(n > 24) { - val6 = decodeState.readBits(24) + (decodeState.readBits(n - 24) << 24); - } else { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < n)) { - break; - } - } - if(decodeState.validBits < 0) { - val6 = 0; - } else { - var z32 = decodeState.acc & (1 << n) - 1; - decodeState.acc = decodeState.acc >>> n; - decodeState.validBits -= n; - val6 = z32; - } - } - } else { - var z33 = decodeState.acc & (1 << n) - 1; - decodeState.acc = decodeState.acc >>> n; - decodeState.validBits -= n; - val6 = z33; - } - this15[index] = val6; - g1.values++; - } - } - var _g14 = 0; - var _g5 = g1.values; - while(_g14 < _g5) { - var j4 = _g14++; - p.push(new kha_audio2_ogg_vorbis_data_IntPoint()); - p[j4].x = g1.xlist[j4]; - p[j4].y = j4; - } - p.sort(kha_audio2_ogg_vorbis_VorbisTools.pointCompare); - var length1 = g1.values; - var this16 = new Array(length1); - g1.sortedOrder = this16; - var _g15 = 0; - var _g6 = g1.values; - while(_g15 < _g6) { - var j5 = _g15++; - g1.sortedOrder[j5] = p[j5].y; - } - var length2 = g1.values; - var this17 = new Array(length2); - g1.neighbors = this17; - var _g16 = 2; - var _g7 = g1.values; - while(_g16 < _g7) { - var j6 = _g16++; - var ne_low; - var ne_high; - var x = g1.xlist; - var low = -1; - var high = 65536; - var plow = 0; - var phigh = 0; - var _g17 = 0; - var _g8 = j6; - while(_g17 < _g8) { - var i = _g17++; - if(x[i] > low && x[i] < x[j6]) { - plow = i; - low = x[i]; - } - if(x[i] < high && x[i] > x[j6]) { - phigh = i; - high = x[i]; - } - } - ne_low = plow; - ne_high = phigh; - var this18 = g1.neighbors; - var length3 = g1.values; - var this19 = new Array(length3); - this18[j6] = this19; - g1.neighbors[j6][0] = ne_low; - g1.neighbors[j6][1] = ne_high; - } - } - return floor; -}; -kha_audio2_ogg_vorbis_data_Floor.prototype = { - floor0: null - ,floor1: null - ,type: null - ,__class__: kha_audio2_ogg_vorbis_data_Floor -}; -var kha_audio2_ogg_vorbis_data_Floor0 = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Floor0"] = kha_audio2_ogg_vorbis_data_Floor0; -kha_audio2_ogg_vorbis_data_Floor0.__name__ = true; -kha_audio2_ogg_vorbis_data_Floor0.prototype = { - order: null - ,rate: null - ,barkMapSize: null - ,amplitudeBits: null - ,amplitudeOffset: null - ,numberOfBooks: null - ,bookList: null - ,__class__: kha_audio2_ogg_vorbis_data_Floor0 -}; -var kha_audio2_ogg_vorbis_data_Floor1 = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Floor1"] = kha_audio2_ogg_vorbis_data_Floor1; -kha_audio2_ogg_vorbis_data_Floor1.__name__ = true; -kha_audio2_ogg_vorbis_data_Floor1.prototype = { - partitions: null - ,partitionClassList: null - ,classDimensions: null - ,classSubclasses: null - ,classMasterbooks: null - ,subclassBooks: null - ,xlist: null - ,sortedOrder: null - ,neighbors: null - ,floor1Multiplier: null - ,rangebits: null - ,values: null - ,__class__: kha_audio2_ogg_vorbis_data_Floor1 -}; -var kha_audio2_ogg_vorbis_data_Header = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Header"] = kha_audio2_ogg_vorbis_data_Header; -kha_audio2_ogg_vorbis_data_Header.__name__ = true; -kha_audio2_ogg_vorbis_data_Header.read = function(decodeState) { - var page = decodeState.page; - page.start(decodeState); - if((page.flag & 2) == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"not firstPage",{ fileName : "Header.hx", lineNumber : 46, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - if((page.flag & 4) != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"lastPage",{ fileName : "Header.hx", lineNumber : 49, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - if((page.flag & 1) != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"continuedPacket",{ fileName : "Header.hx", lineNumber : 52, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.firstPageValidate(); - decodeState.inputPosition += 1; - if(decodeState.input.readByte() != 1) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"decodeState head",{ fileName : "Header.hx", lineNumber : 57, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - var header = new haxe_io_Bytes(new ArrayBuffer(6)); - var _g = 0; - while(_g < 6) { - var i = _g++; - var x; - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - x = -1; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - x = decodeState.input.readByte(); - } - decodeState.validBits = 0; - header.b[i] = x & 255; - } - if(header.toString() != "vorbis") { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"vorbis header",{ fileName : "VorbisDecodeState.hx", lineNumber : 300, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "vorbisValidate"})); - } - decodeState.inputPosition += 4; - var version = decodeState.input.readInt32(); - if(version != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"vorbis version : " + version,{ fileName : "Header.hx", lineNumber : 66, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - var header1 = new kha_audio2_ogg_vorbis_data_Header(); - decodeState.inputPosition += 1; - header1.channel = decodeState.input.readByte(); - if(header1.channel == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"no channel",{ fileName : "Header.hx", lineNumber : 73, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } else if(header1.channel > 16) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS,"too many channels",{ fileName : "Header.hx", lineNumber : 75, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.inputPosition += 4; - header1.sampleRate = decodeState.input.readInt32(); - if(header1.sampleRate == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"no sampling rate",{ fileName : "Header.hx", lineNumber : 80, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.inputPosition += 4; - header1.maximumBitRate = decodeState.input.readInt32(); - decodeState.inputPosition += 4; - header1.nominalBitRate = decodeState.input.readInt32(); - decodeState.inputPosition += 4; - header1.minimumBitRate = decodeState.input.readInt32(); - decodeState.inputPosition += 1; - var x1 = decodeState.input.readByte(); - var log0 = x1 & 15; - var log1 = x1 >> 4; - header1.blocksize0 = 1 << log0; - header1.blocksize1 = 1 << log1; - if(log0 < 6 || log0 > 13) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 93, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - if(log1 < 6 || log1 > 13) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 96, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - if(log0 > log1) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 99, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.inputPosition += 1; - var x2 = decodeState.input.readByte(); - if((x2 & 1) == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,null,{ fileName : "Header.hx", lineNumber : 105, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.page.start(decodeState); - decodeState.startPacket(); - var len = 0; - var output = new haxe_io_BytesOutput(); - while(true) { - len = decodeState.next(); - if(!(len != 0)) { - break; - } - decodeState.inputPosition += len; - output.write(decodeState.input.read(len)); - decodeState.bytesInSeg = 0; - } - var packetInput = new haxe_io_BytesInput(output.getBytes()); - packetInput.readByte(); - packetInput.read(6); - var vendorLength = packetInput.readInt32(); - header1.vendor = packetInput.readString(vendorLength); - header1.comment = new kha_audio2_ogg_vorbis_data_Comment(); - var commentCount = packetInput.readInt32(); - var _g1 = 0; - var _g2 = commentCount; - while(_g1 < _g2) { - var i1 = _g1++; - var n = packetInput.readInt32(); - var str = packetInput.readString(n); - var splitter = str.indexOf("="); - if(splitter != -1) { - header1.comment.add(str.substring(0,splitter),str.substring(splitter + 1)); - } - } - var x3 = packetInput.readByte(); - if((x3 & 1) == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 141, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - decodeState.startPacket(); - var x4; - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - x4 = -1; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - x4 = decodeState.input.readByte(); - } - decodeState.validBits = 0; - if(x4 != 5) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"setup packet",{ fileName : "Header.hx", lineNumber : 149, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - var header2 = new haxe_io_Bytes(new ArrayBuffer(6)); - var _g3 = 0; - while(_g3 < 6) { - var i2 = _g3++; - var x5; - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - x5 = -1; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - x5 = decodeState.input.readByte(); - } - decodeState.validBits = 0; - header2.b[i2] = x5 & 255; - } - if(header2.toString() != "vorbis") { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"vorbis header",{ fileName : "VorbisDecodeState.hx", lineNumber : 300, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "vorbisValidate"})); - } - var codebookCount; - if(decodeState.validBits < 0) { - codebookCount = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - codebookCount = 0; - } else { - var z = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - codebookCount = z; - } - } else { - var z1 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - codebookCount = z1; - } - var codebookCount1 = codebookCount + 1; - var this1 = new Array(codebookCount1); - header1.codebooks = this1; - var _g11 = 0; - var _g4 = codebookCount1; - while(_g11 < _g4) { - var i3 = _g11++; - header1.codebooks[i3] = kha_audio2_ogg_vorbis_data_Codebook.read(decodeState); - } - var x6; - if(decodeState.validBits < 0) { - x6 = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - x6 = 0; - } else { - var z2 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - x6 = z2; - } - } else { - var z3 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - x6 = z3; - } - x2 = x6 + 1; - var _g12 = 0; - var _g5 = x2; - while(_g12 < _g5) { - var i4 = _g12++; - var tmp; - if(decodeState.validBits < 0) { - tmp = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp = 0; - } else { - var z4 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z4; - } - } else { - var z5 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z5; - } - if(tmp != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 165, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - } - var floorCount; - if(decodeState.validBits < 0) { - floorCount = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - floorCount = 0; - } else { - var z6 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - floorCount = z6; - } - } else { - var z7 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - floorCount = z7; - } - var floorCount1 = floorCount + 1; - var this2 = new Array(floorCount1); - header1.floorConfig = this2; - var _g13 = 0; - var _g6 = floorCount1; - while(_g13 < _g6) { - var i5 = _g13++; - header1.floorConfig[i5] = kha_audio2_ogg_vorbis_data_Floor.read(decodeState,header1.codebooks); - } - var residueCount; - if(decodeState.validBits < 0) { - residueCount = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - residueCount = 0; - } else { - var z8 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - residueCount = z8; - } - } else { - var z9 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - residueCount = z9; - } - var residueCount1 = residueCount + 1; - var this3 = new Array(residueCount1); - header1.residueConfig = this3; - var _g14 = 0; - var _g7 = residueCount1; - while(_g14 < _g7) { - var i6 = _g14++; - header1.residueConfig[i6] = kha_audio2_ogg_vorbis_data_Residue.read(decodeState,header1.codebooks); - } - var mappingCount; - if(decodeState.validBits < 0) { - mappingCount = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - mappingCount = 0; - } else { - var z10 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - mappingCount = z10; - } - } else { - var z11 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - mappingCount = z11; - } - var mappingCount1 = mappingCount + 1; - var this4 = new Array(mappingCount1); - header1.mapping = this4; - var _g15 = 0; - var _g8 = mappingCount1; - while(_g15 < _g8) { - var i7 = _g15++; - var map = kha_audio2_ogg_vorbis_data_Mapping.read(decodeState,header1.channel); - header1.mapping[i7] = map; - var _g31 = 0; - var _g21 = map.submaps; - while(_g31 < _g21) { - var j = _g31++; - if(map.submapFloor[j] >= header1.floorConfig.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 191, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - if(map.submapResidue[j] >= header1.residueConfig.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 194, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - } - } - var modeCount; - if(decodeState.validBits < 0) { - modeCount = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - modeCount = 0; - } else { - var z12 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - modeCount = z12; - } - } else { - var z13 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - modeCount = z13; - } - var modeCount1 = modeCount + 1; - var this5 = new Array(modeCount1); - header1.modes = this5; - var _g16 = 0; - var _g9 = modeCount1; - while(_g16 < _g9) { - var i8 = _g16++; - var mode = kha_audio2_ogg_vorbis_data_Mode.read(decodeState); - header1.modes[i8] = mode; - if(mode.mapping >= header1.mapping.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Header.hx", lineNumber : 205, className : "kha.audio2.ogg.vorbis.data.Header", methodName : "read"})); - } - } - while(decodeState.bytesInSeg != 0 || !decodeState.lastSeg && decodeState.next() != 0) { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.input.readByte(); - } - return header1; -}; -kha_audio2_ogg_vorbis_data_Header.prototype = { - maximumBitRate: null - ,nominalBitRate: null - ,minimumBitRate: null - ,sampleRate: null - ,channel: null - ,blocksize0: null - ,blocksize1: null - ,codebooks: null - ,floorConfig: null - ,residueConfig: null - ,mapping: null - ,modes: null - ,comment: null - ,vendor: null - ,__class__: kha_audio2_ogg_vorbis_data_Header -}; -var kha_audio2_ogg_vorbis_data_IntPoint = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.IntPoint"] = kha_audio2_ogg_vorbis_data_IntPoint; -kha_audio2_ogg_vorbis_data_IntPoint.__name__ = true; -kha_audio2_ogg_vorbis_data_IntPoint.prototype = { - x: null - ,y: null - ,__class__: kha_audio2_ogg_vorbis_data_IntPoint -}; -var kha_audio2_ogg_vorbis_data_Mapping = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Mapping"] = kha_audio2_ogg_vorbis_data_Mapping; -kha_audio2_ogg_vorbis_data_Mapping.__name__ = true; -kha_audio2_ogg_vorbis_data_Mapping.read = function(decodeState,channels) { - var m = new kha_audio2_ogg_vorbis_data_Mapping(); - var mappingType; - if(decodeState.validBits < 0) { - mappingType = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - mappingType = 0; - } else { - var z = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - mappingType = z; - } - } else { - var z1 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - mappingType = z1; - } - if(mappingType != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"mapping type " + mappingType,{ fileName : "Mapping.hx", lineNumber : 22, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - var this1 = new Array(channels); - m.chan = this1; - var _g1 = 0; - var _g = channels; - while(_g1 < _g) { - var j = _g1++; - m.chan[j] = new kha_audio2_ogg_vorbis_data_MappingChannel(); - } - var tmp; - if(decodeState.validBits < 0) { - tmp = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp = 0; - } else { - var z2 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp = z2; - } - } else { - var z3 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp = z3; - } - if(tmp != 0) { - var tmp1; - if(decodeState.validBits < 0) { - tmp1 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp1 = 0; - } else { - var z4 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp1 = z4; - } - } else { - var z5 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp1 = z5; - } - m.submaps = tmp1 + 1; - } else { - m.submaps = 1; - } - var tmp2; - if(decodeState.validBits < 0) { - tmp2 = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp2 = 0; - } else { - var z6 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp2 = z6; - } - } else { - var z7 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp2 = z7; - } - if(tmp2 != 0) { - var tmp3; - if(decodeState.validBits < 0) { - tmp3 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp3 = 0; - } else { - var z8 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z8; - } - } else { - var z9 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z9; - } - m.couplingSteps = tmp3 + 1; - var _g11 = 0; - var _g2 = m.couplingSteps; - while(_g11 < _g2) { - var k = _g11++; - var tmp4 = m.chan[k]; - var n = channels - 1; - var log2_4 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n1 = n < 16384 ? n < 16 ? log2_4[n] : n < 512 ? 5 + log2_4[n >> 5] : 10 + log2_4[n >> 10] : n < 16777216 ? n < 524288 ? 15 + log2_4[n >> 15] : 20 + log2_4[n >> 20] : n < 536870912 ? 25 + log2_4[n >> 25] : n < -2147483648 ? 30 + log2_4[n >> 30] : 0; - var tmp5; - if(decodeState.validBits < 0) { - tmp5 = 0; - } else if(decodeState.validBits < n1) { - if(n1 > 24) { - tmp5 = decodeState.readBits(24) + (decodeState.readBits(n1 - 24) << 24); - } else { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < n1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp5 = 0; - } else { - var z10 = decodeState.acc & (1 << n1) - 1; - decodeState.acc = decodeState.acc >>> n1; - decodeState.validBits -= n1; - tmp5 = z10; - } - } - } else { - var z11 = decodeState.acc & (1 << n1) - 1; - decodeState.acc = decodeState.acc >>> n1; - decodeState.validBits -= n1; - tmp5 = z11; - } - tmp4.magnitude = tmp5; - var tmp6 = m.chan[k]; - var n2 = channels - 1; - var log2_41 = [0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4]; - var n3 = n2 < 16384 ? n2 < 16 ? log2_41[n2] : n2 < 512 ? 5 + log2_41[n2 >> 5] : 10 + log2_41[n2 >> 10] : n2 < 16777216 ? n2 < 524288 ? 15 + log2_41[n2 >> 15] : 20 + log2_41[n2 >> 20] : n2 < 536870912 ? 25 + log2_41[n2 >> 25] : n2 < -2147483648 ? 30 + log2_41[n2 >> 30] : 0; - var tmp7; - if(decodeState.validBits < 0) { - tmp7 = 0; - } else if(decodeState.validBits < n3) { - if(n3 > 24) { - tmp7 = decodeState.readBits(24) + (decodeState.readBits(n3 - 24) << 24); - } else { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < n3)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp7 = 0; - } else { - var z12 = decodeState.acc & (1 << n3) - 1; - decodeState.acc = decodeState.acc >>> n3; - decodeState.validBits -= n3; - tmp7 = z12; - } - } - } else { - var z13 = decodeState.acc & (1 << n3) - 1; - decodeState.acc = decodeState.acc >>> n3; - decodeState.validBits -= n3; - tmp7 = z13; - } - tmp6.angle = tmp7; - if(m.chan[k].magnitude >= channels) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mapping.hx", lineNumber : 46, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - if(m.chan[k].angle >= channels) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mapping.hx", lineNumber : 49, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - if(m.chan[k].magnitude == m.chan[k].angle) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mapping.hx", lineNumber : 52, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - } - } else { - m.couplingSteps = 0; - } - var tmp8; - if(decodeState.validBits < 0) { - tmp8 = 0; - } else if(decodeState.validBits < 2) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 2)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp8 = 0; - } else { - var z14 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - tmp8 = z14; - } - } else { - var z15 = decodeState.acc & 3; - decodeState.acc = decodeState.acc >>> 2; - decodeState.validBits -= 2; - tmp8 = z15; - } - if(tmp8 != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mapping.hx", lineNumber : 61, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - if(m.submaps > 1) { - var _g12 = 0; - var _g3 = channels; - while(_g12 < _g3) { - var j1 = _g12++; - var tmp9 = m.chan[j1]; - var tmp10; - if(decodeState.validBits < 0) { - tmp10 = 0; - } else if(decodeState.validBits < 4) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 4)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp10 = 0; - } else { - var z16 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp10 = z16; - } - } else { - var z17 = decodeState.acc & 15; - decodeState.acc = decodeState.acc >>> 4; - decodeState.validBits -= 4; - tmp10 = z17; - } - tmp9.mux = tmp10; - if(m.chan[j1].mux >= m.submaps) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mapping.hx", lineNumber : 67, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "read"})); - } - } - } else { - var _g13 = 0; - var _g4 = channels; - while(_g13 < _g4) { - var j2 = _g13++; - m.chan[j2].mux = 0; - } - } - var length = m.submaps; - var this2 = new Array(length); - m.submapFloor = this2; - var length1 = m.submaps; - var this3 = new Array(length1); - m.submapResidue = this3; - var _g14 = 0; - var _g5 = m.submaps; - while(_g14 < _g5) { - var j3 = _g14++; - if(decodeState.validBits >= 0) { - if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits >= 0) { - var z18 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - } - } else { - var z19 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - } - } - var this4 = m.submapFloor; - var val; - if(decodeState.validBits < 0) { - val = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val = 0; - } else { - var z20 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z20; - } - } else { - var z21 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z21; - } - this4[j3] = val; - var this5 = m.submapResidue; - var val1; - if(decodeState.validBits < 0) { - val1 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val1 = 0; - } else { - var z22 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val1 = z22; - } - } else { - var z23 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val1 = z23; - } - this5[j3] = val1; - } - return m; -}; -kha_audio2_ogg_vorbis_data_Mapping.prototype = { - couplingSteps: null - ,chan: null - ,submaps: null - ,submapFloor: null - ,submapResidue: null - ,doFloor: function(floors,i,n,target,finalY,step2Flag) { - var n2 = n >> 1; - var s = this.chan[i].mux; - var floor; - var floor1 = floors[this.submapFloor[s]]; - if(floor1.type == 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{ fileName : "Mapping.hx", lineNumber : 94, className : "kha.audio2.ogg.vorbis.data.Mapping", methodName : "doFloor"})); - } else { - var g = floor1.floor1; - var lx = 0; - var ly = finalY[0] * g.floor1Multiplier; - var _g1 = 1; - var _g = g.values; - while(_g1 < _g) { - var q = _g1++; - var j = g.sortedOrder[q]; - if(finalY[j] >= 0) { - var hy = finalY[j] * g.floor1Multiplier; - var hx = g.xlist[j]; - kha_audio2_ogg_vorbis_VorbisTools.drawLine(target,lx,ly,hx,hy,n2); - lx = hx; - ly = hy; - } - } - if(lx < n2) { - var _g11 = lx; - var _g2 = n2; - while(_g11 < _g2) { - var j1 = _g11++; - var _g21 = j1; - var _g3 = target; - _g3[_g21] = _g3[_g21] * kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE[ly]; - } - } - } - } - ,__class__: kha_audio2_ogg_vorbis_data_Mapping -}; -var kha_audio2_ogg_vorbis_data_MappingChannel = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.MappingChannel"] = kha_audio2_ogg_vorbis_data_MappingChannel; -kha_audio2_ogg_vorbis_data_MappingChannel.__name__ = true; -kha_audio2_ogg_vorbis_data_MappingChannel.prototype = { - magnitude: null - ,angle: null - ,mux: null - ,__class__: kha_audio2_ogg_vorbis_data_MappingChannel -}; -var kha_audio2_ogg_vorbis_data_Mode = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Mode"] = kha_audio2_ogg_vorbis_data_Mode; -kha_audio2_ogg_vorbis_data_Mode.__name__ = true; -kha_audio2_ogg_vorbis_data_Mode.read = function(decodeState) { - var m = new kha_audio2_ogg_vorbis_data_Mode(); - var tmp; - if(decodeState.validBits < 0) { - tmp = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp = 0; - } else { - var z = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp = z; - } - } else { - var z1 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp = z1; - } - m.blockflag = tmp != 0; - var tmp1; - if(decodeState.validBits < 0) { - tmp1 = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp1 = 0; - } else { - var z2 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp1 = z2; - } - } else { - var z3 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp1 = z3; - } - m.windowtype = tmp1; - var tmp2; - if(decodeState.validBits < 0) { - tmp2 = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp2 = 0; - } else { - var z4 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp2 = z4; - } - } else { - var z5 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp2 = z5; - } - m.transformtype = tmp2; - var tmp3; - if(decodeState.validBits < 0) { - tmp3 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp3 = 0; - } else { - var z6 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z6; - } - } else { - var z7 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp3 = z7; - } - m.mapping = tmp3; - if(m.windowtype != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mode.hx", lineNumber : 22, className : "kha.audio2.ogg.vorbis.data.Mode", methodName : "read"})); - } - if(m.transformtype != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Mode.hx", lineNumber : 25, className : "kha.audio2.ogg.vorbis.data.Mode", methodName : "read"})); - } - return m; -}; -kha_audio2_ogg_vorbis_data_Mode.prototype = { - blockflag: null - ,mapping: null - ,windowtype: null - ,transformtype: null - ,__class__: kha_audio2_ogg_vorbis_data_Mode -}; -var kha_audio2_ogg_vorbis_data_Page = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Page"] = kha_audio2_ogg_vorbis_data_Page; -kha_audio2_ogg_vorbis_data_Page.__name__ = true; -kha_audio2_ogg_vorbis_data_Page.prototype = { - flag: null - ,clone: function() { - var page = new kha_audio2_ogg_vorbis_data_Page(); - page.flag = this.flag; - return page; - } - ,start: function(decodeState) { - var tmp; - var tmp1; - var tmp2; - decodeState.inputPosition += 1; - if(decodeState.input.readByte() == 79) { - decodeState.inputPosition += 1; - tmp2 = decodeState.input.readByte() != 103; - } else { - tmp2 = true; - } - if(!tmp2) { - decodeState.inputPosition += 1; - tmp1 = decodeState.input.readByte() != 103; - } else { - tmp1 = true; - } - if(!tmp1) { - decodeState.inputPosition += 1; - tmp = decodeState.input.readByte() != 83; - } else { - tmp = true; - } - if(tmp) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{ fileName : "VorbisDecodeState.hx", lineNumber : 323, className : "kha.audio2.ogg.vorbis.VorbisDecodeState", methodName : "capturePattern"})); - } - this.startWithoutCapturePattern(decodeState); - } - ,startWithoutCapturePattern: function(decodeState) { - decodeState.inputPosition += 1; - var version = decodeState.input.readByte(); - if(version != 0) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION,"" + version,{ fileName : "Page.hx", lineNumber : 34, className : "kha.audio2.ogg.vorbis.data.Page", methodName : "startWithoutCapturePattern"})); - } - decodeState.inputPosition += 1; - this.flag = decodeState.input.readByte(); - decodeState.inputPosition += 4; - var loc0 = decodeState.input.readInt32(); - decodeState.inputPosition += 4; - var loc1 = decodeState.input.readInt32(); - decodeState.inputPosition += 4; - decodeState.input.readInt32(); - decodeState.inputPosition += 4; - decodeState.input.readInt32(); - decodeState.inputPosition += 4; - decodeState.input.readInt32(); - decodeState.setup(loc0,loc1); - } - ,__class__: kha_audio2_ogg_vorbis_data_Page -}; -var kha_audio2_ogg_vorbis_data_PageFlag = function() { }; -$hxClasses["kha.audio2.ogg.vorbis.data.PageFlag"] = kha_audio2_ogg_vorbis_data_PageFlag; -kha_audio2_ogg_vorbis_data_PageFlag.__name__ = true; -var kha_audio2_ogg_vorbis_data_ProbedPage = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.ProbedPage"] = kha_audio2_ogg_vorbis_data_ProbedPage; -kha_audio2_ogg_vorbis_data_ProbedPage.__name__ = true; -kha_audio2_ogg_vorbis_data_ProbedPage.prototype = { - pageStart: null - ,pageEnd: null - ,afterPreviousPageStart: null - ,firstDecodedSample: null - ,lastDecodedSample: null - ,__class__: kha_audio2_ogg_vorbis_data_ProbedPage -}; -var kha_audio2_ogg_vorbis_data_ReaderError = function(type,message,posInfos) { - if(message == null) { - message = ""; - } - this.type = type; - this.message = message; - this.posInfos = posInfos; -}; -$hxClasses["kha.audio2.ogg.vorbis.data.ReaderError"] = kha_audio2_ogg_vorbis_data_ReaderError; -kha_audio2_ogg_vorbis_data_ReaderError.__name__ = true; -kha_audio2_ogg_vorbis_data_ReaderError.prototype = { - type: null - ,message: null - ,posInfos: null - ,__class__: kha_audio2_ogg_vorbis_data_ReaderError -}; -var kha_audio2_ogg_vorbis_data_ReaderErrorType = $hxClasses["kha.audio2.ogg.vorbis.data.ReaderErrorType"] = { __ename__ : true, __constructs__ : ["NEED_MORE_DATA","INVALID_API_MIXING","OUTOFMEM","FEATURE_NOT_SUPPORTED","TOO_MANY_CHANNELS","FILE_OPEN_FAILURE","SEEK_WITHOUT_LENGTH","UNEXPECTED_EOF","SEEK_INVALID","INVALID_SETUP","INVALID_STREAM","MISSING_CAPTURE_PATTERN","INVALID_STREAM_STRUCTURE_VERSION","CONTINUED_PACKET_FLAG_INVALID","INCORRECT_STREAM_SERIAL_NUMBER","INVALID_FIRST_PAGE","BAD_PACKET_TYPE","CANT_FIND_LAST_PAGE","SEEK_FAILED","OTHER"] }; -kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA = ["NEED_MORE_DATA",0]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING = ["INVALID_API_MIXING",1]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM = ["OUTOFMEM",2]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED = ["FEATURE_NOT_SUPPORTED",3]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS = ["TOO_MANY_CHANNELS",4]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE = ["FILE_OPEN_FAILURE",5]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH = ["SEEK_WITHOUT_LENGTH",6]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF = ["UNEXPECTED_EOF",7]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID = ["SEEK_INVALID",8]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP = ["INVALID_SETUP",9]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM = ["INVALID_STREAM",10]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN = ["MISSING_CAPTURE_PATTERN",11]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION = ["INVALID_STREAM_STRUCTURE_VERSION",12]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID = ["CONTINUED_PACKET_FLAG_INVALID",13]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER = ["INCORRECT_STREAM_SERIAL_NUMBER",14]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE = ["INVALID_FIRST_PAGE",15]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE = ["BAD_PACKET_TYPE",16]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE = ["CANT_FIND_LAST_PAGE",17]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED = ["SEEK_FAILED",18]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER = ["OTHER",19]; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER.toString = $estr; -kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER.__enum__ = kha_audio2_ogg_vorbis_data_ReaderErrorType; -var kha_audio2_ogg_vorbis_data_Residue = function() { -}; -$hxClasses["kha.audio2.ogg.vorbis.data.Residue"] = kha_audio2_ogg_vorbis_data_Residue; -kha_audio2_ogg_vorbis_data_Residue.__name__ = true; -kha_audio2_ogg_vorbis_data_Residue.read = function(decodeState,codebooks) { - var r = new kha_audio2_ogg_vorbis_data_Residue(); - var tmp; - if(decodeState.validBits < 0) { - tmp = 0; - } else if(decodeState.validBits < 16) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 16)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp = 0; - } else { - var z = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z; - } - } else { - var z1 = decodeState.acc & 65535; - decodeState.acc = decodeState.acc >>> 16; - decodeState.validBits -= 16; - tmp = z1; - } - r.type = tmp; - if(r.type > 2) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Residue.hx", lineNumber : 29, className : "kha.audio2.ogg.vorbis.data.Residue", methodName : "read"})); - } - var this1 = new Array(64); - var residueCascade = this1; - var tmp1; - if(decodeState.validBits < 0) { - tmp1 = 0; - } else if(decodeState.validBits < 24) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 24)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp1 = 0; - } else { - var z2 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp1 = z2; - } - } else { - var z3 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp1 = z3; - } - r.begin = tmp1; - var tmp2; - if(decodeState.validBits < 0) { - tmp2 = 0; - } else if(decodeState.validBits < 24) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 24)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp2 = 0; - } else { - var z4 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp2 = z4; - } - } else { - var z5 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp2 = z5; - } - r.end = tmp2; - var tmp3; - if(decodeState.validBits < 0) { - tmp3 = 0; - } else if(decodeState.validBits < 24) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 24)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp3 = 0; - } else { - var z6 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp3 = z6; - } - } else { - var z7 = decodeState.acc & 16777215; - decodeState.acc = decodeState.acc >>> 24; - decodeState.validBits -= 24; - tmp3 = z7; - } - r.partSize = tmp3 + 1; - var classifications; - if(decodeState.validBits < 0) { - classifications = 0; - } else if(decodeState.validBits < 6) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 6)) { - break; - } - } - if(decodeState.validBits < 0) { - classifications = 0; - } else { - var z8 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - classifications = z8; - } - } else { - var z9 = decodeState.acc & 63; - decodeState.acc = decodeState.acc >>> 6; - decodeState.validBits -= 6; - classifications = z9; - } - var classifications1 = r.classifications = classifications + 1; - var tmp4; - if(decodeState.validBits < 0) { - tmp4 = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp4 = 0; - } else { - var z10 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp4 = z10; - } - } else { - var z11 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - tmp4 = z11; - } - r.classbook = tmp4; - var _g1 = 0; - var _g = r.classifications; - while(_g1 < _g) { - var j = _g1++; - var highBits = 0; - var lowBits; - if(decodeState.validBits < 0) { - lowBits = 0; - } else if(decodeState.validBits < 3) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 3)) { - break; - } - } - if(decodeState.validBits < 0) { - lowBits = 0; - } else { - var z12 = decodeState.acc & 7; - decodeState.acc = decodeState.acc >>> 3; - decodeState.validBits -= 3; - lowBits = z12; - } - } else { - var z13 = decodeState.acc & 7; - decodeState.acc = decodeState.acc >>> 3; - decodeState.validBits -= 3; - lowBits = z13; - } - var tmp5; - if(decodeState.validBits < 0) { - tmp5 = 0; - } else if(decodeState.validBits < 1) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 1)) { - break; - } - } - if(decodeState.validBits < 0) { - tmp5 = 0; - } else { - var z14 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp5 = z14; - } - } else { - var z15 = decodeState.acc & 1; - decodeState.acc = decodeState.acc >>> 1; - decodeState.validBits -= 1; - tmp5 = z15; - } - if(tmp5 != 0) { - if(decodeState.validBits < 0) { - highBits = 0; - } else if(decodeState.validBits < 5) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 5)) { - break; - } - } - if(decodeState.validBits < 0) { - highBits = 0; - } else { - var z16 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - highBits = z16; - } - } else { - var z17 = decodeState.acc & 31; - decodeState.acc = decodeState.acc >>> 5; - decodeState.validBits -= 5; - highBits = z17; - } - } - residueCascade[j] = highBits * 8 + lowBits; - } - var length = r.classifications; - var this2 = new Array(length); - r.residueBooks = this2; - var _g11 = 0; - var _g2 = r.classifications; - while(_g11 < _g2) { - var j1 = _g11++; - var this3 = r.residueBooks; - var this4 = new Array(8); - this3[j1] = this4; - var _g21 = 0; - while(_g21 < 8) { - var k = _g21++; - if((residueCascade[j1] & 1 << k) != 0) { - var this5 = r.residueBooks[j1]; - var val; - if(decodeState.validBits < 0) { - val = 0; - } else if(decodeState.validBits < 8) { - if(decodeState.validBits == 0) { - decodeState.acc = 0; - } - while(true) { - if(decodeState.bytesInSeg == 0 && (decodeState.lastSeg || decodeState.next() == 0)) { - decodeState.validBits = -1; - break; - } else { - decodeState.bytesInSeg--; - decodeState.inputPosition += 1; - decodeState.acc = decodeState.acc + (decodeState.input.readByte() << decodeState.validBits); - decodeState.validBits += 8; - } - if(!(decodeState.validBits < 8)) { - break; - } - } - if(decodeState.validBits < 0) { - val = 0; - } else { - var z18 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z18; - } - } else { - var z19 = decodeState.acc & 255; - decodeState.acc = decodeState.acc >>> 8; - decodeState.validBits -= 8; - val = z19; - } - this5[k] = val; - if(r.residueBooks[j1][k] >= codebooks.length) { - throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{ fileName : "Residue.hx", lineNumber : 55, className : "kha.audio2.ogg.vorbis.data.Residue", methodName : "read"})); - } - } else { - r.residueBooks[j1][k] = -1; - } - } - } - var el = codebooks[r.classbook].entries; - var classwords = codebooks[r.classbook].dimensions; - var this6 = new Array(el); - r.classdata = this6; - var _g12 = 0; - var _g3 = el; - while(_g12 < _g3) { - var j2 = _g12++; - var temp = j2; - var k1 = classwords; - var this7 = r.classdata; - var this8 = new Array(classwords); - var cd = this7[j2] = this8; - while(--k1 >= 0) { - cd[k1] = temp % classifications1; - temp = temp / classifications1 | 0; - } - } - return r; -}; -kha_audio2_ogg_vorbis_data_Residue.prototype = { - begin: null - ,end: null - ,partSize: null - ,classifications: null - ,classbook: null - ,classdata: null - ,residueBooks: null - ,type: null - ,decode: function(decodeState,header,residueBuffers,ch,n,doNotDecode,channelBuffers) { - var codebooks = header.codebooks; - var classwords = codebooks[this.classbook].dimensions; - var nRead = this.end - this.begin; - var partSize = this.partSize; - var partRead = _$UInt_UInt_$Impl_$.toFloat(nRead) / _$UInt_UInt_$Impl_$.toFloat(partSize) | 0; - var length = header.channel * partRead + 1; - var this1 = new Array(length); - var classifications = this1; - var _g1 = 0; - var _g = ch; - while(_g1 < _g) { - var i = _g1++; - if(!doNotDecode[i]) { - var buffer = residueBuffers[i]; - var _g3 = 0; - var _g2 = buffer.length; - while(_g3 < _g2) { - var j = _g3++; - buffer[j] = 0; - } - } - } - if(this.type == 2 && ch != 1) { - var _g11 = 0; - var _g4 = ch; - while(_g11 < _g4) { - var j1 = _g11++; - if(!doNotDecode[j1]) { - break; - } else if(j1 == ch - 1) { - return; - } - } - var _g5 = 0; - while(_g5 < 8) { - var pass = _g5++; - var pcount = 0; - var classSet = 0; - if(ch == 2) { - while(pcount < partRead) { - var z = this.begin + pcount * partSize; - var cInter = z & 1; - var pInter = z >>> 1; - if(pass == 0) { - var c = codebooks[this.classbook]; - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i1 = c.fastHuffman[decodeState.acc & 1023]; - var val; - if(i1 >= 0) { - var l = c.codewordLengths[i1]; - decodeState.acc = decodeState.acc >>> l; - decodeState.validBits -= l; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val = -1; - } else { - val = i1; - } - } else { - val = decodeState.decodeScalarRaw(c); - } - if(c.sparse) { - val = c.sortedValues[val]; - } - var q = val; - if(q == -1) { - return; - } - var i2 = classwords; - while(--i2 >= 0) { - classifications[i2 + pcount] = q % this.classifications; - q = q / this.classifications | 0; - } - } - var _g21 = 0; - var _g12 = classwords; - while(_g21 < _g12) { - var i3 = _g21++; - if(pcount >= partRead) { - break; - } - var z1 = this.begin + pcount * partSize; - var c1 = classifications[pcount]; - var b = this.residueBooks[c1][pass]; - if(b >= 0) { - var book = codebooks[b]; - var result = book.decodeDeinterleaveRepeat(decodeState,residueBuffers,ch,cInter,pInter,n,partSize); - if(result == null) { - return; - } else { - cInter = result.cInter; - pInter = result.pInter; - } - } else { - z1 = z1 + partSize; - cInter = z1 & 1; - pInter = z1 >>> 1; - } - ++pcount; - } - } - } else if(ch == 1) { - while(pcount < partRead) { - var z2 = this.begin + pcount * partSize; - var cInter1 = 0; - var pInter1 = z2; - if(pass == 0) { - var c2 = codebooks[this.classbook]; - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i4 = c2.fastHuffman[decodeState.acc & 1023]; - var val1; - if(i4 >= 0) { - var l1 = c2.codewordLengths[i4]; - decodeState.acc = decodeState.acc >>> l1; - decodeState.validBits -= l1; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val1 = -1; - } else { - val1 = i4; - } - } else { - val1 = decodeState.decodeScalarRaw(c2); - } - if(c2.sparse) { - val1 = c2.sortedValues[val1]; - } - var q1 = val1; - if(q1 == -1) { - return; - } - var i5 = classwords; - while(--i5 >= 0) { - classifications[i5 + pcount] = q1 % this.classifications; - q1 = q1 / this.classifications | 0; - } - } - var _g22 = 0; - var _g13 = classwords; - while(_g22 < _g13) { - var i6 = _g22++; - if(pcount >= partRead) { - break; - } - var z3 = this.begin + pcount * partSize; - var b1 = this.residueBooks[classifications[pcount]][pass]; - if(b1 >= 0) { - var book1 = codebooks[b1]; - var result1 = book1.decodeDeinterleaveRepeat(decodeState,residueBuffers,ch,cInter1,pInter1,n,partSize); - if(result1 == null) { - return; - } else { - cInter1 = result1.cInter; - pInter1 = result1.pInter; - } - } else { - z3 = z3 + partSize; - cInter1 = 0; - pInter1 = z3; - } - ++pcount; - } - } - } else { - while(pcount < partRead) { - var z4 = this.begin + pcount * partSize; - var cInter2 = _$UInt_UInt_$Impl_$.toFloat(z4) % _$UInt_UInt_$Impl_$.toFloat(ch) | 0; - var pInter2 = _$UInt_UInt_$Impl_$.toFloat(z4) / _$UInt_UInt_$Impl_$.toFloat(ch) | 0; - if(pass == 0) { - var c3 = codebooks[this.classbook]; - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i7 = c3.fastHuffman[decodeState.acc & 1023]; - var val2; - if(i7 >= 0) { - var l2 = c3.codewordLengths[i7]; - decodeState.acc = decodeState.acc >>> l2; - decodeState.validBits -= l2; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val2 = -1; - } else { - val2 = i7; - } - } else { - val2 = decodeState.decodeScalarRaw(c3); - } - if(c3.sparse) { - val2 = c3.sortedValues[val2]; - } - var q2 = val2; - if(q2 == -1) { - return; - } - var i8 = classwords; - while(--i8 >= 0) { - classifications[i8 + pcount] = q2 % this.classifications; - q2 = q2 / this.classifications | 0; - } - } - var _g23 = 0; - var _g14 = classwords; - while(_g23 < _g14) { - var i9 = _g23++; - if(pcount >= partRead) { - break; - } - var z5 = this.begin + pcount * partSize; - var b2 = this.residueBooks[classifications[pcount]][pass]; - if(b2 >= 0) { - var book2 = codebooks[b2]; - var result2 = book2.decodeDeinterleaveRepeat(decodeState,residueBuffers,ch,cInter2,pInter2,n,partSize); - if(result2 == null) { - return; - } else { - cInter2 = result2.cInter; - pInter2 = result2.pInter; - } - } else { - z5 = z5 + partSize; - cInter2 = _$UInt_UInt_$Impl_$.toFloat(z5) % _$UInt_UInt_$Impl_$.toFloat(ch) | 0; - pInter2 = _$UInt_UInt_$Impl_$.toFloat(z5) / _$UInt_UInt_$Impl_$.toFloat(ch) | 0; - } - ++pcount; - } - } - } - } - return; - } - var _g6 = 0; - while(_g6 < 8) { - var pass1 = _g6++; - var pcount1 = 0; - var classSet1 = 0; - while(pcount1 < partRead) { - if(pass1 == 0) { - var _g24 = 0; - var _g15 = ch; - while(_g24 < _g15) { - var j2 = _g24++; - if(!doNotDecode[j2]) { - var c4 = codebooks[this.classbook]; - if(decodeState.validBits < 10) { - decodeState.prepHuffman(); - } - var i10 = c4.fastHuffman[decodeState.acc & 1023]; - var val3; - if(i10 >= 0) { - var l3 = c4.codewordLengths[i10]; - decodeState.acc = decodeState.acc >>> l3; - decodeState.validBits -= l3; - if(decodeState.validBits < 0) { - decodeState.validBits = 0; - val3 = -1; - } else { - val3 = i10; - } - } else { - val3 = decodeState.decodeScalarRaw(c4); - } - if(c4.sparse) { - val3 = c4.sortedValues[val3]; - } - var temp = val3; - if(temp == -1) { - return; - } - var i11 = classwords; - while(--i11 >= 0) { - classifications[j2 * partRead + i11 + pcount1] = temp % this.classifications; - temp = temp / this.classifications | 0; - } - } - } - } - var _g25 = 0; - var _g16 = classwords; - while(_g25 < _g16) { - var i12 = _g25++; - if(pcount1 >= partRead) { - break; - } - var _g41 = 0; - var _g31 = ch; - while(_g41 < _g31) { - var j3 = _g41++; - if(!doNotDecode[j3]) { - var c5 = classifications[j3 * partRead + pcount1]; - var b3 = this.residueBooks[c5][pass1]; - if(b3 >= 0) { - var target = residueBuffers[j3]; - var offset = this.begin + pcount1 * partSize; - var n1 = partSize; - var book3 = codebooks[b3]; - if(!book3.residueDecode(decodeState,target,offset,n1,this.type)) { - return; - } - } - } - } - ++pcount1; - } - } - } - } - ,__class__: kha_audio2_ogg_vorbis_data_Residue -}; -var kha_audio2_ogg_vorbis_data_Setting = function() { }; -$hxClasses["kha.audio2.ogg.vorbis.data.Setting"] = kha_audio2_ogg_vorbis_data_Setting; -kha_audio2_ogg_vorbis_data_Setting.__name__ = true; -var kha_graphics1_Graphics = function() { }; -$hxClasses["kha.graphics1.Graphics"] = kha_graphics1_Graphics; -kha_graphics1_Graphics.__name__ = true; -kha_graphics1_Graphics.prototype = { - begin: null - ,end: null - ,setPixel: null - ,__class__: kha_graphics1_Graphics -}; -var kha_graphics2_Graphics = function() { - this.transformations = []; - this.transformations.push(new kha_math_FastMatrix3(1,0,0,0,1,0,0,0,1)); - this.opacities = []; - this.opacities.push(1); - this.myFontSize = 12; - this.myFontGlyphs = []; - var _g = 32; - while(_g < 256) { - var i = _g++; - this.myFontGlyphs.push(i); - } - this.pipe = null; -}; -$hxClasses["kha.graphics2.Graphics"] = kha_graphics2_Graphics; -kha_graphics2_Graphics.__name__ = true; -kha_graphics2_Graphics.prototype = { - begin: function(clear,clearColor) { - if(clear == null) { - clear = true; - } - } - ,end: function() { - } - ,flush: function() { - } - ,clear: function(color) { - } - ,drawImage: function(img,x,y) { - this.drawSubImage(img,x,y,0,0,img.get_width(),img.get_height()); - } - ,drawSubImage: function(img,x,y,sx,sy,sw,sh) { - this.drawScaledSubImage(img,sx,sy,sw,sh,x,y,sw,sh); - } - ,drawScaledImage: function(img,dx,dy,dw,dh) { - this.drawScaledSubImage(img,0,0,img.get_width(),img.get_height(),dx,dy,dw,dh); - } - ,drawScaledSubImage: function(image,sx,sy,sw,sh,dx,dy,dw,dh) { - } - ,drawRect: function(x,y,width,height,strength) { - if(strength == null) { - strength = 1.0; - } - } - ,fillRect: function(x,y,width,height) { - } - ,drawString: function(text,x,y) { - } - ,drawLine: function(x1,y1,x2,y2,strength) { - if(strength == null) { - strength = 1.0; - } - } - ,drawVideo: function(video,x,y,width,height) { - } - ,fillTriangle: function(x1,y1,x2,y2,x3,y3) { - } - ,get_imageScaleQuality: function() { - return kha_graphics2_ImageScaleQuality.Low; - } - ,set_imageScaleQuality: function(value) { - return kha_graphics2_ImageScaleQuality.High; - } - ,get_mipmapScaleQuality: function() { - return kha_graphics2_ImageScaleQuality.Low; - } - ,set_mipmapScaleQuality: function(value) { - return kha_graphics2_ImageScaleQuality.High; - } - ,get_color: function() { - return -16777216; - } - ,set_color: function(color) { - return -16777216; - } - ,get_font: function() { - return null; - } - ,set_font: function(font) { - return null; - } - ,get_fontSize: function() { - return this.myFontSize; - } - ,set_fontSize: function(value) { - return this.myFontSize = value; - } - ,get_fontGlyphs: function() { - return this.myFontGlyphs; - } - ,set_fontGlyphs: function(value) { - return this.myFontGlyphs = value; - } - ,pushTransformation: function(transformation) { - var trans = new kha_math_FastMatrix3(1,0,0,0,1,0,0,0,1); - trans._00 = transformation._00; - trans._10 = transformation._10; - trans._20 = transformation._20; - trans._01 = transformation._01; - trans._11 = transformation._11; - trans._21 = transformation._21; - trans._02 = transformation._02; - trans._12 = transformation._12; - trans._22 = transformation._22; - this.setTransformation(trans); - this.transformations.push(trans); - } - ,popTransformation: function() { - var ret = this.transformations.pop(); - this.setTransformation(this.transformations[this.transformations.length - 1]); - return ret; - } - ,get_transformation: function() { - return this.transformations[this.transformations.length - 1]; - } - ,set_transformation: function(transformation) { - this.setTransformation(transformation); - var _this = this.transformations[this.transformations.length - 1]; - _this._00 = transformation._00; - _this._10 = transformation._10; - _this._20 = transformation._20; - _this._01 = transformation._01; - _this._11 = transformation._11; - _this._21 = transformation._21; - _this._02 = transformation._02; - _this._12 = transformation._12; - _this._22 = transformation._22; - return transformation; - } - ,translation: function(tx,ty) { - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00 = 1; - _this__10 = 0; - _this__20 = tx; - _this__01 = 0; - _this__11 = 1; - _this__21 = ty; - _this__02 = 0; - _this__12 = 0; - _this__22 = 1; - var m = this.transformations[this.transformations.length - 1]; - return new kha_math_FastMatrix3(_this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02,_this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12,_this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22,_this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02,_this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12,_this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22,_this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02,_this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12,_this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22); - } - ,translate: function(tx,ty) { - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00 = 1; - _this__10 = 0; - _this__20 = tx; - _this__01 = 0; - _this__11 = 1; - _this__21 = ty; - _this__02 = 0; - _this__12 = 0; - _this__22 = 1; - var m = this.transformations[this.transformations.length - 1]; - var transformation = new kha_math_FastMatrix3(_this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02,_this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12,_this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22,_this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02,_this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12,_this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22,_this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02,_this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12,_this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22); - this.setTransformation(transformation); - var _this = this.transformations[this.transformations.length - 1]; - _this._00 = transformation._00; - _this._10 = transformation._10; - _this._20 = transformation._20; - _this._01 = transformation._01; - _this._11 = transformation._11; - _this._21 = transformation._21; - _this._02 = transformation._02; - _this._12 = transformation._12; - _this._22 = transformation._22; - } - ,pushTranslation: function(tx,ty) { - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00 = 1; - _this__10 = 0; - _this__20 = tx; - _this__01 = 0; - _this__11 = 1; - _this__21 = ty; - _this__02 = 0; - _this__12 = 0; - _this__22 = 1; - var m = this.transformations[this.transformations.length - 1]; - this.pushTransformation(new kha_math_FastMatrix3(_this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02,_this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12,_this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22,_this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02,_this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12,_this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22,_this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02,_this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12,_this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22)); - } - ,rotation: function(angle,centerx,centery) { - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00; - var _this__221; - var _this__211; - var _this__201; - var _this__121; - var _this__111; - var _this__101; - var _this__021; - var _this__011; - var _this__001; - var _this__222; - var _this__212; - var _this__202; - var _this__122; - var _this__112; - var _this__102; - var _this__022; - var _this__012; - var _this__002 = 1; - _this__102 = 0; - _this__202 = centerx; - _this__012 = 0; - _this__112 = 1; - _this__212 = centery; - _this__022 = 0; - _this__122 = 0; - _this__222 = 1; - var m__22; - var m__21; - var m__20; - var m__12; - var m__11; - var m__10; - var m__02; - var m__01; - var m__00 = Math.cos(angle); - m__10 = -Math.sin(angle); - m__20 = 0; - m__01 = Math.sin(angle); - m__11 = Math.cos(angle); - m__21 = 0; - m__02 = 0; - m__12 = 0; - m__22 = 1; - _this__001 = _this__002 * m__00 + _this__102 * m__01 + _this__202 * m__02; - _this__101 = _this__002 * m__10 + _this__102 * m__11 + _this__202 * m__12; - _this__201 = _this__002 * m__20 + _this__102 * m__21 + _this__202 * m__22; - _this__011 = _this__012 * m__00 + _this__112 * m__01 + _this__212 * m__02; - _this__111 = _this__012 * m__10 + _this__112 * m__11 + _this__212 * m__12; - _this__211 = _this__012 * m__20 + _this__112 * m__21 + _this__212 * m__22; - _this__021 = _this__022 * m__00 + _this__122 * m__01 + _this__222 * m__02; - _this__121 = _this__022 * m__10 + _this__122 * m__11 + _this__222 * m__12; - _this__221 = _this__022 * m__20 + _this__122 * m__21 + _this__222 * m__22; - var m__221; - var m__211; - var m__201; - var m__121; - var m__111; - var m__101; - var m__021; - var m__011; - var m__001 = 1; - m__101 = 0; - m__201 = -centerx; - m__011 = 0; - m__111 = 1; - m__211 = -centery; - m__021 = 0; - m__121 = 0; - m__221 = 1; - _this__00 = _this__001 * m__001 + _this__101 * m__011 + _this__201 * m__021; - _this__10 = _this__001 * m__101 + _this__101 * m__111 + _this__201 * m__121; - _this__20 = _this__001 * m__201 + _this__101 * m__211 + _this__201 * m__221; - _this__01 = _this__011 * m__001 + _this__111 * m__011 + _this__211 * m__021; - _this__11 = _this__011 * m__101 + _this__111 * m__111 + _this__211 * m__121; - _this__21 = _this__011 * m__201 + _this__111 * m__211 + _this__211 * m__221; - _this__02 = _this__021 * m__001 + _this__121 * m__011 + _this__221 * m__021; - _this__12 = _this__021 * m__101 + _this__121 * m__111 + _this__221 * m__121; - _this__22 = _this__021 * m__201 + _this__121 * m__211 + _this__221 * m__221; - var m = this.transformations[this.transformations.length - 1]; - return new kha_math_FastMatrix3(_this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02,_this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12,_this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22,_this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02,_this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12,_this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22,_this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02,_this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12,_this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22); - } - ,rotate: function(angle,centerx,centery) { - var temp__22; - var temp__21; - var temp__20; - var temp__12; - var temp__11; - var temp__10; - var temp__02; - var temp__01; - var temp__00; - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00; - var _this__221; - var _this__211; - var _this__201; - var _this__121; - var _this__111; - var _this__101; - var _this__021; - var _this__011; - var _this__001; - var _this__222; - var _this__212; - var _this__202; - var _this__122; - var _this__112; - var _this__102; - var _this__022; - var _this__012; - var _this__002 = 1; - _this__102 = 0; - _this__202 = centerx; - _this__012 = 0; - _this__112 = 1; - _this__212 = centery; - _this__022 = 0; - _this__122 = 0; - _this__222 = 1; - var m__22; - var m__21; - var m__20; - var m__12; - var m__11; - var m__10; - var m__02; - var m__01; - var m__00 = Math.cos(angle); - m__10 = -Math.sin(angle); - m__20 = 0; - m__01 = Math.sin(angle); - m__11 = Math.cos(angle); - m__21 = 0; - m__02 = 0; - m__12 = 0; - m__22 = 1; - _this__001 = _this__002 * m__00 + _this__102 * m__01 + _this__202 * m__02; - _this__101 = _this__002 * m__10 + _this__102 * m__11 + _this__202 * m__12; - _this__201 = _this__002 * m__20 + _this__102 * m__21 + _this__202 * m__22; - _this__011 = _this__012 * m__00 + _this__112 * m__01 + _this__212 * m__02; - _this__111 = _this__012 * m__10 + _this__112 * m__11 + _this__212 * m__12; - _this__211 = _this__012 * m__20 + _this__112 * m__21 + _this__212 * m__22; - _this__021 = _this__022 * m__00 + _this__122 * m__01 + _this__222 * m__02; - _this__121 = _this__022 * m__10 + _this__122 * m__11 + _this__222 * m__12; - _this__221 = _this__022 * m__20 + _this__122 * m__21 + _this__222 * m__22; - var m__221; - var m__211; - var m__201; - var m__121; - var m__111; - var m__101; - var m__021; - var m__011; - var m__001 = 1; - m__101 = 0; - m__201 = -centerx; - m__011 = 0; - m__111 = 1; - m__211 = -centery; - m__021 = 0; - m__121 = 0; - m__221 = 1; - _this__00 = _this__001 * m__001 + _this__101 * m__011 + _this__201 * m__021; - _this__10 = _this__001 * m__101 + _this__101 * m__111 + _this__201 * m__121; - _this__20 = _this__001 * m__201 + _this__101 * m__211 + _this__201 * m__221; - _this__01 = _this__011 * m__001 + _this__111 * m__011 + _this__211 * m__021; - _this__11 = _this__011 * m__101 + _this__111 * m__111 + _this__211 * m__121; - _this__21 = _this__011 * m__201 + _this__111 * m__211 + _this__211 * m__221; - _this__02 = _this__021 * m__001 + _this__121 * m__011 + _this__221 * m__021; - _this__12 = _this__021 * m__101 + _this__121 * m__111 + _this__221 * m__121; - _this__22 = _this__021 * m__201 + _this__121 * m__211 + _this__221 * m__221; - var m = this.transformations[this.transformations.length - 1]; - temp__00 = _this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02; - temp__10 = _this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12; - temp__20 = _this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22; - temp__01 = _this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02; - temp__11 = _this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12; - temp__21 = _this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22; - temp__02 = _this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02; - temp__12 = _this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12; - temp__22 = _this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22; - this.transformations[this.transformations.length - 1]._00 = temp__00; - this.transformations[this.transformations.length - 1]._01 = temp__01; - this.transformations[this.transformations.length - 1]._02 = temp__02; - this.transformations[this.transformations.length - 1]._10 = temp__10; - this.transformations[this.transformations.length - 1]._11 = temp__11; - this.transformations[this.transformations.length - 1]._12 = temp__12; - this.transformations[this.transformations.length - 1]._20 = temp__20; - this.transformations[this.transformations.length - 1]._21 = temp__21; - this.transformations[this.transformations.length - 1]._22 = temp__22; - } - ,pushRotation: function(angle,centerx,centery) { - var _this__22; - var _this__21; - var _this__20; - var _this__12; - var _this__11; - var _this__10; - var _this__02; - var _this__01; - var _this__00; - var _this__221; - var _this__211; - var _this__201; - var _this__121; - var _this__111; - var _this__101; - var _this__021; - var _this__011; - var _this__001; - var _this__222; - var _this__212; - var _this__202; - var _this__122; - var _this__112; - var _this__102; - var _this__022; - var _this__012; - var _this__002 = 1; - _this__102 = 0; - _this__202 = centerx; - _this__012 = 0; - _this__112 = 1; - _this__212 = centery; - _this__022 = 0; - _this__122 = 0; - _this__222 = 1; - var m__22; - var m__21; - var m__20; - var m__12; - var m__11; - var m__10; - var m__02; - var m__01; - var m__00 = Math.cos(angle); - m__10 = -Math.sin(angle); - m__20 = 0; - m__01 = Math.sin(angle); - m__11 = Math.cos(angle); - m__21 = 0; - m__02 = 0; - m__12 = 0; - m__22 = 1; - _this__001 = _this__002 * m__00 + _this__102 * m__01 + _this__202 * m__02; - _this__101 = _this__002 * m__10 + _this__102 * m__11 + _this__202 * m__12; - _this__201 = _this__002 * m__20 + _this__102 * m__21 + _this__202 * m__22; - _this__011 = _this__012 * m__00 + _this__112 * m__01 + _this__212 * m__02; - _this__111 = _this__012 * m__10 + _this__112 * m__11 + _this__212 * m__12; - _this__211 = _this__012 * m__20 + _this__112 * m__21 + _this__212 * m__22; - _this__021 = _this__022 * m__00 + _this__122 * m__01 + _this__222 * m__02; - _this__121 = _this__022 * m__10 + _this__122 * m__11 + _this__222 * m__12; - _this__221 = _this__022 * m__20 + _this__122 * m__21 + _this__222 * m__22; - var m__221; - var m__211; - var m__201; - var m__121; - var m__111; - var m__101; - var m__021; - var m__011; - var m__001 = 1; - m__101 = 0; - m__201 = -centerx; - m__011 = 0; - m__111 = 1; - m__211 = -centery; - m__021 = 0; - m__121 = 0; - m__221 = 1; - _this__00 = _this__001 * m__001 + _this__101 * m__011 + _this__201 * m__021; - _this__10 = _this__001 * m__101 + _this__101 * m__111 + _this__201 * m__121; - _this__20 = _this__001 * m__201 + _this__101 * m__211 + _this__201 * m__221; - _this__01 = _this__011 * m__001 + _this__111 * m__011 + _this__211 * m__021; - _this__11 = _this__011 * m__101 + _this__111 * m__111 + _this__211 * m__121; - _this__21 = _this__011 * m__201 + _this__111 * m__211 + _this__211 * m__221; - _this__02 = _this__021 * m__001 + _this__121 * m__011 + _this__221 * m__021; - _this__12 = _this__021 * m__101 + _this__121 * m__111 + _this__221 * m__121; - _this__22 = _this__021 * m__201 + _this__121 * m__211 + _this__221 * m__221; - var m = this.transformations[this.transformations.length - 1]; - this.pushTransformation(new kha_math_FastMatrix3(_this__00 * m._00 + _this__10 * m._01 + _this__20 * m._02,_this__00 * m._10 + _this__10 * m._11 + _this__20 * m._12,_this__00 * m._20 + _this__10 * m._21 + _this__20 * m._22,_this__01 * m._00 + _this__11 * m._01 + _this__21 * m._02,_this__01 * m._10 + _this__11 * m._11 + _this__21 * m._12,_this__01 * m._20 + _this__11 * m._21 + _this__21 * m._22,_this__02 * m._00 + _this__12 * m._01 + _this__22 * m._02,_this__02 * m._10 + _this__12 * m._11 + _this__22 * m._12,_this__02 * m._20 + _this__12 * m._21 + _this__22 * m._22)); - } - ,pushOpacity: function(opacity) { - this.setOpacity(opacity); - this.opacities.push(opacity); - } - ,popOpacity: function() { - var ret = this.opacities.pop(); - this.setOpacity(this.get_opacity()); - return ret; - } - ,get_opacity: function() { - return this.opacities[this.opacities.length - 1]; - } - ,set_opacity: function(opacity) { - this.setOpacity(opacity); - return this.opacities[this.opacities.length - 1] = opacity; - } - ,scissor: function(x,y,width,height) { - } - ,disableScissor: function() { - } - ,pipe: null - ,get_pipeline: function() { - return this.pipe; - } - ,set_pipeline: function(pipeline) { - this.setPipeline(pipeline); - return this.pipe = pipeline; - } - ,transformations: null - ,opacities: null - ,myFontSize: null - ,myFontGlyphs: null - ,setTransformation: function(transformation) { - } - ,setOpacity: function(opacity) { - } - ,setPipeline: function(pipeline) { - } - ,__class__: kha_graphics2_Graphics -}; -var kha_graphics2_Graphics1 = function(canvas) { - this.canvas = canvas; -}; -$hxClasses["kha.graphics2.Graphics1"] = kha_graphics2_Graphics1; -kha_graphics2_Graphics1.__name__ = true; -kha_graphics2_Graphics1.__interfaces__ = [kha_graphics1_Graphics]; -kha_graphics2_Graphics1.prototype = { - canvas: null - ,texture: null - ,pixels: null - ,begin: function() { - if(this.texture == null) { - this.texture = kha_Image.create(this.canvas.get_width(),this.canvas.get_height(),kha_graphics4_TextureFormat.RGBA32,kha_graphics4_Usage.ReadableUsage); - } - this.pixels = this.texture.lock(); - } - ,end: function() { - this.texture.unlock(); - this.canvas.get_g2().begin(); - this.canvas.get_g2().drawImage(this.texture,0,0); - this.canvas.get_g2().end(); - } - ,setPixel: function(x,y,color) { - this.pixels.setInt32(y * this.texture.get_realWidth() * 4 + x * 4,kha__$Color_Color_$Impl_$.fromBytes(color & 255,(color & 65280) >>> 8,(color & 16711680) >>> 16,color >>> 24)); - } - ,__class__: kha_graphics2_Graphics1 -}; -var kha_graphics2_ImageScaleQuality = $hxClasses["kha.graphics2.ImageScaleQuality"] = { __ename__ : true, __constructs__ : ["Low","High"] }; -kha_graphics2_ImageScaleQuality.Low = ["Low",0]; -kha_graphics2_ImageScaleQuality.Low.toString = $estr; -kha_graphics2_ImageScaleQuality.Low.__enum__ = kha_graphics2_ImageScaleQuality; -kha_graphics2_ImageScaleQuality.High = ["High",1]; -kha_graphics2_ImageScaleQuality.High.toString = $estr; -kha_graphics2_ImageScaleQuality.High.__enum__ = kha_graphics2_ImageScaleQuality; -var kha_graphics2_truetype_VectorOfIntPointer = function() { -}; -$hxClasses["kha.graphics2.truetype.VectorOfIntPointer"] = kha_graphics2_truetype_VectorOfIntPointer; -kha_graphics2_truetype_VectorOfIntPointer.__name__ = true; -kha_graphics2_truetype_VectorOfIntPointer.prototype = { - value: null - ,__class__: kha_graphics2_truetype_VectorOfIntPointer -}; -var kha_graphics2_truetype_Stbtt_$temp_$rect = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_temp_rect"] = kha_graphics2_truetype_Stbtt_$temp_$rect; -kha_graphics2_truetype_Stbtt_$temp_$rect.__name__ = true; -kha_graphics2_truetype_Stbtt_$temp_$rect.prototype = { - x0: null - ,y0: null - ,x1: null - ,y1: null - ,__class__: kha_graphics2_truetype_Stbtt_$temp_$rect -}; -var kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_temp_glyph_h_metrics"] = kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics; -kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics.__name__ = true; -kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics.prototype = { - advanceWidth: null - ,leftSideBearing: null - ,__class__: kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics -}; -var kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_temp_font_v_metrics"] = kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics; -kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics.__name__ = true; -kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics.prototype = { - ascent: null - ,descent: null - ,lineGap: null - ,__class__: kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics -}; -var kha_graphics2_truetype_Stbtt_$temp_$region = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_temp_region"] = kha_graphics2_truetype_Stbtt_$temp_$region; -kha_graphics2_truetype_Stbtt_$temp_$region.__name__ = true; -kha_graphics2_truetype_Stbtt_$temp_$region.prototype = { - width: null - ,height: null - ,xoff: null - ,yoff: null - ,__class__: kha_graphics2_truetype_Stbtt_$temp_$region -}; -var kha_graphics2_truetype_Stbtt_$bakedchar = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_bakedchar"] = kha_graphics2_truetype_Stbtt_$bakedchar; -kha_graphics2_truetype_Stbtt_$bakedchar.__name__ = true; -kha_graphics2_truetype_Stbtt_$bakedchar.prototype = { - x0: null - ,y0: null - ,x1: null - ,y1: null - ,xoff: null - ,yoff: null - ,xadvance: null - ,__class__: kha_graphics2_truetype_Stbtt_$bakedchar -}; -var kha_graphics2_truetype_Stbtt_$aligned_$quad = function() { }; -$hxClasses["kha.graphics2.truetype.Stbtt_aligned_quad"] = kha_graphics2_truetype_Stbtt_$aligned_$quad; -kha_graphics2_truetype_Stbtt_$aligned_$quad.__name__ = true; -kha_graphics2_truetype_Stbtt_$aligned_$quad.prototype = { - x0: null - ,y0: null - ,s0: null - ,t0: null - ,x1: null - ,y1: null - ,s1: null - ,t1: null - ,__class__: kha_graphics2_truetype_Stbtt_$aligned_$quad -}; -var kha_graphics2_truetype_Stbtt_$packedchar = function() { }; -$hxClasses["kha.graphics2.truetype.Stbtt_packedchar"] = kha_graphics2_truetype_Stbtt_$packedchar; -kha_graphics2_truetype_Stbtt_$packedchar.__name__ = true; -kha_graphics2_truetype_Stbtt_$packedchar.prototype = { - x0: null - ,y0: null - ,x1: null - ,y1: null - ,xoff: null - ,yoff: null - ,xadvance: null - ,xoff2: null - ,yoff2: null - ,__class__: kha_graphics2_truetype_Stbtt_$packedchar -}; -var kha_graphics2_truetype_Stbtt_$pack_$range = function() { }; -$hxClasses["kha.graphics2.truetype.Stbtt_pack_range"] = kha_graphics2_truetype_Stbtt_$pack_$range; -kha_graphics2_truetype_Stbtt_$pack_$range.__name__ = true; -kha_graphics2_truetype_Stbtt_$pack_$range.prototype = { - font_size: null - ,first_unicode_codepoint_in_range: null - ,array_of_unicode_codepoints: null - ,num_chars: null - ,chardata_for_range: null - ,h_oversample: null - ,v_oversample: null - ,__class__: kha_graphics2_truetype_Stbtt_$pack_$range -}; -var kha_graphics2_truetype_Stbtt_$pack_$context = function() { }; -$hxClasses["kha.graphics2.truetype.Stbtt_pack_context"] = kha_graphics2_truetype_Stbtt_$pack_$context; -kha_graphics2_truetype_Stbtt_$pack_$context.__name__ = true; -kha_graphics2_truetype_Stbtt_$pack_$context.prototype = { - width: null - ,height: null - ,stride_in_bytes: null - ,padding: null - ,h_oversample: null - ,v_oversample: null - ,pixels: null - ,__class__: kha_graphics2_truetype_Stbtt_$pack_$context -}; -var kha_graphics2_truetype_Stbtt_$fontinfo = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_fontinfo"] = kha_graphics2_truetype_Stbtt_$fontinfo; -kha_graphics2_truetype_Stbtt_$fontinfo.__name__ = true; -kha_graphics2_truetype_Stbtt_$fontinfo.prototype = { - data: null - ,fontstart: null - ,numGlyphs: null - ,loca: null - ,head: null - ,glyf: null - ,hhea: null - ,hmtx: null - ,kern: null - ,index_map: null - ,indexToLocFormat: null - ,__class__: kha_graphics2_truetype_Stbtt_$fontinfo -}; -var kha_graphics2_truetype_Stbtt_$vertex = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt_vertex"] = kha_graphics2_truetype_Stbtt_$vertex; -kha_graphics2_truetype_Stbtt_$vertex.__name__ = true; -kha_graphics2_truetype_Stbtt_$vertex.prototype = { - x: null - ,y: null - ,cx: null - ,cy: null - ,type: null - ,padding: null - ,__class__: kha_graphics2_truetype_Stbtt_$vertex -}; -var kha_graphics2_truetype_Stbtt_$_$bitmap = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt__bitmap"] = kha_graphics2_truetype_Stbtt_$_$bitmap; -kha_graphics2_truetype_Stbtt_$_$bitmap.__name__ = true; -kha_graphics2_truetype_Stbtt_$_$bitmap.prototype = { - w: null - ,h: null - ,stride: null - ,pixels: null - ,pixels_offset: null - ,__class__: kha_graphics2_truetype_Stbtt_$_$bitmap -}; -var kha_graphics2_truetype_Stbtt_$_$edge = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt__edge"] = kha_graphics2_truetype_Stbtt_$_$edge; -kha_graphics2_truetype_Stbtt_$_$edge.__name__ = true; -kha_graphics2_truetype_Stbtt_$_$edge.prototype = { - x0: null - ,y0: null - ,x1: null - ,y1: null - ,invert: null - ,__class__: kha_graphics2_truetype_Stbtt_$_$edge -}; -var kha_graphics2_truetype_Stbtt_$_$active_$edge = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt__active_edge"] = kha_graphics2_truetype_Stbtt_$_$active_$edge; -kha_graphics2_truetype_Stbtt_$_$active_$edge.__name__ = true; -kha_graphics2_truetype_Stbtt_$_$active_$edge.prototype = { - next: null - ,fx: null - ,fdx: null - ,fdy: null - ,direction: null - ,sy: null - ,ey: null - ,__class__: kha_graphics2_truetype_Stbtt_$_$active_$edge -}; -var kha_graphics2_truetype_Stbtt_$_$point = function() { -}; -$hxClasses["kha.graphics2.truetype.Stbtt__point"] = kha_graphics2_truetype_Stbtt_$_$point; -kha_graphics2_truetype_Stbtt_$_$point.__name__ = true; -kha_graphics2_truetype_Stbtt_$_$point.prototype = { - x: null - ,y: null - ,__class__: kha_graphics2_truetype_Stbtt_$_$point -}; -var kha_graphics2_truetype_StbTruetype = function() { }; -$hxClasses["kha.graphics2.truetype.StbTruetype"] = kha_graphics2_truetype_StbTruetype; -kha_graphics2_truetype_StbTruetype.__name__ = true; -kha_graphics2_truetype_StbTruetype.STBTT_assert = function(value) { - if(!value) { - throw new js__$Boot_HaxeError("Error"); - } -}; -kha_graphics2_truetype_StbTruetype.STBTT_POINT_SIZE = function(x) { - return -x; -}; -kha_graphics2_truetype_StbTruetype.ttBYTE = function(p,pos) { - if(pos == null) { - pos = 0; - } - return p.readU8(pos); -}; -kha_graphics2_truetype_StbTruetype.ttCHAR = function(p,pos) { - if(pos == null) { - pos = 0; - } - var n = p.readU8(pos); - if(n >= 128) { - return n - 256; - } - return n; -}; -kha_graphics2_truetype_StbTruetype.ttUSHORT = function(p,pos) { - if(pos == null) { - pos = 0; - } - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - return ch2 | ch1 << 8; -}; -kha_graphics2_truetype_StbTruetype.ttSHORT = function(p,pos) { - if(pos == null) { - pos = 0; - } - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var n = ch2 | ch1 << 8; - if((n & 32768) != 0) { - return n - 65536; - } - return n; -}; -kha_graphics2_truetype_StbTruetype.ttULONG = function(p,pos) { - if(pos == null) { - pos = 0; - } - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var ch3 = p.readU8(pos + 2); - var ch4 = p.readU8(pos + 3); - return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24; -}; -kha_graphics2_truetype_StbTruetype.ttLONG = function(p,pos) { - if(pos == null) { - pos = 0; - } - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var ch3 = p.readU8(pos + 2); - var ch4 = p.readU8(pos + 3); - return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24; -}; -kha_graphics2_truetype_StbTruetype.ttFixed = function(p,pos) { - if(pos == null) { - pos = 0; - } - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var ch3 = p.readU8(pos + 2); - var ch4 = p.readU8(pos + 3); - return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24; -}; -kha_graphics2_truetype_StbTruetype.stbtt_tag4 = function(p,pos,c0,c1,c2,c3) { - if(p.readU8(pos) == c0 && p.readU8(pos + 1) == c1 && p.readU8(pos + 2) == c2) { - return p.readU8(pos + 3) == c3; - } else { - return false; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_tag = function(p,pos,str) { - var c0 = HxOverrides.cca(str,0); - var c1 = HxOverrides.cca(str,1); - var c2 = HxOverrides.cca(str,2); - var c3 = HxOverrides.cca(str,3); - if(p.readU8(pos) == c0 && p.readU8(pos + 1) == c1 && p.readU8(pos + 2) == c2) { - return p.readU8(pos + 3) == c3; - } else { - return false; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt__isfont = function(font) { - var c0 = HxOverrides.cca("1",0); - if(font.readU8(0) == c0 && font.readU8(1) == 0 && font.readU8(2) == 0 && font.readU8(3) == 0) { - return true; - } - var c01 = HxOverrides.cca("typ1",0); - var c1 = HxOverrides.cca("typ1",1); - var c2 = HxOverrides.cca("typ1",2); - var c3 = HxOverrides.cca("typ1",3); - if(font.readU8(0) == c01 && font.readU8(1) == c1 && font.readU8(2) == c2 && font.readU8(3) == c3) { - return true; - } - var c02 = HxOverrides.cca("OTTO",0); - var c11 = HxOverrides.cca("OTTO",1); - var c21 = HxOverrides.cca("OTTO",2); - var c31 = HxOverrides.cca("OTTO",3); - if(font.readU8(0) == c02 && font.readU8(1) == c11 && font.readU8(2) == c21 && font.readU8(3) == c31) { - return true; - } - if(font.readU8(0) == 0 && font.readU8(1) == 1 && font.readU8(2) == 0 && font.readU8(3) == 0) { - return true; - } - return false; -}; -kha_graphics2_truetype_StbTruetype.stbtt__find_table = function(data,fontstart,tag) { - var pos = fontstart + 4; - var ch1 = data.readU8(pos); - var ch2 = data.readU8(pos + 1); - var num_tables = ch2 | ch1 << 8; - var tabledir = fontstart + 12; - var _g1 = 0; - var _g = num_tables; - while(_g1 < _g) { - var i = _g1++; - var loc = tabledir + 16 * i; - var c0 = HxOverrides.cca(tag,0); - var c1 = HxOverrides.cca(tag,1); - var c2 = HxOverrides.cca(tag,2); - var c3 = HxOverrides.cca(tag,3); - if(data.readU8(loc) == c0 && data.readU8(loc + 1) == c1 && data.readU8(loc + 2) == c2 && data.readU8(loc + 3) == c3) { - var pos1 = loc + 8; - var ch11 = data.readU8(pos1); - var ch21 = data.readU8(pos1 + 1); - var ch3 = data.readU8(pos1 + 2); - var ch4 = data.readU8(pos1 + 3); - return ch4 | ch3 << 8 | ch21 << 16 | ch11 << 24; - } - } - return 0; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetFontOffsetForIndex = function(font_collection,index) { - if(kha_graphics2_truetype_StbTruetype.stbtt__isfont(font_collection)) { - if(index == 0) { - return 0; - } else { - return -1; - } - } - var c0 = HxOverrides.cca("ttcf",0); - var c1 = HxOverrides.cca("ttcf",1); - var c2 = HxOverrides.cca("ttcf",2); - var c3 = HxOverrides.cca("ttcf",3); - if(font_collection.readU8(0) == c0 && font_collection.readU8(1) == c1 && font_collection.readU8(2) == c2 && font_collection.readU8(3) == c3) { - var tmp; - var ch1 = font_collection.readU8(4); - var ch2 = font_collection.readU8(5); - var ch3 = font_collection.readU8(6); - var ch4 = font_collection.readU8(7); - if((ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24) != 65536) { - var ch11 = font_collection.readU8(4); - var ch21 = font_collection.readU8(5); - var ch31 = font_collection.readU8(6); - var ch41 = font_collection.readU8(7); - tmp = (ch41 | ch31 << 8 | ch21 << 16 | ch11 << 24) == 131072; - } else { - tmp = true; - } - if(tmp) { - var ch12 = font_collection.readU8(8); - var ch22 = font_collection.readU8(9); - var ch32 = font_collection.readU8(10); - var ch42 = font_collection.readU8(11); - var n = ch42 | ch32 << 8 | ch22 << 16 | ch12 << 24; - if(index >= n) { - return -1; - } - var pos = 12 + index * 4; - var ch13 = font_collection.readU8(pos); - var ch23 = font_collection.readU8(pos + 1); - var ch33 = font_collection.readU8(pos + 2); - var ch43 = font_collection.readU8(pos + 3); - return ch43 | ch33 << 8 | ch23 << 16 | ch13 << 24; - } - } - return -1; -}; -kha_graphics2_truetype_StbTruetype.stbtt_InitFont = function(info,data,fontstart) { - var cmap; - var t; - var numTables; - info.data = data; - info.fontstart = fontstart; - cmap = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"cmap"); - info.loca = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"loca"); - info.head = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"head"); - info.glyf = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"glyf"); - info.hhea = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"hhea"); - info.hmtx = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"hmtx"); - info.kern = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"kern"); - if(cmap == 0 || info.loca == 0 || info.head == 0 || info.glyf == 0 || info.hhea == 0 || info.hmtx == 0) { - return false; - } - t = kha_graphics2_truetype_StbTruetype.stbtt__find_table(data,fontstart,"maxp"); - if(t != 0) { - var pos = t + 4; - var ch1 = data.readU8(pos); - var ch2 = data.readU8(pos + 1); - info.numGlyphs = ch2 | ch1 << 8; - } else { - info.numGlyphs = 65535; - } - var pos1 = cmap + 2; - var ch11 = data.readU8(pos1); - var ch21 = data.readU8(pos1 + 1); - numTables = ch21 | ch11 << 8; - info.index_map = 0; - var _g1 = 0; - var _g = numTables; - while(_g1 < _g) { - var i = _g1++; - var encoding_record = cmap + 4 + 8 * i; - var ch12 = data.readU8(encoding_record); - var ch22 = data.readU8(encoding_record + 1); - var _g2 = ch22 | ch12 << 8; - switch(_g2) { - case 0: - var pos2 = encoding_record + 4; - var ch13 = data.readU8(pos2); - var ch23 = data.readU8(pos2 + 1); - var ch3 = data.readU8(pos2 + 2); - var ch4 = data.readU8(pos2 + 3); - info.index_map = cmap + (ch4 | ch3 << 8 | ch23 << 16 | ch13 << 24); - break; - case 3: - var pos3 = encoding_record + 2; - var ch14 = data.readU8(pos3); - var ch24 = data.readU8(pos3 + 1); - var _g21 = ch24 | ch14 << 8; - switch(_g21) { - case 1:case 10: - var pos4 = encoding_record + 4; - var ch15 = data.readU8(pos4); - var ch25 = data.readU8(pos4 + 1); - var ch31 = data.readU8(pos4 + 2); - var ch41 = data.readU8(pos4 + 3); - info.index_map = cmap + (ch41 | ch31 << 8 | ch25 << 16 | ch15 << 24); - break; - } - break; - } - } - if(info.index_map == 0) { - return false; - } - var pos5 = info.head + 50; - var ch16 = data.readU8(pos5); - var ch26 = data.readU8(pos5 + 1); - info.indexToLocFormat = ch26 | ch16 << 8; - return true; -}; -kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex = function(info,unicode_codepoint) { - var data = info.data; - var index_map = info.index_map; - var ch1 = data.readU8(index_map); - var ch2 = data.readU8(index_map + 1); - var format = ch2 | ch1 << 8; - if(format == 0) { - var pos = index_map + 2; - var ch11 = data.readU8(pos); - var ch21 = data.readU8(pos + 1); - var bytes = ch21 | ch11 << 8; - if(unicode_codepoint < bytes - 6) { - return data.readU8(index_map + 6 + unicode_codepoint); - } - return 0; - } else if(format == 6) { - var pos1 = index_map + 6; - var ch12 = data.readU8(pos1); - var ch22 = data.readU8(pos1 + 1); - var first = ch22 | ch12 << 8; - var pos2 = index_map + 8; - var ch13 = data.readU8(pos2); - var ch23 = data.readU8(pos2 + 1); - var count = ch23 | ch13 << 8; - if(unicode_codepoint >= first && unicode_codepoint < first + count) { - var pos3 = index_map + 10 + (unicode_codepoint - first) * 2; - var ch14 = data.readU8(pos3); - var ch24 = data.readU8(pos3 + 1); - return ch24 | ch14 << 8; - } - return 0; - } else if(format == 2) { - throw new js__$Boot_HaxeError("Error"); - } else if(format == 4) { - var pos4 = index_map + 6; - var ch15 = data.readU8(pos4); - var ch25 = data.readU8(pos4 + 1); - var segcount = (ch25 | ch15 << 8) >> 1; - var pos5 = index_map + 8; - var ch16 = data.readU8(pos5); - var ch26 = data.readU8(pos5 + 1); - var searchRange = (ch26 | ch16 << 8) >> 1; - var pos6 = index_map + 10; - var ch17 = data.readU8(pos6); - var ch27 = data.readU8(pos6 + 1); - var entrySelector = ch27 | ch17 << 8; - var pos7 = index_map + 12; - var ch18 = data.readU8(pos7); - var ch28 = data.readU8(pos7 + 1); - var rangeShift = (ch28 | ch18 << 8) >> 1; - var endCount = index_map + 14; - var search = endCount; - if(unicode_codepoint > 65535) { - return 0; - } - var pos8 = search + rangeShift * 2; - var ch19 = data.readU8(pos8); - var ch29 = data.readU8(pos8 + 1); - if(unicode_codepoint >= (ch29 | ch19 << 8)) { - search += rangeShift * 2; - } - search -= 2; - while(entrySelector != 0) { - var end; - searchRange >>= 1; - var pos9 = search + searchRange * 2; - var ch110 = data.readU8(pos9); - var ch210 = data.readU8(pos9 + 1); - end = ch210 | ch110 << 8; - if(unicode_codepoint > end) { - search += searchRange * 2; - } - --entrySelector; - } - search += 2; - var offset; - var start; - var item = search - endCount >> 1; - var pos10 = endCount + 2 * item; - var ch111 = data.readU8(pos10); - var ch211 = data.readU8(pos10 + 1); - if(unicode_codepoint > (ch211 | ch111 << 8)) { - throw new js__$Boot_HaxeError("Error"); - } - var pos11 = index_map + 14 + segcount * 2 + 2 + 2 * item; - var ch112 = data.readU8(pos11); - var ch212 = data.readU8(pos11 + 1); - start = ch212 | ch112 << 8; - if(unicode_codepoint < start) { - return 0; - } - var pos12 = index_map + 14 + segcount * 6 + 2 + 2 * item; - var ch113 = data.readU8(pos12); - var ch213 = data.readU8(pos12 + 1); - offset = ch213 | ch113 << 8; - if(offset == 0) { - var pos13 = index_map + 14 + segcount * 4 + 2 + 2 * item; - var ch114 = data.readU8(pos13); - var ch214 = data.readU8(pos13 + 1); - var n = ch214 | ch114 << 8; - return unicode_codepoint + ((n & 32768) != 0 ? n - 65536 : n); - } - var pos14 = offset + (unicode_codepoint - start) * 2 + index_map + 14 + segcount * 6 + 2 + 2 * item; - var ch115 = data.readU8(pos14); - var ch215 = data.readU8(pos14 + 1); - return ch215 | ch115 << 8; - } else if(format == 12 || format == 13) { - var pos15 = index_map + 12; - var ch116 = data.readU8(pos15); - var ch216 = data.readU8(pos15 + 1); - var ch3 = data.readU8(pos15 + 2); - var ch4 = data.readU8(pos15 + 3); - var ngroups = ch4 | ch3 << 8 | ch216 << 16 | ch116 << 24; - var low; - var high; - low = 0; - high = ngroups; - while(low < high) { - var mid = low + (high - low >> 1); - var pos16 = index_map + 16 + mid * 12; - var ch117 = data.readU8(pos16); - var ch217 = data.readU8(pos16 + 1); - var ch31 = data.readU8(pos16 + 2); - var ch41 = data.readU8(pos16 + 3); - var start_char = ch41 | ch31 << 8 | ch217 << 16 | ch117 << 24; - var pos17 = index_map + 16 + mid * 12 + 4; - var ch118 = data.readU8(pos17); - var ch218 = data.readU8(pos17 + 1); - var ch32 = data.readU8(pos17 + 2); - var ch42 = data.readU8(pos17 + 3); - var end_char = ch42 | ch32 << 8 | ch218 << 16 | ch118 << 24; - if(unicode_codepoint < start_char) { - high = mid; - } else if(unicode_codepoint > end_char) { - low = mid + 1; - } else { - var pos18 = index_map + 16 + mid * 12 + 8; - var ch119 = data.readU8(pos18); - var ch219 = data.readU8(pos18 + 1); - var ch33 = data.readU8(pos18 + 2); - var ch43 = data.readU8(pos18 + 3); - var start_glyph = ch43 | ch33 << 8 | ch219 << 16 | ch119 << 24; - if(format == 12) { - return start_glyph + unicode_codepoint - start_char; - } else { - return start_glyph; - } - } - } - return 0; - } - throw new js__$Boot_HaxeError("Error"); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointShape = function(info,unicode_codepoint) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(info,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,unicode_codepoint)); -}; -kha_graphics2_truetype_StbTruetype.stbtt_setvertex = function(v,type,x,y,cx,cy) { - v.type = type; - v.x = x; - v.y = y; - v.cx = cx; - v.cy = cy; -}; -kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset = function(info,glyph_index) { - var g1; - var g2; - if(glyph_index >= info.numGlyphs) { - return -1; - } - if(info.indexToLocFormat >= 2) { - return -1; - } - if(info.indexToLocFormat == 0) { - var info1 = info.glyf; - var p = info.data; - var pos = info.loca + glyph_index * 2; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - g1 = info1 + (ch2 | ch1 << 8) * 2; - var info2 = info.glyf; - var p1 = info.data; - var pos1 = info.loca + glyph_index * 2 + 2; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - g2 = info2 + (ch21 | ch11 << 8) * 2; - } else { - var info3 = info.glyf; - var p2 = info.data; - var pos2 = info.loca + glyph_index * 4; - var ch12 = p2.readU8(pos2); - var ch22 = p2.readU8(pos2 + 1); - var ch3 = p2.readU8(pos2 + 2); - var ch4 = p2.readU8(pos2 + 3); - g1 = info3 + (ch4 | ch3 << 8 | ch22 << 16 | ch12 << 24); - var info4 = info.glyf; - var p3 = info.data; - var pos3 = info.loca + glyph_index * 4 + 4; - var ch13 = p3.readU8(pos3); - var ch23 = p3.readU8(pos3 + 1); - var ch31 = p3.readU8(pos3 + 2); - var ch41 = p3.readU8(pos3 + 3); - g2 = info4 + (ch41 | ch31 << 8 | ch23 << 16 | ch13 << 24); - } - if(g1 == g2) { - return -1; - } else { - return g1; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox = function(info,glyph_index,rect) { - var g = kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset(info,glyph_index); - if(g < 0) { - return false; - } - var p = info.data; - var pos = g + 2; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var n = ch2 | ch1 << 8; - rect.x0 = (n & 32768) != 0 ? n - 65536 : n; - var p1 = info.data; - var pos1 = g + 4; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - var n1 = ch21 | ch11 << 8; - rect.y0 = (n1 & 32768) != 0 ? n1 - 65536 : n1; - var p2 = info.data; - var pos2 = g + 6; - var ch12 = p2.readU8(pos2); - var ch22 = p2.readU8(pos2 + 1); - var n2 = ch22 | ch12 << 8; - rect.x1 = (n2 & 32768) != 0 ? n2 - 65536 : n2; - var p3 = info.data; - var pos3 = g + 8; - var ch13 = p3.readU8(pos3); - var ch23 = p3.readU8(pos3 + 1); - var n3 = ch23 | ch13 << 8; - rect.y1 = (n3 & 32768) != 0 ? n3 - 65536 : n3; - return true; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBox = function(info,codepoint,rect) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox(info,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,codepoint),rect); -}; -kha_graphics2_truetype_StbTruetype.stbtt_IsGlyphEmpty = function(info,glyph_index) { - var numberOfContours; - var g = kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset(info,glyph_index); - if(g < 0) { - return true; - } - var p = info.data; - var ch1 = p.readU8(g); - var ch2 = p.readU8(g + 1); - var n = ch2 | ch1 << 8; - if((n & 32768) != 0) { - numberOfContours = n - 65536; - } else { - numberOfContours = n; - } - return numberOfContours == 0; -}; -kha_graphics2_truetype_StbTruetype.stbtt__close_shape = function(vertices,num_vertices,was_off,start_off,sx,sy,scx,scy,cx,cy) { - if(start_off) { - if(was_off) { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],3,cx + scx >> 1,cy + scy >> 1,cx,cy); - } - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],3,sx,sy,scx,scy); - } else if(was_off) { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],3,sx,sy,cx,cy); - } else { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],2,sx,sy,0,0); - } - return num_vertices; -}; -kha_graphics2_truetype_StbTruetype.copyVertices = function(from,to,offset,count) { - var _g1 = 0; - var _g = count; - while(_g1 < _g) { - var i = _g1++; - to[offset + i] = from[i]; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape = function(info,glyph_index) { - var numberOfContours; - var endPtsOfContours; - var data = info.data; - var vertices = null; - var num_vertices = 0; - var g = kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset(info,glyph_index); - if(g < 0) { - return null; - } - var ch1 = data.readU8(g); - var ch2 = data.readU8(g + 1); - var n = ch2 | ch1 << 8; - if((n & 32768) != 0) { - numberOfContours = n - 65536; - } else { - numberOfContours = n; - } - if(numberOfContours > 0) { - var flags = 0; - var flagcount; - var ins; - var j = 0; - var m; - var n1; - var next_move = 0; - var off = 0; - var was_off = false; - var start_off = false; - var x; - var y; - var cx; - var cy; - var sx; - var sy; - var scx; - var scy; - var points; - var pointsIndex = 0; - endPtsOfContours = data.sub(g + 10,data.get_length() - (g + 10)); - var pos = g + 10 + numberOfContours * 2; - var ch11 = data.readU8(pos); - var ch21 = data.readU8(pos + 1); - ins = ch21 | ch11 << 8; - points = data.sub(g + 10 + numberOfContours * 2 + 2 + ins,data.get_length() - (g + 10 + numberOfContours * 2 + 2 + ins)); - var pos1 = numberOfContours * 2 - 2; - var ch12 = endPtsOfContours.readU8(pos1); - var ch22 = endPtsOfContours.readU8(pos1 + 1); - n1 = 1 + (ch22 | ch12 << 8); - m = n1 + 2 * numberOfContours; - var this1 = new Array(m); - vertices = this1; - if(vertices == null) { - return null; - } else { - var _g1 = 0; - var _g = vertices.length; - while(_g1 < _g) { - var i = _g1++; - vertices[i] = new kha_graphics2_truetype_Stbtt_$vertex(); - } - } - next_move = 0; - flagcount = 0; - off = m - n1; - var _g11 = 0; - var _g2 = n1; - while(_g11 < _g2) { - var i1 = _g11++; - if(flagcount == 0) { - flags = points.readU8(pointsIndex++); - if((flags & 8) != 0) { - flagcount = points.readU8(pointsIndex++); - } - } else { - --flagcount; - } - vertices[off + i1].type = flags; - } - x = 0; - var _g12 = 0; - var _g3 = n1; - while(_g12 < _g3) { - var i2 = _g12++; - flags = vertices[off + i2].type; - if((flags & 2) != 0) { - var dx = points.readU8(pointsIndex++); - x += (flags & 16) != 0 ? dx : -dx; - } else if((flags & 16) == 0) { - var value; - var ch13 = points.readU8(pointsIndex); - var ch23 = points.readU8(pointsIndex + 1); - var n2 = ch23 | ch13 << 8; - if((n2 & 32768) != 0) { - value = n2 - 65536; - } else { - value = n2; - } - x += value; - pointsIndex += 2; - } - vertices[off + i2].x = x; - } - y = 0; - var _g13 = 0; - var _g4 = n1; - while(_g13 < _g4) { - var i3 = _g13++; - flags = vertices[off + i3].type; - if((flags & 4) != 0) { - var dy = points.readU8(pointsIndex++); - y += (flags & 32) != 0 ? dy : -dy; - } else if((flags & 32) == 0) { - var value1; - var ch14 = points.readU8(pointsIndex); - var ch24 = points.readU8(pointsIndex + 1); - var n3 = ch24 | ch14 << 8; - if((n3 & 32768) != 0) { - value1 = n3 - 65536; - } else { - value1 = n3; - } - y += value1; - pointsIndex += 2; - } - vertices[off + i3].y = y; - } - num_vertices = 0; - scy = 0; - scx = scy; - cy = scx; - cx = cy; - sy = cx; - sx = sy; - var i4 = 0; - while(i4 < n1) { - flags = vertices[off + i4].type; - x = vertices[off + i4].x; - y = vertices[off + i4].y; - if(next_move == i4) { - if(i4 != 0) { - num_vertices = kha_graphics2_truetype_StbTruetype.stbtt__close_shape(vertices,num_vertices,was_off,start_off,sx,sy,scx,scy,cx,cy); - } - start_off = (flags & 1) == 0; - if(start_off) { - scx = x; - scy = y; - if((vertices[off + i4 + 1].type & 1) == 0) { - sx = x + vertices[off + i4 + 1].x >> 1; - sy = y + vertices[off + i4 + 1].y >> 1; - } else { - sx = vertices[off + i4 + 1].x; - sy = vertices[off + i4 + 1].y; - ++i4; - } - } else { - sx = x; - sy = y; - } - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],1,sx,sy,0,0); - was_off = false; - var pos2 = j * 2; - var ch15 = endPtsOfContours.readU8(pos2); - var ch25 = endPtsOfContours.readU8(pos2 + 1); - next_move = 1 + (ch25 | ch15 << 8); - ++j; - } else if((flags & 1) == 0) { - if(was_off) { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],3,cx + x >> 1,cy + y >> 1,cx,cy); - } - cx = x; - cy = y; - was_off = true; - } else { - if(was_off) { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],3,x,y,cx,cy); - } else { - kha_graphics2_truetype_StbTruetype.stbtt_setvertex(vertices[num_vertices++],2,x,y,0,0); - } - was_off = false; - } - ++i4; - } - num_vertices = kha_graphics2_truetype_StbTruetype.stbtt__close_shape(vertices,num_vertices,was_off,start_off,sx,sy,scx,scy,cx,cy); - } else if(numberOfContours == -1) { - var more = 1; - var comp = data.sub(g + 10,data.get_length() - (g + 10)); - var compIndex = 0; - num_vertices = 0; - vertices = null; - while(more != 0) { - var flags1; - var gidx; - var comp_num_verts = 0; - var i5; - var comp_verts = null; - var tmp = null; - var mtx0 = 1; - var mtx1 = 0; - var mtx2 = 0; - var mtx3 = 1; - var mtx4 = 0; - var mtx5 = 0; - var m1; - var n4; - var ch16 = comp.readU8(compIndex); - var ch26 = comp.readU8(compIndex + 1); - var n5 = ch26 | ch16 << 8; - if((n5 & 32768) != 0) { - flags1 = n5 - 65536; - } else { - flags1 = n5; - } - compIndex += 2; - var ch17 = comp.readU8(compIndex); - var ch27 = comp.readU8(compIndex + 1); - var n6 = ch27 | ch17 << 8; - if((n6 & 32768) != 0) { - gidx = n6 - 65536; - } else { - gidx = n6; - } - compIndex += 2; - if((flags1 & 2) != 0) { - if((flags1 & 1) != 0) { - var ch18 = comp.readU8(compIndex); - var ch28 = comp.readU8(compIndex + 1); - var n7 = ch28 | ch18 << 8; - if((n7 & 32768) != 0) { - mtx4 = n7 - 65536; - } else { - mtx4 = n7; - } - compIndex += 2; - var ch19 = comp.readU8(compIndex); - var ch29 = comp.readU8(compIndex + 1); - var n8 = ch29 | ch19 << 8; - if((n8 & 32768) != 0) { - mtx5 = n8 - 65536; - } else { - mtx5 = n8; - } - compIndex += 2; - } else { - var n9 = comp.readU8(compIndex); - if(n9 >= 128) { - mtx4 = n9 - 256; - } else { - mtx4 = n9; - } - ++compIndex; - var n10 = comp.readU8(compIndex); - if(n10 >= 128) { - mtx5 = n10 - 256; - } else { - mtx5 = n10; - } - ++compIndex; - } - } else { - throw new js__$Boot_HaxeError("Error"); - } - if((flags1 & 8) != 0) { - var ch110 = comp.readU8(compIndex); - var ch210 = comp.readU8(compIndex + 1); - var n11 = ch210 | ch110 << 8; - mtx3 = ((n11 & 32768) != 0 ? n11 - 65536 : n11) / 16384.0; - mtx0 = mtx3; - compIndex += 2; - mtx2 = 0; - mtx1 = mtx2; - } else if((flags1 & 64) != 0) { - var ch111 = comp.readU8(compIndex); - var ch211 = comp.readU8(compIndex + 1); - var n12 = ch211 | ch111 << 8; - mtx0 = ((n12 & 32768) != 0 ? n12 - 65536 : n12) / 16384.0; - compIndex += 2; - mtx2 = 0; - mtx1 = mtx2; - var ch112 = comp.readU8(compIndex); - var ch212 = comp.readU8(compIndex + 1); - var n13 = ch212 | ch112 << 8; - mtx3 = ((n13 & 32768) != 0 ? n13 - 65536 : n13) / 16384.0; - compIndex += 2; - } else if((flags1 & 128) != 0) { - var ch113 = comp.readU8(compIndex); - var ch213 = comp.readU8(compIndex + 1); - var n14 = ch213 | ch113 << 8; - mtx0 = ((n14 & 32768) != 0 ? n14 - 65536 : n14) / 16384.0; - compIndex += 2; - var ch114 = comp.readU8(compIndex); - var ch214 = comp.readU8(compIndex + 1); - var n15 = ch214 | ch114 << 8; - mtx1 = ((n15 & 32768) != 0 ? n15 - 65536 : n15) / 16384.0; - compIndex += 2; - var ch115 = comp.readU8(compIndex); - var ch215 = comp.readU8(compIndex + 1); - var n16 = ch215 | ch115 << 8; - mtx2 = ((n16 & 32768) != 0 ? n16 - 65536 : n16) / 16384.0; - compIndex += 2; - var ch116 = comp.readU8(compIndex); - var ch216 = comp.readU8(compIndex + 1); - var n17 = ch216 | ch116 << 8; - mtx3 = ((n17 & 32768) != 0 ? n17 - 65536 : n17) / 16384.0; - compIndex += 2; - } - m1 = Math.sqrt(mtx0 * mtx0 + mtx1 * mtx1); - n4 = Math.sqrt(mtx2 * mtx2 + mtx3 * mtx3); - comp_verts = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(info,gidx); - if(comp_verts == null) { - comp_num_verts = 0; - } else { - comp_num_verts = comp_verts.length; - } - if(comp_num_verts > 0) { - var _g14 = 0; - var _g5 = comp_num_verts; - while(_g14 < _g5) { - var i6 = _g14++; - var v = comp_verts[i6]; - var x1; - var y1; - x1 = v.x; - y1 = v.y; - v.x = m1 * (mtx0 * x1 + mtx2 * y1 + mtx4) | 0; - v.y = n4 * (mtx1 * x1 + mtx3 * y1 + mtx5) | 0; - x1 = v.cx; - y1 = v.cy; - v.cx = m1 * (mtx0 * x1 + mtx2 * y1 + mtx4) | 0; - v.cy = n4 * (mtx1 * x1 + mtx3 * y1 + mtx5) | 0; - } - var this2 = new Array(num_vertices + comp_num_verts); - tmp = this2; - if(tmp == null) { - return null; - } - if(num_vertices > 0) { - kha_graphics2_truetype_StbTruetype.copyVertices(vertices,tmp,0,num_vertices); - } - kha_graphics2_truetype_StbTruetype.copyVertices(comp_verts,tmp,num_vertices,comp_num_verts); - vertices = tmp; - num_vertices += comp_num_verts; - } - more = flags1 & 32; - } - } else if(numberOfContours < 0) { - throw new js__$Boot_HaxeError("Error"); - } - if(vertices == null) { - return null; - } - if(vertices.length < num_vertices) { - throw new js__$Boot_HaxeError("Error"); - } - if(num_vertices < vertices.length) { - var this3 = new Array(num_vertices); - var tmp1 = this3; - kha_graphics2_truetype_StbTruetype.copyVertices(vertices,tmp1,0,num_vertices); - return tmp1; - } else { - return vertices; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphHMetrics = function(info,glyph_index) { - var p = info.data; - var pos = info.hhea + 34; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var numOfLongHorMetrics = ch2 | ch1 << 8; - var metrics = new kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics(); - if(glyph_index < numOfLongHorMetrics) { - var p1 = info.data; - var pos1 = info.hmtx + 4 * glyph_index; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - var n = ch21 | ch11 << 8; - metrics.advanceWidth = (n & 32768) != 0 ? n - 65536 : n; - var p2 = info.data; - var pos2 = info.hmtx + 4 * glyph_index + 2; - var ch12 = p2.readU8(pos2); - var ch22 = p2.readU8(pos2 + 1); - var n1 = ch22 | ch12 << 8; - metrics.leftSideBearing = (n1 & 32768) != 0 ? n1 - 65536 : n1; - } else { - var p3 = info.data; - var pos3 = info.hmtx + 4 * (numOfLongHorMetrics - 1); - var ch13 = p3.readU8(pos3); - var ch23 = p3.readU8(pos3 + 1); - var n2 = ch23 | ch13 << 8; - metrics.advanceWidth = (n2 & 32768) != 0 ? n2 - 65536 : n2; - var p4 = info.data; - var pos4 = info.hmtx + 4 * numOfLongHorMetrics + 2 * (glyph_index - numOfLongHorMetrics); - var ch14 = p4.readU8(pos4); - var ch24 = p4.readU8(pos4 + 1); - var n3 = ch24 | ch14 << 8; - metrics.leftSideBearing = (n3 & 32768) != 0 ? n3 - 65536 : n3; - } - return metrics; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphKernAdvance = function(info,glyph1,glyph2) { - var data = info.data.sub(info.kern,info.data.get_length() - info.kern); - var needle; - var straw; - var l; - var r; - var m; - if(info.kern == 0) { - return 0; - } - var ch1 = data.readU8(2); - var ch2 = data.readU8(3); - if((ch2 | ch1 << 8) < 1) { - return 0; - } - var ch11 = data.readU8(8); - var ch21 = data.readU8(9); - if((ch21 | ch11 << 8) != 1) { - return 0; - } - l = 0; - var ch12 = data.readU8(10); - var ch22 = data.readU8(11); - r = (ch22 | ch12 << 8) - 1; - needle = glyph1 << 16 | glyph2; - while(l <= r) { - m = l + r >> 1; - var pos = 18 + m * 6; - var ch13 = data.readU8(pos); - var ch23 = data.readU8(pos + 1); - var ch3 = data.readU8(pos + 2); - var ch4 = data.readU8(pos + 3); - straw = ch4 | ch3 << 8 | ch23 << 16 | ch13 << 24; - if(needle < straw) { - r = m - 1; - } else if(needle > straw) { - l = m + 1; - } else { - var pos1 = 22 + m * 6; - var ch14 = data.readU8(pos1); - var ch24 = data.readU8(pos1 + 1); - var n = ch24 | ch14 << 8; - if((n & 32768) != 0) { - return n - 65536; - } else { - return n; - } - } - } - return 0; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointKernAdvance = function(info,ch1,ch2) { - if(info.kern == 0) { - return 0; - } - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphKernAdvance(info,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,ch1),kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,ch2)); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointHMetrics = function(info,codepoint) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphHMetrics(info,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,codepoint)); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetFontVMetrics = function(info) { - var metrics = new kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics(); - var p = info.data; - var pos = info.hhea + 4; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var n = ch2 | ch1 << 8; - metrics.ascent = (n & 32768) != 0 ? n - 65536 : n; - var p1 = info.data; - var pos1 = info.hhea + 6; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - var n1 = ch21 | ch11 << 8; - metrics.descent = (n1 & 32768) != 0 ? n1 - 65536 : n1; - var p2 = info.data; - var pos2 = info.hhea + 8; - var ch12 = p2.readU8(pos2); - var ch22 = p2.readU8(pos2 + 1); - var n2 = ch22 | ch12 << 8; - metrics.lineGap = (n2 & 32768) != 0 ? n2 - 65536 : n2; - return metrics; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetFontBoundingBox = function(info) { - var rect = new kha_graphics2_truetype_Stbtt_$temp_$rect(); - var p = info.data; - var pos = info.head + 36; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var n = ch2 | ch1 << 8; - rect.x0 = (n & 32768) != 0 ? n - 65536 : n; - var p1 = info.data; - var pos1 = info.head + 38; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - var n1 = ch21 | ch11 << 8; - rect.y0 = (n1 & 32768) != 0 ? n1 - 65536 : n1; - var p2 = info.data; - var pos2 = info.head + 40; - var ch12 = p2.readU8(pos2); - var ch22 = p2.readU8(pos2 + 1); - var n2 = ch22 | ch12 << 8; - rect.x1 = (n2 & 32768) != 0 ? n2 - 65536 : n2; - var p3 = info.data; - var pos3 = info.head + 42; - var ch13 = p3.readU8(pos3); - var ch23 = p3.readU8(pos3 + 1); - var n3 = ch23 | ch13 << 8; - rect.y1 = (n3 & 32768) != 0 ? n3 - 65536 : n3; - return rect; -}; -kha_graphics2_truetype_StbTruetype.stbtt_ScaleForPixelHeight = function(info,height) { - var p = info.data; - var pos = info.hhea + 4; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var n = ch2 | ch1 << 8; - var p1 = info.data; - var pos1 = info.hhea + 6; - var ch11 = p1.readU8(pos1); - var ch21 = p1.readU8(pos1 + 1); - var n1 = ch21 | ch11 << 8; - var fheight = ((n & 32768) != 0 ? n - 65536 : n) - ((n1 & 32768) != 0 ? n1 - 65536 : n1); - return height / fheight; -}; -kha_graphics2_truetype_StbTruetype.stbtt_ScaleForMappingEmToPixels = function(info,pixels) { - var p = info.data; - var pos = info.head + 18; - var ch1 = p.readU8(pos); - var ch2 = p.readU8(pos + 1); - var unitsPerEm = ch2 | ch1 << 8; - return pixels / unitsPerEm; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel = function(font,glyph,scale_x,scale_y,shift_x,shift_y) { - var rect = new kha_graphics2_truetype_Stbtt_$temp_$rect(); - if(!kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox(font,glyph,rect)) { - rect.x0 = 0; - rect.y0 = 0; - rect.x1 = 0; - rect.y1 = 0; - } else { - var x0 = rect.x0; - var x1 = rect.x1; - var y0 = rect.y0; - var y1 = rect.y1; - rect.x0 = Math.floor(x0 * scale_x + shift_x); - rect.y0 = Math.floor(-y1 * scale_y + shift_y); - rect.x1 = Math.ceil(x1 * scale_x + shift_x); - rect.y1 = Math.ceil(-y0 * scale_y + shift_y); - } - return rect; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBox = function(font,glyph,scale_x,scale_y) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(font,glyph,scale_x,scale_y,0.0,0.0); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBoxSubpixel = function(font,codepoint,scale_x,scale_y,shift_x,shift_y) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(font,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(font,codepoint),scale_x,scale_y,shift_x,shift_y); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBox = function(font,codepoint,scale_x,scale_y) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBoxSubpixel(font,codepoint,scale_x,scale_y,0.0,0.0); -}; -kha_graphics2_truetype_StbTruetype.stbtt__new_active = function(e,eIndex,off_x,start_point) { - var z = new kha_graphics2_truetype_Stbtt_$_$active_$edge(); - var dxdy = (e[eIndex].x1 - e[eIndex].x0) / (e[eIndex].y1 - e[eIndex].y0); - if(z == null) { - return z; - } - z.fdx = dxdy; - z.fdy = dxdy != 0.0 ? 1.0 / dxdy : 0.0; - z.fx = e[eIndex].x0 + dxdy * (start_point - e[eIndex].y0); - z.fx -= off_x; - z.direction = e[eIndex].invert ? 1.0 : -1.0; - z.sy = e[eIndex].y0; - z.ey = e[eIndex].y1; - z.next = null; - return z; -}; -kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge = function(scanline,scanlineIndex,x,e,x0,y0,x1,y1) { - if(y0 == y1) { - return; - } - if(!(y0 < y1)) { - throw new js__$Boot_HaxeError("Error"); - } - if(!(e.sy <= e.ey)) { - throw new js__$Boot_HaxeError("Error"); - } - if(y0 > e.ey) { - return; - } - if(y1 < e.sy) { - return; - } - if(y0 < e.sy) { - x0 += (x1 - x0) * (e.sy - y0) / (y1 - y0); - y0 = e.sy; - } - if(y1 > e.ey) { - x1 += (x1 - x0) * (e.ey - y1) / (y1 - y0); - y1 = e.ey; - } - if(x0 == x) { - if(!(x1 <= x + 1)) { - throw new js__$Boot_HaxeError("Error"); - } - } else if(x0 == x + 1) { - if(!(x1 >= x)) { - throw new js__$Boot_HaxeError("Error"); - } - } else if(x0 <= x) { - if(!(x1 <= x)) { - throw new js__$Boot_HaxeError("Error"); - } - } else if(x0 >= x + 1) { - if(!(x1 >= x + 1)) { - throw new js__$Boot_HaxeError("Error"); - } - } else if(!(x1 >= x && x1 <= x + 1)) { - throw new js__$Boot_HaxeError("Error"); - } - if(x0 <= x && x1 <= x) { - var _g = scanlineIndex + x; - var _g1 = scanline; - _g1[_g] = _g1[_g] + e.direction * (y1 - y0); - } else if(!(x0 >= x + 1 && x1 >= x + 1)) { - if(!(x0 >= x && x0 <= x + 1 && x1 >= x && x1 <= x + 1)) { - throw new js__$Boot_HaxeError("Error"); - } - var _g2 = scanlineIndex + x; - var _g11 = scanline; - _g11[_g2] = _g11[_g2] + e.direction * (y1 - y0) * (1 - (x0 - x + (x1 - x)) / 2); - } -}; -kha_graphics2_truetype_StbTruetype.stbtt__fill_active_edges_new = function(scanline,scanline_fill,scanline_fillIndex,len,e,y_top) { - var y_bottom = y_top + 1; - while(e != null) { - if(!(e.ey >= y_top)) { - throw new js__$Boot_HaxeError("Error"); - } - if(e.fdx == 0) { - var x0 = e.fx; - if(x0 < len) { - if(x0 >= 0) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x0 | 0,e,x0,y_top,x0,y_bottom); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline_fill,scanline_fillIndex - 1,x0 + 1 | 0,e,x0,y_top,x0,y_bottom); - } else { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline_fill,scanline_fillIndex - 1,0,e,x0,y_top,x0,y_bottom); - } - } - } else { - var x01 = e.fx; - var dx = e.fdx; - var xb = x01 + dx; - var x_top; - var x_bottom; - var sy0; - var sy1; - var dy = e.fdy; - if(!(e.sy <= y_bottom && e.ey >= y_top)) { - throw new js__$Boot_HaxeError("Error"); - } - if(e.sy > y_top) { - x_top = x01 + dx * (e.sy - y_top); - sy0 = e.sy; - } else { - x_top = x01; - sy0 = y_top; - } - if(e.ey < y_bottom) { - x_bottom = x01 + dx * (e.ey - y_top); - sy1 = e.ey; - } else { - x_bottom = xb; - sy1 = y_bottom; - } - if(x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { - if((x_top | 0) == (x_bottom | 0)) { - var height; - var x = x_top | 0; - height = sy1 - sy0; - if(!(x >= 0 && x < len)) { - throw new js__$Boot_HaxeError("Error"); - } - var _g = x; - var _g1 = scanline; - _g1[_g] = _g1[_g] + e.direction * (1 - (x_top - x + (x_bottom - x)) / 2) * height; - var _g2 = scanline_fillIndex + x; - var _g11 = scanline_fill; - _g11[_g2] = _g11[_g2] + e.direction * height; - } else { - var x1; - var x11; - var x2; - var y_crossing; - var step; - var sign; - var area; - if(x_top > x_bottom) { - var t; - sy0 = y_bottom - (sy0 - y_top); - sy1 = y_bottom - (sy1 - y_top); - t = sy0; - sy0 = sy1; - sy1 = t; - t = x_bottom; - x_bottom = x_top; - x_top = t; - dx = -dx; - dy = -dy; - t = x01; - x01 = xb; - xb = t; - } - x11 = x_top | 0; - x2 = x_bottom | 0; - y_crossing = (x11 + 1 - x01) * dy + y_top; - sign = e.direction; - area = sign * (y_crossing - sy0); - var _g3 = x11; - var _g12 = scanline; - _g12[_g3] = _g12[_g3] + area * (1 - (x_top - x11 + (x11 + 1 - x11)) / 2); - step = sign * dy; - var _g13 = x11 + 1; - var _g4 = x2; - while(_g13 < _g4) { - var x3 = _g13++; - var _g21 = x3; - var _g31 = scanline; - _g31[_g21] = _g31[_g21] + (area + step / 2); - area += step; - } - y_crossing += dy * (x2 - (x11 + 1)); - if(!(Math.abs(area) <= 1.01)) { - throw new js__$Boot_HaxeError("Error"); - } - var _g5 = x2; - var _g14 = scanline; - _g14[_g5] = _g14[_g5] + (area + sign * (1 - (x2 - x2 + (x_bottom - x2)) / 2) * (sy1 - y_crossing)); - var _g6 = scanline_fillIndex + x2; - var _g15 = scanline_fill; - _g15[_g6] = _g15[_g6] + sign * (sy1 - sy0); - } - } else { - var _g16 = 0; - var _g7 = len; - while(_g16 < _g7) { - var x4 = _g16++; - var y0 = y_top; - var x12 = x4; - var x21 = x4 + 1; - var x31 = xb; - var y3 = y_bottom; - var y1; - var y2; - y1 = (x4 - x01) / dx + y_top; - y2 = (x4 + 1 - x01) / dx + y_top; - if(x01 < x12 && x31 > x21) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x12,y1); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x12,y1,x21,y2); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x21,y2,x31,y3); - } else if(x31 < x12 && x01 > x21) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x21,y2); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x21,y2,x12,y1); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x12,y1,x31,y3); - } else if(x01 < x12 && x31 > x12) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x12,y1); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x12,y1,x31,y3); - } else if(x31 < x12 && x01 > x12) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x12,y1); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x12,y1,x31,y3); - } else if(x01 < x21 && x31 > x21) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x21,y2); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x21,y2,x31,y3); - } else if(x31 < x21 && x01 > x21) { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x21,y2); - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x21,y2,x31,y3); - } else { - kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(scanline,0,x4,e,x01,y0,x31,y3); - } - } - } - } - e = e.next; - } -}; -kha_graphics2_truetype_StbTruetype.stbtt__rasterize_sorted_edges = function(result,e,n,vsubsample,off_x,off_y) { - var active = null; - var y; - var j = 0; - var i; - var scanline; - var scanline2; - var scanline2Index = 0; - var eIndex = 0; - if(result.w > 64) { - var length = result.w * 2 + 1; - var this1 = new Array(length); - scanline = this1; - } else { - var this2 = new Array(129); - scanline = this2; - } - scanline2 = scanline; - scanline2Index = result.w; - y = off_y; - e[eIndex + n].y0 = off_y + result.h + 1; - while(j < result.h) { - var scan_y_top = y + 0.0; - var scan_y_bottom = y + 1.0; - var step_value; - var step_parent; - step_value = active; - step_parent = null; - var _g1 = 0; - var _g = result.w; - while(_g1 < _g) { - var i1 = _g1++; - scanline[i1] = 0; - } - var _g11 = 0; - var _g2 = result.w + 1; - while(_g11 < _g2) { - var i2 = _g11++; - scanline2[scanline2Index + i2] = 0; - } - while(step_value != null) { - var z = step_value; - if(z.ey <= scan_y_top) { - if(step_parent == null) { - active = z.next; - step_value = z.next; - } else { - step_parent.next = z.next; - step_value = z.next; - } - if(z.direction == 0) { - throw new js__$Boot_HaxeError("Error"); - } - z.direction = 0; - } else { - step_parent = step_value; - step_value = step_value.next; - } - } - while(e[eIndex].y0 <= scan_y_bottom) { - if(e[eIndex].y0 != e[eIndex].y1) { - var z1 = kha_graphics2_truetype_StbTruetype.stbtt__new_active(e,eIndex,off_x,scan_y_top); - if(!(z1.ey >= scan_y_top)) { - throw new js__$Boot_HaxeError("Error"); - } - z1.next = active; - active = z1; - } - ++eIndex; - } - if(active != null) { - kha_graphics2_truetype_StbTruetype.stbtt__fill_active_edges_new(scanline,scanline2,scanline2Index + 1,result.w,active,scan_y_top); - } - var sum = 0; - var _g12 = 0; - var _g3 = result.w; - while(_g12 < _g3) { - var i3 = _g12++; - var k; - var m; - sum += scanline2[scanline2Index + i3]; - k = scanline[i3] + sum; - k = Math.abs(k) * 255.0 + 0.5; - m = k | 0; - if(m > 255) { - m = 255; - } - result.pixels.writeU8(result.pixels_offset + j * result.stride + i3,m); - } - step_parent = null; - step_value = active; - while(step_value != null) { - var z2 = step_value; - z2.fx += z2.fdx; - step_parent = step_value; - step_value = step_value.next; - } - ++y; - ++j; - } -}; -kha_graphics2_truetype_StbTruetype.STBTT__COMPARE = function(a,b) { - return a.y0 < b.y0; -}; -kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_ins_sort = function(p,n) { - var i; - var j; - var _g1 = 1; - var _g = n; - while(_g1 < _g) { - var i1 = _g1++; - var t = p[i1]; - var a = t; - j = i1; - while(j > 0) { - var b = p[j - 1]; - var c = kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(a,b); - if(!c) { - break; - } - p[j] = p[j - 1]; - --j; - } - if(i1 != j) { - p[j] = t; - } - } -}; -kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_quicksort = function(p,pIndex,n) { - while(n > 12) { - var t; - var c01; - var c12; - var c; - var m; - var i; - var j; - m = n >> 1; - c01 = kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(p[pIndex],p[pIndex + m]); - c12 = kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(p[pIndex + m],p[pIndex + n - 1]); - if(c01 != c12) { - var z; - c = kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(p[pIndex],p[pIndex + n - 1]); - if(c == c12) { - z = 0; - } else { - z = n - 1; - } - t = p[pIndex + z]; - p[pIndex + z] = p[pIndex + m]; - p[pIndex + m] = t; - } - t = p[pIndex]; - p[pIndex] = p[pIndex + m]; - p[pIndex + m] = t; - i = 1; - j = n - 1; - while(true) { - while(kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(p[pIndex + i],p[pIndex])) ++i; - while(kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(p[pIndex],p[pIndex + j])) --j; - if(i >= j) { - break; - } - t = p[pIndex + i]; - p[pIndex + i] = p[pIndex + j]; - p[pIndex + j] = t; - ++i; - --j; - } - if(j < n - i) { - kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_quicksort(p,pIndex,j); - pIndex += i; - n -= i; - } else { - kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_quicksort(p,pIndex + i,n - i); - n = j; - } - } -}; -kha_graphics2_truetype_StbTruetype.stbtt__sort_edges = function(p,n) { - kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_quicksort(p,0,n); - kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_ins_sort(p,n); -}; -kha_graphics2_truetype_StbTruetype.stbtt__rasterize = function(result,pts,wcount,windings,scale_x,scale_y,shift_x,shift_y,off_x,off_y,invert) { - var y_scale_inv = invert ? -scale_y : scale_y; - var e; - var n; - var i; - var j; - var k; - var m; - var vsubsample = 1; - var ptsIndex = 0; - n = 0; - var _g1 = 0; - var _g = windings; - while(_g1 < _g) { - var i1 = _g1++; - n += wcount[i1]; - } - var this1 = new Array(n + 1); - e = this1; - if(e == null) { - return; - } else { - var _g11 = 0; - var _g2 = e.length; - while(_g11 < _g2) { - var i2 = _g11++; - e[i2] = new kha_graphics2_truetype_Stbtt_$_$edge(); - } - } - n = 0; - m = 0; - var _g12 = 0; - var _g3 = windings; - while(_g12 < _g3) { - var i3 = _g12++; - var p = pts; - var pIndex = ptsIndex + m; - m += wcount[i3]; - j = wcount[i3] - 1; - var _g31 = 0; - var _g21 = wcount[i3]; - while(_g31 < _g21) { - var k1 = _g31++; - var a = k1; - var b = j; - if(p[pIndex + j].y == p[pIndex + k1].y) { - j = k1; - continue; - } - e[n].invert = false; - if(invert ? p[pIndex + j].y > p[pIndex + k1].y : p[pIndex + j].y < p[pIndex + k1].y) { - e[n].invert = true; - a = j; - b = k1; - } - e[n].x0 = p[pIndex + a].x * scale_x + shift_x; - e[n].y0 = (p[pIndex + a].y * y_scale_inv + shift_y) * vsubsample; - e[n].x1 = p[pIndex + b].x * scale_x + shift_x; - e[n].y1 = (p[pIndex + b].y * y_scale_inv + shift_y) * vsubsample; - ++n; - j = k1; - } - } - kha_graphics2_truetype_StbTruetype.stbtt__sort_edges(e,n); - kha_graphics2_truetype_StbTruetype.stbtt__rasterize_sorted_edges(result,e,n,vsubsample,off_x,off_y); -}; -kha_graphics2_truetype_StbTruetype.stbtt__add_point = function(points,n,x,y) { - if(points == null) { - return; - } - points[n].x = x; - points[n].y = y; -}; -kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve = function(points,num_points,x0,y0,x1,y1,x2,y2,objspace_flatness_squared,n) { - var mx = (x0 + 2 * x1 + x2) / 4; - var my = (y0 + 2 * y1 + y2) / 4; - var dx = (x0 + x2) / 2 - mx; - var dy = (y0 + y2) / 2 - my; - if(n > 16) { - return 1; - } - if(dx * dx + dy * dy > objspace_flatness_squared) { - kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(points,num_points,x0,y0,(x0 + x1) / 2.0,(y0 + y1) / 2.0,mx,my,objspace_flatness_squared,n + 1); - kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(points,num_points,mx,my,(x1 + x2) / 2.0,(y1 + y2) / 2.0,x2,y2,objspace_flatness_squared,n + 1); - } else { - kha_graphics2_truetype_StbTruetype.stbtt__add_point(points,num_points.value,x2,y2); - num_points.value += 1; - } - return 1; -}; -kha_graphics2_truetype_StbTruetype.stbtt_FlattenCurves = function(vertices,num_verts,objspace_flatness,contour_lengths,num_contours) { - var points = null; - var num_points = 0; - var objspace_flatness_squared = objspace_flatness * objspace_flatness; - var i; - var n = 0; - var start = 0; - var pass; - var _g1 = 0; - var _g = num_verts; - while(_g1 < _g) { - var i1 = _g1++; - if(vertices[i1].type == 1) { - ++n; - } - } - num_contours.value = n; - if(n == 0) { - return null; - } - var this1 = new Array(n); - contour_lengths.value = this1; - if(contour_lengths.value == null) { - num_contours.value = 0; - return null; - } - var _g2 = 0; - while(_g2 < 2) { - var pass1 = _g2++; - var x = 0; - var y = 0; - if(pass1 == 1) { - var this2 = new Array(num_points); - points = this2; - if(points == null) { - contour_lengths.value = null; - num_contours.value = 0; - return null; - } else { - var _g21 = 0; - var _g11 = points.length; - while(_g21 < _g11) { - var i2 = _g21++; - points[i2] = new kha_graphics2_truetype_Stbtt_$_$point(); - } - } - } - num_points = 0; - n = -1; - var _g22 = 0; - var _g12 = num_verts; - while(_g22 < _g12) { - var i3 = _g22++; - var _g3 = vertices[i3].type; - switch(_g3) { - case 1: - if(n >= 0) { - contour_lengths.value[n] = num_points - start; - } - ++n; - start = num_points; - x = vertices[i3].x; - y = vertices[i3].y; - kha_graphics2_truetype_StbTruetype.stbtt__add_point(points,num_points++,x,y); - break; - case 2: - x = vertices[i3].x; - y = vertices[i3].y; - kha_graphics2_truetype_StbTruetype.stbtt__add_point(points,num_points++,x,y); - break; - case 3: - var num_points_reference = { value : num_points}; - kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(points,num_points_reference,x,y,vertices[i3].cx,vertices[i3].cy,vertices[i3].x,vertices[i3].y,objspace_flatness_squared,0); - num_points = num_points_reference.value; - x = vertices[i3].x; - y = vertices[i3].y; - break; - } - } - contour_lengths.value[n] = num_points - start; - } - return points; -}; -kha_graphics2_truetype_StbTruetype.stbtt_Rasterize = function(result,flatness_in_pixels,vertices,num_verts,scale_x,scale_y,shift_x,shift_y,x_off,y_off,invert) { - var scale = scale_x > scale_y ? scale_y : scale_x; - var winding_count = 0; - var winding_lengths = null; - var winding_count_reference = { value : winding_count}; - var winding_lengths_reference = new kha_graphics2_truetype_VectorOfIntPointer(); - var windings = kha_graphics2_truetype_StbTruetype.stbtt_FlattenCurves(vertices,num_verts,flatness_in_pixels / scale,winding_lengths_reference,winding_count_reference); - winding_count = winding_count_reference.value; - winding_lengths = winding_lengths_reference.value; - if(windings != null) { - kha_graphics2_truetype_StbTruetype.stbtt__rasterize(result,windings,winding_lengths,winding_count,scale_x,scale_y,shift_x,shift_y,x_off,y_off,invert); - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel = function(info,scale_x,scale_y,shift_x,shift_y,glyph,region) { - var ix0; - var iy0; - var ix1; - var iy1; - var gbm = new kha_graphics2_truetype_Stbtt_$_$bitmap(); - var vertices = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(info,glyph); - var num_verts = vertices.length; - if(scale_x == 0) { - scale_x = scale_y; - } - if(scale_y == 0) { - if(scale_x == 0) { - return null; - } - scale_y = scale_x; - } - var rect = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,scale_x,scale_y,shift_x,shift_y); - ix0 = rect.x0; - iy0 = rect.y0; - ix1 = rect.x1; - iy1 = rect.y1; - gbm.w = ix1 - ix0; - gbm.h = iy1 - iy0; - gbm.pixels = null; - region.width = gbm.w; - region.height = gbm.h; - region.xoff = ix0; - region.yoff = iy0; - if(gbm.w != 0 && gbm.h != 0) { - gbm.pixels = kha_internal_BytesBlob.alloc(gbm.w * gbm.h); - if(gbm.pixels != null) { - gbm.stride = gbm.w; - kha_graphics2_truetype_StbTruetype.stbtt_Rasterize(gbm,0.35,vertices,num_verts,scale_x,scale_y,shift_x,shift_y,ix0,iy0,true); - } - } - return gbm.pixels; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmap = function(info,scale_x,scale_y,glyph,region) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel(info,scale_x,scale_y,0.0,0.0,glyph,region); -}; -kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel = function(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,shift_x,shift_y,glyph) { - var ix0 = 0; - var iy0 = 0; - var vertices = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(info,glyph); - var num_verts = vertices == null ? 0 : vertices.length; - var gbm = new kha_graphics2_truetype_Stbtt_$_$bitmap(); - var rect = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,scale_x,scale_y,shift_x,shift_y); - ix0 = rect.x0; - iy0 = rect.y0; - gbm.pixels = output; - gbm.pixels_offset = output_offset; - gbm.w = out_w; - gbm.h = out_h; - gbm.stride = out_stride; - if(gbm.w != 0 && gbm.h != 0) { - kha_graphics2_truetype_StbTruetype.stbtt_Rasterize(gbm,0.35,vertices,num_verts,scale_x,scale_y,shift_x,shift_y,ix0,iy0,true); - } -}; -kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmap = function(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,glyph) { - kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,0.0,0.0,glyph); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapSubpixel = function(info,scale_x,scale_y,shift_x,shift_y,codepoint,region) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel(info,scale_x,scale_y,shift_x,shift_y,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,codepoint),region); -}; -kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmapSubpixel = function(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,shift_x,shift_y,codepoint) { - kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,shift_x,shift_y,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(info,codepoint)); -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmap = function(info,scale_x,scale_y,codepoint,region) { - return kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapSubpixel(info,scale_x,scale_y,0.0,0.0,codepoint,region); -}; -kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmap = function(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,codepoint) { - kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmapSubpixel(info,output,output_offset,out_w,out_h,out_stride,scale_x,scale_y,0.0,0.0,codepoint); -}; -kha_graphics2_truetype_StbTruetype.stbtt_BakeFontBitmap = function(data,offset,pixel_height,pixels,pw,ph,chars,chardata) { - var scale; - var x; - var y; - var bottom_y; - var f = new kha_graphics2_truetype_Stbtt_$fontinfo(); - if(!kha_graphics2_truetype_StbTruetype.stbtt_InitFont(f,data,offset)) { - return -1; - } - var _g1 = 0; - var _g = pw * ph; - while(_g1 < _g) { - var i = _g1++; - pixels.writeU8(i,0); - } - y = 1; - x = y; - bottom_y = 1; - scale = kha_graphics2_truetype_StbTruetype.stbtt_ScaleForPixelHeight(f,pixel_height); - var i1 = 0; - var _g2 = 0; - while(_g2 < chars.length) { - var index = chars[_g2]; - ++_g2; - var advance; - var lsb; - var x0; - var y0; - var x1; - var y1; - var gw; - var gh; - var g = kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(f,index); - var metrics = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphHMetrics(f,g); - advance = metrics.advanceWidth; - lsb = metrics.leftSideBearing; - var rect = kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBox(f,g,scale,scale); - x0 = rect.x0; - y0 = rect.y0; - x1 = rect.x1; - y1 = rect.y1; - gw = x1 - x0; - gh = y1 - y0; - if(x + gw + 1 >= pw) { - y = bottom_y; - x = 1; - } - if(y + gh + 1 >= ph) { - return -i1; - } - if(x + gw >= pw) { - throw new js__$Boot_HaxeError("Error"); - } - if(y + gh >= ph) { - throw new js__$Boot_HaxeError("Error"); - } - kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmap(f,pixels,x + y * pw,gw,gh,pw,scale,scale,g); - chardata[i1].x0 = x; - chardata[i1].y0 = y; - chardata[i1].x1 = x + gw; - chardata[i1].y1 = y + gh; - chardata[i1].xadvance = scale * advance; - chardata[i1].xoff = x0; - chardata[i1].yoff = y0; - x = x + gw + 1; - if(y + gh + 1 > bottom_y) { - bottom_y = y + gh + 1; - } - ++i1; - } - return bottom_y; -}; -kha_graphics2_truetype_StbTruetype.stbtt_GetBakedQuad = function(chardata,pw,ph,char_index,xpos,ypos,q,opengl_fillrule) { - var d3d_bias = opengl_fillrule ? 0 : -0.5; - var ipw = 1.0 / pw; - var iph = 1.0 / ph; - var b = chardata[char_index]; - var round_x = Math.floor(xpos.value + b.xoff + 0.5); - var round_y = Math.floor(ypos.value + b.yoff + 0.5); - q.x0 = round_x + d3d_bias; - q.y0 = round_y + d3d_bias; - q.x1 = round_x + b.x1 - b.x0 + d3d_bias; - q.y1 = round_y + b.y1 - b.y0 + d3d_bias; - q.s0 = b.x0 * ipw; - q.t0 = b.y0 * iph; - q.s1 = b.x1 * ipw; - q.t1 = b.y1 * iph; - xpos.value += b.xadvance; -}; -var kha_graphics4_BlendingFactor = $hxClasses["kha.graphics4.BlendingFactor"] = { __ename__ : true, __constructs__ : ["Undefined","BlendOne","BlendZero","SourceAlpha","DestinationAlpha","InverseSourceAlpha","InverseDestinationAlpha","SourceColor","DestinationColor","InverseSourceColor","InverseDestinationColor"] }; -kha_graphics4_BlendingFactor.Undefined = ["Undefined",0]; -kha_graphics4_BlendingFactor.Undefined.toString = $estr; -kha_graphics4_BlendingFactor.Undefined.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.BlendOne = ["BlendOne",1]; -kha_graphics4_BlendingFactor.BlendOne.toString = $estr; -kha_graphics4_BlendingFactor.BlendOne.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.BlendZero = ["BlendZero",2]; -kha_graphics4_BlendingFactor.BlendZero.toString = $estr; -kha_graphics4_BlendingFactor.BlendZero.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.SourceAlpha = ["SourceAlpha",3]; -kha_graphics4_BlendingFactor.SourceAlpha.toString = $estr; -kha_graphics4_BlendingFactor.SourceAlpha.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.DestinationAlpha = ["DestinationAlpha",4]; -kha_graphics4_BlendingFactor.DestinationAlpha.toString = $estr; -kha_graphics4_BlendingFactor.DestinationAlpha.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.InverseSourceAlpha = ["InverseSourceAlpha",5]; -kha_graphics4_BlendingFactor.InverseSourceAlpha.toString = $estr; -kha_graphics4_BlendingFactor.InverseSourceAlpha.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.InverseDestinationAlpha = ["InverseDestinationAlpha",6]; -kha_graphics4_BlendingFactor.InverseDestinationAlpha.toString = $estr; -kha_graphics4_BlendingFactor.InverseDestinationAlpha.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.SourceColor = ["SourceColor",7]; -kha_graphics4_BlendingFactor.SourceColor.toString = $estr; -kha_graphics4_BlendingFactor.SourceColor.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.DestinationColor = ["DestinationColor",8]; -kha_graphics4_BlendingFactor.DestinationColor.toString = $estr; -kha_graphics4_BlendingFactor.DestinationColor.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.InverseSourceColor = ["InverseSourceColor",9]; -kha_graphics4_BlendingFactor.InverseSourceColor.toString = $estr; -kha_graphics4_BlendingFactor.InverseSourceColor.__enum__ = kha_graphics4_BlendingFactor; -kha_graphics4_BlendingFactor.InverseDestinationColor = ["InverseDestinationColor",10]; -kha_graphics4_BlendingFactor.InverseDestinationColor.toString = $estr; -kha_graphics4_BlendingFactor.InverseDestinationColor.__enum__ = kha_graphics4_BlendingFactor; -var kha_graphics4_BlendingOperation = $hxClasses["kha.graphics4.BlendingOperation"] = { __ename__ : true, __constructs__ : ["Add","Subtract","ReverseSubtract","Min","Max"] }; -kha_graphics4_BlendingOperation.Add = ["Add",0]; -kha_graphics4_BlendingOperation.Add.toString = $estr; -kha_graphics4_BlendingOperation.Add.__enum__ = kha_graphics4_BlendingOperation; -kha_graphics4_BlendingOperation.Subtract = ["Subtract",1]; -kha_graphics4_BlendingOperation.Subtract.toString = $estr; -kha_graphics4_BlendingOperation.Subtract.__enum__ = kha_graphics4_BlendingOperation; -kha_graphics4_BlendingOperation.ReverseSubtract = ["ReverseSubtract",2]; -kha_graphics4_BlendingOperation.ReverseSubtract.toString = $estr; -kha_graphics4_BlendingOperation.ReverseSubtract.__enum__ = kha_graphics4_BlendingOperation; -kha_graphics4_BlendingOperation.Min = ["Min",3]; -kha_graphics4_BlendingOperation.Min.toString = $estr; -kha_graphics4_BlendingOperation.Min.__enum__ = kha_graphics4_BlendingOperation; -kha_graphics4_BlendingOperation.Max = ["Max",4]; -kha_graphics4_BlendingOperation.Max.toString = $estr; -kha_graphics4_BlendingOperation.Max.__enum__ = kha_graphics4_BlendingOperation; -var kha_graphics4_CompareMode = $hxClasses["kha.graphics4.CompareMode"] = { __ename__ : true, __constructs__ : ["Always","Never","Equal","NotEqual","Less","LessEqual","Greater","GreaterEqual"] }; -kha_graphics4_CompareMode.Always = ["Always",0]; -kha_graphics4_CompareMode.Always.toString = $estr; -kha_graphics4_CompareMode.Always.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.Never = ["Never",1]; -kha_graphics4_CompareMode.Never.toString = $estr; -kha_graphics4_CompareMode.Never.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.Equal = ["Equal",2]; -kha_graphics4_CompareMode.Equal.toString = $estr; -kha_graphics4_CompareMode.Equal.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.NotEqual = ["NotEqual",3]; -kha_graphics4_CompareMode.NotEqual.toString = $estr; -kha_graphics4_CompareMode.NotEqual.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.Less = ["Less",4]; -kha_graphics4_CompareMode.Less.toString = $estr; -kha_graphics4_CompareMode.Less.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.LessEqual = ["LessEqual",5]; -kha_graphics4_CompareMode.LessEqual.toString = $estr; -kha_graphics4_CompareMode.LessEqual.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.Greater = ["Greater",6]; -kha_graphics4_CompareMode.Greater.toString = $estr; -kha_graphics4_CompareMode.Greater.__enum__ = kha_graphics4_CompareMode; -kha_graphics4_CompareMode.GreaterEqual = ["GreaterEqual",7]; -kha_graphics4_CompareMode.GreaterEqual.toString = $estr; -kha_graphics4_CompareMode.GreaterEqual.__enum__ = kha_graphics4_CompareMode; -var kha_graphics4_ConstantLocation = function() { }; -$hxClasses["kha.graphics4.ConstantLocation"] = kha_graphics4_ConstantLocation; -kha_graphics4_ConstantLocation.__name__ = true; -var kha_graphics4_CubeMap = function(size,format,renderTarget,depthStencilFormat) { - this.isDepthAttachment = false; - this.depthTexture = null; - this.texture = null; - this.frameBuffer = null; - this.myWidth = size; - this.myHeight = size; - this.format = format; - this.renderTarget = renderTarget; - this.depthStencilFormat = depthStencilFormat; - if(renderTarget) { - this.createTexture(); - } -}; -$hxClasses["kha.graphics4.CubeMap"] = kha_graphics4_CubeMap; -kha_graphics4_CubeMap.__name__ = true; -kha_graphics4_CubeMap.__interfaces__ = [kha_Resource,kha_Canvas]; -kha_graphics4_CubeMap.createRenderTarget = function(size,format,depthStencil,contextId) { - if(contextId == null) { - contextId = 0; - } - if(format == null) { - format = kha_graphics4_TextureFormat.RGBA32; - } - if(depthStencil == null) { - depthStencil = 0; - } - return new kha_graphics4_CubeMap(size,format,true,depthStencil); -}; -kha_graphics4_CubeMap.prototype = { - myWidth: null - ,myHeight: null - ,format: null - ,renderTarget: null - ,depthStencilFormat: null - ,graphics4: null - ,frameBuffer: null - ,texture: null - ,depthTexture: null - ,isDepthAttachment: null - ,createTexture: function() { - if(kha_SystemImpl.gl == null) { - return; - } - this.texture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(34067,this.texture); - kha_SystemImpl.gl.texParameteri(34067,10240,9729); - kha_SystemImpl.gl.texParameteri(34067,10241,9729); - kha_SystemImpl.gl.texParameteri(34067,10242,33071); - kha_SystemImpl.gl.texParameteri(34067,10243,33071); - if(this.renderTarget) { - this.frameBuffer = kha_SystemImpl.gl.createFramebuffer(); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - var _g = this.format; - switch(_g[1]) { - case 0: - var _g1 = 0; - while(_g1 < 6) { - var i = _g1++; - kha_SystemImpl.gl.texImage2D(34069 + i,0,6408,this.myWidth,this.myHeight,0,6408,5121,null); - } - break; - case 2: - var _g2 = 0; - while(_g2 < 6) { - var i1 = _g2++; - kha_SystemImpl.gl.texImage2D(34069 + i1,0,kha_SystemImpl.gl2 ? 34836 : 6408,this.myWidth,this.myHeight,0,6408,5126,null); - } - break; - case 3: - var _g3 = 0; - while(_g3 < 6) { - var i2 = _g3++; - kha_SystemImpl.gl.texImage2D(34069 + i2,0,kha_SystemImpl.gl2 ? 33189 : 6402,this.myWidth,this.myHeight,0,6402,5123,null); - } - break; - case 4: - var _g4 = 0; - while(_g4 < 6) { - var i3 = _g4++; - kha_SystemImpl.gl.texImage2D(34069 + i3,0,kha_SystemImpl.gl2 ? 34842 : 6408,this.myWidth,this.myHeight,0,6408,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,null); - } - break; - case 5: - var _g5 = 0; - while(_g5 < 6) { - var i4 = _g5++; - kha_SystemImpl.gl.texImage2D(34069 + i4,0,kha_SystemImpl.gl2 ? 33326 : 6406,this.myWidth,this.myHeight,0,6406,5126,null); - } - break; - case 6: - var _g6 = 0; - while(_g6 < 6) { - var i5 = _g6++; - kha_SystemImpl.gl.texImage2D(34069 + i5,0,kha_SystemImpl.gl2 ? 33325 : 6406,this.myWidth,this.myHeight,0,6406,kha_SystemImpl.halfFloat.HALF_FLOAT_OES,null); - } - break; - default: - var _g7 = 0; - while(_g7 < 6) { - var i6 = _g7++; - kha_SystemImpl.gl.texImage2D(34069 + i6,0,6408,this.myWidth,this.myHeight,0,6408,5121,null); - } - } - if(this.format == kha_graphics4_TextureFormat.DEPTH16) { - kha_SystemImpl.gl.texParameteri(34067,10240,9728); - kha_SystemImpl.gl.texParameteri(34067,10241,9728); - this.isDepthAttachment = true; - if(navigator.appVersion.indexOf("Win") == -1) { - var colortex = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(34067,colortex); - var _g11 = 0; - while(_g11 < 6) { - var i7 = _g11++; - kha_SystemImpl.gl.texImage2D(34069 + i7,0,6408,this.myWidth,this.myHeight,0,6408,5121,null); - kha_SystemImpl.gl.framebufferTexture2D(36160,36064,34069 + i7,colortex,0); - } - kha_SystemImpl.gl.bindTexture(34067,this.texture); - } - } - this.initDepthStencilBuffer(this.depthStencilFormat); - kha_SystemImpl.gl.bindFramebuffer(36160,null); - } - kha_SystemImpl.gl.bindTexture(34067,null); - } - ,initDepthStencilBuffer: function(depthStencilFormat) { - switch(depthStencilFormat) { - case 0: - break; - case 1:case 5: - this.depthTexture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(34067,this.depthTexture); - if(depthStencilFormat == 1) { - kha_SystemImpl.gl.texImage2D(34067,0,kha_SystemImpl.gl2 ? 33190 : 6402,this.myWidth,this.myHeight,0,6402,5125,null); - } else { - kha_SystemImpl.gl.texImage2D(34067,0,kha_SystemImpl.gl2 ? 33189 : 6402,this.myWidth,this.myHeight,0,6402,5123,null); - } - kha_SystemImpl.gl.texParameteri(34067,10240,9728); - kha_SystemImpl.gl.texParameteri(34067,10241,9728); - kha_SystemImpl.gl.texParameteri(34067,10242,33071); - kha_SystemImpl.gl.texParameteri(34067,10243,33071); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,36096,34067,this.depthTexture,0); - break; - case 2:case 3:case 4: - this.depthTexture = kha_SystemImpl.gl.createTexture(); - kha_SystemImpl.gl.bindTexture(34067,this.depthTexture); - kha_SystemImpl.gl.texImage2D(34067,0,kha_SystemImpl.gl2 ? 35056 : 34041,this.myWidth,this.myHeight,0,34041,kha_SystemImpl.depthTexture.UNSIGNED_INT_24_8_WEBGL,null); - kha_SystemImpl.gl.texParameteri(34067,10240,9728); - kha_SystemImpl.gl.texParameteri(34067,10241,9728); - kha_SystemImpl.gl.texParameteri(34067,10242,33071); - kha_SystemImpl.gl.texParameteri(34067,10243,33071); - kha_SystemImpl.gl.bindFramebuffer(36160,this.frameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,33306,34067,this.depthTexture,0); - break; - } - } - ,set: function(stage) { - kha_SystemImpl.gl.activeTexture(33984 + stage); - kha_SystemImpl.gl.bindTexture(34067,this.texture); - } - ,setDepth: function(stage) { - kha_SystemImpl.gl.activeTexture(33984 + stage); - kha_SystemImpl.gl.bindTexture(34067,this.depthTexture); - } - ,unload: function() { - } - ,lock: function(level) { - if(level == null) { - level = 0; - } - return null; - } - ,unlock: function() { - } - ,width: null - ,get_width: function() { - return this.myWidth; - } - ,height: null - ,get_height: function() { - return this.myHeight; - } - ,g1: null - ,get_g1: function() { - return null; - } - ,g2: null - ,get_g2: function() { - return null; - } - ,g4: null - ,get_g4: function() { - if(this.graphics4 == null) { - this.graphics4 = new kha_js_graphics4_Graphics(this); - } - return this.graphics4; - } - ,__class__: kha_graphics4_CubeMap -}; -var kha_graphics4_CullMode = $hxClasses["kha.graphics4.CullMode"] = { __ename__ : true, __constructs__ : ["Clockwise","CounterClockwise","None"] }; -kha_graphics4_CullMode.Clockwise = ["Clockwise",0]; -kha_graphics4_CullMode.Clockwise.toString = $estr; -kha_graphics4_CullMode.Clockwise.__enum__ = kha_graphics4_CullMode; -kha_graphics4_CullMode.CounterClockwise = ["CounterClockwise",1]; -kha_graphics4_CullMode.CounterClockwise.toString = $estr; -kha_graphics4_CullMode.CounterClockwise.__enum__ = kha_graphics4_CullMode; -kha_graphics4_CullMode.None = ["None",2]; -kha_graphics4_CullMode.None.toString = $estr; -kha_graphics4_CullMode.None.__enum__ = kha_graphics4_CullMode; -var kha_graphics4_FragmentShader = function(sources,files) { - this.sources = []; - var _g = 0; - while(_g < sources.length) { - var source = sources[_g]; - ++_g; - this.sources.push(source.toString()); - } - this.type = 35632; - this.shader = null; - this.files = files; -}; -$hxClasses["kha.graphics4.FragmentShader"] = kha_graphics4_FragmentShader; -kha_graphics4_FragmentShader.__name__ = true; -kha_graphics4_FragmentShader.fromSource = function(source) { - var shader = new kha_graphics4_FragmentShader([],["runtime-string"]); - shader.sources.push(source); - return shader; -}; -kha_graphics4_FragmentShader.prototype = { - sources: null - ,type: null - ,shader: null - ,files: null - ,'delete': function() { - kha_SystemImpl.gl.deleteShader(this.shader); - this.shader = null; - this.sources = null; - } - ,__class__: kha_graphics4_FragmentShader -}; -var kha_graphics4_GeometryShader = function(source) { -}; -$hxClasses["kha.graphics4.GeometryShader"] = kha_graphics4_GeometryShader; -kha_graphics4_GeometryShader.__name__ = true; -kha_graphics4_GeometryShader.prototype = { - 'delete': function() { - } - ,__class__: kha_graphics4_GeometryShader -}; -var kha_graphics4_Graphics = function() { }; -$hxClasses["kha.graphics4.Graphics"] = kha_graphics4_Graphics; -kha_graphics4_Graphics.__name__ = true; -kha_graphics4_Graphics.prototype = { - begin: null - ,beginFace: null - ,beginEye: null - ,end: null - ,vsynced: null - ,refreshRate: null - ,clear: null - ,viewport: null - ,scissor: null - ,disableScissor: null - ,setVertexBuffer: null - ,setVertexBuffers: null - ,setIndexBuffer: null - ,setTexture: null - ,setTextureDepth: null - ,setVideoTexture: null - ,setImageTexture: null - ,setTextureParameters: null - ,setTexture3DParameters: null - ,setCubeMap: null - ,setCubeMapDepth: null - ,renderTargetsInvertedY: null - ,instancedRenderingAvailable: null - ,setPipeline: null - ,setBool: null - ,setInt: null - ,setFloat: null - ,setFloat2: null - ,setFloat3: null - ,setFloat4: null - ,setFloats: null - ,setVector2: null - ,setVector3: null - ,setVector4: null - ,setMatrix: null - ,setMatrix3: null - ,drawIndexedVertices: null - ,drawIndexedVerticesInstanced: null - ,flush: null - ,__class__: kha_graphics4_Graphics -}; -var kha_graphics4_ImageShaderPainter = function(g4) { - this.destinationBlend = kha_graphics4_BlendingFactor.Undefined; - this.sourceBlend = kha_graphics4_BlendingFactor.Undefined; - this.myPipeline = null; - this.bilinearMipmaps = false; - this.bilinear = false; - this.g = g4; - this.bufferIndex = 0; - kha_graphics4_ImageShaderPainter.initShaders(); - this.initBuffers(); - this.projectionLocation = kha_graphics4_ImageShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); - this.textureLocation = kha_graphics4_ImageShaderPainter.shaderPipeline.getTextureUnit("tex"); -}; -$hxClasses["kha.graphics4.ImageShaderPainter"] = kha_graphics4_ImageShaderPainter; -kha_graphics4_ImageShaderPainter.__name__ = true; -kha_graphics4_ImageShaderPainter.initShaders = function() { - if(kha_graphics4_ImageShaderPainter.shaderPipeline != null) { - return; - } - kha_graphics4_ImageShaderPainter.shaderPipeline = new kha_graphics4_PipelineState(); - kha_graphics4_ImageShaderPainter.shaderPipeline.fragmentShader = kha_Shaders.painter_image_frag; - kha_graphics4_ImageShaderPainter.shaderPipeline.vertexShader = kha_Shaders.painter_image_vert; - kha_graphics4_ImageShaderPainter.structure = new kha_graphics4_VertexStructure(); - kha_graphics4_ImageShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3); - kha_graphics4_ImageShaderPainter.structure.add("texPosition",kha_graphics4_VertexData.Float2); - kha_graphics4_ImageShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4); - kha_graphics4_ImageShaderPainter.shaderPipeline.inputLayout = [kha_graphics4_ImageShaderPainter.structure]; - kha_graphics4_ImageShaderPainter.shaderPipeline.blendSource = kha_graphics4_BlendingFactor.BlendOne; - kha_graphics4_ImageShaderPainter.shaderPipeline.blendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_ImageShaderPainter.shaderPipeline.alphaBlendSource = kha_graphics4_BlendingFactor.SourceAlpha; - kha_graphics4_ImageShaderPainter.shaderPipeline.alphaBlendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_ImageShaderPainter.shaderPipeline.compile(); -}; -kha_graphics4_ImageShaderPainter.prototype = { - projectionMatrix: null - ,projectionLocation: null - ,textureLocation: null - ,bufferIndex: null - ,rectVertexBuffer: null - ,rectVertices: null - ,indexBuffer: null - ,lastTexture: null - ,bilinear: null - ,bilinearMipmaps: null - ,g: null - ,myPipeline: null - ,sourceBlend: null - ,destinationBlend: null - ,get_pipeline: function() { - return this.myPipeline; - } - ,set_pipeline: function(pipe) { - if(pipe == null) { - this.projectionLocation = kha_graphics4_ImageShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); - this.textureLocation = kha_graphics4_ImageShaderPainter.shaderPipeline.getTextureUnit("tex"); - } else { - this.projectionLocation = pipe.getConstantLocation("projectionMatrix"); - this.textureLocation = pipe.getTextureUnit("tex"); - } - return this.myPipeline = pipe; - } - ,setProjection: function(projectionMatrix) { - this.projectionMatrix = projectionMatrix; - } - ,initBuffers: function() { - this.rectVertexBuffer = new kha_graphics4_VertexBuffer(kha_graphics4_ImageShaderPainter.bufferSize * 4,kha_graphics4_ImageShaderPainter.structure,kha_graphics4_Usage.DynamicUsage); - this.rectVertices = this.rectVertexBuffer.lock(); - this.indexBuffer = new kha_graphics4_IndexBuffer(kha_graphics4_ImageShaderPainter.bufferSize * 3 * 2,kha_graphics4_Usage.StaticUsage); - var indices = this.indexBuffer.lock(); - var _g1 = 0; - var _g = kha_graphics4_ImageShaderPainter.bufferSize; - while(_g1 < _g) { - var i = _g1++; - indices[i * 3 * 2] = i * 4; - indices[i * 3 * 2 + 1] = i * 4 + 1; - indices[i * 3 * 2 + 2] = i * 4 + 2; - indices[i * 3 * 2 + 3] = i * 4; - indices[i * 3 * 2 + 4] = i * 4 + 2; - indices[i * 3 * 2 + 5] = i * 4 + 3; - } - this.indexBuffer.unlock(); - } - ,setRectVertices: function(bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty) { - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex] = bottomleftx; - this.rectVertices[baseIndex + 1] = bottomlefty; - this.rectVertices[baseIndex + 2] = -5.0; - this.rectVertices[baseIndex + 9] = topleftx; - this.rectVertices[baseIndex + 10] = toplefty; - this.rectVertices[baseIndex + 11] = -5.0; - this.rectVertices[baseIndex + 18] = toprightx; - this.rectVertices[baseIndex + 19] = toprighty; - this.rectVertices[baseIndex + 20] = -5.0; - this.rectVertices[baseIndex + 27] = bottomrightx; - this.rectVertices[baseIndex + 28] = bottomrighty; - this.rectVertices[baseIndex + 29] = -5.0; - } - ,setRectTexCoords: function(left,top,right,bottom) { - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex + 3] = left; - this.rectVertices[baseIndex + 4] = bottom; - this.rectVertices[baseIndex + 12] = left; - this.rectVertices[baseIndex + 13] = top; - this.rectVertices[baseIndex + 21] = right; - this.rectVertices[baseIndex + 22] = top; - this.rectVertices[baseIndex + 30] = right; - this.rectVertices[baseIndex + 31] = bottom; - } - ,setRectColor: function(r,g,b,a) { - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex + 5] = r; - this.rectVertices[baseIndex + 6] = g; - this.rectVertices[baseIndex + 7] = b; - this.rectVertices[baseIndex + 8] = a; - this.rectVertices[baseIndex + 14] = r; - this.rectVertices[baseIndex + 15] = g; - this.rectVertices[baseIndex + 16] = b; - this.rectVertices[baseIndex + 17] = a; - this.rectVertices[baseIndex + 23] = r; - this.rectVertices[baseIndex + 24] = g; - this.rectVertices[baseIndex + 25] = b; - this.rectVertices[baseIndex + 26] = a; - this.rectVertices[baseIndex + 32] = r; - this.rectVertices[baseIndex + 33] = g; - this.rectVertices[baseIndex + 34] = b; - this.rectVertices[baseIndex + 35] = a; - } - ,drawBuffer: function() { - this.rectVertexBuffer.unlock(); - this.g.setVertexBuffer(this.rectVertexBuffer); - this.g.setIndexBuffer(this.indexBuffer); - this.g.setPipeline(this.get_pipeline() == null ? kha_graphics4_ImageShaderPainter.shaderPipeline : this.get_pipeline()); - this.g.setTexture(this.textureLocation,this.lastTexture); - this.g.setTextureParameters(this.textureLocation,kha_graphics4_TextureAddressing.Clamp,kha_graphics4_TextureAddressing.Clamp,this.bilinear ? kha_graphics4_TextureFilter.LinearFilter : kha_graphics4_TextureFilter.PointFilter,this.bilinear ? kha_graphics4_TextureFilter.LinearFilter : kha_graphics4_TextureFilter.PointFilter,this.bilinearMipmaps ? kha_graphics4_MipMapFilter.LinearMipFilter : kha_graphics4_MipMapFilter.NoMipFilter); - this.g.setMatrix(this.projectionLocation,this.projectionMatrix); - this.g.drawIndexedVertices(0,this.bufferIndex * 2 * 3); - this.g.setTexture(this.textureLocation,null); - this.bufferIndex = 0; - this.rectVertices = this.rectVertexBuffer.lock(); - } - ,setBilinearFilter: function(bilinear) { - this.end(); - this.bilinear = bilinear; - } - ,setBilinearMipmapFilter: function(bilinear) { - this.end(); - this.bilinearMipmaps = bilinear; - } - ,drawImage: function(img,bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty,opacity,color) { - var tex = img; - if(this.bufferIndex + 1 >= kha_graphics4_ImageShaderPainter.bufferSize || this.lastTexture != null && tex != this.lastTexture) { - this.drawBuffer(); - } - var r = ((color & 16711680) >>> 16) * 0.00392156862745098; - var g = ((color & 65280) >>> 8) * 0.00392156862745098; - var b = (color & 255) * 0.00392156862745098; - var a = (color >>> 24) * 0.00392156862745098 * opacity; - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex + 5] = r; - this.rectVertices[baseIndex + 6] = g; - this.rectVertices[baseIndex + 7] = b; - this.rectVertices[baseIndex + 8] = a; - this.rectVertices[baseIndex + 14] = r; - this.rectVertices[baseIndex + 15] = g; - this.rectVertices[baseIndex + 16] = b; - this.rectVertices[baseIndex + 17] = a; - this.rectVertices[baseIndex + 23] = r; - this.rectVertices[baseIndex + 24] = g; - this.rectVertices[baseIndex + 25] = b; - this.rectVertices[baseIndex + 26] = a; - this.rectVertices[baseIndex + 32] = r; - this.rectVertices[baseIndex + 33] = g; - this.rectVertices[baseIndex + 34] = b; - this.rectVertices[baseIndex + 35] = a; - var right = tex.get_width() / tex.get_realWidth(); - var bottom = tex.get_height() / tex.get_realHeight(); - var baseIndex1 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex1 + 3] = 0; - this.rectVertices[baseIndex1 + 4] = bottom; - this.rectVertices[baseIndex1 + 12] = 0; - this.rectVertices[baseIndex1 + 13] = 0; - this.rectVertices[baseIndex1 + 21] = right; - this.rectVertices[baseIndex1 + 22] = 0; - this.rectVertices[baseIndex1 + 30] = right; - this.rectVertices[baseIndex1 + 31] = bottom; - var baseIndex2 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex2] = bottomleftx; - this.rectVertices[baseIndex2 + 1] = bottomlefty; - this.rectVertices[baseIndex2 + 2] = -5.0; - this.rectVertices[baseIndex2 + 9] = topleftx; - this.rectVertices[baseIndex2 + 10] = toplefty; - this.rectVertices[baseIndex2 + 11] = -5.0; - this.rectVertices[baseIndex2 + 18] = toprightx; - this.rectVertices[baseIndex2 + 19] = toprighty; - this.rectVertices[baseIndex2 + 20] = -5.0; - this.rectVertices[baseIndex2 + 27] = bottomrightx; - this.rectVertices[baseIndex2 + 28] = bottomrighty; - this.rectVertices[baseIndex2 + 29] = -5.0; - ++this.bufferIndex; - this.lastTexture = tex; - } - ,drawImage2: function(img,sx,sy,sw,sh,bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty,opacity,color) { - var tex = img; - if(this.bufferIndex + 1 >= kha_graphics4_ImageShaderPainter.bufferSize || this.lastTexture != null && tex != this.lastTexture) { - this.drawBuffer(); - } - var left = sx / tex.get_realWidth(); - var top = sy / tex.get_realHeight(); - var right = (sx + sw) / tex.get_realWidth(); - var bottom = (sy + sh) / tex.get_realHeight(); - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex + 3] = left; - this.rectVertices[baseIndex + 4] = bottom; - this.rectVertices[baseIndex + 12] = left; - this.rectVertices[baseIndex + 13] = top; - this.rectVertices[baseIndex + 21] = right; - this.rectVertices[baseIndex + 22] = top; - this.rectVertices[baseIndex + 30] = right; - this.rectVertices[baseIndex + 31] = bottom; - var r = ((color & 16711680) >>> 16) * 0.00392156862745098; - var g = ((color & 65280) >>> 8) * 0.00392156862745098; - var b = (color & 255) * 0.00392156862745098; - var a = (color >>> 24) * 0.00392156862745098 * opacity; - var baseIndex1 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex1 + 5] = r; - this.rectVertices[baseIndex1 + 6] = g; - this.rectVertices[baseIndex1 + 7] = b; - this.rectVertices[baseIndex1 + 8] = a; - this.rectVertices[baseIndex1 + 14] = r; - this.rectVertices[baseIndex1 + 15] = g; - this.rectVertices[baseIndex1 + 16] = b; - this.rectVertices[baseIndex1 + 17] = a; - this.rectVertices[baseIndex1 + 23] = r; - this.rectVertices[baseIndex1 + 24] = g; - this.rectVertices[baseIndex1 + 25] = b; - this.rectVertices[baseIndex1 + 26] = a; - this.rectVertices[baseIndex1 + 32] = r; - this.rectVertices[baseIndex1 + 33] = g; - this.rectVertices[baseIndex1 + 34] = b; - this.rectVertices[baseIndex1 + 35] = a; - var baseIndex2 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex2] = bottomleftx; - this.rectVertices[baseIndex2 + 1] = bottomlefty; - this.rectVertices[baseIndex2 + 2] = -5.0; - this.rectVertices[baseIndex2 + 9] = topleftx; - this.rectVertices[baseIndex2 + 10] = toplefty; - this.rectVertices[baseIndex2 + 11] = -5.0; - this.rectVertices[baseIndex2 + 18] = toprightx; - this.rectVertices[baseIndex2 + 19] = toprighty; - this.rectVertices[baseIndex2 + 20] = -5.0; - this.rectVertices[baseIndex2 + 27] = bottomrightx; - this.rectVertices[baseIndex2 + 28] = bottomrighty; - this.rectVertices[baseIndex2 + 29] = -5.0; - ++this.bufferIndex; - this.lastTexture = tex; - } - ,drawImageScale: function(img,sx,sy,sw,sh,left,top,right,bottom,opacity,color) { - var tex = img; - if(this.bufferIndex + 1 >= kha_graphics4_ImageShaderPainter.bufferSize || this.lastTexture != null && tex != this.lastTexture) { - this.drawBuffer(); - } - var left1 = sx / tex.get_realWidth(); - var top1 = sy / tex.get_realHeight(); - var right1 = (sx + sw) / tex.get_realWidth(); - var bottom1 = (sy + sh) / tex.get_realHeight(); - var baseIndex = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex + 3] = left1; - this.rectVertices[baseIndex + 4] = bottom1; - this.rectVertices[baseIndex + 12] = left1; - this.rectVertices[baseIndex + 13] = top1; - this.rectVertices[baseIndex + 21] = right1; - this.rectVertices[baseIndex + 22] = top1; - this.rectVertices[baseIndex + 30] = right1; - this.rectVertices[baseIndex + 31] = bottom1; - var r = ((color & 16711680) >>> 16) * 0.00392156862745098; - var g = ((color & 65280) >>> 8) * 0.00392156862745098; - var b = (color & 255) * 0.00392156862745098; - var baseIndex1 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex1 + 5] = r; - this.rectVertices[baseIndex1 + 6] = g; - this.rectVertices[baseIndex1 + 7] = b; - this.rectVertices[baseIndex1 + 8] = opacity; - this.rectVertices[baseIndex1 + 14] = r; - this.rectVertices[baseIndex1 + 15] = g; - this.rectVertices[baseIndex1 + 16] = b; - this.rectVertices[baseIndex1 + 17] = opacity; - this.rectVertices[baseIndex1 + 23] = r; - this.rectVertices[baseIndex1 + 24] = g; - this.rectVertices[baseIndex1 + 25] = b; - this.rectVertices[baseIndex1 + 26] = opacity; - this.rectVertices[baseIndex1 + 32] = r; - this.rectVertices[baseIndex1 + 33] = g; - this.rectVertices[baseIndex1 + 34] = b; - this.rectVertices[baseIndex1 + 35] = opacity; - var baseIndex2 = this.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - this.rectVertices[baseIndex2] = left; - this.rectVertices[baseIndex2 + 1] = bottom; - this.rectVertices[baseIndex2 + 2] = -5.0; - this.rectVertices[baseIndex2 + 9] = left; - this.rectVertices[baseIndex2 + 10] = top; - this.rectVertices[baseIndex2 + 11] = -5.0; - this.rectVertices[baseIndex2 + 18] = right; - this.rectVertices[baseIndex2 + 19] = top; - this.rectVertices[baseIndex2 + 20] = -5.0; - this.rectVertices[baseIndex2 + 27] = right; - this.rectVertices[baseIndex2 + 28] = bottom; - this.rectVertices[baseIndex2 + 29] = -5.0; - ++this.bufferIndex; - this.lastTexture = tex; - } - ,end: function() { - if(this.bufferIndex > 0) { - this.drawBuffer(); - } - this.lastTexture = null; - } - ,__class__: kha_graphics4_ImageShaderPainter -}; -var kha_graphics4_ColoredShaderPainter = function(g4) { - this.destinationBlend = kha_graphics4_BlendingFactor.Undefined; - this.sourceBlend = kha_graphics4_BlendingFactor.Undefined; - this.myPipeline = null; - this.g = g4; - this.bufferIndex = 0; - this.triangleBufferIndex = 0; - kha_graphics4_ColoredShaderPainter.initShaders(); - this.initBuffers(); - this.projectionLocation = kha_graphics4_ColoredShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); -}; -$hxClasses["kha.graphics4.ColoredShaderPainter"] = kha_graphics4_ColoredShaderPainter; -kha_graphics4_ColoredShaderPainter.__name__ = true; -kha_graphics4_ColoredShaderPainter.initShaders = function() { - if(kha_graphics4_ColoredShaderPainter.shaderPipeline != null) { - return; - } - kha_graphics4_ColoredShaderPainter.shaderPipeline = new kha_graphics4_PipelineState(); - kha_graphics4_ColoredShaderPainter.shaderPipeline.fragmentShader = kha_Shaders.painter_colored_frag; - kha_graphics4_ColoredShaderPainter.shaderPipeline.vertexShader = kha_Shaders.painter_colored_vert; - kha_graphics4_ColoredShaderPainter.structure = new kha_graphics4_VertexStructure(); - kha_graphics4_ColoredShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3); - kha_graphics4_ColoredShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4); - kha_graphics4_ColoredShaderPainter.shaderPipeline.inputLayout = [kha_graphics4_ColoredShaderPainter.structure]; - kha_graphics4_ColoredShaderPainter.shaderPipeline.blendSource = kha_graphics4_BlendingFactor.SourceAlpha; - kha_graphics4_ColoredShaderPainter.shaderPipeline.blendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_ColoredShaderPainter.shaderPipeline.alphaBlendSource = kha_graphics4_BlendingFactor.SourceAlpha; - kha_graphics4_ColoredShaderPainter.shaderPipeline.alphaBlendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_ColoredShaderPainter.shaderPipeline.compile(); -}; -kha_graphics4_ColoredShaderPainter.prototype = { - projectionMatrix: null - ,projectionLocation: null - ,bufferIndex: null - ,rectVertexBuffer: null - ,rectVertices: null - ,indexBuffer: null - ,triangleBufferIndex: null - ,triangleVertexBuffer: null - ,triangleVertices: null - ,triangleIndexBuffer: null - ,g: null - ,myPipeline: null - ,sourceBlend: null - ,destinationBlend: null - ,get_pipeline: function() { - return this.myPipeline; - } - ,set_pipeline: function(pipe) { - if(pipe == null) { - this.projectionLocation = kha_graphics4_ColoredShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); - } else { - this.projectionLocation = pipe.getConstantLocation("projectionMatrix"); - } - return this.myPipeline = pipe; - } - ,setProjection: function(projectionMatrix) { - this.projectionMatrix = projectionMatrix; - } - ,initBuffers: function() { - this.rectVertexBuffer = new kha_graphics4_VertexBuffer(kha_graphics4_ColoredShaderPainter.bufferSize * 4,kha_graphics4_ColoredShaderPainter.structure,kha_graphics4_Usage.DynamicUsage); - this.rectVertices = this.rectVertexBuffer.lock(); - this.indexBuffer = new kha_graphics4_IndexBuffer(kha_graphics4_ColoredShaderPainter.bufferSize * 3 * 2,kha_graphics4_Usage.StaticUsage); - var indices = this.indexBuffer.lock(); - var _g1 = 0; - var _g = kha_graphics4_ColoredShaderPainter.bufferSize; - while(_g1 < _g) { - var i = _g1++; - indices[i * 3 * 2] = i * 4; - indices[i * 3 * 2 + 1] = i * 4 + 1; - indices[i * 3 * 2 + 2] = i * 4 + 2; - indices[i * 3 * 2 + 3] = i * 4; - indices[i * 3 * 2 + 4] = i * 4 + 2; - indices[i * 3 * 2 + 5] = i * 4 + 3; - } - this.indexBuffer.unlock(); - this.triangleVertexBuffer = new kha_graphics4_VertexBuffer(kha_graphics4_ColoredShaderPainter.triangleBufferSize * 3,kha_graphics4_ColoredShaderPainter.structure,kha_graphics4_Usage.DynamicUsage); - this.triangleVertices = this.triangleVertexBuffer.lock(); - this.triangleIndexBuffer = new kha_graphics4_IndexBuffer(kha_graphics4_ColoredShaderPainter.triangleBufferSize * 3,kha_graphics4_Usage.StaticUsage); - var triIndices = this.triangleIndexBuffer.lock(); - var _g11 = 0; - var _g2 = kha_graphics4_ColoredShaderPainter.bufferSize; - while(_g11 < _g2) { - var i1 = _g11++; - triIndices[i1 * 3] = i1 * 3; - triIndices[i1 * 3 + 1] = i1 * 3 + 1; - triIndices[i1 * 3 + 2] = i1 * 3 + 2; - } - this.triangleIndexBuffer.unlock(); - } - ,setRectVertices: function(bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty) { - var baseIndex = this.bufferIndex * 7 * 4; - this.rectVertices[baseIndex] = bottomleftx; - this.rectVertices[baseIndex + 1] = bottomlefty; - this.rectVertices[baseIndex + 2] = -5.0; - this.rectVertices[baseIndex + 7] = topleftx; - this.rectVertices[baseIndex + 8] = toplefty; - this.rectVertices[baseIndex + 9] = -5.0; - this.rectVertices[baseIndex + 14] = toprightx; - this.rectVertices[baseIndex + 15] = toprighty; - this.rectVertices[baseIndex + 16] = -5.0; - this.rectVertices[baseIndex + 21] = bottomrightx; - this.rectVertices[baseIndex + 22] = bottomrighty; - this.rectVertices[baseIndex + 23] = -5.0; - } - ,setRectColors: function(opacity,color) { - var baseIndex = this.bufferIndex * 7 * 4; - var a = opacity * ((color >>> 24) * 0.00392156862745098); - this.rectVertices[baseIndex + 3] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 4] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 5] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 6] = a; - this.rectVertices[baseIndex + 10] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 11] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 12] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 13] = a; - this.rectVertices[baseIndex + 17] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 18] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 19] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 20] = a; - this.rectVertices[baseIndex + 24] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 25] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 26] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 27] = a; - } - ,setTriVertices: function(x1,y1,x2,y2,x3,y3) { - var baseIndex = this.triangleBufferIndex * 7 * 3; - this.triangleVertices[baseIndex] = x1; - this.triangleVertices[baseIndex + 1] = y1; - this.triangleVertices[baseIndex + 2] = -5.0; - this.triangleVertices[baseIndex + 7] = x2; - this.triangleVertices[baseIndex + 8] = y2; - this.triangleVertices[baseIndex + 9] = -5.0; - this.triangleVertices[baseIndex + 14] = x3; - this.triangleVertices[baseIndex + 15] = y3; - this.triangleVertices[baseIndex + 16] = -5.0; - } - ,setTriColors: function(opacity,color) { - var baseIndex = this.triangleBufferIndex * 7 * 3; - var a = opacity * ((color >>> 24) * 0.00392156862745098); - this.triangleVertices[baseIndex + 3] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.triangleVertices[baseIndex + 4] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.triangleVertices[baseIndex + 5] = (color & 255) * 0.00392156862745098; - this.triangleVertices[baseIndex + 6] = a; - this.triangleVertices[baseIndex + 10] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.triangleVertices[baseIndex + 11] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.triangleVertices[baseIndex + 12] = (color & 255) * 0.00392156862745098; - this.triangleVertices[baseIndex + 13] = a; - this.triangleVertices[baseIndex + 17] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.triangleVertices[baseIndex + 18] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.triangleVertices[baseIndex + 19] = (color & 255) * 0.00392156862745098; - this.triangleVertices[baseIndex + 20] = a; - } - ,drawBuffer: function(trisDone) { - if(!trisDone) { - if(this.triangleBufferIndex > 0) { - this.drawTriBuffer(true); - } - } - this.rectVertexBuffer.unlock(); - this.g.setVertexBuffer(this.rectVertexBuffer); - this.g.setIndexBuffer(this.indexBuffer); - this.g.setPipeline(this.get_pipeline() == null ? kha_graphics4_ColoredShaderPainter.shaderPipeline : this.get_pipeline()); - this.g.setMatrix(this.projectionLocation,this.projectionMatrix); - this.g.drawIndexedVertices(0,this.bufferIndex * 2 * 3); - this.bufferIndex = 0; - this.rectVertices = this.rectVertexBuffer.lock(); - } - ,drawTriBuffer: function(rectsDone) { - if(!rectsDone) { - if(this.bufferIndex > 0) { - this.drawBuffer(true); - } - } - this.triangleVertexBuffer.unlock(); - this.g.setVertexBuffer(this.triangleVertexBuffer); - this.g.setIndexBuffer(this.triangleIndexBuffer); - this.g.setPipeline(this.get_pipeline() == null ? kha_graphics4_ColoredShaderPainter.shaderPipeline : this.get_pipeline()); - this.g.setMatrix(this.projectionLocation,this.projectionMatrix); - this.g.drawIndexedVertices(0,this.triangleBufferIndex * 3); - this.triangleBufferIndex = 0; - this.triangleVertices = this.triangleVertexBuffer.lock(); - } - ,fillRect: function(opacity,color,bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty) { - if(this.triangleBufferIndex > 0) { - this.drawTriBuffer(true); - } - if(this.bufferIndex + 1 >= kha_graphics4_ColoredShaderPainter.bufferSize) { - this.drawBuffer(false); - } - this.setRectColors(opacity,color); - this.setRectVertices(bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty); - ++this.bufferIndex; - } - ,fillTriangle: function(opacity,color,x1,y1,x2,y2,x3,y3) { - if(this.bufferIndex > 0) { - this.drawBuffer(true); - } - if(this.triangleBufferIndex + 1 >= kha_graphics4_ColoredShaderPainter.triangleBufferSize) { - this.drawTriBuffer(false); - } - this.setTriColors(opacity,color); - this.setTriVertices(x1,y1,x2,y2,x3,y3); - ++this.triangleBufferIndex; - } - ,endTris: function(rectsDone) { - if(this.triangleBufferIndex > 0) { - this.drawTriBuffer(rectsDone); - } - } - ,endRects: function(trisDone) { - if(this.bufferIndex > 0) { - this.drawBuffer(trisDone); - } - } - ,end: function() { - if(this.triangleBufferIndex > 0) { - this.drawTriBuffer(false); - } - if(this.bufferIndex > 0) { - this.drawBuffer(false); - } - } - ,__class__: kha_graphics4_ColoredShaderPainter -}; -var kha_graphics4_TextShaderPainter = function(g4) { - this.destinationBlend = kha_graphics4_BlendingFactor.Undefined; - this.sourceBlend = kha_graphics4_BlendingFactor.Undefined; - this.bilinear = false; - this.myPipeline = null; - this.g = g4; - this.bufferIndex = 0; - kha_graphics4_TextShaderPainter.initShaders(); - this.initBuffers(); - this.projectionLocation = kha_graphics4_TextShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); - this.textureLocation = kha_graphics4_TextShaderPainter.shaderPipeline.getTextureUnit("tex"); -}; -$hxClasses["kha.graphics4.TextShaderPainter"] = kha_graphics4_TextShaderPainter; -kha_graphics4_TextShaderPainter.__name__ = true; -kha_graphics4_TextShaderPainter.initShaders = function() { - if(kha_graphics4_TextShaderPainter.shaderPipeline != null) { - return; - } - kha_graphics4_TextShaderPainter.shaderPipeline = new kha_graphics4_PipelineState(); - kha_graphics4_TextShaderPainter.shaderPipeline.fragmentShader = kha_Shaders.painter_text_frag; - kha_graphics4_TextShaderPainter.shaderPipeline.vertexShader = kha_Shaders.painter_text_vert; - kha_graphics4_TextShaderPainter.structure = new kha_graphics4_VertexStructure(); - kha_graphics4_TextShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3); - kha_graphics4_TextShaderPainter.structure.add("texPosition",kha_graphics4_VertexData.Float2); - kha_graphics4_TextShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4); - kha_graphics4_TextShaderPainter.shaderPipeline.inputLayout = [kha_graphics4_TextShaderPainter.structure]; - kha_graphics4_TextShaderPainter.shaderPipeline.blendSource = kha_graphics4_BlendingFactor.SourceAlpha; - kha_graphics4_TextShaderPainter.shaderPipeline.blendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_TextShaderPainter.shaderPipeline.alphaBlendSource = kha_graphics4_BlendingFactor.SourceAlpha; - kha_graphics4_TextShaderPainter.shaderPipeline.alphaBlendDestination = kha_graphics4_BlendingFactor.InverseSourceAlpha; - kha_graphics4_TextShaderPainter.shaderPipeline.compile(); -}; -kha_graphics4_TextShaderPainter.findIndex = function(charcode,fontGlyphs) { - var _g1 = 0; - var _g = fontGlyphs.length; - while(_g1 < _g) { - var i = _g1++; - if(fontGlyphs[i] == charcode) { - return i; - } - } - return 0; -}; -kha_graphics4_TextShaderPainter.prototype = { - projectionMatrix: null - ,projectionLocation: null - ,textureLocation: null - ,bufferIndex: null - ,rectVertexBuffer: null - ,rectVertices: null - ,indexBuffer: null - ,font: null - ,lastTexture: null - ,g: null - ,myPipeline: null - ,fontSize: null - ,bilinear: null - ,sourceBlend: null - ,destinationBlend: null - ,get_pipeline: function() { - return this.myPipeline; - } - ,set_pipeline: function(pipe) { - if(pipe == null) { - this.projectionLocation = kha_graphics4_TextShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"); - this.textureLocation = kha_graphics4_TextShaderPainter.shaderPipeline.getTextureUnit("tex"); - } else { - this.projectionLocation = pipe.getConstantLocation("projectionMatrix"); - this.textureLocation = pipe.getTextureUnit("tex"); - } - return this.myPipeline = pipe; - } - ,setProjection: function(projectionMatrix) { - this.projectionMatrix = projectionMatrix; - } - ,initBuffers: function() { - this.rectVertexBuffer = new kha_graphics4_VertexBuffer(kha_graphics4_TextShaderPainter.bufferSize * 4,kha_graphics4_TextShaderPainter.structure,kha_graphics4_Usage.DynamicUsage); - this.rectVertices = this.rectVertexBuffer.lock(); - this.indexBuffer = new kha_graphics4_IndexBuffer(kha_graphics4_TextShaderPainter.bufferSize * 3 * 2,kha_graphics4_Usage.StaticUsage); - var indices = this.indexBuffer.lock(); - var _g1 = 0; - var _g = kha_graphics4_TextShaderPainter.bufferSize; - while(_g1 < _g) { - var i = _g1++; - indices[i * 3 * 2] = i * 4; - indices[i * 3 * 2 + 1] = i * 4 + 1; - indices[i * 3 * 2 + 2] = i * 4 + 2; - indices[i * 3 * 2 + 3] = i * 4; - indices[i * 3 * 2 + 4] = i * 4 + 2; - indices[i * 3 * 2 + 5] = i * 4 + 3; - } - this.indexBuffer.unlock(); - } - ,setRectVertices: function(bottomleftx,bottomlefty,topleftx,toplefty,toprightx,toprighty,bottomrightx,bottomrighty) { - var baseIndex = this.bufferIndex * 9 * 4; - this.rectVertices[baseIndex] = bottomleftx; - this.rectVertices[baseIndex + 1] = bottomlefty; - this.rectVertices[baseIndex + 2] = -5.0; - this.rectVertices[baseIndex + 9] = topleftx; - this.rectVertices[baseIndex + 10] = toplefty; - this.rectVertices[baseIndex + 11] = -5.0; - this.rectVertices[baseIndex + 18] = toprightx; - this.rectVertices[baseIndex + 19] = toprighty; - this.rectVertices[baseIndex + 20] = -5.0; - this.rectVertices[baseIndex + 27] = bottomrightx; - this.rectVertices[baseIndex + 28] = bottomrighty; - this.rectVertices[baseIndex + 29] = -5.0; - } - ,setRectTexCoords: function(left,top,right,bottom) { - var baseIndex = this.bufferIndex * 9 * 4; - this.rectVertices[baseIndex + 3] = left; - this.rectVertices[baseIndex + 4] = bottom; - this.rectVertices[baseIndex + 12] = left; - this.rectVertices[baseIndex + 13] = top; - this.rectVertices[baseIndex + 21] = right; - this.rectVertices[baseIndex + 22] = top; - this.rectVertices[baseIndex + 30] = right; - this.rectVertices[baseIndex + 31] = bottom; - } - ,setRectColors: function(opacity,color) { - var baseIndex = this.bufferIndex * 9 * 4; - var a = opacity * ((color >>> 24) * 0.00392156862745098); - this.rectVertices[baseIndex + 5] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 6] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 7] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 8] = a; - this.rectVertices[baseIndex + 14] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 15] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 16] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 17] = a; - this.rectVertices[baseIndex + 23] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 24] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 25] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 26] = a; - this.rectVertices[baseIndex + 32] = ((color & 16711680) >>> 16) * 0.00392156862745098; - this.rectVertices[baseIndex + 33] = ((color & 65280) >>> 8) * 0.00392156862745098; - this.rectVertices[baseIndex + 34] = (color & 255) * 0.00392156862745098; - this.rectVertices[baseIndex + 35] = a; - } - ,drawBuffer: function() { - this.rectVertexBuffer.unlock(); - this.g.setVertexBuffer(this.rectVertexBuffer); - this.g.setIndexBuffer(this.indexBuffer); - this.g.setPipeline(this.get_pipeline() == null ? kha_graphics4_TextShaderPainter.shaderPipeline : this.get_pipeline()); - this.g.setTexture(this.textureLocation,this.lastTexture); - this.g.setMatrix(this.projectionLocation,this.projectionMatrix); - this.g.setTextureParameters(this.textureLocation,kha_graphics4_TextureAddressing.Clamp,kha_graphics4_TextureAddressing.Clamp,this.bilinear ? kha_graphics4_TextureFilter.LinearFilter : kha_graphics4_TextureFilter.PointFilter,this.bilinear ? kha_graphics4_TextureFilter.LinearFilter : kha_graphics4_TextureFilter.PointFilter,kha_graphics4_MipMapFilter.NoMipFilter); - this.g.drawIndexedVertices(0,this.bufferIndex * 2 * 3); - this.g.setTexture(this.textureLocation,null); - this.bufferIndex = 0; - this.rectVertices = this.rectVertexBuffer.lock(); - } - ,setBilinearFilter: function(bilinear) { - this.end(); - this.bilinear = bilinear; - } - ,setFont: function(font) { - this.font = js_Boot.__cast(font , kha_Kravur); - } - ,text: null - ,startString: function(text) { - this.text = text; - } - ,charCodeAt: function(position) { - return HxOverrides.cca(this.text,position); - } - ,stringLength: function() { - return this.text.length; - } - ,endString: function() { - this.text = null; - } - ,drawString: function(text,opacity,color,x,y,transformation,fontGlyphs) { - var font = this.font._get(this.fontSize,fontGlyphs); - var tex = font.getTexture(); - if(this.lastTexture != null && tex != this.lastTexture) { - this.drawBuffer(); - } - this.lastTexture = tex; - var xpos = x; - var ypos = y; - this.startString(text); - var _g1 = 0; - var _g = this.stringLength(); - while(_g1 < _g) { - var i = _g1++; - var q = font.getBakedQuad(kha_graphics4_TextShaderPainter.findIndex(this.charCodeAt(i),fontGlyphs),xpos,ypos); - if(q != null) { - if(this.bufferIndex + 1 >= kha_graphics4_TextShaderPainter.bufferSize) { - this.drawBuffer(); - } - this.setRectColors(opacity,color); - this.setRectTexCoords(q.s0 * tex.get_width() / tex.get_realWidth(),q.t0 * tex.get_height() / tex.get_realHeight(),q.s1 * tex.get_width() / tex.get_realWidth(),q.t1 * tex.get_height() / tex.get_realHeight()); - var p0_y; - var p0_x; - var value_y; - var value_x = q.x0; - value_y = q.y1; - var w = transformation._02 * value_x + transformation._12 * value_y + transformation._22; - var x1 = (transformation._00 * value_x + transformation._10 * value_y + transformation._20) / w; - var y1 = (transformation._01 * value_x + transformation._11 * value_y + transformation._21) / w; - p0_x = x1; - p0_y = y1; - var p1_y; - var p1_x; - var value_y1; - var value_x1 = q.x0; - value_y1 = q.y0; - var w1 = transformation._02 * value_x1 + transformation._12 * value_y1 + transformation._22; - var x2 = (transformation._00 * value_x1 + transformation._10 * value_y1 + transformation._20) / w1; - var y2 = (transformation._01 * value_x1 + transformation._11 * value_y1 + transformation._21) / w1; - p1_x = x2; - p1_y = y2; - var p2_y; - var p2_x; - var value_y2; - var value_x2 = q.x1; - value_y2 = q.y0; - var w2 = transformation._02 * value_x2 + transformation._12 * value_y2 + transformation._22; - var x3 = (transformation._00 * value_x2 + transformation._10 * value_y2 + transformation._20) / w2; - var y3 = (transformation._01 * value_x2 + transformation._11 * value_y2 + transformation._21) / w2; - p2_x = x3; - p2_y = y3; - var p3_y; - var p3_x; - var value_y3; - var value_x3 = q.x1; - value_y3 = q.y1; - var w3 = transformation._02 * value_x3 + transformation._12 * value_y3 + transformation._22; - var x4 = (transformation._00 * value_x3 + transformation._10 * value_y3 + transformation._20) / w3; - var y4 = (transformation._01 * value_x3 + transformation._11 * value_y3 + transformation._21) / w3; - p3_x = x4; - p3_y = y4; - this.setRectVertices(p0_x,p0_y,p1_x,p1_y,p2_x,p2_y,p3_x,p3_y); - xpos += q.xadvance; - ++this.bufferIndex; - } - } - this.endString(); - } - ,end: function() { - if(this.bufferIndex > 0) { - this.drawBuffer(); - } - this.lastTexture = null; - } - ,__class__: kha_graphics4_TextShaderPainter -}; -var kha_graphics4_Graphics2 = function(canvas) { - this.myMipmapScaleQuality = kha_graphics2_ImageScaleQuality.High; - this.myImageScaleQuality = kha_graphics2_ImageScaleQuality.High; - kha_graphics2_Graphics.call(this); - this.set_color(-1); - this.canvas = canvas; - this.g = canvas.get_g4(); - this.imagePainter = new kha_graphics4_ImageShaderPainter(this.g); - this.coloredPainter = new kha_graphics4_ColoredShaderPainter(this.g); - this.textPainter = new kha_graphics4_TextShaderPainter(this.g); - this.textPainter.fontSize = this.get_fontSize(); - this.setProjection(); - if(kha_graphics4_Graphics2.videoPipeline == null) { - kha_graphics4_Graphics2.videoPipeline = new kha_graphics4_PipelineState(); - kha_graphics4_Graphics2.videoPipeline.fragmentShader = kha_Shaders.painter_video_frag; - kha_graphics4_Graphics2.videoPipeline.vertexShader = kha_Shaders.painter_video_vert; - var structure = new kha_graphics4_VertexStructure(); - structure.add("vertexPosition",kha_graphics4_VertexData.Float3); - structure.add("texPosition",kha_graphics4_VertexData.Float2); - structure.add("vertexColor",kha_graphics4_VertexData.Float4); - kha_graphics4_Graphics2.videoPipeline.inputLayout = [structure]; - kha_graphics4_Graphics2.videoPipeline.compile(); - } -}; -$hxClasses["kha.graphics4.Graphics2"] = kha_graphics4_Graphics2; -kha_graphics4_Graphics2.__name__ = true; -kha_graphics4_Graphics2.upperPowerOfTwo = function(v) { - --v; - v |= v >>> 1; - v |= v >>> 2; - v |= v >>> 4; - v |= v >>> 8; - v |= v >>> 16; - return ++v; -}; -kha_graphics4_Graphics2.__super__ = kha_graphics2_Graphics; -kha_graphics4_Graphics2.prototype = $extend(kha_graphics2_Graphics.prototype,{ - myColor: null - ,myFont: null - ,projectionMatrix: null - ,imagePainter: null - ,coloredPainter: null - ,textPainter: null - ,canvas: null - ,g: null - ,setProjection: function() { - var width = this.canvas.get_width(); - var height = this.canvas.get_height(); - if(js_Boot.__instanceof(this.canvas,kha_Framebuffer)) { - this.projectionMatrix = kha_math_FastMatrix4.orthogonalProjection(0,width,height,0,0.1,1000); - } else { - if(!kha_Image.get_nonPow2Supported()) { - width = kha_graphics4_Graphics2.upperPowerOfTwo(width); - height = kha_graphics4_Graphics2.upperPowerOfTwo(height); - } - if(this.g.renderTargetsInvertedY()) { - this.projectionMatrix = kha_math_FastMatrix4.orthogonalProjection(0,width,0,height,0.1,1000); - } else { - this.projectionMatrix = kha_math_FastMatrix4.orthogonalProjection(0,width,height,0,0.1,1000); - } - } - this.imagePainter.setProjection(this.projectionMatrix); - this.coloredPainter.setProjection(this.projectionMatrix); - this.textPainter.setProjection(this.projectionMatrix); - } - ,drawImage: function(img,x,y) { - var _this = this.coloredPainter; - if(_this.triangleBufferIndex > 0) { - _this.drawTriBuffer(false); - } - if(_this.bufferIndex > 0) { - _this.drawBuffer(false); - } - this.textPainter.end(); - var xw = x + img.get_width(); - var yh = y + img.get_height(); - var p1_y; - var p1_x; - var _this1 = this.transformations[this.transformations.length - 1]; - var value_y; - var value_x = x; - value_y = yh; - var w = _this1._02 * value_x + _this1._12 * value_y + _this1._22; - var x1 = (_this1._00 * value_x + _this1._10 * value_y + _this1._20) / w; - var y1 = (_this1._01 * value_x + _this1._11 * value_y + _this1._21) / w; - p1_x = x1; - p1_y = y1; - var p2_y; - var p2_x; - var _this2 = this.transformations[this.transformations.length - 1]; - var value_y1; - var value_x1 = x; - value_y1 = y; - var w1 = _this2._02 * value_x1 + _this2._12 * value_y1 + _this2._22; - var x2 = (_this2._00 * value_x1 + _this2._10 * value_y1 + _this2._20) / w1; - var y2 = (_this2._01 * value_x1 + _this2._11 * value_y1 + _this2._21) / w1; - p2_x = x2; - p2_y = y2; - var p3_y; - var p3_x; - var _this3 = this.transformations[this.transformations.length - 1]; - var value_y2; - var value_x2 = xw; - value_y2 = y; - var w2 = _this3._02 * value_x2 + _this3._12 * value_y2 + _this3._22; - var x3 = (_this3._00 * value_x2 + _this3._10 * value_y2 + _this3._20) / w2; - var y3 = (_this3._01 * value_x2 + _this3._11 * value_y2 + _this3._21) / w2; - p3_x = x3; - p3_y = y3; - var p4_y; - var p4_x; - var _this4 = this.transformations[this.transformations.length - 1]; - var value_y3; - var value_x3 = xw; - value_y3 = yh; - var w3 = _this4._02 * value_x3 + _this4._12 * value_y3 + _this4._22; - var x4 = (_this4._00 * value_x3 + _this4._10 * value_y3 + _this4._20) / w3; - var y4 = (_this4._01 * value_x3 + _this4._11 * value_y3 + _this4._21) / w3; - p4_x = x4; - p4_y = y4; - var _this5 = this.imagePainter; - var opacity = this.get_opacity(); - var color = this.get_color(); - var tex = img; - if(_this5.bufferIndex + 1 >= kha_graphics4_ImageShaderPainter.bufferSize || _this5.lastTexture != null && tex != _this5.lastTexture) { - _this5.drawBuffer(); - } - var r = ((color & 16711680) >>> 16) * 0.00392156862745098; - var g = ((color & 65280) >>> 8) * 0.00392156862745098; - var b = (color & 255) * 0.00392156862745098; - var a = (color >>> 24) * 0.00392156862745098 * opacity; - var baseIndex = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex + 5] = r; - _this5.rectVertices[baseIndex + 6] = g; - _this5.rectVertices[baseIndex + 7] = b; - _this5.rectVertices[baseIndex + 8] = a; - _this5.rectVertices[baseIndex + 14] = r; - _this5.rectVertices[baseIndex + 15] = g; - _this5.rectVertices[baseIndex + 16] = b; - _this5.rectVertices[baseIndex + 17] = a; - _this5.rectVertices[baseIndex + 23] = r; - _this5.rectVertices[baseIndex + 24] = g; - _this5.rectVertices[baseIndex + 25] = b; - _this5.rectVertices[baseIndex + 26] = a; - _this5.rectVertices[baseIndex + 32] = r; - _this5.rectVertices[baseIndex + 33] = g; - _this5.rectVertices[baseIndex + 34] = b; - _this5.rectVertices[baseIndex + 35] = a; - var right = tex.get_width() / tex.get_realWidth(); - var bottom = tex.get_height() / tex.get_realHeight(); - var baseIndex1 = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex1 + 3] = 0; - _this5.rectVertices[baseIndex1 + 4] = bottom; - _this5.rectVertices[baseIndex1 + 12] = 0; - _this5.rectVertices[baseIndex1 + 13] = 0; - _this5.rectVertices[baseIndex1 + 21] = right; - _this5.rectVertices[baseIndex1 + 22] = 0; - _this5.rectVertices[baseIndex1 + 30] = right; - _this5.rectVertices[baseIndex1 + 31] = bottom; - var baseIndex2 = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex2] = p1_x; - _this5.rectVertices[baseIndex2 + 1] = p1_y; - _this5.rectVertices[baseIndex2 + 2] = -5.0; - _this5.rectVertices[baseIndex2 + 9] = p2_x; - _this5.rectVertices[baseIndex2 + 10] = p2_y; - _this5.rectVertices[baseIndex2 + 11] = -5.0; - _this5.rectVertices[baseIndex2 + 18] = p3_x; - _this5.rectVertices[baseIndex2 + 19] = p3_y; - _this5.rectVertices[baseIndex2 + 20] = -5.0; - _this5.rectVertices[baseIndex2 + 27] = p4_x; - _this5.rectVertices[baseIndex2 + 28] = p4_y; - _this5.rectVertices[baseIndex2 + 29] = -5.0; - ++_this5.bufferIndex; - _this5.lastTexture = tex; - } - ,drawScaledSubImage: function(img,sx,sy,sw,sh,dx,dy,dw,dh) { - var _this = this.coloredPainter; - if(_this.triangleBufferIndex > 0) { - _this.drawTriBuffer(false); - } - if(_this.bufferIndex > 0) { - _this.drawBuffer(false); - } - this.textPainter.end(); - var p1_y; - var p1_x; - var _this1 = this.transformations[this.transformations.length - 1]; - var value_y; - var value_x = dx; - value_y = dy + dh; - var w = _this1._02 * value_x + _this1._12 * value_y + _this1._22; - var x = (_this1._00 * value_x + _this1._10 * value_y + _this1._20) / w; - var y = (_this1._01 * value_x + _this1._11 * value_y + _this1._21) / w; - p1_x = x; - p1_y = y; - var p2_y; - var p2_x; - var _this2 = this.transformations[this.transformations.length - 1]; - var value_y1; - var value_x1 = dx; - value_y1 = dy; - var w1 = _this2._02 * value_x1 + _this2._12 * value_y1 + _this2._22; - var x1 = (_this2._00 * value_x1 + _this2._10 * value_y1 + _this2._20) / w1; - var y1 = (_this2._01 * value_x1 + _this2._11 * value_y1 + _this2._21) / w1; - p2_x = x1; - p2_y = y1; - var p3_y; - var p3_x; - var _this3 = this.transformations[this.transformations.length - 1]; - var value_y2; - var value_x2 = dx + dw; - value_y2 = dy; - var w2 = _this3._02 * value_x2 + _this3._12 * value_y2 + _this3._22; - var x2 = (_this3._00 * value_x2 + _this3._10 * value_y2 + _this3._20) / w2; - var y2 = (_this3._01 * value_x2 + _this3._11 * value_y2 + _this3._21) / w2; - p3_x = x2; - p3_y = y2; - var p4_y; - var p4_x; - var _this4 = this.transformations[this.transformations.length - 1]; - var value_y3; - var value_x3 = dx + dw; - value_y3 = dy + dh; - var w3 = _this4._02 * value_x3 + _this4._12 * value_y3 + _this4._22; - var x3 = (_this4._00 * value_x3 + _this4._10 * value_y3 + _this4._20) / w3; - var y3 = (_this4._01 * value_x3 + _this4._11 * value_y3 + _this4._21) / w3; - p4_x = x3; - p4_y = y3; - var _this5 = this.imagePainter; - var opacity = this.get_opacity(); - var color = this.get_color(); - var tex = img; - if(_this5.bufferIndex + 1 >= kha_graphics4_ImageShaderPainter.bufferSize || _this5.lastTexture != null && tex != _this5.lastTexture) { - _this5.drawBuffer(); - } - var left = sx / tex.get_realWidth(); - var top = sy / tex.get_realHeight(); - var right = (sx + sw) / tex.get_realWidth(); - var bottom = (sy + sh) / tex.get_realHeight(); - var baseIndex = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex + 3] = left; - _this5.rectVertices[baseIndex + 4] = bottom; - _this5.rectVertices[baseIndex + 12] = left; - _this5.rectVertices[baseIndex + 13] = top; - _this5.rectVertices[baseIndex + 21] = right; - _this5.rectVertices[baseIndex + 22] = top; - _this5.rectVertices[baseIndex + 30] = right; - _this5.rectVertices[baseIndex + 31] = bottom; - var r = ((color & 16711680) >>> 16) * 0.00392156862745098; - var g = ((color & 65280) >>> 8) * 0.00392156862745098; - var b = (color & 255) * 0.00392156862745098; - var a = (color >>> 24) * 0.00392156862745098 * opacity; - var baseIndex1 = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex1 + 5] = r; - _this5.rectVertices[baseIndex1 + 6] = g; - _this5.rectVertices[baseIndex1 + 7] = b; - _this5.rectVertices[baseIndex1 + 8] = a; - _this5.rectVertices[baseIndex1 + 14] = r; - _this5.rectVertices[baseIndex1 + 15] = g; - _this5.rectVertices[baseIndex1 + 16] = b; - _this5.rectVertices[baseIndex1 + 17] = a; - _this5.rectVertices[baseIndex1 + 23] = r; - _this5.rectVertices[baseIndex1 + 24] = g; - _this5.rectVertices[baseIndex1 + 25] = b; - _this5.rectVertices[baseIndex1 + 26] = a; - _this5.rectVertices[baseIndex1 + 32] = r; - _this5.rectVertices[baseIndex1 + 33] = g; - _this5.rectVertices[baseIndex1 + 34] = b; - _this5.rectVertices[baseIndex1 + 35] = a; - var baseIndex2 = _this5.bufferIndex * kha_graphics4_ImageShaderPainter.vertexSize * 4; - _this5.rectVertices[baseIndex2] = p1_x; - _this5.rectVertices[baseIndex2 + 1] = p1_y; - _this5.rectVertices[baseIndex2 + 2] = -5.0; - _this5.rectVertices[baseIndex2 + 9] = p2_x; - _this5.rectVertices[baseIndex2 + 10] = p2_y; - _this5.rectVertices[baseIndex2 + 11] = -5.0; - _this5.rectVertices[baseIndex2 + 18] = p3_x; - _this5.rectVertices[baseIndex2 + 19] = p3_y; - _this5.rectVertices[baseIndex2 + 20] = -5.0; - _this5.rectVertices[baseIndex2 + 27] = p4_x; - _this5.rectVertices[baseIndex2 + 28] = p4_y; - _this5.rectVertices[baseIndex2 + 29] = -5.0; - ++_this5.bufferIndex; - _this5.lastTexture = tex; - } - ,get_color: function() { - return this.myColor; - } - ,set_color: function(color) { - return this.myColor = color; - } - ,drawRect: function(x,y,width,height,strength) { - if(strength == null) { - strength = 1.0; - } - this.imagePainter.end(); - this.textPainter.end(); - var _this = this.transformations[this.transformations.length - 1]; - var value_y; - var value_x = x - strength / 2; - value_y = y + strength / 2; - var w = _this._02 * value_x + _this._12 * value_y + _this._22; - var x1 = (_this._00 * value_x + _this._10 * value_y + _this._20) / w; - var y1 = (_this._01 * value_x + _this._11 * value_y + _this._21) / w; - var p1 = new kha_math_FastVector2(x1,y1); - var _this1 = this.transformations[this.transformations.length - 1]; - var value_y1; - var value_x1 = x - strength / 2; - value_y1 = y - strength / 2; - var w1 = _this1._02 * value_x1 + _this1._12 * value_y1 + _this1._22; - var x2 = (_this1._00 * value_x1 + _this1._10 * value_y1 + _this1._20) / w1; - var y2 = (_this1._01 * value_x1 + _this1._11 * value_y1 + _this1._21) / w1; - var p2 = new kha_math_FastVector2(x2,y2); - var _this2 = this.transformations[this.transformations.length - 1]; - var value_y2; - var value_x2 = x + width + strength / 2; - value_y2 = y - strength / 2; - var w2 = _this2._02 * value_x2 + _this2._12 * value_y2 + _this2._22; - var x3 = (_this2._00 * value_x2 + _this2._10 * value_y2 + _this2._20) / w2; - var y3 = (_this2._01 * value_x2 + _this2._11 * value_y2 + _this2._21) / w2; - var p3 = new kha_math_FastVector2(x3,y3); - var _this3 = this.transformations[this.transformations.length - 1]; - var value_y3; - var value_x3 = x + width + strength / 2; - value_y3 = y + strength / 2; - var w3 = _this3._02 * value_x3 + _this3._12 * value_y3 + _this3._22; - var x4 = (_this3._00 * value_x3 + _this3._10 * value_y3 + _this3._20) / w3; - var y4 = (_this3._01 * value_x3 + _this3._11 * value_y3 + _this3._21) / w3; - var p4 = new kha_math_FastVector2(x4,y4); - this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y); - var _this4 = this.transformations[this.transformations.length - 1]; - var value_y4; - var value_x4 = x - strength / 2; - value_y4 = y + height + strength / 2; - var w4 = _this4._02 * value_x4 + _this4._12 * value_y4 + _this4._22; - var x5 = (_this4._00 * value_x4 + _this4._10 * value_y4 + _this4._20) / w4; - var y5 = (_this4._01 * value_x4 + _this4._11 * value_y4 + _this4._21) / w4; - p1 = new kha_math_FastVector2(x5,y5); - var _this5 = this.transformations[this.transformations.length - 1]; - var value_y5; - var value_x5 = x + strength / 2; - value_y5 = y - strength / 2; - var w5 = _this5._02 * value_x5 + _this5._12 * value_y5 + _this5._22; - var x6 = (_this5._00 * value_x5 + _this5._10 * value_y5 + _this5._20) / w5; - var y6 = (_this5._01 * value_x5 + _this5._11 * value_y5 + _this5._21) / w5; - p3 = new kha_math_FastVector2(x6,y6); - var _this6 = this.transformations[this.transformations.length - 1]; - var value_y6; - var value_x6 = x + strength / 2; - value_y6 = y + height + strength / 2; - var w6 = _this6._02 * value_x6 + _this6._12 * value_y6 + _this6._22; - var x7 = (_this6._00 * value_x6 + _this6._10 * value_y6 + _this6._20) / w6; - var y7 = (_this6._01 * value_x6 + _this6._11 * value_y6 + _this6._21) / w6; - p4 = new kha_math_FastVector2(x7,y7); - this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y); - var _this7 = this.transformations[this.transformations.length - 1]; - var value_y7; - var value_x7 = x - strength / 2; - value_y7 = y + height - strength / 2; - var w7 = _this7._02 * value_x7 + _this7._12 * value_y7 + _this7._22; - var x8 = (_this7._00 * value_x7 + _this7._10 * value_y7 + _this7._20) / w7; - var y8 = (_this7._01 * value_x7 + _this7._11 * value_y7 + _this7._21) / w7; - p2 = new kha_math_FastVector2(x8,y8); - var _this8 = this.transformations[this.transformations.length - 1]; - var value_y8; - var value_x8 = x + width + strength / 2; - value_y8 = y + height - strength / 2; - var w8 = _this8._02 * value_x8 + _this8._12 * value_y8 + _this8._22; - var x9 = (_this8._00 * value_x8 + _this8._10 * value_y8 + _this8._20) / w8; - var y9 = (_this8._01 * value_x8 + _this8._11 * value_y8 + _this8._21) / w8; - p3 = new kha_math_FastVector2(x9,y9); - var _this9 = this.transformations[this.transformations.length - 1]; - var value_y9; - var value_x9 = x + width + strength / 2; - value_y9 = y + height + strength / 2; - var w9 = _this9._02 * value_x9 + _this9._12 * value_y9 + _this9._22; - var x10 = (_this9._00 * value_x9 + _this9._10 * value_y9 + _this9._20) / w9; - var y10 = (_this9._01 * value_x9 + _this9._11 * value_y9 + _this9._21) / w9; - p4 = new kha_math_FastVector2(x10,y10); - this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y); - var _this10 = this.transformations[this.transformations.length - 1]; - var value_y10; - var value_x10 = x + width - strength / 2; - value_y10 = y + height + strength / 2; - var w10 = _this10._02 * value_x10 + _this10._12 * value_y10 + _this10._22; - var x11 = (_this10._00 * value_x10 + _this10._10 * value_y10 + _this10._20) / w10; - var y11 = (_this10._01 * value_x10 + _this10._11 * value_y10 + _this10._21) / w10; - p1 = new kha_math_FastVector2(x11,y11); - var _this11 = this.transformations[this.transformations.length - 1]; - var value_y11; - var value_x11 = x + width - strength / 2; - value_y11 = y - strength / 2; - var w11 = _this11._02 * value_x11 + _this11._12 * value_y11 + _this11._22; - var x12 = (_this11._00 * value_x11 + _this11._10 * value_y11 + _this11._20) / w11; - var y12 = (_this11._01 * value_x11 + _this11._11 * value_y11 + _this11._21) / w11; - p2 = new kha_math_FastVector2(x12,y12); - var _this12 = this.transformations[this.transformations.length - 1]; - var value_y12; - var value_x12 = x + width + strength / 2; - value_y12 = y - strength / 2; - var w12 = _this12._02 * value_x12 + _this12._12 * value_y12 + _this12._22; - var x13 = (_this12._00 * value_x12 + _this12._10 * value_y12 + _this12._20) / w12; - var y13 = (_this12._01 * value_x12 + _this12._11 * value_y12 + _this12._21) / w12; - p3 = new kha_math_FastVector2(x13,y13); - var _this13 = this.transformations[this.transformations.length - 1]; - var value_y13; - var value_x13 = x + width + strength / 2; - value_y13 = y + height + strength / 2; - var w13 = _this13._02 * value_x13 + _this13._12 * value_y13 + _this13._22; - var x14 = (_this13._00 * value_x13 + _this13._10 * value_y13 + _this13._20) / w13; - var y14 = (_this13._01 * value_x13 + _this13._11 * value_y13 + _this13._21) / w13; - p4 = new kha_math_FastVector2(x14,y14); - this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y); - } - ,fillRect: function(x,y,width,height) { - this.imagePainter.end(); - this.textPainter.end(); - var p1_y; - var p1_x; - var _this = this.transformations[this.transformations.length - 1]; - var value_y; - var value_x = x; - value_y = y + height; - var w = _this._02 * value_x + _this._12 * value_y + _this._22; - var x1 = (_this._00 * value_x + _this._10 * value_y + _this._20) / w; - var y1 = (_this._01 * value_x + _this._11 * value_y + _this._21) / w; - p1_x = x1; - p1_y = y1; - var p2_y; - var p2_x; - var _this1 = this.transformations[this.transformations.length - 1]; - var value_y1; - var value_x1 = x; - value_y1 = y; - var w1 = _this1._02 * value_x1 + _this1._12 * value_y1 + _this1._22; - var x2 = (_this1._00 * value_x1 + _this1._10 * value_y1 + _this1._20) / w1; - var y2 = (_this1._01 * value_x1 + _this1._11 * value_y1 + _this1._21) / w1; - p2_x = x2; - p2_y = y2; - var p3_y; - var p3_x; - var _this2 = this.transformations[this.transformations.length - 1]; - var value_y2; - var value_x2 = x + width; - value_y2 = y; - var w2 = _this2._02 * value_x2 + _this2._12 * value_y2 + _this2._22; - var x3 = (_this2._00 * value_x2 + _this2._10 * value_y2 + _this2._20) / w2; - var y3 = (_this2._01 * value_x2 + _this2._11 * value_y2 + _this2._21) / w2; - p3_x = x3; - p3_y = y3; - var p4_y; - var p4_x; - var _this3 = this.transformations[this.transformations.length - 1]; - var value_y3; - var value_x3 = x + width; - value_y3 = y + height; - var w3 = _this3._02 * value_x3 + _this3._12 * value_y3 + _this3._22; - var x4 = (_this3._00 * value_x3 + _this3._10 * value_y3 + _this3._20) / w3; - var y4 = (_this3._01 * value_x3 + _this3._11 * value_y3 + _this3._21) / w3; - p4_x = x4; - p4_y = y4; - this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),p1_x,p1_y,p2_x,p2_y,p3_x,p3_y,p4_x,p4_y); - } - ,drawString: function(text,x,y) { - this.imagePainter.end(); - var _this = this.coloredPainter; - if(_this.triangleBufferIndex > 0) { - _this.drawTriBuffer(false); - } - if(_this.bufferIndex > 0) { - _this.drawBuffer(false); - } - this.textPainter.drawString(text,this.get_opacity(),this.get_color(),x,y,this.transformations[this.transformations.length - 1],this.get_fontGlyphs()); - } - ,get_font: function() { - return this.myFont; - } - ,set_font: function(font) { - this.textPainter.setFont(font); - return this.myFont = font; - } - ,set_fontSize: function(value) { - return kha_graphics2_Graphics.prototype.set_fontSize.call(this,this.textPainter.fontSize = value); - } - ,drawLine: function(x1,y1,x2,y2,strength) { - if(strength == null) { - strength = 1.0; - } - this.imagePainter.end(); - this.textPainter.end(); - var vec; - if(y2 == y1) { - vec = new kha_math_FastVector2(0,-1); - } else { - vec = new kha_math_FastVector2(1,-(x2 - x1) / (y2 - y1)); - } - vec.set_length(strength); - var p1 = new kha_math_FastVector2(x1 + 0.5 * vec.x,y1 + 0.5 * vec.y); - var p2 = new kha_math_FastVector2(x2 + 0.5 * vec.x,y2 + 0.5 * vec.y); - var p3 = new kha_math_FastVector2(p1.x - vec.x,p1.y - vec.y); - var p4 = new kha_math_FastVector2(p2.x - vec.x,p2.y - vec.y); - var _this = this.transformations[this.transformations.length - 1]; - var w = _this._02 * p1.x + _this._12 * p1.y + _this._22; - var x = (_this._00 * p1.x + _this._10 * p1.y + _this._20) / w; - var y = (_this._01 * p1.x + _this._11 * p1.y + _this._21) / w; - p1 = new kha_math_FastVector2(x,y); - var _this1 = this.transformations[this.transformations.length - 1]; - var w1 = _this1._02 * p2.x + _this1._12 * p2.y + _this1._22; - var x3 = (_this1._00 * p2.x + _this1._10 * p2.y + _this1._20) / w1; - var y3 = (_this1._01 * p2.x + _this1._11 * p2.y + _this1._21) / w1; - p2 = new kha_math_FastVector2(x3,y3); - var _this2 = this.transformations[this.transformations.length - 1]; - var w2 = _this2._02 * p3.x + _this2._12 * p3.y + _this2._22; - var x4 = (_this2._00 * p3.x + _this2._10 * p3.y + _this2._20) / w2; - var y4 = (_this2._01 * p3.x + _this2._11 * p3.y + _this2._21) / w2; - p3 = new kha_math_FastVector2(x4,y4); - var _this3 = this.transformations[this.transformations.length - 1]; - var w3 = _this3._02 * p4.x + _this3._12 * p4.y + _this3._22; - var x5 = (_this3._00 * p4.x + _this3._10 * p4.y + _this3._20) / w3; - var y5 = (_this3._01 * p4.x + _this3._11 * p4.y + _this3._21) / w3; - p4 = new kha_math_FastVector2(x5,y5); - this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),p1.x,p1.y,p2.x,p2.y,p3.x,p3.y); - this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),p3.x,p3.y,p2.x,p2.y,p4.x,p4.y); - } - ,fillTriangle: function(x1,y1,x2,y2,x3,y3) { - this.imagePainter.end(); - this.textPainter.end(); - var p1_y; - var p1_x; - var _this = this.transformations[this.transformations.length - 1]; - var value_y; - var value_x = x1; - value_y = y1; - var w = _this._02 * value_x + _this._12 * value_y + _this._22; - var x = (_this._00 * value_x + _this._10 * value_y + _this._20) / w; - var y = (_this._01 * value_x + _this._11 * value_y + _this._21) / w; - p1_x = x; - p1_y = y; - var p2_y; - var p2_x; - var _this1 = this.transformations[this.transformations.length - 1]; - var value_y1; - var value_x1 = x2; - value_y1 = y2; - var w1 = _this1._02 * value_x1 + _this1._12 * value_y1 + _this1._22; - var x4 = (_this1._00 * value_x1 + _this1._10 * value_y1 + _this1._20) / w1; - var y4 = (_this1._01 * value_x1 + _this1._11 * value_y1 + _this1._21) / w1; - p2_x = x4; - p2_y = y4; - var p3_y; - var p3_x; - var _this2 = this.transformations[this.transformations.length - 1]; - var value_y2; - var value_x2 = x3; - value_y2 = y3; - var w2 = _this2._02 * value_x2 + _this2._12 * value_y2 + _this2._22; - var x5 = (_this2._00 * value_x2 + _this2._10 * value_y2 + _this2._20) / w2; - var y5 = (_this2._01 * value_x2 + _this2._11 * value_y2 + _this2._21) / w2; - p3_x = x5; - p3_y = y5; - this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),p1_x,p1_y,p2_x,p2_y,p3_x,p3_y); - } - ,myImageScaleQuality: null - ,get_imageScaleQuality: function() { - return this.myImageScaleQuality; - } - ,set_imageScaleQuality: function(value) { - this.imagePainter.setBilinearFilter(value == kha_graphics2_ImageScaleQuality.High); - this.textPainter.setBilinearFilter(value == kha_graphics2_ImageScaleQuality.High); - return this.myImageScaleQuality = value; - } - ,myMipmapScaleQuality: null - ,get_mipmapScaleQuality: function() { - return this.myMipmapScaleQuality; - } - ,set_mipmapScaleQuality: function(value) { - this.imagePainter.setBilinearMipmapFilter(value == kha_graphics2_ImageScaleQuality.High); - return this.myMipmapScaleQuality = value; - } - ,setPipeline: function(pipeline) { - this.flush(); - this.imagePainter.set_pipeline(pipeline); - this.coloredPainter.set_pipeline(pipeline); - this.textPainter.set_pipeline(pipeline); - if(pipeline != null) { - this.g.setPipeline(pipeline); - } - } - ,scissor: function(x,y,width,height) { - this.flush(); - this.g.scissor(x,y,width,height); - } - ,disableScissor: function() { - this.flush(); - this.g.disableScissor(); - } - ,begin: function(clear,clearColor) { - if(clear == null) { - clear = true; - } - this.g.begin(); - if(clear) { - this.clear(clearColor); - } - this.setProjection(); - } - ,clear: function(color) { - this.flush(); - this.g.clear(color == null ? -16777216 : color); - } - ,flush: function() { - this.imagePainter.end(); - this.textPainter.end(); - var _this = this.coloredPainter; - if(_this.triangleBufferIndex > 0) { - _this.drawTriBuffer(false); - } - if(_this.bufferIndex > 0) { - _this.drawBuffer(false); - } - } - ,end: function() { - this.flush(); - this.g.end(); - } - ,drawVideoInternal: function(video,x,y,width,height) { - } - ,drawVideo: function(video,x,y,width,height) { - this.setPipeline(kha_graphics4_Graphics2.videoPipeline); - this.drawVideoInternal(video,x,y,width,height); - this.setPipeline(null); - } - ,__class__: kha_graphics4_Graphics2 -}); -var kha_graphics4_IndexBuffer = function(indexCount,usage,canRead) { - if(canRead == null) { - canRead = false; - } - this.usage = usage; - this.mySize = indexCount; - this.buffer = kha_SystemImpl.gl.createBuffer(); - var this1 = new Uint32Array(indexCount); - this._data = this1; -}; -$hxClasses["kha.graphics4.IndexBuffer"] = kha_graphics4_IndexBuffer; -kha_graphics4_IndexBuffer.__name__ = true; -kha_graphics4_IndexBuffer.prototype = { - buffer: null - ,_data: null - ,mySize: null - ,usage: null - ,'delete': function() { - this._data = null; - kha_SystemImpl.gl.deleteBuffer(this.buffer); - } - ,lock: function(start,count) { - if(start == null) { - start = 0; - } - if(count == null) { - count = this.mySize; - } - return this._data.subarray(start,start + count); - } - ,unlock: function() { - kha_SystemImpl.gl.bindBuffer(34963,this.buffer); - var glData = kha_SystemImpl.elementIndexUint == null ? new Uint16Array(this._data) : this._data; - kha_SystemImpl.gl.bufferData(34963,glData,this.usage == kha_graphics4_Usage.DynamicUsage ? 35048 : 35044); - } - ,set: function() { - kha_SystemImpl.gl.bindBuffer(34963,this.buffer); - } - ,count: function() { - return this.mySize; - } - ,__class__: kha_graphics4_IndexBuffer -}; -var kha_graphics4_MipMapFilter = $hxClasses["kha.graphics4.MipMapFilter"] = { __ename__ : true, __constructs__ : ["NoMipFilter","PointMipFilter","LinearMipFilter"] }; -kha_graphics4_MipMapFilter.NoMipFilter = ["NoMipFilter",0]; -kha_graphics4_MipMapFilter.NoMipFilter.toString = $estr; -kha_graphics4_MipMapFilter.NoMipFilter.__enum__ = kha_graphics4_MipMapFilter; -kha_graphics4_MipMapFilter.PointMipFilter = ["PointMipFilter",1]; -kha_graphics4_MipMapFilter.PointMipFilter.toString = $estr; -kha_graphics4_MipMapFilter.PointMipFilter.__enum__ = kha_graphics4_MipMapFilter; -kha_graphics4_MipMapFilter.LinearMipFilter = ["LinearMipFilter",2]; -kha_graphics4_MipMapFilter.LinearMipFilter.toString = $estr; -kha_graphics4_MipMapFilter.LinearMipFilter.__enum__ = kha_graphics4_MipMapFilter; -var kha_graphics4_PipelineStateBase = function() { - this.inputLayout = null; - this.vertexShader = null; - this.fragmentShader = null; - this.geometryShader = null; - this.tessellationControlShader = null; - this.tessellationEvaluationShader = null; - this.cullMode = kha_graphics4_CullMode.None; - this.depthWrite = false; - this.depthMode = kha_graphics4_CompareMode.Always; - this.stencilMode = kha_graphics4_CompareMode.Always; - this.stencilBothPass = kha_graphics4_StencilAction.Keep; - this.stencilDepthFail = kha_graphics4_StencilAction.Keep; - this.stencilFail = kha_graphics4_StencilAction.Keep; - this.stencilReferenceValue = 0; - this.stencilReadMask = 255; - this.stencilWriteMask = 255; - this.blendSource = kha_graphics4_BlendingFactor.BlendOne; - this.blendDestination = kha_graphics4_BlendingFactor.BlendZero; - this.blendOperation = kha_graphics4_BlendingOperation.Add; - this.alphaBlendSource = kha_graphics4_BlendingFactor.BlendOne; - this.alphaBlendDestination = kha_graphics4_BlendingFactor.BlendZero; - this.alphaBlendOperation = kha_graphics4_BlendingOperation.Add; - this.colorWriteMaskRed = this.colorWriteMaskBlue = this.colorWriteMaskGreen = this.colorWriteMaskAlpha = true; - this.conservativeRasterization = false; -}; -$hxClasses["kha.graphics4.PipelineStateBase"] = kha_graphics4_PipelineStateBase; -kha_graphics4_PipelineStateBase.__name__ = true; -kha_graphics4_PipelineStateBase.prototype = { - inputLayout: null - ,vertexShader: null - ,fragmentShader: null - ,geometryShader: null - ,tessellationControlShader: null - ,tessellationEvaluationShader: null - ,cullMode: null - ,depthWrite: null - ,depthMode: null - ,stencilMode: null - ,stencilBothPass: null - ,stencilDepthFail: null - ,stencilFail: null - ,stencilReferenceValue: null - ,stencilReadMask: null - ,stencilWriteMask: null - ,blendSource: null - ,blendDestination: null - ,blendOperation: null - ,alphaBlendSource: null - ,alphaBlendDestination: null - ,alphaBlendOperation: null - ,colorWriteMaskRed: null - ,colorWriteMaskGreen: null - ,colorWriteMaskBlue: null - ,colorWriteMaskAlpha: null - ,set_colorWriteMask: function(value) { - return this.colorWriteMaskRed = this.colorWriteMaskBlue = this.colorWriteMaskGreen = this.colorWriteMaskAlpha = value; - } - ,conservativeRasterization: null - ,__class__: kha_graphics4_PipelineStateBase -}; -var kha_graphics4_PipelineState = function() { - kha_graphics4_PipelineStateBase.call(this); - this.program = kha_SystemImpl.gl.createProgram(); - this.textures = []; - this.textureValues = []; -}; -$hxClasses["kha.graphics4.PipelineState"] = kha_graphics4_PipelineState; -kha_graphics4_PipelineState.__name__ = true; -kha_graphics4_PipelineState.__super__ = kha_graphics4_PipelineStateBase; -kha_graphics4_PipelineState.prototype = $extend(kha_graphics4_PipelineStateBase.prototype,{ - program: null - ,textures: null - ,textureValues: null - ,'delete': function() { - kha_SystemImpl.gl.deleteProgram(this.program); - } - ,compile: function() { - this.compileShader(this.vertexShader); - this.compileShader(this.fragmentShader); - kha_SystemImpl.gl.attachShader(this.program,this.vertexShader.shader); - kha_SystemImpl.gl.attachShader(this.program,this.fragmentShader.shader); - var index = 0; - var _g = 0; - var _g1 = this.inputLayout; - while(_g < _g1.length) { - var structure = _g1[_g]; - ++_g; - var _g2 = 0; - var _g3 = structure.elements; - while(_g2 < _g3.length) { - var element = _g3[_g2]; - ++_g2; - kha_SystemImpl.gl.bindAttribLocation(this.program,index,element.name); - if(element.data == kha_graphics4_VertexData.Float4x4) { - index += 4; - } else { - ++index; - } - } - } - kha_SystemImpl.gl.linkProgram(this.program); - if(!kha_SystemImpl.gl.getProgramParameter(this.program,35714)) { - throw new js__$Boot_HaxeError("Could not link the shader program:\n" + kha_SystemImpl.gl.getProgramInfoLog(this.program)); - } - } - ,set: function() { - kha_SystemImpl.gl.useProgram(this.program); - var _g1 = 0; - var _g = this.textureValues.length; - while(_g1 < _g) { - var index = _g1++; - kha_SystemImpl.gl.uniform1i(this.textureValues[index],index); - } - kha_SystemImpl.gl.colorMask(this.colorWriteMaskRed,this.colorWriteMaskGreen,this.colorWriteMaskBlue,this.colorWriteMaskAlpha); - } - ,compileShader: function(shader) { - if(shader.shader != null) { - return; - } - var s = kha_SystemImpl.gl.createShader(shader.type); - var highp = kha_SystemImpl.gl.getShaderPrecisionFormat(35632,36338); - var highpSupported = highp.precision != 0; - var files = shader.files; - var _g1 = 0; - var _g = files.length; - while(_g1 < _g) { - var i = _g1++; - if(kha_SystemImpl.gl2) { - if(files[i].indexOf("-webgl2") >= 0 || files[i].indexOf("runtime-string") >= 0) { - kha_SystemImpl.gl.shaderSource(s,shader.sources[i]); - break; - } - } else { - if(!highpSupported && files[i].indexOf("-relaxed") >= 0) { - kha_SystemImpl.gl.shaderSource(s,shader.sources[i]); - break; - } - if(highpSupported && files[i].indexOf("-relaxed") < 0) { - kha_SystemImpl.gl.shaderSource(s,shader.sources[i]); - break; - } - } - } - kha_SystemImpl.gl.compileShader(s); - if(!kha_SystemImpl.gl.getShaderParameter(s,35713)) { - throw new js__$Boot_HaxeError("Could not compile shader:\n" + kha_SystemImpl.gl.getShaderInfoLog(s)); - } - shader.shader = s; - } - ,getConstantLocation: function(name) { - var location = kha_SystemImpl.gl.getUniformLocation(this.program,name); - var type = 5126; - var count = kha_SystemImpl.gl.getProgramParameter(this.program,35718); - var _g1 = 0; - var _g = count; - while(_g1 < _g) { - var i = _g1++; - var info = kha_SystemImpl.gl.getActiveUniform(this.program,i); - if(info.name == name || info.name == name + "[0]") { - type = info.type; - break; - } - } - return new kha_js_graphics4_ConstantLocation(location,type); - } - ,getTextureUnit: function(name) { - var index = this.findTexture(name); - if(index < 0) { - var location = kha_SystemImpl.gl.getUniformLocation(this.program,name); - index = this.textures.length; - this.textureValues.push(location); - this.textures.push(name); - } - return new kha_js_graphics4_TextureUnit(index); - } - ,findTexture: function(name) { - var _g1 = 0; - var _g = this.textures.length; - while(_g1 < _g) { - var index = _g1++; - if(this.textures[index] == name) { - return index; - } - } - return -1; - } - ,__class__: kha_graphics4_PipelineState -}); -var kha_graphics4_StencilAction = $hxClasses["kha.graphics4.StencilAction"] = { __ename__ : true, __constructs__ : ["Keep","Zero","Replace","Increment","IncrementWrap","Decrement","DecrementWrap","Invert"] }; -kha_graphics4_StencilAction.Keep = ["Keep",0]; -kha_graphics4_StencilAction.Keep.toString = $estr; -kha_graphics4_StencilAction.Keep.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.Zero = ["Zero",1]; -kha_graphics4_StencilAction.Zero.toString = $estr; -kha_graphics4_StencilAction.Zero.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.Replace = ["Replace",2]; -kha_graphics4_StencilAction.Replace.toString = $estr; -kha_graphics4_StencilAction.Replace.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.Increment = ["Increment",3]; -kha_graphics4_StencilAction.Increment.toString = $estr; -kha_graphics4_StencilAction.Increment.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.IncrementWrap = ["IncrementWrap",4]; -kha_graphics4_StencilAction.IncrementWrap.toString = $estr; -kha_graphics4_StencilAction.IncrementWrap.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.Decrement = ["Decrement",5]; -kha_graphics4_StencilAction.Decrement.toString = $estr; -kha_graphics4_StencilAction.Decrement.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.DecrementWrap = ["DecrementWrap",6]; -kha_graphics4_StencilAction.DecrementWrap.toString = $estr; -kha_graphics4_StencilAction.DecrementWrap.__enum__ = kha_graphics4_StencilAction; -kha_graphics4_StencilAction.Invert = ["Invert",7]; -kha_graphics4_StencilAction.Invert.toString = $estr; -kha_graphics4_StencilAction.Invert.__enum__ = kha_graphics4_StencilAction; -var kha_graphics4_TessellationControlShader = function(source,file) { -}; -$hxClasses["kha.graphics4.TessellationControlShader"] = kha_graphics4_TessellationControlShader; -kha_graphics4_TessellationControlShader.__name__ = true; -kha_graphics4_TessellationControlShader.prototype = { - 'delete': function() { - } - ,__class__: kha_graphics4_TessellationControlShader -}; -var kha_graphics4_TessellationEvaluationShader = function(source,file) { -}; -$hxClasses["kha.graphics4.TessellationEvaluationShader"] = kha_graphics4_TessellationEvaluationShader; -kha_graphics4_TessellationEvaluationShader.__name__ = true; -kha_graphics4_TessellationEvaluationShader.prototype = { - 'delete': function() { - } - ,__class__: kha_graphics4_TessellationEvaluationShader -}; -var kha_graphics4_TexDir = $hxClasses["kha.graphics4.TexDir"] = { __ename__ : true, __constructs__ : ["U","V"] }; -kha_graphics4_TexDir.U = ["U",0]; -kha_graphics4_TexDir.U.toString = $estr; -kha_graphics4_TexDir.U.__enum__ = kha_graphics4_TexDir; -kha_graphics4_TexDir.V = ["V",1]; -kha_graphics4_TexDir.V.toString = $estr; -kha_graphics4_TexDir.V.__enum__ = kha_graphics4_TexDir; -var kha_graphics4_TextureAddressing = $hxClasses["kha.graphics4.TextureAddressing"] = { __ename__ : true, __constructs__ : ["Repeat","Mirror","Clamp"] }; -kha_graphics4_TextureAddressing.Repeat = ["Repeat",0]; -kha_graphics4_TextureAddressing.Repeat.toString = $estr; -kha_graphics4_TextureAddressing.Repeat.__enum__ = kha_graphics4_TextureAddressing; -kha_graphics4_TextureAddressing.Mirror = ["Mirror",1]; -kha_graphics4_TextureAddressing.Mirror.toString = $estr; -kha_graphics4_TextureAddressing.Mirror.__enum__ = kha_graphics4_TextureAddressing; -kha_graphics4_TextureAddressing.Clamp = ["Clamp",2]; -kha_graphics4_TextureAddressing.Clamp.toString = $estr; -kha_graphics4_TextureAddressing.Clamp.__enum__ = kha_graphics4_TextureAddressing; -var kha_graphics4_TextureFilter = $hxClasses["kha.graphics4.TextureFilter"] = { __ename__ : true, __constructs__ : ["PointFilter","LinearFilter","AnisotropicFilter"] }; -kha_graphics4_TextureFilter.PointFilter = ["PointFilter",0]; -kha_graphics4_TextureFilter.PointFilter.toString = $estr; -kha_graphics4_TextureFilter.PointFilter.__enum__ = kha_graphics4_TextureFilter; -kha_graphics4_TextureFilter.LinearFilter = ["LinearFilter",1]; -kha_graphics4_TextureFilter.LinearFilter.toString = $estr; -kha_graphics4_TextureFilter.LinearFilter.__enum__ = kha_graphics4_TextureFilter; -kha_graphics4_TextureFilter.AnisotropicFilter = ["AnisotropicFilter",2]; -kha_graphics4_TextureFilter.AnisotropicFilter.toString = $estr; -kha_graphics4_TextureFilter.AnisotropicFilter.__enum__ = kha_graphics4_TextureFilter; -var kha_graphics4_TextureFormat = $hxClasses["kha.graphics4.TextureFormat"] = { __ename__ : true, __constructs__ : ["RGBA32","L8","RGBA128","DEPTH16","RGBA64","A32","A16"] }; -kha_graphics4_TextureFormat.RGBA32 = ["RGBA32",0]; -kha_graphics4_TextureFormat.RGBA32.toString = $estr; -kha_graphics4_TextureFormat.RGBA32.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.L8 = ["L8",1]; -kha_graphics4_TextureFormat.L8.toString = $estr; -kha_graphics4_TextureFormat.L8.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.RGBA128 = ["RGBA128",2]; -kha_graphics4_TextureFormat.RGBA128.toString = $estr; -kha_graphics4_TextureFormat.RGBA128.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.DEPTH16 = ["DEPTH16",3]; -kha_graphics4_TextureFormat.DEPTH16.toString = $estr; -kha_graphics4_TextureFormat.DEPTH16.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.RGBA64 = ["RGBA64",4]; -kha_graphics4_TextureFormat.RGBA64.toString = $estr; -kha_graphics4_TextureFormat.RGBA64.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.A32 = ["A32",5]; -kha_graphics4_TextureFormat.A32.toString = $estr; -kha_graphics4_TextureFormat.A32.__enum__ = kha_graphics4_TextureFormat; -kha_graphics4_TextureFormat.A16 = ["A16",6]; -kha_graphics4_TextureFormat.A16.toString = $estr; -kha_graphics4_TextureFormat.A16.__enum__ = kha_graphics4_TextureFormat; -var kha_graphics4_TextureUnit = function() { }; -$hxClasses["kha.graphics4.TextureUnit"] = kha_graphics4_TextureUnit; -kha_graphics4_TextureUnit.__name__ = true; -var kha_graphics4_Usage = $hxClasses["kha.graphics4.Usage"] = { __ename__ : true, __constructs__ : ["StaticUsage","DynamicUsage","ReadableUsage"] }; -kha_graphics4_Usage.StaticUsage = ["StaticUsage",0]; -kha_graphics4_Usage.StaticUsage.toString = $estr; -kha_graphics4_Usage.StaticUsage.__enum__ = kha_graphics4_Usage; -kha_graphics4_Usage.DynamicUsage = ["DynamicUsage",1]; -kha_graphics4_Usage.DynamicUsage.toString = $estr; -kha_graphics4_Usage.DynamicUsage.__enum__ = kha_graphics4_Usage; -kha_graphics4_Usage.ReadableUsage = ["ReadableUsage",2]; -kha_graphics4_Usage.ReadableUsage.toString = $estr; -kha_graphics4_Usage.ReadableUsage.__enum__ = kha_graphics4_Usage; -var kha_graphics4_VertexBuffer = function(vertexCount,structure,usage,instanceDataStepRate,canRead) { - if(canRead == null) { - canRead = false; - } - if(instanceDataStepRate == null) { - instanceDataStepRate = 0; - } - this.usage = usage; - this.instanceDataStepRate = instanceDataStepRate; - this.mySize = vertexCount; - this.myStride = 0; - var _g = 0; - var _g1 = structure.elements; - while(_g < _g1.length) { - var element = _g1[_g]; - ++_g; - var _g2 = element.data; - switch(_g2[1]) { - case 0: - this.myStride += 4; - break; - case 1: - this.myStride += 8; - break; - case 2: - this.myStride += 12; - break; - case 3: - this.myStride += 16; - break; - case 4: - this.myStride += 64; - break; - } - } - this.buffer = kha_SystemImpl.gl.createBuffer(); - var this1 = new Float32Array(vertexCount * this.myStride / 4 | 0); - this._data = this1; - this.sizes = []; - this.offsets = []; - this.sizes[structure.elements.length - 1] = 0; - this.offsets[structure.elements.length - 1] = 0; - var offset = 0; - var index = 0; - var _g3 = 0; - var _g11 = structure.elements; - while(_g3 < _g11.length) { - var element1 = _g11[_g3]; - ++_g3; - var size; - var _g21 = element1.data; - switch(_g21[1]) { - case 0: - size = 1; - break; - case 1: - size = 2; - break; - case 2: - size = 3; - break; - case 3: - size = 4; - break; - case 4: - size = 16; - break; - } - this.sizes[index] = size; - this.offsets[index] = offset; - var _g31 = element1.data; - switch(_g31[1]) { - case 0: - offset += 4; - break; - case 1: - offset += 8; - break; - case 2: - offset += 12; - break; - case 3: - offset += 16; - break; - case 4: - offset += 64; - break; - } - ++index; - } -}; -$hxClasses["kha.graphics4.VertexBuffer"] = kha_graphics4_VertexBuffer; -kha_graphics4_VertexBuffer.__name__ = true; -kha_graphics4_VertexBuffer.prototype = { - buffer: null - ,_data: null - ,mySize: null - ,myStride: null - ,sizes: null - ,offsets: null - ,usage: null - ,instanceDataStepRate: null - ,'delete': function() { - this._data = null; - kha_SystemImpl.gl.deleteBuffer(this.buffer); - } - ,lock: function(start,count) { - if(start == null) { - start = 0; - } - if(count == null) { - count = this.mySize; - } - return this._data.subarray(start * this.stride(),(start + count) * this.stride()); - } - ,unlock: function() { - kha_SystemImpl.gl.bindBuffer(34962,this.buffer); - kha_SystemImpl.gl.bufferData(34962,this._data,this.usage == kha_graphics4_Usage.DynamicUsage ? 35048 : 35044); - } - ,stride: function() { - return this.myStride; - } - ,count: function() { - return this.mySize; - } - ,set: function(offset) { - var ext = kha_SystemImpl.gl2 ? true : kha_SystemImpl.gl.getExtension("ANGLE_instanced_arrays"); - kha_SystemImpl.gl.bindBuffer(34962,this.buffer); - var attributesOffset = 0; - var _g1 = 0; - var _g = this.sizes.length; - while(_g1 < _g) { - var i = _g1++; - if(this.sizes[i] > 4) { - var size = this.sizes[i]; - var addonOffset = 0; - while(size > 0) { - kha_SystemImpl.gl.enableVertexAttribArray(offset + attributesOffset); - kha_SystemImpl.gl.vertexAttribPointer(offset + attributesOffset,4,5126,false,this.myStride,this.offsets[i] + addonOffset); - if(ext) { - if(kha_SystemImpl.gl2) { - kha_SystemImpl.gl.vertexAttribDivisor(offset + attributesOffset,this.instanceDataStepRate); - } else { - ext.vertexAttribDivisorANGLE(offset + attributesOffset,this.instanceDataStepRate); - } - } - size -= 4; - addonOffset += 16; - ++attributesOffset; - } - } else { - kha_SystemImpl.gl.enableVertexAttribArray(offset + attributesOffset); - kha_SystemImpl.gl.vertexAttribPointer(offset + attributesOffset,this.sizes[i],5126,false,this.myStride,this.offsets[i]); - if(ext) { - if(kha_SystemImpl.gl2) { - kha_SystemImpl.gl.vertexAttribDivisor(offset + attributesOffset,this.instanceDataStepRate); - } else { - ext.vertexAttribDivisorANGLE(offset + attributesOffset,this.instanceDataStepRate); - } - } - ++attributesOffset; - } - } - return attributesOffset; - } - ,__class__: kha_graphics4_VertexBuffer -}; -var kha_graphics4_VertexData = $hxClasses["kha.graphics4.VertexData"] = { __ename__ : true, __constructs__ : ["Float1","Float2","Float3","Float4","Float4x4"] }; -kha_graphics4_VertexData.Float1 = ["Float1",0]; -kha_graphics4_VertexData.Float1.toString = $estr; -kha_graphics4_VertexData.Float1.__enum__ = kha_graphics4_VertexData; -kha_graphics4_VertexData.Float2 = ["Float2",1]; -kha_graphics4_VertexData.Float2.toString = $estr; -kha_graphics4_VertexData.Float2.__enum__ = kha_graphics4_VertexData; -kha_graphics4_VertexData.Float3 = ["Float3",2]; -kha_graphics4_VertexData.Float3.toString = $estr; -kha_graphics4_VertexData.Float3.__enum__ = kha_graphics4_VertexData; -kha_graphics4_VertexData.Float4 = ["Float4",3]; -kha_graphics4_VertexData.Float4.toString = $estr; -kha_graphics4_VertexData.Float4.__enum__ = kha_graphics4_VertexData; -kha_graphics4_VertexData.Float4x4 = ["Float4x4",4]; -kha_graphics4_VertexData.Float4x4.toString = $estr; -kha_graphics4_VertexData.Float4x4.__enum__ = kha_graphics4_VertexData; -var kha_graphics4_VertexElement = function(name,data) { - this.name = name; - this.data = data; -}; -$hxClasses["kha.graphics4.VertexElement"] = kha_graphics4_VertexElement; -kha_graphics4_VertexElement.__name__ = true; -kha_graphics4_VertexElement.prototype = { - name: null - ,data: null - ,__class__: kha_graphics4_VertexElement -}; -var kha_graphics4_VertexShader = function(sources,files) { - this.sources = []; - var _g = 0; - while(_g < sources.length) { - var source = sources[_g]; - ++_g; - this.sources.push(source.toString()); - } - this.type = 35633; - this.shader = null; - this.files = files; -}; -$hxClasses["kha.graphics4.VertexShader"] = kha_graphics4_VertexShader; -kha_graphics4_VertexShader.__name__ = true; -kha_graphics4_VertexShader.fromSource = function(source) { - var shader = new kha_graphics4_VertexShader([],["runtime-string"]); - shader.sources.push(source); - return shader; -}; -kha_graphics4_VertexShader.prototype = { - sources: null - ,type: null - ,shader: null - ,files: null - ,'delete': function() { - kha_SystemImpl.gl.deleteShader(this.shader); - this.shader = null; - this.sources = null; - } - ,__class__: kha_graphics4_VertexShader -}; -var kha_graphics4_VertexStructure = function() { - this.elements = []; -}; -$hxClasses["kha.graphics4.VertexStructure"] = kha_graphics4_VertexStructure; -kha_graphics4_VertexStructure.__name__ = true; -kha_graphics4_VertexStructure.prototype = { - elements: null - ,add: function(name,data) { - this.elements.push(new kha_graphics4_VertexElement(name,data)); - } - ,size: function() { - return this.elements.length; - } - ,byteSize: function() { - var byteSize = 0; - var _g1 = 0; - var _g = this.elements.length; - while(_g1 < _g) { - var i = _g1++; - byteSize += this.dataByteSize(this.elements[i].data); - } - return byteSize; - } - ,dataByteSize: function(data) { - switch(data[1]) { - case 0: - return 4; - case 1: - return 8; - case 2: - return 12; - case 3: - return 16; - case 4: - return 64; - } - } - ,get: function(index) { - return this.elements[index]; - } - ,__class__: kha_graphics4_VertexStructure -}; -var kha_input_Gamepad = $hx_exports["kha"]["input"]["Gamepad"] = function(index,id) { - if(id == null) { - id = "unknown"; - } - if(index == null) { - index = 0; - } - this.index = index; - this.axisListeners = []; - this.buttonListeners = []; - kha_input_Gamepad.instances[index] = this; -}; -$hxClasses["kha.input.Gamepad"] = kha_input_Gamepad; -kha_input_Gamepad.__name__ = true; -kha_input_Gamepad.get = function(index) { - if(index == null) { - index = 0; - } - if(index >= kha_input_Gamepad.instances.length) { - return null; - } - return kha_input_Gamepad.instances[index]; -}; -kha_input_Gamepad.prototype = { - index: null - ,notify: function(axisListener,buttonListener) { - if(axisListener != null) { - this.axisListeners.push(axisListener); - } - if(buttonListener != null) { - this.buttonListeners.push(buttonListener); - } - } - ,remove: function(axisListener,buttonListener) { - if(axisListener != null) { - HxOverrides.remove(this.axisListeners,axisListener); - } - if(buttonListener != null) { - HxOverrides.remove(this.buttonListeners,buttonListener); - } - } - ,axisListeners: null - ,buttonListeners: null - ,id: null - ,get_id: function() { - return kha_SystemImpl.getGamepadId(this.index); - } - ,sendAxisEvent: function(axis,value) { - var _g = 0; - var _g1 = this.axisListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(axis,value); - } - } - ,sendButtonEvent: function(button,value) { - var _g = 0; - var _g1 = this.buttonListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(button,value); - } - } - ,__class__: kha_input_Gamepad -}; -var kha_network_Controller = function() { - this.__id = kha_network_ControllerBuilder.nextId++; - this._inputBuffer = new haxe_io_Bytes(new ArrayBuffer(1)); -}; -$hxClasses["kha.network.Controller"] = kha_network_Controller; -kha_network_Controller.__name__ = true; -kha_network_Controller.prototype = { - __id: null - ,_inputBufferIndex: null - ,_inputBuffer: null - ,_id: function() { - return this.__id; - } - ,_receive: function(bytes) { - } - ,__class__: kha_network_Controller -}; -var kha_input_Keyboard = $hx_exports["kha"]["input"]["Keyboard"] = function() { - kha_network_Controller.call(this); - this.downListeners = []; - this.upListeners = []; - kha_input_Keyboard.instance = this; -}; -$hxClasses["kha.input.Keyboard"] = kha_input_Keyboard; -kha_input_Keyboard.__name__ = true; -kha_input_Keyboard.get = function(num) { - if(num == null) { - num = 0; - } - return kha_SystemImpl.getKeyboard(num); -}; -kha_input_Keyboard.__super__ = kha_network_Controller; -kha_input_Keyboard.prototype = $extend(kha_network_Controller.prototype,{ - notify: function(downListener,upListener) { - if(downListener != null) { - this.downListeners.push(downListener); - } - if(upListener != null) { - this.upListeners.push(upListener); - } - } - ,remove: function(downListener,upListener) { - if(downListener != null) { - HxOverrides.remove(this.downListeners,downListener); - } - if(upListener != null) { - HxOverrides.remove(this.upListeners,upListener); - } - } - ,show: function() { - } - ,hide: function() { - } - ,downListeners: null - ,upListeners: null - ,sendDownEvent: function(key,$char) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(6)); - bytes.setInt32(0,0); - bytes.b[4] = key[1] & 255; - var v = HxOverrides.cca($char,0); - bytes.b[5] = v & 255; - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - var _g = 0; - var _g1 = this.downListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(key,$char); - } - } - ,sendUpEvent: function(key,$char) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(6)); - bytes.setInt32(0,1); - bytes.b[4] = key[1] & 255; - var v = HxOverrides.cca($char,0); - bytes.b[5] = v & 255; - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - var _g = 0; - var _g1 = this.upListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(key,$char); - } - } - ,_receive: function(bytes) { - var funcindex = bytes.getInt32(0); - if(funcindex == 0) { - var input0 = Type.createEnumIndex(kha_Key,bytes.b[4],null); - var input1 = String.fromCharCode(bytes.b[5]); - this.sendDownEvent(input0,input1); - return; - } - if(funcindex == 1) { - var input01 = Type.createEnumIndex(kha_Key,bytes.b[4],null); - var input11 = String.fromCharCode(bytes.b[5]); - this.sendUpEvent(input01,input11); - return; - } - } - ,__class__: kha_input_Keyboard -}); -var kha_input_Mouse = $hx_exports["kha"]["input"]["Mouse"] = function() { - kha_network_Controller.call(this); - kha_input_Mouse.instance = this; -}; -$hxClasses["kha.input.Mouse"] = kha_input_Mouse; -kha_input_Mouse.__name__ = true; -kha_input_Mouse.get = function(num) { - if(num == null) { - num = 0; - } - return kha_SystemImpl.getMouse(num); -}; -kha_input_Mouse.__super__ = kha_network_Controller; -kha_input_Mouse.prototype = $extend(kha_network_Controller.prototype,{ - notify: function(downListener,upListener,moveListener,wheelListener,leaveListener) { - this.notifyWindowed(0,downListener,upListener,moveListener,wheelListener,leaveListener); - } - ,remove: function(downListener,upListener,moveListener,wheelListener,leaveListener) { - this.removeWindowed(0,downListener,upListener,moveListener,wheelListener,leaveListener); - } - ,notifyWindowed: function(windowId,downListener,upListener,moveListener,wheelListener,leaveListener) { - if(downListener != null) { - if(this.windowDownListeners == null) { - this.windowDownListeners = []; - } - while(this.windowDownListeners.length <= windowId) this.windowDownListeners.push([]); - this.windowDownListeners[windowId].push(downListener); - } - if(upListener != null) { - if(this.windowUpListeners == null) { - this.windowUpListeners = []; - } - while(this.windowUpListeners.length <= windowId) this.windowUpListeners.push([]); - this.windowUpListeners[windowId].push(upListener); - } - if(moveListener != null) { - if(this.windowMoveListeners == null) { - this.windowMoveListeners = []; - } - while(this.windowMoveListeners.length <= windowId) this.windowMoveListeners.push([]); - this.windowMoveListeners[windowId].push(moveListener); - } - if(wheelListener != null) { - if(this.windowWheelListeners == null) { - this.windowWheelListeners = []; - } - while(this.windowWheelListeners.length <= windowId) this.windowWheelListeners.push([]); - this.windowWheelListeners[windowId].push(wheelListener); - } - if(leaveListener != null) { - if(this.windowLeaveListeners == null) { - this.windowLeaveListeners = []; - } - while(this.windowLeaveListeners.length <= windowId) this.windowLeaveListeners.push([]); - this.windowLeaveListeners[windowId].push(leaveListener); - } - } - ,removeWindowed: function(windowId,downListener,upListener,moveListener,wheelListener,leaveListener) { - if(downListener != null) { - if(this.windowDownListeners != null) { - if(windowId < this.windowDownListeners.length) { - HxOverrides.remove(this.windowDownListeners[windowId],downListener); - } else { - haxe_Log.trace("no downListeners for window \"" + windowId + "\" are registered",{ fileName : "Mouse.hx", lineNumber : 88, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } else { - haxe_Log.trace("no downListeners were ever registered",{ fileName : "Mouse.hx", lineNumber : 91, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } - if(upListener != null) { - if(this.windowUpListeners != null) { - if(windowId < this.windowUpListeners.length) { - HxOverrides.remove(this.windowUpListeners[windowId],upListener); - } else { - haxe_Log.trace("no upListeners for window \"" + windowId + "\" are registered",{ fileName : "Mouse.hx", lineNumber : 100, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } else { - haxe_Log.trace("no upListeners were ever registered",{ fileName : "Mouse.hx", lineNumber : 103, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } - if(moveListener != null) { - if(this.windowMoveListeners != null) { - if(windowId < this.windowMoveListeners.length) { - HxOverrides.remove(this.windowMoveListeners[windowId],moveListener); - } else { - haxe_Log.trace("no moveListeners for window \"" + windowId + "\" are registered",{ fileName : "Mouse.hx", lineNumber : 112, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } else { - haxe_Log.trace("no moveListeners were ever registered",{ fileName : "Mouse.hx", lineNumber : 115, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } - if(wheelListener != null) { - if(this.windowWheelListeners != null) { - if(windowId < this.windowWheelListeners.length) { - HxOverrides.remove(this.windowWheelListeners[windowId],wheelListener); - } else { - haxe_Log.trace("no wheelListeners for window \"" + windowId + "\" are registered",{ fileName : "Mouse.hx", lineNumber : 124, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } else { - haxe_Log.trace("no wheelListeners were ever registered",{ fileName : "Mouse.hx", lineNumber : 127, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } - if(leaveListener != null) { - if(this.windowLeaveListeners != null) { - if(windowId < this.windowLeaveListeners.length) { - HxOverrides.remove(this.windowLeaveListeners[windowId],leaveListener); - } else { - haxe_Log.trace("no leaveListeners for window \"" + windowId + "\" are registered",{ fileName : "Mouse.hx", lineNumber : 136, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } else { - haxe_Log.trace("no leaveListeners were ever registered",{ fileName : "Mouse.hx", lineNumber : 139, className : "kha.input.Mouse", methodName : "removeWindowed"}); - } - } - } - ,lock: function() { - } - ,unlock: function() { - } - ,canLock: function() { - return false; - } - ,isLocked: function() { - return false; - } - ,notifyOnLockChange: function(func,error) { - } - ,removeFromLockChange: function(func,error) { - } - ,hideSystemCursor: function() { - } - ,showSystemCursor: function() { - } - ,windowDownListeners: null - ,windowUpListeners: null - ,windowMoveListeners: null - ,windowWheelListeners: null - ,windowLeaveListeners: null - ,sendLeaveEvent: function(windowId) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(8)); - bytes.setInt32(0,0); - bytes.setInt32(4,windowId); - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - if(this.windowLeaveListeners != null) { - var _g = 0; - var _g1 = this.windowLeaveListeners[windowId]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(); - } - } - } - ,sendDownEvent: function(windowId,button,x,y) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(20)); - bytes.setInt32(0,1); - bytes.setInt32(4,windowId); - bytes.setInt32(8,button); - bytes.setInt32(12,x); - bytes.setInt32(16,y); - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - if(this.windowDownListeners != null) { - var _g = 0; - var _g1 = this.windowDownListeners[windowId]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(button,x,y); - } - } - } - ,sendUpEvent: function(windowId,button,x,y) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(20)); - bytes.setInt32(0,2); - bytes.setInt32(4,windowId); - bytes.setInt32(8,button); - bytes.setInt32(12,x); - bytes.setInt32(16,y); - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - if(this.windowUpListeners != null) { - var _g = 0; - var _g1 = this.windowUpListeners[windowId]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(button,x,y); - } - } - } - ,sendMoveEvent: function(windowId,x,y,movementX,movementY) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(24)); - bytes.setInt32(0,3); - bytes.setInt32(4,windowId); - bytes.setInt32(8,x); - bytes.setInt32(12,y); - bytes.setInt32(16,movementX); - bytes.setInt32(20,movementY); - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - if(this.windowMoveListeners != null) { - var _g = 0; - var _g1 = this.windowMoveListeners[windowId]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(x,y,movementX,movementY); - } - } - } - ,sendWheelEvent: function(windowId,delta) { - if(kha_network_Session.the() != null) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(12)); - bytes.setInt32(0,4); - bytes.setInt32(4,windowId); - bytes.setInt32(8,delta); - kha_network_Session.the().sendControllerUpdate(this._id(),bytes); - } - if(this.windowWheelListeners != null) { - var _g = 0; - var _g1 = this.windowWheelListeners[windowId]; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(delta); - } - } - } - ,_receive: function(bytes) { - var funcindex = bytes.getInt32(0); - if(funcindex == 0) { - var input0 = bytes.getInt32(4); - this.sendLeaveEvent(input0); - return; - } - if(funcindex == 1) { - var input01 = bytes.getInt32(4); - var input1 = bytes.getInt32(8); - var input2 = bytes.getInt32(12); - var input3 = bytes.getInt32(16); - this.sendDownEvent(input01,input1,input2,input3); - return; - } - if(funcindex == 2) { - var input02 = bytes.getInt32(4); - var input11 = bytes.getInt32(8); - var input21 = bytes.getInt32(12); - var input31 = bytes.getInt32(16); - this.sendUpEvent(input02,input11,input21,input31); - return; - } - if(funcindex == 3) { - var input03 = bytes.getInt32(4); - var input12 = bytes.getInt32(8); - var input22 = bytes.getInt32(12); - var input32 = bytes.getInt32(16); - var input4 = bytes.getInt32(20); - this.sendMoveEvent(input03,input12,input22,input32,input4); - return; - } - if(funcindex == 4) { - var input04 = bytes.getInt32(4); - var input13 = bytes.getInt32(8); - this.sendWheelEvent(input04,input13); - return; - } - } - ,__class__: kha_input_Mouse -}); -var kha_input_MouseImpl = function() { - kha_input_Mouse.call(this); -}; -$hxClasses["kha.input.MouseImpl"] = kha_input_MouseImpl; -kha_input_MouseImpl.__name__ = true; -kha_input_MouseImpl.__super__ = kha_input_Mouse; -kha_input_MouseImpl.prototype = $extend(kha_input_Mouse.prototype,{ - hideSystemCursor: function() { - kha_SystemImpl.khanvas.style.cursor = "none"; - } - ,showSystemCursor: function() { - kha_SystemImpl.khanvas.style.cursor = "default"; - } - ,_receive: function(bytes) { - var funcindex = bytes.getInt32(0); - } - ,__class__: kha_input_MouseImpl -}); -var kha_input_Surface = $hx_exports["kha"]["input"]["Surface"] = function() { - this.touchStartListeners = []; - this.touchEndListeners = []; - this.moveListeners = []; - kha_input_Surface.instance = this; -}; -$hxClasses["kha.input.Surface"] = kha_input_Surface; -kha_input_Surface.__name__ = true; -kha_input_Surface.get = function(num) { - if(num == null) { - num = 0; - } - if(num != 0) { - return null; - } - return kha_input_Surface.instance; -}; -kha_input_Surface.prototype = { - notify: function(touchStartListener,touchEndListener,moveListener) { - if(touchStartListener != null) { - this.touchStartListeners.push(touchStartListener); - } - if(touchEndListener != null) { - this.touchEndListeners.push(touchEndListener); - } - if(moveListener != null) { - this.moveListeners.push(moveListener); - } - } - ,remove: function(touchStartListener,touchEndListener,moveListener) { - if(touchStartListener != null) { - HxOverrides.remove(this.touchStartListeners,touchStartListener); - } - if(touchEndListener != null) { - HxOverrides.remove(this.touchEndListeners,touchEndListener); - } - if(moveListener != null) { - this.moveListeners.push(moveListener); - } - } - ,touchStartListeners: null - ,touchEndListeners: null - ,moveListeners: null - ,sendTouchStartEvent: function(index,x,y) { - var _g = 0; - var _g1 = this.touchStartListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(index,x,y); - } - } - ,sendTouchEndEvent: function(index,x,y) { - var _g = 0; - var _g1 = this.touchEndListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(index,x,y); - } - } - ,sendMoveEvent: function(index,x,y) { - var _g = 0; - var _g1 = this.moveListeners; - while(_g < _g1.length) { - var listener = _g1[_g]; - ++_g; - listener(index,x,y); - } - } - ,__class__: kha_input_Surface -}; -var kha_internal_BytesBlob = function(bytes) { - this.myFirstLine = true; - this.bytes = bytes; - this.buffer = []; -}; -$hxClasses["kha.internal.BytesBlob"] = kha_internal_BytesBlob; -kha_internal_BytesBlob.__name__ = true; -kha_internal_BytesBlob.__interfaces__ = [kha_Resource]; -kha_internal_BytesBlob.fromBytes = function(bytes) { - return new kha_internal_BytesBlob(bytes); -}; -kha_internal_BytesBlob.alloc = function(size) { - return new kha_internal_BytesBlob(new haxe_io_Bytes(new ArrayBuffer(size))); -}; -kha_internal_BytesBlob.readF32 = function(i) { - var sign = (i & -2147483648) == 0 ? 1 : -1; - var exp = i >> 23 & 255; - var man = i & 8388607; - switch(exp) { - case 0: - return 0.0; - case 255: - if(man != 0) { - return NaN; - } else if(sign > 0) { - return Infinity; - } else { - return -Infinity; - } - break; - default: - return sign * ((man + 8388608) / 8388608.0) * Math.pow(2,exp - 127); - } -}; -kha_internal_BytesBlob.bit = function(value,position) { - var b = (value >>> position & 1) == 1; - if(b) { - var a = 3; - ++a; - return true; - } else { - var c = 4; - --c; - return false; - } -}; -kha_internal_BytesBlob.prototype = { - bytes: null - ,buffer: null - ,myFirstLine: null - ,sub: function(start,length) { - return new kha_internal_BytesBlob(this.bytes.sub(start,length)); - } - ,length: null - ,get_length: function() { - return this.bytes.length; - } - ,writeU8: function(position,value) { - this.bytes.b[position] = value & 255; - } - ,readU8: function(position) { - var $byte = this.bytes.b[position]; - ++position; - return $byte; - } - ,readS8: function(position) { - var $byte = this.bytes.b[position]; - ++position; - var sign = ($byte & 128) == 0 ? 1 : -1; - $byte &= 127; - return sign * $byte; - } - ,readU16BE: function(position) { - var first = this.bytes.b[position]; - var second = this.bytes.b[position + 1]; - position += 2; - return first * 256 + second; - } - ,readU16LE: function(position) { - var first = this.bytes.b[position]; - var second = this.bytes.b[position + 1]; - position += 2; - return second * 256 + first; - } - ,readU32LE: function(position) { - var fourth = this.bytes.b[position]; - var third = this.bytes.b[position + 1]; - var second = this.bytes.b[position + 2]; - var first = this.bytes.b[position + 3]; - position += 4; - return fourth + third * 256 + second * 256 * 256 + first * 256 * 256 * 256; - } - ,readU32BE: function(position) { - var fourth = this.bytes.b[position]; - var third = this.bytes.b[position + 1]; - var second = this.bytes.b[position + 2]; - var first = this.bytes.b[position + 3]; - position += 4; - return first + second * 256 + third * 256 * 256 + fourth * 256 * 256 * 256; - } - ,readS16BE: function(position) { - var first = this.bytes.b[position]; - var second = this.bytes.b[position + 1]; - position += 2; - var sign = (first & 128) == 0 ? 1 : -1; - first &= 127; - if(sign == -1) { - return -32767 + first * 256 + second; - } else { - return first * 256 + second; - } - } - ,readS16LE: function(position) { - var first = this.bytes.b[position]; - var second = this.bytes.b[position + 1]; - var sign = (second & 128) == 0 ? 1 : -1; - second &= 127; - position += 2; - if(sign == -1) { - return -32767 + second * 256 + first; - } else { - return second * 256 + first; - } - } - ,readS32LE: function(position) { - var fourth = this.bytes.b[position]; - var third = this.bytes.b[position + 1]; - var second = this.bytes.b[position + 2]; - var first = this.bytes.b[position + 3]; - var sign = (first & 128) == 0 ? 1 : -1; - first &= 127; - position += 4; - if(sign == -1) { - return -2147483647 + fourth + third * 256 + second * 256 * 256 + first * 256 * 256 * 256; - } else { - return fourth + third * 256 + second * 256 * 256 + first * 256 * 256 * 256; - } - } - ,readS32BE: function(position) { - var fourth = this.bytes.b[position]; - var third = this.bytes.b[position + 1]; - var second = this.bytes.b[position + 2]; - var first = this.bytes.b[position + 3]; - var sign = (fourth & 128) == 0 ? 1 : -1; - fourth &= 127; - position += 4; - if(sign == -1) { - return -2147483647 + first + second * 256 + third * 256 * 256 + fourth * 256 * 256 * 256; - } - return first + second * 256 + third * 256 * 256 + fourth * 256 * 256 * 256; - } - ,readF32LE: function(position) { - return kha_internal_BytesBlob.readF32(this.readS32LE(position)); - } - ,readF32BE: function(position) { - return kha_internal_BytesBlob.readF32(this.readS32BE(position)); - } - ,toString: function() { - return this.bytes.toString(); - } - ,readUtf8Char: function(position) { - if(position.value >= this.get_length()) { - return -1; - } - var c = this.readU8(position.value); - ++position.value; - var value = 0; - if(!kha_internal_BytesBlob.bit(c,7)) { - value = c; - } else if(kha_internal_BytesBlob.bit(c,7) && kha_internal_BytesBlob.bit(c,6) && !kha_internal_BytesBlob.bit(c,5)) { - var a = c & 31; - var c2 = this.readU8(position.value); - ++position.value; - var b = c2 & 63; - value = a << 6 | b; - } else if(kha_internal_BytesBlob.bit(c,7) && kha_internal_BytesBlob.bit(c,6) && kha_internal_BytesBlob.bit(c,5) && !kha_internal_BytesBlob.bit(c,4)) { - position.value += 2; - } else if(kha_internal_BytesBlob.bit(c,7) && kha_internal_BytesBlob.bit(c,6) && kha_internal_BytesBlob.bit(c,5) && kha_internal_BytesBlob.bit(c,4) && !kha_internal_BytesBlob.bit(c,3)) { - position.value += 3; - } - return value; - } - ,readUtf8Block: function(position) { - var bufferindex = 0; - if(position.value >= this.get_length()) { - return ""; - } - while(bufferindex < 2000) { - var c = this.readUtf8Char(position); - if(c < 0) { - break; - } - this.buffer[bufferindex] = c; - ++bufferindex; - } - if(this.myFirstLine) { - this.myFirstLine = false; - if(bufferindex > 2 && this.buffer[0] == 239 && this.buffer[1] == 187 && this.buffer[2] == 191) { - var chars = []; - var _g1 = 3; - var _g = bufferindex - 3; - while(_g1 < _g) { - var i = _g1++; - chars[i - 3] = this.buffer[i]; - } - return this.toText(chars,bufferindex - 3); - } - } - var chars1 = []; - var _g11 = 0; - var _g2 = bufferindex; - while(_g11 < _g2) { - var i1 = _g11++; - chars1[i1] = this.buffer[i1]; - } - return this.toText(chars1,bufferindex); - } - ,toText: function(chars,length) { - var value = ""; - var _g1 = 0; - var _g = length; - while(_g1 < _g) { - var i = _g1++; - value += String.fromCharCode(chars[i]); - } - return value; - } - ,readUtf8String: function() { - var text = ""; - var position = { value : 0}; - while(position.value < this.get_length()) text += this.readUtf8Block(position); - return text; - } - ,toBytes: function() { - return this.bytes; - } - ,unload: function() { - this.bytes = null; - } - ,__class__: kha_internal_BytesBlob -}; -var kha_internal_HdrFormat = function() { -}; -$hxClasses["kha.internal.HdrFormat"] = kha_internal_HdrFormat; -kha_internal_HdrFormat.__name__ = true; -kha_internal_HdrFormat.readBuf = function(buf) { - var bytesRead = 0; - while(true) { - buf[bytesRead++] = kha_internal_HdrFormat.buffer[kha_internal_HdrFormat.fileOffset] & 255; - if(!(++kha_internal_HdrFormat.fileOffset < kha_internal_HdrFormat.bufferLength && bytesRead < buf.length)) { - break; - } - } - return bytesRead; -}; -kha_internal_HdrFormat.readBufOffset = function(buf,offset,length) { - var bytesRead = 0; - while(true) { - buf[offset + bytesRead++] = kha_internal_HdrFormat.buffer[kha_internal_HdrFormat.fileOffset] & 255; - if(!(++kha_internal_HdrFormat.fileOffset < kha_internal_HdrFormat.bufferLength && bytesRead < length)) { - break; - } - } - return bytesRead; -}; -kha_internal_HdrFormat.readPixelsRaw = function(buffer,data,offset,numpixels) { - var numExpected = 4 * numpixels; - var numRead = kha_internal_HdrFormat.readBufOffset(data,offset,numExpected); - if(numRead < numExpected) { - haxe_Log.trace("Error reading raw pixels: got " + numRead + " bytes, expected " + numExpected,{ fileName : "HdrFormat.hx", lineNumber : 43, className : "kha.internal.HdrFormat", methodName : "readPixelsRaw"}); - return; - } -}; -kha_internal_HdrFormat.readPixelsRawRLE = function(buffer,data,offset,scanline_width,num_scanlines) { - var this1 = new Uint8Array(4); - var rgbe = this1; - var scanline_buffer = null; - var ptr; - var ptr_end; - var count; - var this2 = new Uint8Array(2); - var buf = this2; - var bufferLength = buffer.length; - while(num_scanlines > 0) { - if(kha_internal_HdrFormat.readBuf(rgbe) < rgbe.length) { - haxe_Log.trace("Error reading bytes: expected " + rgbe.length,{ fileName : "HdrFormat.hx", lineNumber : 59, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - if(rgbe[0] != 2 || rgbe[1] != 2 || (rgbe[2] & 128) != 0) { - data[offset++] = rgbe[0] & 255; - data[offset++] = rgbe[1] & 255; - data[offset++] = rgbe[2] & 255; - data[offset++] = rgbe[3] & 255; - kha_internal_HdrFormat.readPixelsRaw(buffer,data,offset,scanline_width * num_scanlines - 1); - return; - } - if(((rgbe[2] & 255) << 8 | rgbe[3] & 255) != scanline_width) { - haxe_Log.trace("Wrong scanline width " + ((rgbe[2] & 255) << 8 | rgbe[3] & 255) + ", expected " + scanline_width,{ fileName : "HdrFormat.hx", lineNumber : 74, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - if(scanline_buffer == null) { - var this3 = new Uint8Array(4 * scanline_width); - scanline_buffer = this3; - } - ptr = 0; - var _g = 0; - while(_g < 4) { - var i = _g++; - ptr_end = (i + 1) * scanline_width; - while(ptr < ptr_end) { - if(kha_internal_HdrFormat.readBuf(buf) < buf.length) { - haxe_Log.trace("Error reading 2-byte buffer",{ fileName : "HdrFormat.hx", lineNumber : 88, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - if((buf[0] & 255) > 128) { - count = (buf[0] & 255) - 128; - if(count == 0 || count > ptr_end - ptr) { - haxe_Log.trace("Bad scanline data",{ fileName : "HdrFormat.hx", lineNumber : 95, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - while(count-- > 0) scanline_buffer[ptr++] = buf[1] & 255; - } else { - count = buf[0] & 255; - if(count == 0 || count > ptr_end - ptr) { - haxe_Log.trace("Bad scanline data",{ fileName : "HdrFormat.hx", lineNumber : 106, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - scanline_buffer[ptr++] = buf[1] & 255; - if(--count > 0) { - if(kha_internal_HdrFormat.readBufOffset(scanline_buffer,ptr,count) < count) { - haxe_Log.trace("Error reading non-run data",{ fileName : "HdrFormat.hx", lineNumber : 112, className : "kha.internal.HdrFormat", methodName : "readPixelsRawRLE"}); - return; - } - ptr += count; - } - } - } - } - var _g1 = 0; - var _g2 = scanline_width; - while(_g1 < _g2) { - var i1 = _g1++; - data[offset] = scanline_buffer[i1] & 255; - data[offset + 1] = scanline_buffer[i1 + scanline_width] & 255; - data[offset + 2] = scanline_buffer[i1 + 2 * scanline_width] & 255; - data[offset + 3] = scanline_buffer[i1 + 3 * scanline_width] & 255; - offset += 4; - } - --num_scanlines; - } -}; -kha_internal_HdrFormat.readLine = function() { - var buf = ""; - while(true) { - var b = kha_internal_HdrFormat.buffer[kha_internal_HdrFormat.fileOffset]; - if(b == 10) { - ++kha_internal_HdrFormat.fileOffset; - break; - } - buf += String.fromCharCode(b); - if(!(++kha_internal_HdrFormat.fileOffset < kha_internal_HdrFormat.bufferLength)) { - break; - } - } - return buf; -}; -kha_internal_HdrFormat.parse = function(bytes) { - kha_internal_HdrFormat.buffer = haxe_io__$UInt8Array_UInt8Array_$Impl_$.fromBytes(bytes); - kha_internal_HdrFormat.bufferLength = kha_internal_HdrFormat.buffer.length; - kha_internal_HdrFormat.fileOffset = 0; - var width = 0; - var height = 0; - var exposure = 1.0; - var gamma = 1.0; - var rle = false; - var _g = 0; - while(_g < 20) { - var i = _g++; - var line = kha_internal_HdrFormat.readLine(); - if(kha_internal_HdrFormat.formatPattern.match(line)) { - rle = true; - } else if(kha_internal_HdrFormat.exposurePattern.match(line)) { - exposure = parseFloat(kha_internal_HdrFormat.exposurePattern.matched(1)); - } else if(kha_internal_HdrFormat.widthHeightPattern.match(line)) { - height = Std.parseInt(kha_internal_HdrFormat.widthHeightPattern.matched(1)); - width = Std.parseInt(kha_internal_HdrFormat.widthHeightPattern.matched(2)); - break; - } - } - if(!rle) { - haxe_Log.trace("File is not run length encoded!",{ fileName : "HdrFormat.hx", lineNumber : 175, className : "kha.internal.HdrFormat", methodName : "parse"}); - return null; - } - var this1 = new Uint8Array(width * height * 4); - var data = this1; - var scanline_width = width; - var num_scanlines = height; - kha_internal_HdrFormat.readPixelsRawRLE(kha_internal_HdrFormat.buffer,data,0,scanline_width,num_scanlines); - var this2 = new Float32Array(width * height * 4); - var floatData = this2; - var offset = 0; - while(offset < data.length) { - var r = data[offset] / 255; - var g = data[offset + 1] / 255; - var b = data[offset + 2] / 255; - var e = data[offset + 3]; - var f = Math.pow(2.0,e - 128.0); - r *= f; - g *= f; - b *= f; - floatData[offset] = r; - floatData[offset + 1] = g; - floatData[offset + 2] = b; - floatData[offset + 3] = 1.0; - offset += 4; - } - return { width : width, height : height, data : floatData}; -}; -kha_internal_HdrFormat.prototype = { - __class__: kha_internal_HdrFormat -}; -var kha_js_AEAudioChannel = function(element) { - this.stopped = false; - this.element = element; -}; -$hxClasses["kha.js.AEAudioChannel"] = kha_js_AEAudioChannel; -kha_js_AEAudioChannel.__name__ = true; -kha_js_AEAudioChannel.__interfaces__ = [kha_audio1_AudioChannel]; -kha_js_AEAudioChannel.prototype = { - element: null - ,stopped: null - ,play: function() { - this.stopped = false; - if(kha_SystemImpl.mobile) { - if(kha_SystemImpl.insideInputEvent) { - this.element.play(); - kha_SystemImpl.mobileAudioPlaying = true; - } else if(kha_SystemImpl.mobileAudioPlaying) { - this.element.play(); - } else { - kha_js_AEAudioChannel.todo.push(this); - } - } else { - this.element.play(); - } - } - ,pause: function() { - try { - this.element.pause(); - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - haxe_Log.trace(e,{ fileName : "AEAudioChannel.hx", lineNumber : 39, className : "kha.js.AEAudioChannel", methodName : "pause"}); - } - } - ,stop: function() { - try { - this.element.pause(); - this.element.currentTime = 0; - this.stopped = true; - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - haxe_Log.trace(e,{ fileName : "AEAudioChannel.hx", lineNumber : 50, className : "kha.js.AEAudioChannel", methodName : "stop"}); - } - } - ,length: null - ,get_length: function() { - if(isFinite(this.element.duration)) { - return this.element.duration; - } else { - return Infinity; - } - } - ,position: null - ,get_position: function() { - return this.element.currentTime; - } - ,get_volume: function() { - return this.element.volume; - } - ,set_volume: function(value) { - return this.element.volume = value; - } - ,finished: null - ,get_finished: function() { - if(!this.stopped) { - return this.get_position() >= this.get_length(); - } else { - return true; - } - } - ,__class__: kha_js_AEAudioChannel -}; -var kha_js_AudioElementAudio = function() { }; -$hxClasses["kha.js.AudioElementAudio"] = kha_js_AudioElementAudio; -kha_js_AudioElementAudio.__name__ = true; -kha_js_AudioElementAudio._compile = function() { -}; -kha_js_AudioElementAudio.play = function(sound,loop) { - if(loop == null) { - loop = false; - } - return kha_js_AudioElementAudio.stream(sound,loop); -}; -kha_js_AudioElementAudio.stream = function(sound,loop) { - if(loop == null) { - loop = false; - } - sound.element.loop = loop; - var channel = new kha_js_AEAudioChannel(sound.element); - channel.play(); - return channel; -}; -var kha_js_CanvasGraphics = function(canvas) { - kha_graphics2_Graphics.call(this); - this.canvas = canvas; - kha_js_CanvasGraphics.instance = this; - this.myColor = kha__$Color_Color_$Impl_$.fromBytes(0,0,0); - canvas.save(); -}; -$hxClasses["kha.js.CanvasGraphics"] = kha_js_CanvasGraphics; -kha_js_CanvasGraphics.__name__ = true; -kha_js_CanvasGraphics.stringWidth = function(font,text) { - if(kha_js_CanvasGraphics.instance == null) { - return 5 * text.length; - } else { - kha_js_CanvasGraphics.instance.set_font(font); - return kha_js_CanvasGraphics.instance.canvas.measureText(text).width; - } -}; -kha_js_CanvasGraphics.__super__ = kha_graphics2_Graphics; -kha_js_CanvasGraphics.prototype = $extend(kha_graphics2_Graphics.prototype,{ - canvas: null - ,webfont: null - ,myColor: null - ,scaleQuality: null - ,begin: function(clear,clearColor) { - if(clear == null) { - clear = true; - } - if(clear) { - this.clear(clearColor); - } - } - ,clear: function(color) { - if(color == null) { - color = 0; - } - this.canvas.strokeStyle = "rgba(" + ((color & 16711680) >>> 16) + "," + ((color & 65280) >>> 8) + "," + (color & 255) + "," + (color >>> 24) * 0.00392156862745098 + ")"; - this.canvas.fillStyle = "rgba(" + ((color & 16711680) >>> 16) + "," + ((color & 65280) >>> 8) + "," + (color & 255) + "," + (color >>> 24) * 0.00392156862745098 + ")"; - if((color >>> 24) * 0.00392156862745098 == 0) { - this.canvas.clearRect(0,0,this.canvas.canvas.width,this.canvas.canvas.height); - } else { - this.canvas.fillRect(0,0,this.canvas.canvas.width,this.canvas.canvas.height); - } - this.set_color(this.myColor); - } - ,end: function() { - } - ,drawImage: function(img,x,y) { - this.canvas.globalAlpha = this.get_opacity(); - this.canvas.drawImage((js_Boot.__cast(img , kha_CanvasImage)).image,x,y); - this.canvas.globalAlpha = 1; - } - ,drawScaledSubImage: function(image,sx,sy,sw,sh,dx,dy,dw,dh) { - this.canvas.globalAlpha = this.get_opacity(); - try { - if(dw < 0 || dh < 0) { - this.canvas.save(); - this.canvas.translate(dx,dy); - var x = 0.0; - var y = 0.0; - if(dw < 0) { - this.canvas.scale(-1,1); - x = -dw; - } - if(dh < 0) { - this.canvas.scale(1,-1); - y = -dh; - } - this.canvas.drawImage((js_Boot.__cast(image , kha_CanvasImage)).image,sx,sy,sw,sh,x,y,dw,dh); - this.canvas.restore(); - } else { - this.canvas.drawImage((js_Boot.__cast(image , kha_CanvasImage)).image,sx,sy,sw,sh,dx,dy,dw,dh); - } - } catch( ex ) { - } - this.canvas.globalAlpha = 1; - } - ,set_color: function(color) { - this.myColor = color; - this.canvas.strokeStyle = "rgba(" + ((color & 16711680) >>> 16) + "," + ((color & 65280) >>> 8) + "," + (color & 255) + "," + (color >>> 24) * 0.00392156862745098 + ")"; - this.canvas.fillStyle = "rgba(" + ((color & 16711680) >>> 16) + "," + ((color & 65280) >>> 8) + "," + (color & 255) + "," + (color >>> 24) * 0.00392156862745098 + ")"; - return color; - } - ,get_color: function() { - return this.myColor; - } - ,get_imageScaleQuality: function() { - return this.scaleQuality; - } - ,set_imageScaleQuality: function(value) { - if(value == kha_graphics2_ImageScaleQuality.Low) { - this.canvas.mozImageSmoothingEnabled = false; - this.canvas.webkitImageSmoothingEnabled = false; - this.canvas.msImageSmoothingEnabled = false; - this.canvas.imageSmoothingEnabled = false; - } else { - this.canvas.mozImageSmoothingEnabled = true; - this.canvas.webkitImageSmoothingEnabled = true; - this.canvas.msImageSmoothingEnabled = true; - this.canvas.imageSmoothingEnabled = true; - } - return this.scaleQuality = value; - } - ,drawRect: function(x,y,width,height,strength) { - if(strength == null) { - strength = 1.0; - } - this.canvas.beginPath(); - var oldStrength = this.canvas.lineWidth; - this.canvas.lineWidth = Math.round(strength); - this.canvas.rect(x,y,width,height); - this.canvas.stroke(); - this.canvas.lineWidth = oldStrength; - } - ,fillRect: function(x,y,width,height) { - var tmp = this.get_opacity(); - this.canvas.globalAlpha = tmp * ((this.myColor >>> 24) * 0.00392156862745098); - this.canvas.fillRect(x,y,width,height); - this.canvas.globalAlpha = this.get_opacity(); - } - ,drawCircle: function(cx,cy,radius,strength) { - if(strength == null) { - strength = 1.0; - } - this.canvas.beginPath(); - var oldStrength = this.canvas.lineWidth; - this.canvas.lineWidth = Math.round(strength); - this.canvas.arc(cx,cy,radius,0,2 * Math.PI,false); - this.canvas.stroke(); - this.canvas.lineWidth = oldStrength; - } - ,fillCircle: function(cx,cy,radius) { - this.canvas.beginPath(); - this.canvas.arc(cx,cy,radius,0,2 * Math.PI,false); - this.canvas.fill(); - } - ,drawString: function(text,x,y) { - var image = this.webfont.getImage(this.get_fontSize(),this.myColor); - if(image.width > 0) { - var xpos = x; - var ypos = y; - var _g1 = 0; - var _g = text.length; - while(_g1 < _g) { - var i = _g1++; - var q = this.webfont.kravur._get(this.get_fontSize()).getBakedQuad(HxOverrides.cca(text,i) - 32,xpos,ypos); - if(q != null) { - if(q.s1 - q.s0 > 0 && q.t1 - q.t0 > 0 && q.x1 - q.x0 > 0 && q.y1 - q.y0 > 0) { - this.canvas.drawImage(image,q.s0 * image.width,q.t0 * image.height,(q.s1 - q.s0) * image.width,(q.t1 - q.t0) * image.height,q.x0,q.y0,q.x1 - q.x0,q.y1 - q.y0); - } - xpos += q.xadvance; - } - } - } - } - ,set_font: function(font) { - this.webfont = js_Boot.__cast(font , kha_js_Font); - return this.webfont; - } - ,get_font: function() { - return this.webfont; - } - ,drawLine: function(x1,y1,x2,y2,strength) { - if(strength == null) { - strength = 1.0; - } - this.canvas.beginPath(); - var oldWith = this.canvas.lineWidth; - this.canvas.lineWidth = Math.round(strength); - this.canvas.moveTo(x1,y1); - this.canvas.lineTo(x2,y2); - this.canvas.moveTo(0,0); - this.canvas.stroke(); - this.canvas.lineWidth = oldWith; - } - ,fillTriangle: function(x1,y1,x2,y2,x3,y3) { - this.canvas.beginPath(); - this.canvas.closePath(); - this.canvas.fill(); - } - ,scissor: function(x,y,width,height) { - this.canvas.beginPath(); - this.canvas.rect(x,y,width,height); - this.canvas.clip(); - } - ,disableScissor: function() { - this.canvas.restore(); - } - ,drawVideo: function(video,x,y,width,height) { - this.canvas.drawImage((js_Boot.__cast(video , kha_js_Video)).element,x,y,width,height); - } - ,setTransformation: function(transformation) { - this.canvas.setTransform(transformation._00,transformation._01,transformation._10,transformation._11,transformation._20,transformation._21); - } - ,__class__: kha_js_CanvasGraphics -}); -var kha_js_URLParser = function(url) { - this._parts = null; - this._parts = ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"]; - this.url = url; - var r = new EReg("^(?:(?![^:@]+:[^:@/]*@)([^:/?#.]+):)?(?://)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:/?#]*)(?::(\\d*))?)(((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[?#]|$)))*/?)?([^?#/]*))(?:\\?([^#]*))?(?:#(.*))?)",""); - r.match(url); - var _g1 = 0; - var _g = this._parts.length; - while(_g1 < _g) { - var i = _g1++; - this[this._parts[i]] = r.matched(i); - } -}; -$hxClasses["kha.js.URLParser"] = kha_js_URLParser; -kha_js_URLParser.__name__ = true; -kha_js_URLParser.parse = function(url) { - return new kha_js_URLParser(url); -}; -kha_js_URLParser.prototype = { - url: null - ,source: null - ,protocol: null - ,authority: null - ,userInfo: null - ,user: null - ,password: null - ,host: null - ,port: null - ,relative: null - ,path: null - ,directory: null - ,file: null - ,query: null - ,anchor: null - ,_parts: null - ,toString: function() { - var s = "For Url -> " + this.url + "\n"; - var _g1 = 0; - var _g = this._parts.length; - while(_g1 < _g) { - var i = _g1++; - s += this._parts[i] + ": " + Std.string(Reflect.field(this,this._parts[i])) + (i == this._parts.length - 1 ? "" : "\n"); - } - return s; - } - ,__class__: kha_js_URLParser -}; -var kha_js_EnvironmentVariables = function() { - kha_EnvironmentVariables.call(this); -}; -$hxClasses["kha.js.EnvironmentVariables"] = kha_js_EnvironmentVariables; -kha_js_EnvironmentVariables.__name__ = true; -kha_js_EnvironmentVariables.__super__ = kha_EnvironmentVariables; -kha_js_EnvironmentVariables.prototype = $extend(kha_EnvironmentVariables.prototype,{ - getVariable: function(name) { - var parser = new kha_js_URLParser(window.location.href); - var query = parser.query; - var parts = query.split("&"); - var _g = 0; - while(_g < parts.length) { - var part = parts[_g]; - ++_g; - var subparts = part.split("="); - if(subparts[0] == name) { - return subparts[1]; - } - } - haxe_Log.trace("Environment variables requested.",{ fileName : "EnvironmentVariables.hx", lineNumber : 90, className : "kha.js.EnvironmentVariables", methodName : "getVariable"}); - return ""; - } - ,__class__: kha_js_EnvironmentVariables -}); -var kha_js_Font = function(kravur) { - this.images = new haxe_ds_IntMap(); - this.kravur = kravur; -}; -$hxClasses["kha.js.Font"] = kha_js_Font; -kha_js_Font.__name__ = true; -kha_js_Font.__interfaces__ = [kha_Font]; -kha_js_Font.prototype = { - kravur: null - ,images: null - ,height: function(fontSize) { - return this.kravur._get(fontSize).getHeight(); - } - ,width: function(fontSize,str) { - return this.kravur._get(fontSize).stringWidth(str); - } - ,baseline: function(fontSize) { - return this.kravur._get(fontSize).getBaselinePosition(); - } - ,getImage: function(fontSize,color) { - if(!this.images.h.hasOwnProperty(fontSize)) { - var this1 = this.images; - var v = new haxe_ds_IntMap(); - this1.h[fontSize] = v; - } - if(!this.images.h[fontSize].h.hasOwnProperty(color)) { - var kravur = this.kravur._get(fontSize); - var canvas = window.document.createElement("canvas"); - canvas.width = kravur.width; - canvas.height = kravur.height; - var ctx = canvas.getContext("2d"); - ctx.fillStyle = "black"; - ctx.fillRect(0,0,kravur.width,kravur.height); - var imageData = ctx.getImageData(0,0,kravur.width,kravur.height); - var bytes = (js_Boot.__cast(kravur.getTexture() , kha_CanvasImage)).bytes; - var _g1 = 0; - var _g = bytes.length; - while(_g1 < _g) { - var i = _g1++; - imageData.data[i * 4] = (color & 16711680) >>> 16; - imageData.data[i * 4 + 1] = (color & 65280) >>> 8; - imageData.data[i * 4 + 2] = color & 255; - imageData.data[i * 4 + 3] = bytes.b[i]; - } - ctx.putImageData(imageData,0,0); - var img = window.document.createElement("img"); - img.src = canvas.toDataURL("image/png"); - this.images.h[fontSize].h[color] = img; - return img; - } - return this.images.h[fontSize].h[color]; - } - ,unload: function() { - this.kravur = null; - this.images = null; - } - ,__class__: kha_js_Font -}; -var kha_js_MobileWebAudio = function() { }; -$hxClasses["kha.js.MobileWebAudio"] = kha_js_MobileWebAudio; -kha_js_MobileWebAudio.__name__ = true; -kha_js_MobileWebAudio._init = function() { - try { - kha_js_MobileWebAudio._context = new AudioContext(); - return; - } catch( e ) { - } - try { - this._context = new webkitAudioContext(); - return; - } catch( e1 ) { - } -}; -kha_js_MobileWebAudio.play = function(sound,loop) { - if(loop == null) { - loop = false; - } - var channel = new kha_js_MobileWebAudioChannel(sound,loop); - channel.play(); - return channel; -}; -kha_js_MobileWebAudio.stream = function(sound,loop) { - if(loop == null) { - loop = false; - } - return kha_js_MobileWebAudio.play(sound,loop); -}; -var kha_js_MobileWebAudioChannel = function(sound,loop) { - this.stopped = false; - this.paused = false; - this.buffer = sound._buffer; - this.loop = loop; - this.createSource(); -}; -$hxClasses["kha.js.MobileWebAudioChannel"] = kha_js_MobileWebAudioChannel; -kha_js_MobileWebAudioChannel.__name__ = true; -kha_js_MobileWebAudioChannel.__interfaces__ = [kha_audio1_AudioChannel]; -kha_js_MobileWebAudioChannel.prototype = { - buffer: null - ,loop: null - ,source: null - ,gain: null - ,startTime: null - ,pauseTime: null - ,paused: null - ,stopped: null - ,createSource: function() { - var _gthis = this; - this.source = kha_js_MobileWebAudio._context.createBufferSource(); - this.source.loop = this.loop; - this.source.buffer = this.buffer; - this.source.onended = function() { - _gthis.stopped = true; - }; - this.gain = kha_js_MobileWebAudio._context.createGain(); - this.source.connect(this.gain); - this.gain.connect(kha_js_MobileWebAudio._context.destination); - } - ,play: function() { - if(this.paused || this.stopped) { - this.createSource(); - } - this.stopped = false; - if(this.paused) { - this.paused = false; - this.startTime = kha_js_MobileWebAudio._context.currentTime - this.pauseTime; - this.source.start(0,this.pauseTime); - } else { - this.startTime = kha_js_MobileWebAudio._context.currentTime; - this.source.start(); - } - } - ,pause: function() { - this.pauseTime = kha_js_MobileWebAudio._context.currentTime - this.startTime; - this.paused = true; - this.source.stop(); - } - ,stop: function() { - this.paused = false; - this.stopped = true; - this.source.stop(); - } - ,length: null - ,get_length: function() { - return this.source.buffer.duration; - } - ,position: null - ,get_position: function() { - if(this.stopped) { - return this.get_length(); - } - if(this.paused) { - return this.pauseTime; - } else { - return kha_js_MobileWebAudio._context.currentTime - this.startTime; - } - } - ,get_volume: function() { - return this.gain.gain.value; - } - ,set_volume: function(value) { - return this.gain.gain.value = value; - } - ,finished: null - ,get_finished: function() { - return this.stopped; - } - ,__class__: kha_js_MobileWebAudioChannel -}; -var kha_js_MobileWebAudioSound = function(filename,done) { - var _gthis = this; - kha_Sound.call(this); - var request = new XMLHttpRequest(); - request.open("GET",filename,true); - request.responseType = "arraybuffer"; - request.onerror = function() { - haxe_Log.trace("Error loading " + filename,{ fileName : "MobileWebAudioSound.hx", lineNumber : 25, className : "kha.js.MobileWebAudioSound", methodName : "new"}); - }; - request.onload = function() { - _gthis.compressedData = haxe_io_Bytes.ofData(request.response); - _gthis.uncompressedData = null; - kha_js_MobileWebAudio._context.decodeAudioData(_gthis.compressedData.b.bufferValue,function(buffer) { - _gthis._buffer = buffer; - done(_gthis); - },function() { - throw new js__$Boot_HaxeError("Audio format not supported"); - }); - }; - request.send(null); -}; -$hxClasses["kha.js.MobileWebAudioSound"] = kha_js_MobileWebAudioSound; -kha_js_MobileWebAudioSound.__name__ = true; -kha_js_MobileWebAudioSound.__super__ = kha_Sound; -kha_js_MobileWebAudioSound.prototype = $extend(kha_Sound.prototype,{ - _buffer: null - ,uncompress: function(done) { - done(); - } - ,__class__: kha_js_MobileWebAudioSound -}); -var kha_js_Sound = function(filenames,done) { - kha_Sound.call(this); - this.done = done; - kha_js_Sound.loading.push(this); - this.element = window.document.createElement("audio"); - this.filenames = []; - var _g = 0; - while(_g < filenames.length) { - var filename = filenames[_g]; - ++_g; - if(this.element.canPlayType("audio/ogg") != "" && StringTools.endsWith(filename,".ogg")) { - this.filenames.push(filename); - } - if(this.element.canPlayType("audio/mp4") != "" && StringTools.endsWith(filename,".mp4")) { - this.filenames.push(filename); - } - } - this.element.addEventListener("error",$bind(this,this.errorListener),false); - this.element.addEventListener("canplay",$bind(this,this.canPlayThroughListener),false); - this.element.src = this.filenames[0]; - this.element.preload = "auto"; - this.element.load(); -}; -$hxClasses["kha.js.Sound"] = kha_js_Sound; -kha_js_Sound.__name__ = true; -kha_js_Sound.__super__ = kha_Sound; -kha_js_Sound.prototype = $extend(kha_Sound.prototype,{ - filenames: null - ,done: null - ,element: null - ,errorListener: function(eventInfo) { - if(this.element.error.code == 4) { - var _g1 = 0; - var _g = this.filenames.length - 1; - while(_g1 < _g) { - var i = _g1++; - if(this.element.src == this.filenames[i]) { - this.element.src = this.filenames[i + 1]; - return; - } - } - } - haxe_Log.trace("Error loading " + this.element.src,{ fileName : "Sound.hx", lineNumber : 108, className : "kha.js.Sound", methodName : "errorListener"}); - window.console.log("loadSound failed"); - this.finishAsset(); - } - ,canPlayThroughListener: function(eventInfo) { - this.finishAsset(); - } - ,finishAsset: function() { - this.element.removeEventListener("error",$bind(this,this.errorListener),false); - this.element.removeEventListener("canplaythrough",$bind(this,this.canPlayThroughListener),false); - this.done(this); - HxOverrides.remove(kha_js_Sound.loading,this); - } - ,uncompress: function(done) { - done(); - } - ,__class__: kha_js_Sound -}); -var kha_js_Video = function(filenames,done) { - kha_Video.call(this); - this.done = done; - kha_js_Video.loading.add(this); - this.element = window.document.createElement("video"); - this.filenames = []; - var _g = 0; - while(_g < filenames.length) { - var filename = filenames[_g]; - ++_g; - if(this.element.canPlayType("video/webm") != "" && StringTools.endsWith(filename,".webm")) { - this.filenames.push(filename); - } - if(this.element.canPlayType("video/mp4") != "" && StringTools.endsWith(filename,".mp4")) { - this.filenames.push(filename); - } - } - this.element.addEventListener("error",$bind(this,this.errorListener),false); - this.element.addEventListener("canplaythrough",$bind(this,this.canPlayThroughListener),false); - this.element.preload = "auto"; - this.element.src = this.filenames[0]; -}; -$hxClasses["kha.js.Video"] = kha_js_Video; -kha_js_Video.__name__ = true; -kha_js_Video.__super__ = kha_Video; -kha_js_Video.prototype = $extend(kha_Video.prototype,{ - filenames: null - ,element: null - ,done: null - ,texture: null - ,width: function() { - return this.element.videoWidth; - } - ,height: function() { - return this.element.videoHeight; - } - ,play: function(loop) { - if(loop == null) { - loop = false; - } - try { - this.element.loop = loop; - this.element.play(); - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - haxe_Log.trace(e,{ fileName : "Video.hx", lineNumber : 55, className : "kha.js.Video", methodName : "play"}); - } - } - ,pause: function() { - try { - this.element.pause(); - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - haxe_Log.trace(e,{ fileName : "Video.hx", lineNumber : 64, className : "kha.js.Video", methodName : "pause"}); - } - } - ,stop: function() { - try { - this.element.pause(); - this.element.currentTime = 0; - } catch( e ) { - if (e instanceof js__$Boot_HaxeError) e = e.val; - haxe_Log.trace(e,{ fileName : "Video.hx", lineNumber : 74, className : "kha.js.Video", methodName : "stop"}); - } - } - ,getCurrentPos: function() { - return Math.ceil(this.element.currentTime * 1000); - } - ,get_position: function() { - return Math.ceil(this.element.currentTime * 1000); - } - ,set_position: function(value) { - this.element.currentTime = value / 1000; - return value; - } - ,getLength: function() { - if(isFinite(this.element.duration)) { - return Math.floor(this.element.duration * 1000); - } else { - return -1; - } - } - ,errorListener: function(eventInfo) { - if(this.element.error.code == 4) { - var _g1 = 0; - var _g = this.filenames.length - 1; - while(_g1 < _g) { - var i = _g1++; - if(this.element.src == this.filenames[i]) { - this.element.src = this.filenames[i + 1]; - return; - } - } - } - haxe_Log.trace("Error loading " + this.element.src,{ fileName : "Video.hx", lineNumber : 111, className : "kha.js.Video", methodName : "errorListener"}); - this.finishAsset(); - } - ,canPlayThroughListener: function(eventInfo) { - this.finishAsset(); - } - ,finishAsset: function() { - this.element.removeEventListener("error",$bind(this,this.errorListener),false); - this.element.removeEventListener("canplaythrough",$bind(this,this.canPlayThroughListener),false); - if(kha_SystemImpl.gl != null) { - this.texture = kha_Image.fromVideo(this); - } - this.done(this); - kha_js_Video.loading.remove(this); - } - ,__class__: kha_js_Video -}); -var kha_js_WebAudioSound = function(filename,done) { - var _gthis = this; - kha_Sound.call(this); - var request = new XMLHttpRequest(); - request.open("GET",filename,true); - request.responseType = "arraybuffer"; - request.onerror = function() { - haxe_Log.trace("Error loading " + filename,{ fileName : "WebAudioSound.hx", lineNumber : 76, className : "kha.js.WebAudioSound", methodName : "new"}); - }; - request.onload = function() { - _gthis.compressedData = haxe_io_Bytes.ofData(request.response); - _gthis.uncompressedData = null; - done(_gthis); - }; - request.send(null); -}; -$hxClasses["kha.js.WebAudioSound"] = kha_js_WebAudioSound; -kha_js_WebAudioSound.__name__ = true; -kha_js_WebAudioSound.__super__ = kha_Sound; -kha_js_WebAudioSound.prototype = $extend(kha_Sound.prototype,{ - superUncompress: function(done) { - kha_Sound.prototype.uncompress.call(this,done); - } - ,uncompress: function(done) { - var _gthis = this; - kha_audio2_Audio._context.decodeAudioData(this.compressedData.b.bufferValue,function(buffer) { - var length = buffer.getChannelData(0).length * 2; - var this1 = new Array(length); - _gthis.uncompressedData = this1; - if(buffer.numberOfChannels == 1) { - var _g1 = 0; - var _g = buffer.getChannelData(0).length; - while(_g1 < _g) { - var i = _g1++; - _gthis.uncompressedData[i * 2] = buffer.getChannelData(0)[i]; - _gthis.uncompressedData[i * 2 + 1] = buffer.getChannelData(0)[i]; - } - } else { - var _g11 = 0; - var _g2 = buffer.getChannelData(0).length; - while(_g11 < _g2) { - var i1 = _g11++; - _gthis.uncompressedData[i1 * 2] = buffer.getChannelData(0)[i1]; - _gthis.uncompressedData[i1 * 2 + 1] = buffer.getChannelData(1)[i1]; - } - } - _gthis.compressedData = null; - done(); - },function() { - _gthis.superUncompress(done); - }); - } - ,__class__: kha_js_WebAudioSound -}); -var kha_js_graphics4_ConstantLocation = function(value,type) { - this.value = value; - this.type = type; -}; -$hxClasses["kha.js.graphics4.ConstantLocation"] = kha_js_graphics4_ConstantLocation; -kha_js_graphics4_ConstantLocation.__name__ = true; -kha_js_graphics4_ConstantLocation.__interfaces__ = [kha_graphics4_ConstantLocation]; -kha_js_graphics4_ConstantLocation.prototype = { - value: null - ,type: null - ,__class__: kha_js_graphics4_ConstantLocation -}; -var kha_js_graphics4_Graphics = function(renderTarget) { - var this1 = new Array(9); - this.matrix3Cache = this1; - var this11 = new Array(16); - this.matrixCache = this11; - this.isDepthAttachment = false; - this.isCubeMap = false; - this.colorMaskAlpha = true; - this.colorMaskBlue = true; - this.colorMaskGreen = true; - this.colorMaskRed = true; - this.depthMask = false; - this.depthTest = false; - this.renderTarget = renderTarget; - this.init(); - if(kha_SystemImpl.gl2) { - this.instancedExtension = true; - } else { - this.instancedExtension = kha_SystemImpl.gl.getExtension("ANGLE_instanced_arrays"); - this.blendMinMaxExtension = kha_SystemImpl.gl.getExtension("EXT_blend_minmax"); - } -}; -$hxClasses["kha.js.graphics4.Graphics"] = kha_js_graphics4_Graphics; -kha_js_graphics4_Graphics.__name__ = true; -kha_js_graphics4_Graphics.__interfaces__ = [kha_graphics4_Graphics]; -kha_js_graphics4_Graphics.getBlendFunc = function(factor) { - switch(factor[1]) { - case 0:case 2: - return 0; - case 1: - return 1; - case 3: - return 770; - case 4: - return 772; - case 5: - return 771; - case 6: - return 773; - case 7: - return 768; - case 8: - return 774; - case 9: - return 769; - case 10: - return 775; - } -}; -kha_js_graphics4_Graphics.getBlendOp = function(op) { - switch(op[1]) { - case 0: - return 32774; - case 1: - return 32778; - case 2: - return 32779; - case 3: - return 32775; - case 4: - return 32776; - } -}; -kha_js_graphics4_Graphics.prototype = { - depthTest: null - ,depthMask: null - ,colorMaskRed: null - ,colorMaskGreen: null - ,colorMaskBlue: null - ,colorMaskAlpha: null - ,indicesCount: null - ,renderTarget: null - ,renderTargetFrameBuffer: null - ,renderTargetTexture: null - ,isCubeMap: null - ,isDepthAttachment: null - ,instancedExtension: null - ,blendMinMaxExtension: null - ,init: function() { - if(this.renderTarget == null) { - return; - } - this.isCubeMap = js_Boot.__instanceof(this.renderTarget,kha_graphics4_CubeMap); - if(this.isCubeMap) { - var cubeMap = js_Boot.__cast(this.renderTarget , kha_graphics4_CubeMap); - this.renderTargetFrameBuffer = cubeMap.frameBuffer; - this.renderTargetTexture = cubeMap.texture; - this.isDepthAttachment = cubeMap.isDepthAttachment; - } else { - var image = js_Boot.__cast(this.renderTarget , kha_WebGLImage); - this.renderTargetFrameBuffer = image.frameBuffer; - this.renderTargetTexture = image.texture; - } - } - ,begin: function(additionalRenderTargets) { - kha_SystemImpl.gl.enable(3042); - kha_SystemImpl.gl.blendFunc(770,771); - if(this.renderTarget == null) { - kha_SystemImpl.gl.bindFramebuffer(36160,null); - kha_SystemImpl.gl.viewport(0,0,kha_System.windowWidth(),kha_System.windowHeight()); - } else { - kha_SystemImpl.gl.bindFramebuffer(36160,this.renderTargetFrameBuffer); - kha_SystemImpl.gl.viewport(0,0,this.renderTarget.get_width(),this.renderTarget.get_height()); - if(additionalRenderTargets != null) { - kha_SystemImpl.gl.framebufferTexture2D(36160,kha_SystemImpl.drawBuffers.COLOR_ATTACHMENT0_WEBGL,3553,this.renderTargetTexture,0); - var _g1 = 0; - var _g = additionalRenderTargets.length; - while(_g1 < _g) { - var i = _g1++; - kha_SystemImpl.gl.framebufferTexture2D(36160,kha_SystemImpl.drawBuffers.COLOR_ATTACHMENT0_WEBGL + i + 1,3553,(js_Boot.__cast(additionalRenderTargets[i] , kha_WebGLImage)).texture,0); - } - var attachments = [kha_SystemImpl.drawBuffers.COLOR_ATTACHMENT0_WEBGL]; - var _g11 = 0; - var _g2 = additionalRenderTargets.length; - while(_g11 < _g2) { - var i1 = _g11++; - attachments.push(kha_SystemImpl.drawBuffers.COLOR_ATTACHMENT0_WEBGL + i1 + 1); - } - if(kha_SystemImpl.gl2) { - kha_SystemImpl.gl.drawBuffers(attachments); - } else { - kha_SystemImpl.drawBuffers.drawBuffersWEBGL(attachments); - } - } - } - } - ,beginFace: function(face) { - kha_SystemImpl.gl.enable(3042); - kha_SystemImpl.gl.blendFunc(770,771); - kha_SystemImpl.gl.bindFramebuffer(36160,this.renderTargetFrameBuffer); - kha_SystemImpl.gl.framebufferTexture2D(36160,this.isDepthAttachment ? 36096 : 36064,34069 + face,this.renderTargetTexture,0); - kha_SystemImpl.gl.viewport(0,0,this.renderTarget.get_width(),this.renderTarget.get_height()); - } - ,beginEye: function(eye) { - kha_SystemImpl.gl.enable(3042); - kha_SystemImpl.gl.blendFunc(770,771); - kha_SystemImpl.gl.bindFramebuffer(36160,null); - if(eye == 0) { - kha_SystemImpl.gl.viewport(0,0,kha_System.windowWidth() * 0.5 | 0,kha_System.windowHeight()); - } else { - kha_SystemImpl.gl.viewport(kha_System.windowWidth() * 0.5 | 0,0,kha_System.windowWidth() * 0.5 | 0,kha_System.windowHeight()); - } - } - ,end: function() { - var error = kha_SystemImpl.gl.getError(); - switch(error) { - case 0: - break; - case 1280: - haxe_Log.trace("WebGL error: Invalid enum",{ fileName : "Graphics.hx", lineNumber : 130, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - case 1281: - haxe_Log.trace("WebGL error: Invalid value",{ fileName : "Graphics.hx", lineNumber : 132, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - case 1282: - haxe_Log.trace("WebGL error: Invalid operation",{ fileName : "Graphics.hx", lineNumber : 134, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - case 1285: - haxe_Log.trace("WebGL error: Out of memory",{ fileName : "Graphics.hx", lineNumber : 138, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - case 1286: - haxe_Log.trace("WebGL error: Invalid framebuffer operation",{ fileName : "Graphics.hx", lineNumber : 136, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - case 37442: - haxe_Log.trace("WebGL error: Context lost",{ fileName : "Graphics.hx", lineNumber : 140, className : "kha.js.graphics4.Graphics", methodName : "end"}); - break; - default: - haxe_Log.trace("Unknown WebGL error",{ fileName : "Graphics.hx", lineNumber : 142, className : "kha.js.graphics4.Graphics", methodName : "end"}); - } - } - ,flush: function() { - } - ,vsynced: function() { - return true; - } - ,refreshRate: function() { - return 60; - } - ,clear: function(color,depth,stencil) { - var clearMask = 0; - if(color != null) { - clearMask |= 16384; - kha_SystemImpl.gl.colorMask(true,true,true,true); - kha_SystemImpl.gl.clearColor(((color & 16711680) >>> 16) * 0.00392156862745098,((color & 65280) >>> 8) * 0.00392156862745098,(color & 255) * 0.00392156862745098,(color >>> 24) * 0.00392156862745098); - } - if(depth != null) { - clearMask |= 256; - kha_SystemImpl.gl.enable(2929); - kha_SystemImpl.gl.depthMask(true); - kha_SystemImpl.gl.clearDepth(depth); - } - if(stencil != null) { - clearMask |= 1024; - kha_SystemImpl.gl.enable(2960); - kha_SystemImpl.gl.stencilMask(255); - kha_SystemImpl.gl.clearStencil(stencil); - } - kha_SystemImpl.gl.clear(clearMask); - kha_SystemImpl.gl.colorMask(this.colorMaskRed,this.colorMaskGreen,this.colorMaskBlue,this.colorMaskAlpha); - if(this.depthTest) { - kha_SystemImpl.gl.enable(2929); - } else { - kha_SystemImpl.gl.disable(2929); - } - kha_SystemImpl.gl.depthMask(this.depthMask); - } - ,viewport: function(x,y,width,height) { - var h = this.renderTarget == null ? kha_System.windowHeight(0) : this.renderTarget.get_height(); - kha_SystemImpl.gl.viewport(x,h - y - height,width,height); - } - ,setDepthMode: function(write,mode) { - switch(mode[1]) { - case 0: - if(write) { - kha_SystemImpl.gl.enable(2929); - } else { - kha_SystemImpl.gl.disable(2929); - } - this.depthTest = write; - kha_SystemImpl.gl.depthFunc(519); - break; - case 1: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(512); - break; - case 2: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(514); - break; - case 3: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(517); - break; - case 4: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(513); - break; - case 5: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(515); - break; - case 6: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(516); - break; - case 7: - kha_SystemImpl.gl.enable(2929); - this.depthTest = true; - kha_SystemImpl.gl.depthFunc(518); - break; - } - kha_SystemImpl.gl.depthMask(write); - this.depthMask = write; - } - ,setBlendingMode: function(source,destination,operation,alphaSource,alphaDestination,alphaOperation) { - if(source == kha_graphics4_BlendingFactor.BlendOne && destination == kha_graphics4_BlendingFactor.BlendZero) { - kha_SystemImpl.gl.disable(3042); - } else { - kha_SystemImpl.gl.enable(3042); - kha_SystemImpl.gl.blendFuncSeparate(kha_js_graphics4_Graphics.getBlendFunc(source),kha_js_graphics4_Graphics.getBlendFunc(destination),kha_js_graphics4_Graphics.getBlendFunc(alphaSource),kha_js_graphics4_Graphics.getBlendFunc(alphaDestination)); - kha_SystemImpl.gl.blendEquationSeparate(kha_js_graphics4_Graphics.getBlendOp(operation),kha_js_graphics4_Graphics.getBlendOp(alphaOperation)); - } - } - ,createVertexBuffer: function(vertexCount,structure,usage,canRead) { - if(canRead == null) { - canRead = false; - } - return new kha_graphics4_VertexBuffer(vertexCount,structure,usage); - } - ,setVertexBuffer: function(vertexBuffer) { - (js_Boot.__cast(vertexBuffer , kha_graphics4_VertexBuffer)).set(0); - } - ,setVertexBuffers: function(vertexBuffers) { - var offset = 0; - var _g = 0; - while(_g < vertexBuffers.length) { - var vertexBuffer = vertexBuffers[_g]; - ++_g; - offset += (js_Boot.__cast(vertexBuffer , kha_graphics4_VertexBuffer)).set(offset); - } - } - ,createIndexBuffer: function(indexCount,usage,canRead) { - if(canRead == null) { - canRead = false; - } - return new kha_graphics4_IndexBuffer(indexCount,usage); - } - ,setIndexBuffer: function(indexBuffer) { - this.indicesCount = indexBuffer.count(); - (js_Boot.__cast(indexBuffer , kha_graphics4_IndexBuffer)).set(); - } - ,setTexture: function(stage,texture) { - if(texture == null) { - kha_SystemImpl.gl.activeTexture(33984 + (js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - kha_SystemImpl.gl.bindTexture(3553,null); - } else { - (js_Boot.__cast(texture , kha_WebGLImage)).set((js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - } - } - ,setTextureDepth: function(stage,texture) { - (js_Boot.__cast(texture , kha_WebGLImage)).setDepth((js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - } - ,setVideoTexture: function(unit,texture) { - if(texture == null) { - kha_SystemImpl.gl.activeTexture(33984 + (js_Boot.__cast(unit , kha_js_graphics4_TextureUnit)).value); - kha_SystemImpl.gl.bindTexture(3553,null); - } else { - (js_Boot.__cast((js_Boot.__cast(texture , kha_js_Video)).texture , kha_WebGLImage)).set((js_Boot.__cast(unit , kha_js_graphics4_TextureUnit)).value); - } - } - ,setImageTexture: function(unit,texture) { - } - ,setTextureParameters: function(texunit,uAddressing,vAddressing,minificationFilter,magnificationFilter,mipmapFilter) { - kha_SystemImpl.gl.activeTexture(33984 + (js_Boot.__cast(texunit , kha_js_graphics4_TextureUnit)).value); - switch(uAddressing[1]) { - case 0: - kha_SystemImpl.gl.texParameteri(3553,10242,10497); - break; - case 1: - kha_SystemImpl.gl.texParameteri(3553,10242,33648); - break; - case 2: - kha_SystemImpl.gl.texParameteri(3553,10242,33071); - break; - } - switch(vAddressing[1]) { - case 0: - kha_SystemImpl.gl.texParameteri(3553,10243,10497); - break; - case 1: - kha_SystemImpl.gl.texParameteri(3553,10243,33648); - break; - case 2: - kha_SystemImpl.gl.texParameteri(3553,10243,33071); - break; - } - switch(minificationFilter[1]) { - case 0: - switch(mipmapFilter[1]) { - case 0: - kha_SystemImpl.gl.texParameteri(3553,10241,9728); - break; - case 1: - kha_SystemImpl.gl.texParameteri(3553,10241,9984); - break; - case 2: - kha_SystemImpl.gl.texParameteri(3553,10241,9986); - break; - } - break; - case 1:case 2: - switch(mipmapFilter[1]) { - case 0: - kha_SystemImpl.gl.texParameteri(3553,10241,9729); - break; - case 1: - kha_SystemImpl.gl.texParameteri(3553,10241,9985); - break; - case 2: - kha_SystemImpl.gl.texParameteri(3553,10241,9987); - break; - } - if(minificationFilter == kha_graphics4_TextureFilter.AnisotropicFilter) { - kha_SystemImpl.gl.texParameteri(3553,kha_SystemImpl.anisotropicFilter.TEXTURE_MAX_ANISOTROPY_EXT,4); - } - break; - } - switch(magnificationFilter[1]) { - case 0: - kha_SystemImpl.gl.texParameteri(3553,10240,9728); - break; - case 1:case 2: - kha_SystemImpl.gl.texParameteri(3553,10240,9729); - break; - } - } - ,setTexture3DParameters: function(texunit,uAddressing,vAddressing,wAddressing,minificationFilter,magnificationFilter,mipmapFilter) { - } - ,setCubeMap: function(stage,cubeMap) { - if(cubeMap == null) { - kha_SystemImpl.gl.activeTexture(33984 + (js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - kha_SystemImpl.gl.bindTexture(34067,null); - } else { - cubeMap.set((js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - } - } - ,setCubeMapDepth: function(stage,cubeMap) { - cubeMap.setDepth((js_Boot.__cast(stage , kha_js_graphics4_TextureUnit)).value); - } - ,setCullMode: function(mode) { - switch(mode[1]) { - case 0: - kha_SystemImpl.gl.enable(2884); - kha_SystemImpl.gl.cullFace(1029); - break; - case 1: - kha_SystemImpl.gl.enable(2884); - kha_SystemImpl.gl.cullFace(1028); - break; - case 2: - kha_SystemImpl.gl.disable(2884); - break; - } - } - ,setPipeline: function(pipe) { - this.setCullMode(pipe.cullMode); - this.setDepthMode(pipe.depthWrite,pipe.depthMode); - this.setStencilParameters(pipe.stencilMode,pipe.stencilBothPass,pipe.stencilDepthFail,pipe.stencilFail,pipe.stencilReferenceValue,pipe.stencilReadMask,pipe.stencilWriteMask); - this.setBlendingMode(pipe.blendSource,pipe.blendDestination,pipe.blendOperation,pipe.alphaBlendSource,pipe.alphaBlendDestination,pipe.alphaBlendOperation); - pipe.set(); - this.colorMaskRed = pipe.colorWriteMaskRed; - this.colorMaskGreen = pipe.colorWriteMaskGreen; - this.colorMaskBlue = pipe.colorWriteMaskBlue; - this.colorMaskAlpha = pipe.colorWriteMaskAlpha; - } - ,setBool: function(location,value) { - kha_SystemImpl.gl.uniform1i((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value ? 1 : 0); - } - ,setInt: function(location,value) { - kha_SystemImpl.gl.uniform1i((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value); - } - ,setFloat: function(location,value) { - kha_SystemImpl.gl.uniform1f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value); - } - ,setFloat2: function(location,value1,value2) { - kha_SystemImpl.gl.uniform2f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value1,value2); - } - ,setFloat3: function(location,value1,value2,value3) { - kha_SystemImpl.gl.uniform3f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value1,value2,value3); - } - ,setFloat4: function(location,value1,value2,value3,value4) { - kha_SystemImpl.gl.uniform4f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value1,value2,value3,value4); - } - ,setFloats: function(location,values) { - var webglLocation = js_Boot.__cast(location , kha_js_graphics4_ConstantLocation); - var _g = webglLocation.type; - switch(_g) { - case 35664: - kha_SystemImpl.gl.uniform2fv(webglLocation.value,values); - break; - case 35665: - kha_SystemImpl.gl.uniform3fv(webglLocation.value,values); - break; - case 35666: - kha_SystemImpl.gl.uniform4fv(webglLocation.value,values); - break; - default: - kha_SystemImpl.gl.uniform1fv(webglLocation.value,values); - } - } - ,setVector2: function(location,value) { - kha_SystemImpl.gl.uniform2f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value.x,value.y); - } - ,setVector3: function(location,value) { - kha_SystemImpl.gl.uniform3f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value.x,value.y,value.z); - } - ,setVector4: function(location,value) { - kha_SystemImpl.gl.uniform4f((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,value.x,value.y,value.z,value.w); - } - ,matrixCache: null - ,setMatrix: function(location,matrix) { - this.matrixCache[0] = matrix._00; - this.matrixCache[1] = matrix._01; - this.matrixCache[2] = matrix._02; - this.matrixCache[3] = matrix._03; - this.matrixCache[4] = matrix._10; - this.matrixCache[5] = matrix._11; - this.matrixCache[6] = matrix._12; - this.matrixCache[7] = matrix._13; - this.matrixCache[8] = matrix._20; - this.matrixCache[9] = matrix._21; - this.matrixCache[10] = matrix._22; - this.matrixCache[11] = matrix._23; - this.matrixCache[12] = matrix._30; - this.matrixCache[13] = matrix._31; - this.matrixCache[14] = matrix._32; - this.matrixCache[15] = matrix._33; - kha_SystemImpl.gl.uniformMatrix4fv((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,false,this.matrixCache); - } - ,matrix3Cache: null - ,setMatrix3: function(location,matrix) { - this.matrix3Cache[0] = matrix._00; - this.matrix3Cache[1] = matrix._01; - this.matrix3Cache[2] = matrix._02; - this.matrix3Cache[3] = matrix._10; - this.matrix3Cache[4] = matrix._11; - this.matrix3Cache[5] = matrix._12; - this.matrix3Cache[6] = matrix._20; - this.matrix3Cache[7] = matrix._21; - this.matrix3Cache[8] = matrix._22; - kha_SystemImpl.gl.uniformMatrix3fv((js_Boot.__cast(location , kha_js_graphics4_ConstantLocation)).value,false,this.matrix3Cache); - } - ,drawIndexedVertices: function(start,count) { - if(count == null) { - count = -1; - } - if(start == null) { - start = 0; - } - var type = kha_SystemImpl.elementIndexUint == null ? 5123 : 5125; - var size = type == 5123 ? 2 : 4; - kha_SystemImpl.gl.drawElements(4,count == -1 ? this.indicesCount : count,type,start * size); - } - ,convertStencilAction: function(action) { - switch(action[1]) { - case 0: - return 7680; - case 1: - return 0; - case 2: - return 7681; - case 3: - return 7682; - case 4: - return 34055; - case 5: - return 7683; - case 6: - return 34056; - case 7: - return 5386; - } - } - ,setStencilParameters: function(compareMode,bothPass,depthFail,stencilFail,referenceValue,readMask,writeMask) { - if(writeMask == null) { - writeMask = 255; - } - if(readMask == null) { - readMask = 255; - } - if(compareMode == kha_graphics4_CompareMode.Always && bothPass == kha_graphics4_StencilAction.Keep && depthFail == kha_graphics4_StencilAction.Keep && stencilFail == kha_graphics4_StencilAction.Keep) { - kha_SystemImpl.gl.disable(2960); - } else { - kha_SystemImpl.gl.enable(2960); - var stencilFunc = 0; - switch(compareMode[1]) { - case 0: - stencilFunc = 519; - break; - case 1: - stencilFunc = 512; - break; - case 2: - stencilFunc = 514; - break; - case 3: - stencilFunc = 517; - break; - case 4: - stencilFunc = 513; - break; - case 5: - stencilFunc = 515; - break; - case 6: - stencilFunc = 516; - break; - case 7: - stencilFunc = 518; - break; - } - kha_SystemImpl.gl.stencilMask(writeMask); - kha_SystemImpl.gl.stencilOp(this.convertStencilAction(stencilFail),this.convertStencilAction(depthFail),this.convertStencilAction(bothPass)); - kha_SystemImpl.gl.stencilFunc(stencilFunc,referenceValue,readMask); - } - } - ,scissor: function(x,y,width,height) { - kha_SystemImpl.gl.enable(3089); - if(this.renderTarget == null) { - kha_SystemImpl.gl.scissor(x,kha_System.windowHeight(0) - y - height,width,height); - } else { - kha_SystemImpl.gl.scissor(x,y,width,height); - } - } - ,disableScissor: function() { - kha_SystemImpl.gl.disable(3089); - } - ,renderTargetsInvertedY: function() { - return true; - } - ,drawIndexedVerticesInstanced: function(instanceCount,start,count) { - if(count == null) { - count = -1; - } - if(start == null) { - start = 0; - } - if(this.instancedRenderingAvailable()) { - var type = kha_SystemImpl.elementIndexUint == null ? 5123 : 5125; - var typeSize = kha_SystemImpl.elementIndexUint == null ? 2 : 4; - if(kha_SystemImpl.gl2) { - kha_SystemImpl.gl.drawElementsInstanced(4,count == -1 ? this.indicesCount : count,type,start * typeSize,instanceCount); - } else { - this.instancedExtension.drawElementsInstancedANGLE(4,count == -1 ? this.indicesCount : count,type,start * typeSize,instanceCount); - } - } - } - ,instancedRenderingAvailable: function() { - return this.instancedExtension; - } - ,__class__: kha_js_graphics4_Graphics -}; -var kha_js_graphics4_Graphics2 = function(canvas) { - kha_graphics4_Graphics2.call(this,canvas); -}; -$hxClasses["kha.js.graphics4.Graphics2"] = kha_js_graphics4_Graphics2; -kha_js_graphics4_Graphics2.__name__ = true; -kha_js_graphics4_Graphics2.__super__ = kha_graphics4_Graphics2; -kha_js_graphics4_Graphics2.prototype = $extend(kha_graphics4_Graphics2.prototype,{ - drawVideoInternal: function(video,x,y,width,height) { - var v = js_Boot.__cast(video , kha_js_Video); - this.drawScaledSubImage(v.texture,0,0,v.texture.get_width(),v.texture.get_height(),x,y,width,height); - } - ,begin: function(clear,clearColor) { - if(clear == null) { - clear = true; - } - kha_SystemImpl.gl.colorMask(true,true,true,true); - kha_SystemImpl.gl.disable(2929); - kha_SystemImpl.gl.depthFunc(519); - kha_graphics4_Graphics2.prototype.begin.call(this,clear,clearColor); - } - ,__class__: kha_js_graphics4_Graphics2 -}); -var kha_js_graphics4_TextureUnit = function(value) { - this.value = value; -}; -$hxClasses["kha.js.graphics4.TextureUnit"] = kha_js_graphics4_TextureUnit; -kha_js_graphics4_TextureUnit.__name__ = true; -kha_js_graphics4_TextureUnit.__interfaces__ = [kha_graphics4_TextureUnit]; -kha_js_graphics4_TextureUnit.prototype = { - value: null - ,__class__: kha_js_graphics4_TextureUnit -}; -var kha_vr_VrInterface = function() { -}; -$hxClasses["kha.vr.VrInterface"] = kha_vr_VrInterface; -kha_vr_VrInterface.__name__ = true; -kha_vr_VrInterface.prototype = { - GetSensorState: function() { - return null; - } - ,GetPredictedSensorState: function(time) { - return null; - } - ,WarpSwapBlack: function() { - return; - } - ,WarpSwapLoadingIcon: function() { - return; - } - ,WarpSwap: function(parms) { - return; - } - ,IsPresenting: function() { - return false; - } - ,IsVrEnabled: function() { - return false; - } - ,GetTimeInSeconds: function() { - return 0.0; - } - ,GetProjectionMatrix: function(eye) { - return null; - } - ,GetViewMatrix: function(eye) { - return null; - } - ,onVRRequestPresent: function() { - return; - } - ,onVRExitPresent: function() { - return; - } - ,onResetPose: function() { - return; - } - ,__class__: kha_vr_VrInterface -}; -var kha_js_vr_VrInterface = function() { - this.vrHeight = 0; - this.vrWidth = 0; - this.height = 0; - this.width = 0; - this.rightViewMatrix = new kha_math_FastMatrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); - this.leftViewMatrix = new kha_math_FastMatrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); - this.rightProjectionMatrix = new kha_math_FastMatrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); - this.leftProjectionMatrix = new kha_math_FastMatrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); - this.vrEnabled = false; - kha_vr_VrInterface.call(this); - var displayEnabled = navigator.getVRDisplays; - if(displayEnabled) { - this.vrEnabled = true; - this.getVRDisplays(); - haxe_Log.trace("Display enabled.",{ fileName : "VrInterface.hx", lineNumber : 36, className : "kha.js.vr.VrInterface", methodName : "new"}); - } -}; -$hxClasses["kha.js.vr.VrInterface"] = kha_js_vr_VrInterface; -kha_js_vr_VrInterface.__name__ = true; -kha_js_vr_VrInterface.__super__ = kha_vr_VrInterface; -kha_js_vr_VrInterface.prototype = $extend(kha_vr_VrInterface.prototype,{ - vrEnabled: null - ,vrDisplay: null - ,frameData: null - ,leftProjectionMatrix: null - ,rightProjectionMatrix: null - ,leftViewMatrix: null - ,rightViewMatrix: null - ,width: null - ,height: null - ,vrWidth: null - ,vrHeight: null - ,getVRDisplays: function() { - var _gthis = this; - var vrDisplayInstance = navigator.getVRDisplays(); - vrDisplayInstance.then(function(displays) { - if(displays.length > 0) { - _gthis.frameData = new VRFrameData(); - _gthis.vrDisplay = displays[0]; - _gthis.vrDisplay.depthNear = 0.1; - _gthis.vrDisplay.depthFar = 1024.0; - var leftEye = _gthis.vrDisplay.getEyeParameters("left"); - var rightEye = _gthis.vrDisplay.getEyeParameters("right"); - _gthis.width = kha_SystemImpl.khanvas.width; - _gthis.height = kha_SystemImpl.khanvas.height; - _gthis.vrWidth = Math.max(leftEye.renderWidth,rightEye.renderWidth) * 2 | 0; - _gthis.vrHeight = Math.max(leftEye.renderHeight,rightEye.renderHeight) | 0; - } else { - haxe_Log.trace("There are no VR displays connected.",{ fileName : "VrInterface.hx", lineNumber : 56, className : "kha.js.vr.VrInterface", methodName : "getVRDisplays"}); - } - }); - } - ,onVRRequestPresent: function() { - var _gthis = this; - try { - this.vrDisplay.requestPresent([{ source : kha_SystemImpl.khanvas}]).then(function() { - _gthis.onResize(); - _gthis.vrDisplay.requestAnimationFrame($bind(_gthis,_gthis.onAnimationFrame)); - }); - } catch( err ) { - if (err instanceof js__$Boot_HaxeError) err = err.val; - haxe_Log.trace("Failed to requestPresent.",{ fileName : "VrInterface.hx", lineNumber : 68, className : "kha.js.vr.VrInterface", methodName : "onVRRequestPresent"}); - haxe_Log.trace(err,{ fileName : "VrInterface.hx", lineNumber : 69, className : "kha.js.vr.VrInterface", methodName : "onVRRequestPresent"}); - } - } - ,onVRExitPresent: function() { - var _gthis = this; - try { - this.vrDisplay.exitPresent([{ source : kha_SystemImpl.khanvas}]).then(function() { - _gthis.onResize(); - }); - } catch( err ) { - if (err instanceof js__$Boot_HaxeError) err = err.val; - haxe_Log.trace("Failed to exitPresent.",{ fileName : "VrInterface.hx", lineNumber : 79, className : "kha.js.vr.VrInterface", methodName : "onVRExitPresent"}); - haxe_Log.trace(err,{ fileName : "VrInterface.hx", lineNumber : 80, className : "kha.js.vr.VrInterface", methodName : "onVRExitPresent"}); - } - } - ,onResetPose: function() { - try { - this.vrDisplay.resetPose(); - } catch( err ) { - if (err instanceof js__$Boot_HaxeError) err = err.val; - haxe_Log.trace("Failed to resetPose",{ fileName : "VrInterface.hx", lineNumber : 88, className : "kha.js.vr.VrInterface", methodName : "onResetPose"}); - haxe_Log.trace(err,{ fileName : "VrInterface.hx", lineNumber : 89, className : "kha.js.vr.VrInterface", methodName : "onResetPose"}); - } - } - ,onAnimationFrame: function(timestamp) { - if(this.vrDisplay != null && this.vrDisplay.isPresenting) { - this.vrDisplay.requestAnimationFrame($bind(this,this.onAnimationFrame)); - this.vrDisplay.getFrameData(this.frameData); - this.leftProjectionMatrix = this.createMatrixFromArray(this.frameData.leftProjectionMatrix); - this.leftViewMatrix = this.createMatrixFromArray(this.frameData.leftViewMatrix); - this.rightProjectionMatrix = this.createMatrixFromArray(this.frameData.rightProjectionMatrix); - this.rightViewMatrix = this.createMatrixFromArray(this.frameData.rightViewMatrix); - this.vrDisplay.submitFrame(); - } - } - ,onResize: function() { - if(this.vrDisplay != null && this.vrDisplay.isPresenting) { - kha_SystemImpl.khanvas.width = this.vrWidth; - kha_SystemImpl.khanvas.height = this.vrHeight; - } else { - kha_SystemImpl.khanvas.width = this.width; - kha_SystemImpl.khanvas.height = this.height; - } - } - ,GetSensorState: function() { - return this.GetPredictedSensorState(0.0); - } - ,GetPredictedSensorState: function(time) { - var result = new kha_vr_SensorState(); - result.Predicted = new kha_vr_PoseState(); - result.Recorded = result.Predicted; - result.Predicted.AngularAcceleration = new kha_math_Vector3(); - result.Predicted.AngularVelocity = new kha_math_Vector3(); - result.Predicted.LinearAcceleration = new kha_math_Vector3(); - result.Predicted.LinearVelocity = new kha_math_Vector3(); - result.Predicted.TimeInSeconds = time; - result.Predicted.Pose = new kha_vr_Pose(); - result.Predicted.Pose.Orientation = new kha_math_Quaternion(); - result.Predicted.Pose.Position = new kha_math_Vector3(); - var mPose = this.frameData.pose; - if(mPose != null) { - result.Predicted.AngularVelocity = this.createVectorFromArray(mPose.angularVelocity); - result.Predicted.AngularAcceleration = this.createVectorFromArray(mPose.angularAcceleration); - result.Predicted.LinearVelocity = this.createVectorFromArray(mPose.linearVelocity); - result.Predicted.LinearAcceleration = this.createVectorFromArray(mPose.linearAcceleration); - result.Predicted.Pose.Orientation = this.createQuaternion(mPose.orientation); - result.Predicted.Pose.Position = this.createVectorFromArray(mPose.position); - } - return result; - } - ,WarpSwapBlack: function() { - } - ,WarpSwapLoadingIcon: function() { - } - ,WarpSwap: function(parms) { - } - ,IsPresenting: function() { - if(this.vrDisplay != null) { - return this.vrDisplay.isPresenting; - } - return false; - } - ,IsVrEnabled: function() { - return this.vrEnabled; - } - ,GetTimeInSeconds: function() { - return kha_Scheduler.time(); - } - ,GetProjectionMatrix: function(eye) { - if(eye == 0) { - return this.leftProjectionMatrix; - } else { - return this.rightProjectionMatrix; - } - } - ,GetViewMatrix: function(eye) { - if(eye == 0) { - return this.leftViewMatrix; - } else { - return this.rightViewMatrix; - } - } - ,createMatrixFromArray: function(array) { - var matrix = new kha_math_FastMatrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1); - matrix._00 = array[0]; - matrix._01 = array[1]; - matrix._02 = array[2]; - matrix._03 = array[3]; - matrix._10 = array[4]; - matrix._11 = array[5]; - matrix._12 = array[6]; - matrix._13 = array[7]; - matrix._20 = array[8]; - matrix._21 = array[9]; - matrix._22 = array[10]; - matrix._23 = array[11]; - matrix._30 = array[12]; - matrix._31 = array[13]; - matrix._32 = array[14]; - matrix._33 = array[15]; - return matrix; - } - ,createVectorFromArray: function(array) { - var vector = new kha_math_Vector3(0,0,0); - if(array != null) { - vector.x = array[0]; - vector.y = array[1]; - vector.z = array[2]; - } - return vector; - } - ,createQuaternion: function(array) { - var quaternion = new kha_math_Quaternion(0,0,0,0); - if(array != null) { - quaternion.set_x(array[0]); - quaternion.set_y(array[1]); - quaternion.set_z(array[2]); - quaternion.set_w(array[3]); - } - return quaternion; - } - ,__class__: kha_js_vr_VrInterface -}); -var kha_math_FastMatrix3 = function(_00,_10,_20,_01,_11,_21,_02,_12,_22) { - this._00 = _00; - this._10 = _10; - this._20 = _20; - this._01 = _01; - this._11 = _11; - this._21 = _21; - this._02 = _02; - this._12 = _12; - this._22 = _22; -}; -$hxClasses["kha.math.FastMatrix3"] = kha_math_FastMatrix3; -kha_math_FastMatrix3.__name__ = true; -kha_math_FastMatrix3.fromMatrix3 = function(m) { - return new kha_math_FastMatrix3(m._00,m._10,m._20,m._01,m._11,m._21,m._02,m._12,m._22); -}; -kha_math_FastMatrix3.prototype = { - _00: null - ,_10: null - ,_20: null - ,_01: null - ,_11: null - ,_21: null - ,_02: null - ,_12: null - ,_22: null - ,__class__: kha_math_FastMatrix3 -}; -var kha_math_FastMatrix4 = function(_00,_10,_20,_30,_01,_11,_21,_31,_02,_12,_22,_32,_03,_13,_23,_33) { - this._00 = _00; - this._10 = _10; - this._20 = _20; - this._30 = _30; - this._01 = _01; - this._11 = _11; - this._21 = _21; - this._31 = _31; - this._02 = _02; - this._12 = _12; - this._22 = _22; - this._32 = _32; - this._03 = _03; - this._13 = _13; - this._23 = _23; - this._33 = _33; -}; -$hxClasses["kha.math.FastMatrix4"] = kha_math_FastMatrix4; -kha_math_FastMatrix4.__name__ = true; -kha_math_FastMatrix4.fromMatrix4 = function(m) { - return new kha_math_FastMatrix4(m._00,m._10,m._20,m._30,m._01,m._11,m._21,m._31,m._02,m._12,m._22,m._32,m._03,m._13,m._23,m._33); -}; -kha_math_FastMatrix4.orthogonalProjection = function(left,right,bottom,top,zn,zf) { - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(zf + zn) / (zf - zn); - return new kha_math_FastMatrix4(2 / (right - left),0,0,tx,0,2 / (top - bottom),0,ty,0,0,-2 / (zf - zn),tz,0,0,0,1); -}; -kha_math_FastMatrix4.perspectiveProjection = function(fovY,aspect,zn,zf) { - var uh = 1.0 / Math.tan(fovY / 2); - var uw = uh / aspect; - return new kha_math_FastMatrix4(uw,0,0,0,0,uh,0,0,0,0,(zf + zn) / (zn - zf),2 * zf * zn / (zn - zf),0,0,-1,0); -}; -kha_math_FastMatrix4.lookAt = function(eye,at,up) { - var zaxis = new kha_math_FastVector3(at.x - eye.x,at.y - eye.y,at.z - eye.z); - zaxis.set_length(1); - var _x = zaxis.y * up.z - zaxis.z * up.y; - var _y = zaxis.z * up.x - zaxis.x * up.z; - var _z = zaxis.x * up.y - zaxis.y * up.x; - var xaxis = new kha_math_FastVector3(_x,_y,_z); - xaxis.set_length(1); - var yaxis_z; - var yaxis_y; - var yaxis_x; - var _x1 = xaxis.y * zaxis.z - xaxis.z * zaxis.y; - var _y1 = xaxis.z * zaxis.x - xaxis.x * zaxis.z; - var _z1 = xaxis.x * zaxis.y - xaxis.y * zaxis.x; - yaxis_x = _x1; - yaxis_y = _y1; - yaxis_z = _z1; - return new kha_math_FastMatrix4(xaxis.x,xaxis.y,xaxis.z,-(xaxis.x * eye.x + xaxis.y * eye.y + xaxis.z * eye.z),yaxis_x,yaxis_y,yaxis_z,-(yaxis_x * eye.x + yaxis_y * eye.y + yaxis_z * eye.z),-zaxis.x,-zaxis.y,-zaxis.z,zaxis.x * eye.x + zaxis.y * eye.y + zaxis.z * eye.z,0,0,0,1); -}; -kha_math_FastMatrix4.prototype = { - _00: null - ,_10: null - ,_20: null - ,_30: null - ,_01: null - ,_11: null - ,_21: null - ,_31: null - ,_02: null - ,_12: null - ,_22: null - ,_32: null - ,_03: null - ,_13: null - ,_23: null - ,_33: null - ,__class__: kha_math_FastMatrix4 -}; -var kha_math_FastVector2 = function(x,y) { - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; -}; -$hxClasses["kha.math.FastVector2"] = kha_math_FastVector2; -kha_math_FastVector2.__name__ = true; -kha_math_FastVector2.fromVector2 = function(v) { - return new kha_math_FastVector2(v.x,v.y); -}; -kha_math_FastVector2.prototype = { - x: null - ,y: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - return length; - } - ,toString: function() { - return "FastVector2(" + this.x + ", " + this.y + ")"; - } - ,__class__: kha_math_FastVector2 -}; -var kha_math_FastVector3 = function(x,y,z) { - if(z == null) { - z = 0; - } - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; - this.z = z; -}; -$hxClasses["kha.math.FastVector3"] = kha_math_FastVector3; -kha_math_FastVector3.__name__ = true; -kha_math_FastVector3.fromVector3 = function(v) { - return new kha_math_FastVector3(v.x,v.y,v.z); -}; -kha_math_FastVector3.prototype = { - x: null - ,y: null - ,z: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - this.z *= mul; - return length; - } - ,toString: function() { - return "FastVector3(" + this.x + ", " + this.y + ", " + this.z + ")"; - } - ,__class__: kha_math_FastVector3 -}; -var kha_math_FastVector4 = function(x,y,z,w) { - if(w == null) { - w = 1; - } - if(z == null) { - z = 0; - } - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; - this.z = z; - this.w = w; -}; -$hxClasses["kha.math.FastVector4"] = kha_math_FastVector4; -kha_math_FastVector4.__name__ = true; -kha_math_FastVector4.fromVector4 = function(v) { - return new kha_math_FastVector4(v.x,v.y,v.z,v.w); -}; -kha_math_FastVector4.prototype = { - x: null - ,y: null - ,z: null - ,w: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - this.z *= mul; - this.w *= mul; - return length; - } - ,toString: function() { - return "FastVector4(" + this.x + ", " + this.y + ", " + this.z + ", " + this.w + ")"; - } - ,__class__: kha_math_FastVector4 -}; -var kha_math_Matrix3 = function(_00,_10,_20,_01,_11,_21,_02,_12,_22) { - this._00 = _00; - this._10 = _10; - this._20 = _20; - this._01 = _01; - this._11 = _11; - this._21 = _21; - this._02 = _02; - this._12 = _12; - this._22 = _22; -}; -$hxClasses["kha.math.Matrix3"] = kha_math_Matrix3; -kha_math_Matrix3.__name__ = true; -kha_math_Matrix3.prototype = { - _00: null - ,_10: null - ,_20: null - ,_01: null - ,_11: null - ,_21: null - ,_02: null - ,_12: null - ,_22: null - ,__class__: kha_math_Matrix3 -}; -var kha_math_Matrix4 = function(_00,_10,_20,_30,_01,_11,_21,_31,_02,_12,_22,_32,_03,_13,_23,_33) { - this._00 = _00; - this._10 = _10; - this._20 = _20; - this._30 = _30; - this._01 = _01; - this._11 = _11; - this._21 = _21; - this._31 = _31; - this._02 = _02; - this._12 = _12; - this._22 = _22; - this._32 = _32; - this._03 = _03; - this._13 = _13; - this._23 = _23; - this._33 = _33; -}; -$hxClasses["kha.math.Matrix4"] = kha_math_Matrix4; -kha_math_Matrix4.__name__ = true; -kha_math_Matrix4.orthogonalProjection = function(left,right,bottom,top,zn,zf) { - var tx = -(right + left) / (right - left); - var ty = -(top + bottom) / (top - bottom); - var tz = -(zf + zn) / (zf - zn); - return new kha_math_Matrix4(2 / (right - left),0,0,tx,0,2 / (top - bottom),0,ty,0,0,-2 / (zf - zn),tz,0,0,0,1); -}; -kha_math_Matrix4.perspectiveProjection = function(fovY,aspect,zn,zf) { - var uh = 1.0 / Math.tan(fovY / 2); - var uw = uh / aspect; - return new kha_math_Matrix4(uw,0,0,0,0,uh,0,0,0,0,(zf + zn) / (zn - zf),2 * zf * zn / (zn - zf),0,0,-1,0); -}; -kha_math_Matrix4.lookAt = function(eye,at,up) { - var zaxis = new kha_math_Vector3(at.x - eye.x,at.y - eye.y,at.z - eye.z); - zaxis.set_length(1); - var _x = zaxis.y * up.z - zaxis.z * up.y; - var _y = zaxis.z * up.x - zaxis.x * up.z; - var _z = zaxis.x * up.y - zaxis.y * up.x; - var xaxis = new kha_math_Vector3(_x,_y,_z); - xaxis.set_length(1); - var yaxis_z; - var yaxis_y; - var yaxis_x; - var _x1 = xaxis.y * zaxis.z - xaxis.z * zaxis.y; - var _y1 = xaxis.z * zaxis.x - xaxis.x * zaxis.z; - var _z1 = xaxis.x * zaxis.y - xaxis.y * zaxis.x; - yaxis_x = _x1; - yaxis_y = _y1; - yaxis_z = _z1; - return new kha_math_Matrix4(xaxis.x,xaxis.y,xaxis.z,-(xaxis.x * eye.x + xaxis.y * eye.y + xaxis.z * eye.z),yaxis_x,yaxis_y,yaxis_z,-(yaxis_x * eye.x + yaxis_y * eye.y + yaxis_z * eye.z),-zaxis.x,-zaxis.y,-zaxis.z,zaxis.x * eye.x + zaxis.y * eye.y + zaxis.z * eye.z,0,0,0,1); -}; -kha_math_Matrix4.prototype = { - _00: null - ,_10: null - ,_20: null - ,_30: null - ,_01: null - ,_11: null - ,_21: null - ,_31: null - ,_02: null - ,_12: null - ,_22: null - ,_32: null - ,_03: null - ,_13: null - ,_23: null - ,_33: null - ,__class__: kha_math_Matrix4 -}; -var kha_math_Quaternion = function(x,y,z,w) { - if(w == null) { - w = 1; - } - if(z == null) { - z = 0; - } - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.values = []; - this.values.push(x); - this.values.push(y); - this.values.push(z); - this.values.push(w); -}; -$hxClasses["kha.math.Quaternion"] = kha_math_Quaternion; -kha_math_Quaternion.__name__ = true; -kha_math_Quaternion.fromAxisAngle = function(axis,radians) { - var q = new kha_math_Quaternion(); - q.set_w(Math.cos(radians / 2.0)); - q.set_x(q.set_y(q.set_z(Math.sin(radians / 2.0)))); - var _g = q; - _g.set_x(_g.get_x() * axis.x); - var _g1 = q; - _g1.set_y(_g1.get_y() * axis.y); - var _g2 = q; - _g2.set_z(_g2.get_z() * axis.z); - return q; -}; -kha_math_Quaternion.prototype = { - values: null - ,slerp: function(t,q) { - var epsilon = 0.0005; - var dot = this.dot(q); - if(dot > 1 - epsilon) { - var result = q.add(this.sub(q).scaled(t)); - result.normalize(); - return result; - } - if(dot < 0) { - dot = 0; - } - if(dot > 1) { - dot = 1; - } - var theta0 = Math.acos(dot); - var theta = theta0 * t; - var q2 = q.sub(this.scaled(dot)); - q2.normalize(); - var result1 = this.scaled(Math.cos(theta)).add(q2.scaled(Math.sin(theta))); - result1.normalize(); - return result1; - } - ,rotated: function(b) { - var q = new kha_math_Quaternion(); - q.set_w(this.get_w() * b.get_w() - this.get_x() * b.get_x() - this.get_y() * b.get_y() - this.get_z() * b.get_z()); - q.set_x(this.get_w() * b.get_x() + this.get_x() * b.get_w() + this.get_y() * b.get_z() - this.get_z() * b.get_y()); - q.set_y(this.get_w() * b.get_y() + this.get_y() * b.get_w() + this.get_z() * b.get_x() - this.get_x() * b.get_z()); - q.set_z(this.get_w() * b.get_z() + this.get_z() * b.get_w() + this.get_x() * b.get_y() - this.get_y() * b.get_x()); - q.normalize(); - return q; - } - ,scaled: function(scale) { - return new kha_math_Quaternion(this.get_x() * scale,this.get_y() * scale,this.get_z() * scale,this.get_w() * scale); - } - ,scale: function(scale) { - this.set_x(this.get_x() * scale); - this.set_y(this.get_y() * scale); - this.set_z(this.get_z() * scale); - this.set_w(this.get_w() * scale); - } - ,matrix: function() { - var s = 2.0; - var xs = this.get_x() * s; - var ys = this.get_y() * s; - var zs = this.get_z() * s; - var wx = this.get_w() * xs; - var wy = this.get_w() * ys; - var wz = this.get_w() * zs; - var xx = this.get_x() * xs; - var xy = this.get_x() * ys; - var xz = this.get_x() * zs; - var yy = this.get_y() * ys; - var yz = this.get_y() * zs; - var zz = this.get_z() * zs; - return new kha_math_Matrix4(1 - (yy + zz),xy - wz,xz + wy,0,xy + wz,1 - (xx + zz),yz - wx,0,xz - wy,yz + wx,1 - (xx + yy),0,0,0,0,1); - } - ,get: function(index) { - return this.values[index]; - } - ,set: function(index,value) { - this.values[index] = value; - } - ,get_x: function() { - return this.values[0]; - } - ,set_x: function(value) { - return this.values[0] = value; - } - ,get_y: function() { - return this.values[1]; - } - ,set_y: function(value) { - return this.values[1] = value; - } - ,get_z: function() { - return this.values[2]; - } - ,set_z: function(value) { - return this.values[2] = value; - } - ,get_w: function() { - return this.values[3]; - } - ,set_w: function(value) { - return this.values[3] = value; - } - ,get_length: function() { - return Math.sqrt(this.get_x() * this.get_x() + this.get_y() * this.get_y() + this.get_z() * this.get_z() + this.get_w() * this.get_w()); - } - ,set_length: function(length) { - if(this.get_length() == 0) { - return 0; - } - var mul = length / this.get_length(); - var _g = this; - _g.set_x(_g.get_x() * mul); - var _g1 = this; - _g1.set_y(_g1.get_y() * mul); - var _g2 = this; - _g2.set_z(_g2.get_z() * mul); - return length; - } - ,addVector: function(vec) { - var result = new kha_math_Quaternion(this.get_x(),this.get_y(),this.get_z(),this.get_w()); - var q1 = new kha_math_Quaternion(0,vec.x,vec.y,vec.z); - q1 = q1.mult(result); - var _g = result; - _g.set_x(_g.get_x() + q1.get_x() * 0.5); - var _g1 = result; - _g1.set_y(_g1.get_y() + q1.get_y() * 0.5); - var _g2 = result; - _g2.set_z(_g2.get_z() + q1.get_z() * 0.5); - var _g3 = result; - _g3.set_w(_g3.get_w() + q1.get_w() * 0.5); - return result; - } - ,add: function(q) { - return new kha_math_Quaternion(this.get_x() + q.get_x(),this.get_y() + q.get_y(),this.get_z() + q.get_z(),this.get_w() + q.get_w()); - } - ,sub: function(q) { - return new kha_math_Quaternion(this.get_x() - q.get_x(),this.get_y() - q.get_y(),this.get_z() - q.get_z(),this.get_w() - q.get_w()); - } - ,mult: function(r) { - var q = new kha_math_Quaternion(); - q.set_x(this.get_w() * r.get_x() + this.get_x() * r.get_w() + this.get_y() * r.get_z() - this.get_z() * r.get_y()); - q.set_y(this.get_w() * r.get_y() - this.get_x() * r.get_z() + this.get_y() * r.get_w() + this.get_z() * r.get_x()); - q.set_z(this.get_w() * r.get_z() + this.get_x() * r.get_y() - this.get_y() * r.get_x() + this.get_z() * r.get_w()); - q.set_w(this.get_w() * r.get_w() - this.get_x() * r.get_x() - this.get_y() * r.get_y() - this.get_z() * r.get_z()); - return q; - } - ,normalize: function() { - this.scale(1.0 / this.get_length()); - } - ,dot: function(q) { - return this.get_x() * q.get_x() + this.get_y() * q.get_y() + this.get_z() * q.get_z() + this.get_w() * q.get_w(); - } - ,getEulerAngles: function(A1,A2,A3,S,D) { - if(D == null) { - D = 1; - } - if(S == null) { - S = 1; - } - var result = new kha_math_Vector3(); - var Q = []; - Q[0] = this.get_x(); - Q[1] = this.get_y(); - Q[2] = this.get_z(); - var ww = this.get_w() * this.get_w(); - var Q11 = Q[A1] * Q[A1]; - var Q22 = Q[A2] * Q[A2]; - var Q33 = Q[A3] * Q[A3]; - var psign = -1; - var SingularityRadius = 0.0000001; - var PiOver2 = Math.PI / 2.0; - if((A1 + 1) % 3 == A2 && (A2 + 1) % 3 == A3) { - psign = 1; - } - var s2 = psign * 2.0 * (psign * this.get_w() * Q[A2] + Q[A1] * Q[A3]); - if(s2 < -1 + SingularityRadius) { - result.x = 0; - result.y = -S * D * PiOver2; - result.z = S * D * Math.atan2(2 * (psign * Q[A1] * Q[A2] + this.get_w() * Q[A3]),ww + Q22 - Q11 - Q33); - } else if(s2 > 1 - SingularityRadius) { - result.x = 0; - result.y = S * D * PiOver2; - result.z = S * D * Math.atan2(2 * (psign * Q[A1] * Q[A2] + this.get_w() * Q[A3]),ww + Q22 - Q11 - Q33); - } else { - result.x = -S * D * Math.atan2(-2 * (this.get_w() * Q[A1] - psign * Q[A2] * Q[A3]),ww + Q33 - Q11 - Q22); - result.y = S * D * Math.asin(s2); - result.z = S * D * Math.atan2(2 * (this.get_w() * Q[A3] - psign * Q[A1] * Q[A2]),ww + Q11 - Q22 - Q33); - } - return result; - } - ,__class__: kha_math_Quaternion -}; -var kha_math_Vector2 = function(x,y) { - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; -}; -$hxClasses["kha.math.Vector2"] = kha_math_Vector2; -kha_math_Vector2.__name__ = true; -kha_math_Vector2.prototype = { - x: null - ,y: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - return length; - } - ,__class__: kha_math_Vector2 -}; -var kha_math_Vector3 = function(x,y,z) { - if(z == null) { - z = 0; - } - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; - this.z = z; -}; -$hxClasses["kha.math.Vector3"] = kha_math_Vector3; -kha_math_Vector3.__name__ = true; -kha_math_Vector3.prototype = { - x: null - ,y: null - ,z: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - this.z *= mul; - return length; - } - ,__class__: kha_math_Vector3 -}; -var kha_math_Vector4 = function(x,y,z,w) { - if(w == null) { - w = 1; - } - if(z == null) { - z = 0; - } - if(y == null) { - y = 0; - } - if(x == null) { - x = 0; - } - this.x = x; - this.y = y; - this.z = z; - this.w = w; -}; -$hxClasses["kha.math.Vector4"] = kha_math_Vector4; -kha_math_Vector4.__name__ = true; -kha_math_Vector4.prototype = { - x: null - ,y: null - ,z: null - ,w: null - ,get_length: function() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); - } - ,set_length: function(length) { - var currentLength = this.get_length(); - if(currentLength == 0) { - return 0; - } - var mul = length / currentLength; - this.x *= mul; - this.y *= mul; - this.z *= mul; - this.w *= mul; - return length; - } - ,__class__: kha_math_Vector4 -}; -var kha_network_Client = function() { }; -$hxClasses["kha.network.Client"] = kha_network_Client; -kha_network_Client.__name__ = true; -kha_network_Client.prototype = { - get_id: null - ,id: null - ,send: null - ,receive: null - ,onClose: null - ,__class__: kha_network_Client -}; -var kha_network_ControllerBuilder = function() { }; -$hxClasses["kha.network.ControllerBuilder"] = kha_network_ControllerBuilder; -kha_network_ControllerBuilder.__name__ = true; -var kha_network_Entity = function() { }; -$hxClasses["kha.network.Entity"] = kha_network_Entity; -kha_network_Entity.__name__ = true; -kha_network_Entity.prototype = { - _id: null - ,_size: null - ,_send: null - ,_receive: null - ,__class__: kha_network_Entity -}; -var kha_network_LocalClient = function(id) { - this.myId = id; -}; -$hxClasses["kha.network.LocalClient"] = kha_network_LocalClient; -kha_network_LocalClient.__name__ = true; -kha_network_LocalClient.__interfaces__ = [kha_network_Client]; -kha_network_LocalClient.prototype = { - myId: null - ,send: function(bytes,mandatory) { - } - ,receive: function(receiver) { - } - ,onClose: function(close) { - } - ,controllers: null - ,get_controllers: function() { - return null; - } - ,id: null - ,get_id: function() { - return this.myId; - } - ,__class__: kha_network_LocalClient -}; -var kha_network_Network = function(url,port,errorCallback,closeCallback) { - this.open = false; - var _gthis = this; - this.socket = new WebSocket("ws://" + url + ":" + port); - this.socket.onerror = function(error) { - haxe_Log.trace("Network error: " + error,{ fileName : "Network.hx", lineNumber : 14, className : "kha.network.Network", methodName : "new"}); - errorCallback(); - }; - this.socket.binaryType = "arraybuffer"; - this.socket.onopen = function() { - _gthis.open = true; - }; - this.socket.onclose = function(event) { - haxe_Log.trace("Network connection closed",{ fileName : "Network.hx", lineNumber : 22, className : "kha.network.Network", methodName : "new"}); - closeCallback(); - }; -}; -$hxClasses["kha.network.Network"] = kha_network_Network; -kha_network_Network.__name__ = true; -kha_network_Network.prototype = { - socket: null - ,open: null - ,send: function(bytes,mandatory) { - if(this.open) { - this.socket.send(bytes.b.bufferValue); - } - } - ,listen: function(listener) { - this.socket.onmessage = function(message) { - var tmp = haxe_io_Bytes.ofData(message.data); - listener(tmp); - }; - } - ,__class__: kha_network_Network -}; -var kha_network_State = function(time,data) { - this.time = time; - this.data = data; -}; -$hxClasses["kha.network.State"] = kha_network_State; -kha_network_State.__name__ = true; -kha_network_State.prototype = { - time: null - ,data: null - ,__class__: kha_network_State -}; -var kha_network_Session = function(maxPlayers,address,port) { - this.ping = 1; - this.currentPlayers = 0; - this.controllers = new haxe_ds_IntMap(); - this.entities = new haxe_ds_IntMap(); - kha_network_Session.instance = this; - this.maxPlayers = maxPlayers; - this.address = address; - this.port = port; -}; -$hxClasses["kha.network.Session"] = kha_network_Session; -kha_network_Session.__name__ = true; -kha_network_Session.the = function() { - return kha_network_Session.instance; -}; -kha_network_Session.prototype = { - entities: null - ,controllers: null - ,maxPlayers: null - ,currentPlayers: null - ,ping: null - ,address: null - ,port: null - ,startCallback: null - ,refusedCallback: null - ,resetCallback: null - ,localClient: null - ,network: null - ,updateTaskId: null - ,pingTaskId: null - ,me: null - ,get_me: function() { - return this.localClient; - } - ,addEntity: function(entity) { - var this1 = this.entities; - var key = entity._id(); - this1.h[key] = entity; - } - ,addController: function(controller) { - haxe_Log.trace("Adding controller id " + controller._id(),{ fileName : "Session.hx", lineNumber : 88, className : "kha.network.Session", methodName : "addController"}); - controller._inputBufferIndex = 0; - var this1 = this.controllers; - var key = controller._id(); - this1.h[key] = controller; - } - ,sendControllerUpdate: function(id,bytes) { - if(this.controllers.h.hasOwnProperty(id)) { - if(this.controllers.h[id]._inputBuffer.length < this.controllers.h[id]._inputBufferIndex + 4 + bytes.length) { - var newBuffer = new haxe_io_Bytes(new ArrayBuffer(this.controllers.h[id]._inputBufferIndex + 4 + bytes.length)); - newBuffer.blit(0,this.controllers.h[id]._inputBuffer,0,this.controllers.h[id]._inputBufferIndex); - this.controllers.h[id]._inputBuffer = newBuffer; - } - this.controllers.h[id]._inputBuffer.setInt32(this.controllers.h[id]._inputBufferIndex,bytes.length); - this.controllers.h[id]._inputBuffer.blit(this.controllers.h[id]._inputBufferIndex + 4,bytes,0,bytes.length); - this.controllers.h[id]._inputBufferIndex += 4 + bytes.length; - } - } - ,sendPing: function() { - var bytes = new haxe_io_Bytes(new ArrayBuffer(5)); - bytes.b[0] = 4; - bytes.setFloat(1,kha_Scheduler.realTime()); - this.sendToServer(bytes); - } - ,sendPlayerUpdate: function() { - } - ,receive: function(bytes,client) { - var _g = bytes.b[0]; - switch(_g) { - case 0: - var index = bytes.b[1]; - this.localClient = new kha_network_LocalClient(index); - kha_Scheduler.resetTime(); - this.startCallback(); - break; - case 1: - var time = bytes.getDouble(1); - var offset = 9; - var entity = this.entities.iterator(); - while(entity.hasNext()) { - var entity1 = entity.next(); - entity1._receive(offset,bytes); - offset += entity1._size(); - } - kha_Scheduler.back(time); - break; - case 3: - var _g1 = bytes.b[1]; - switch(_g1) { - case 0: - break; - case 1: - this.executeRPC(bytes); - break; - } - break; - case 4: - var sendTime = bytes.getFloat(1); - this.ping = kha_Scheduler.realTime() - sendTime; - break; - case 5: - this.refusedCallback(); - break; - case 6: - this.currentPlayers = bytes.getInt32(1); - break; - } - } - ,executeRPC: function(bytes) { - var args = []; - var syncId = bytes.getInt32(2); - var index = 6; - var classnamelength = bytes.getUInt16(index); - index += 2; - var classname = ""; - var _g1 = 0; - var _g = classnamelength; - while(_g1 < _g) { - var i = _g1++; - classname += String.fromCharCode(bytes.b[index]); - ++index; - } - var methodnamelength = bytes.getUInt16(index); - index += 2; - var methodname = ""; - var _g11 = 0; - var _g2 = methodnamelength; - while(_g11 < _g2) { - var i1 = _g11++; - methodname += String.fromCharCode(bytes.b[index]); - ++index; - } - while(index < bytes.length) { - var type = bytes.b[index]; - ++index; - switch(type) { - case 66: - var value = bytes.b[index] == 1; - ++index; - haxe_Log.trace("Bool: " + (value == null ? "null" : "" + value),{ fileName : "Session.hx", lineNumber : 288, className : "kha.network.Session", methodName : "executeRPC"}); - args.push(value); - break; - case 70: - var value1 = bytes.getDouble(index); - index += 8; - haxe_Log.trace("Float: " + value1,{ fileName : "Session.hx", lineNumber : 293, className : "kha.network.Session", methodName : "executeRPC"}); - args.push(value1); - break; - case 73: - var value2 = bytes.getInt32(index); - index += 4; - haxe_Log.trace("Int: " + value2,{ fileName : "Session.hx", lineNumber : 298, className : "kha.network.Session", methodName : "executeRPC"}); - args.push(value2); - break; - case 83: - var length = bytes.getUInt16(index); - index += 2; - var str = ""; - var _g12 = 0; - var _g3 = length; - while(_g12 < _g3) { - var i2 = _g12++; - str += String.fromCharCode(bytes.b[index]); - ++index; - } - haxe_Log.trace("String: " + str,{ fileName : "Session.hx", lineNumber : 308, className : "kha.network.Session", methodName : "executeRPC"}); - args.push(str); - break; - default: - haxe_Log.trace("Unknown argument type.",{ fileName : "Session.hx", lineNumber : 311, className : "kha.network.Session", methodName : "executeRPC"}); - } - } - if(syncId == -1) { - Reflect.field(Type.resolveClass(classname),methodname + "_remotely").apply(null,args); - } else { - var o = kha_network_SyncBuilder.objects[syncId]; - Reflect.field(kha_network_SyncBuilder.objects[syncId],methodname + "_remotely").apply(o,args); - } - } - ,waitForStart: function(callback,refuseCallback,errorCallback,closeCallback,resCallback) { - var _gthis = this; - this.startCallback = callback; - this.refusedCallback = refuseCallback; - this.resetCallback = resCallback; - this.network = new kha_network_Network(this.address,this.port,errorCallback,function() { - closeCallback(); - _gthis.reset(); - }); - this.network.listen(function(bytes) { - _gthis.receive(bytes); - }); - this.updateTaskId = kha_Scheduler.addFrameTask($bind(this,this.update),0); - this.ping = 1; - this.pingTaskId = kha_Scheduler.addTimeTask($bind(this,this.sendPing),0,1); - } - ,reset: function() { - kha_Scheduler.removeFrameTask(this.updateTaskId); - kha_Scheduler.removeTimeTask(this.pingTaskId); - this.currentPlayers = 0; - this.ping = 1; - this.controllers = new haxe_ds_IntMap(); - this.entities = new haxe_ds_IntMap(); - this.resetCallback(); - } - ,update: function() { - var controller = this.controllers.iterator(); - while(controller.hasNext()) { - var controller1 = controller.next(); - if(controller1._inputBufferIndex > 0) { - var bytes = new haxe_io_Bytes(new ArrayBuffer(22 + controller1._inputBufferIndex)); - bytes.b[0] = 2; - bytes.setInt32(1,controller1._id()); - bytes.setDouble(5,kha_Scheduler.realTime()); - bytes.setInt32(13,kha_System.windowWidth(0)); - bytes.setInt32(17,kha_System.windowHeight(0)); - var v = kha_System.get_screenRotation()[1]; - bytes.b[21] = v & 255; - bytes.blit(22,controller1._inputBuffer,0,controller1._inputBufferIndex); - this.sendToServer(bytes); - controller1._inputBufferIndex = 0; - } - } - } - ,sendToServer: function(bytes) { - this.network.send(bytes,false); - } - ,__class__: kha_network_Session -}; -var kha_network_SyncBuilder = function() { }; -$hxClasses["kha.network.SyncBuilder"] = kha_network_SyncBuilder; -kha_network_SyncBuilder.__name__ = true; -var kha_simd_Float32x4 = function(_0,_1,_2,_3) { - this._0 = _0; - this._1 = _1; - this._2 = _2; - this._3 = _3; -}; -$hxClasses["kha.simd.Float32x4"] = kha_simd_Float32x4; -kha_simd_Float32x4.__name__ = true; -kha_simd_Float32x4.create = function() { - return new kha_simd_Float32x4(0,0,0,0); -}; -kha_simd_Float32x4.loadAllFast = function(t) { - return new kha_simd_Float32x4(t,t,t,t); -}; -kha_simd_Float32x4.load = function(a,b,c,d) { - return new kha_simd_Float32x4(a,b,c,d); -}; -kha_simd_Float32x4.loadFast = function(a,b,c,d) { - return new kha_simd_Float32x4(a,b,c,d); -}; -kha_simd_Float32x4.get = function(t,index) { - var value = 0; - switch(index) { - case 0: - value = t._0; - break; - case 1: - value = t._1; - break; - case 2: - value = t._2; - break; - case 3: - value = t._3; - break; - } - return value; -}; -kha_simd_Float32x4.getFast = function(t,index) { - switch(index) { - case 0: - return t._0; - case 1: - return t._1; - case 2: - return t._2; - case 3: - return t._3; - } - return 0; -}; -kha_simd_Float32x4.abs = function(t) { - return new kha_simd_Float32x4(Math.abs(t._0),Math.abs(t._1),Math.abs(t._2),Math.abs(t._3)); -}; -kha_simd_Float32x4.add = function(a,b) { - return new kha_simd_Float32x4(a._0 + b._0,a._1 + b._1,a._2 + b._2,a._3 + b._3); -}; -kha_simd_Float32x4.div = function(a,b) { - return new kha_simd_Float32x4(a._0 / b._0,a._1 / b._1,a._2 / b._2,a._3 / b._3); -}; -kha_simd_Float32x4.mul = function(a,b) { - return new kha_simd_Float32x4(a._0 * b._0,a._1 * b._1,a._2 * b._2,a._3 * b._3); -}; -kha_simd_Float32x4.neg = function(t) { - return new kha_simd_Float32x4(-t._0,-t._1,-t._2,-t._3); -}; -kha_simd_Float32x4.reciprocalApproximation = function(t) { - return new kha_simd_Float32x4(0,0,0,0); -}; -kha_simd_Float32x4.reciprocalSqrtApproximation = function(t) { - return new kha_simd_Float32x4(0,0,0,0); -}; -kha_simd_Float32x4.sub = function(a,b) { - return new kha_simd_Float32x4(a._0 - b._0,a._1 - b._1,a._2 - b._2,a._3 - b._3); -}; -kha_simd_Float32x4.sqrt = function(t) { - return new kha_simd_Float32x4(Math.sqrt(t._0),Math.sqrt(t._1),Math.sqrt(t._2),Math.sqrt(t._3)); -}; -kha_simd_Float32x4.prototype = { - _0: null - ,_1: null - ,_2: null - ,_3: null - ,__class__: kha_simd_Float32x4 -}; -var kha_vr_Pose = function() { - this.Orientation = new kha_math_Quaternion(); - this.Position = new kha_math_Vector3(); -}; -$hxClasses["kha.vr.Pose"] = kha_vr_Pose; -kha_vr_Pose.__name__ = true; -kha_vr_Pose.prototype = { - Orientation: null - ,Position: null - ,__class__: kha_vr_Pose -}; -var kha_vr_PoseState = function() { -}; -$hxClasses["kha.vr.PoseState"] = kha_vr_PoseState; -kha_vr_PoseState.__name__ = true; -kha_vr_PoseState.prototype = { - Pose: null - ,AngularVelocity: null - ,LinearVelocity: null - ,AngularAcceleration: null - ,LinearAcceleration: null - ,TimeInSeconds: null - ,__class__: kha_vr_PoseState -}; -var kha_vr_SensorState = function() { -}; -$hxClasses["kha.vr.SensorState"] = kha_vr_SensorState; -kha_vr_SensorState.__name__ = true; -kha_vr_SensorState.prototype = { - Predicted: null - ,Recorded: null - ,Temperature: null - ,Status: null - ,__class__: kha_vr_SensorState -}; -var kha_vr_TimeWarpImage = function() { -}; -$hxClasses["kha.vr.TimeWarpImage"] = kha_vr_TimeWarpImage; -kha_vr_TimeWarpImage.__name__ = true; -kha_vr_TimeWarpImage.prototype = { - Image: null - ,TexCoordsFromTanAngles: null - ,Pose: null - ,__class__: kha_vr_TimeWarpImage -}; -var kha_vr_TimeWarpParms = function() { -}; -$hxClasses["kha.vr.TimeWarpParms"] = kha_vr_TimeWarpParms; -kha_vr_TimeWarpParms.__name__ = true; -kha_vr_TimeWarpParms.prototype = { - LeftImage: null - ,RightImage: null - ,LeftOverlay: null - ,RightOverlay: null - ,__class__: kha_vr_TimeWarpParms -}; -var zui_Canvas = function() { }; -$hxClasses["zui.Canvas"] = zui_Canvas; -zui_Canvas.__name__ = true; -zui_Canvas.draw = function(ui,canvas,g) { - ui.begin(g); - ui.g = g; - var _g = 0; - var _g1 = canvas.elements; - while(_g < _g1.length) { - var elem = _g1[_g]; - ++_g; - zui_Canvas.drawElement(ui,canvas,elem); - } - ui.end(); -}; -zui_Canvas.getAsset = function(canvas,asset) { - var _g = 0; - var _g1 = canvas.assets; - while(_g < _g1.length) { - var a = _g1[_g]; - ++_g; - if(a.name == asset) { - return a.image; - } - } - return null; -}; -zui_Canvas.drawElement = function(ui,canvas,element) { - ui._x = canvas.x + element.x; - ui._y = canvas.y + element.y; - ui._w = element.width; - var _g = element.type; - switch(_g) { - case 0: - var size = ui.fontSmallSize; - ui.fontSmallSize = element.height; - ui.text(element.text); - ui.fontSmallSize = size; - break; - case 1: - if(element.image == null) { - element.image = zui_Canvas.getAsset(canvas,element.asset); - } - if(element.image != null) { - ui.image(element.image); - } - break; - case 2: - ui.button(element.text); - break; - } - if(element.children != null) { - var _g1 = 0; - var _g2 = element.children; - while(_g1 < _g2.length) { - var c = _g2[_g1]; - ++_g1; - zui_Canvas.drawElement(ui,canvas,c); - } - } -}; -var zui_Id = function() { }; -$hxClasses["zui.Id"] = zui_Id; -zui_Id.__name__ = true; -var zui_Themes = function() { }; -$hxClasses["zui.Themes"] = zui_Themes; -zui_Themes.__name__ = true; -var zui_Zui = function(ops) { - this.textToSubmit = ""; - this.submitTextHandle = null; - this.textSelectedHandle = null; - this.scrollEnabled = true; - this.scrollingHandle = null; - this.windowEnded = true; - this.curRatio = -1; - this.cursorY = 0; - this.cursorX = 0; - this.isKeyDown = false; - this.isTyping = false; - this.isScrolling = false; - if(ops.theme == null) { - ops.theme = zui_Themes.dark; - } - this.t = ops.theme; - if(ops.khaWindowId == null) { - ops.khaWindowId = 0; - } - if(ops.scaleFactor == null) { - ops.scaleFactor = 1.0; - } - if(ops.scaleTexture == null) { - ops.scaleTexture = 1.0; - } - if(ops.autoNotifyInput == null) { - ops.autoNotifyInput = true; - } - this.ops = ops; - this.setScaleFactor(ops.scaleFactor); - if(ops.autoNotifyInput) { - kha_input_Mouse.get().notifyWindowed(ops.khaWindowId,$bind(this,this.onMouseDown),$bind(this,this.onMouseUp),$bind(this,this.onMouseMove),$bind(this,this.onMouseWheel)); - kha_input_Keyboard.get().notify($bind(this,this.onKeyDown),$bind(this,this.onKeyUp)); - } -}; -$hxClasses["zui.Zui"] = zui_Zui; -zui_Zui.__name__ = true; -zui_Zui.prototype = { - t: null - ,SCALE: null - ,isScrolling: null - ,isTyping: null - ,inputX: null - ,inputY: null - ,inputInitialX: null - ,inputInitialY: null - ,inputDX: null - ,inputDY: null - ,inputWheelDelta: null - ,inputStarted: null - ,inputReleased: null - ,inputDown: null - ,inputDownR: null - ,isKeyDown: null - ,key: null - ,'char': null - ,cursorX: null - ,cursorY: null - ,ratios: null - ,curRatio: null - ,xBeforeSplit: null - ,wBeforeSplit: null - ,globalG: null - ,g: null - ,ops: null - ,fontSize: null - ,fontSmallSize: null - ,fontOffsetY: null - ,fontSmallOffsetY: null - ,arrowOffsetX: null - ,arrowOffsetY: null - ,titleOffsetX: null - ,buttonOffsetY: null - ,checkOffsetX: null - ,checkOffsetY: null - ,checkSelectOffsetX: null - ,checkSelectOffsetY: null - ,radioOffsetX: null - ,radioOffsetY: null - ,radioSelectOffsetX: null - ,radioSelectOffsetY: null - ,scrollAlign: null - ,_x: null - ,_y: null - ,_w: null - ,_h: null - ,_windowX: null - ,_windowY: null - ,_windowW: null - ,_windowH: null - ,currentWindow: null - ,windowEnded: null - ,scrollingHandle: null - ,scrollEnabled: null - ,textSelectedHandle: null - ,textSelectedCurrentText: null - ,submitTextHandle: null - ,textToSubmit: null - ,setScaleFactor: function(scaleFactor) { - this.SCALE = this.ops.scaleFactor = scaleFactor * this.ops.scaleTexture; - this.fontSize = this.t._FONT_SIZE * this.ops.scaleFactor | 0; - this.fontSmallSize = this.t._FONT_SMALL_SIZE * this.ops.scaleFactor | 0; - var fontHeight = this.ops.font.height(this.fontSize); - var fontSmallHeight = this.ops.font.height(this.fontSmallSize); - this.fontOffsetY = (this.t._ELEMENT_H * this.SCALE - fontHeight) / 2; - this.fontSmallOffsetY = (this.t._ELEMENT_H * this.SCALE - fontSmallHeight) / 2; - this.arrowOffsetY = (this.t._ELEMENT_H * this.SCALE - this.t._ARROW_H * this.SCALE) / 2; - this.arrowOffsetX = this.arrowOffsetY; - this.titleOffsetX = (this.arrowOffsetX * 2 + this.t._ARROW_W * this.SCALE) / this.SCALE; - this.buttonOffsetY = (this.t._ELEMENT_H * this.SCALE - this.t._BUTTON_H * this.SCALE) / 2; - this.checkOffsetY = (this.t._ELEMENT_H * this.SCALE - this.t._CHECK_H * this.SCALE) / 2; - this.checkOffsetX = this.checkOffsetY; - this.checkSelectOffsetY = (this.t._CHECK_H * this.SCALE - this.t._CHECK_SELECT_H * this.SCALE) / 2; - this.checkSelectOffsetX = this.checkSelectOffsetY; - this.radioOffsetY = (this.t._ELEMENT_H * this.SCALE - this.t._RADIO_H * this.SCALE) / 2; - this.radioOffsetX = this.radioOffsetY; - this.radioSelectOffsetY = (this.t._RADIO_H * this.SCALE - this.t._RADIO_SELECT_H * this.SCALE) / 2; - this.radioSelectOffsetX = this.radioSelectOffsetY; - this.scrollAlign = 0; - } - ,bakeElements: function() { - zui_Zui.elementsBaked = true; - zui_Zui.checkSelectImage = kha_Image.createRenderTarget(this.t._CHECK_SELECT_W * this.SCALE | 0,this.t._CHECK_SELECT_H * this.SCALE | 0,null,0,1,this.ops.khaWindowId); - var g = zui_Zui.checkSelectImage.get_g2(); - g.begin(true,0); - g.set_color(this.t.CHECK_SELECT_COL); - g.drawLine(0,0,this.t._CHECK_SELECT_W * this.SCALE,this.t._CHECK_SELECT_H * this.SCALE,2); - g.drawLine(this.t._CHECK_SELECT_W * this.SCALE,0,0,this.t._CHECK_SELECT_H * this.SCALE,2); - g.end(); - } - ,remove: function() { - if(this.ops.autoNotifyInput) { - kha_input_Mouse.get().removeWindowed(this.ops.khaWindowId,$bind(this,this.onMouseDown),$bind(this,this.onMouseUp),$bind(this,this.onMouseMove),$bind(this,this.onMouseWheel)); - kha_input_Keyboard.get().remove($bind(this,this.onKeyDown),$bind(this,this.onKeyUp)); - } - } - ,begin: function(g) { - if(!zui_Zui.elementsBaked) { - this.bakeElements(); - } - this.SCALE = this.ops.scaleFactor; - this.globalG = g; - this._x = 0; - this._y = 0; - this._w = 0; - this._h = 0; - } - ,end: function() { - if(!this.windowEnded) { - this.endWindow(); - } - this.isKeyDown = false; - this.inputStarted = false; - this.inputReleased = false; - this.inputDX = 0; - this.inputDY = 0; - this.inputWheelDelta = 0; - } - ,beginLayout: function(g,x,y,w) { - this.currentWindow = null; - this.g = g; - this.SCALE = 1.0; - this._windowX = 0; - this._windowY = 0; - this._windowW = w; - this._x = x; - this._y = y; - this._w = w; - } - ,endLayout: function() { - } - ,window: function(handle,x,y,w,h,drag) { - if(drag == null) { - drag = false; - } - w = w | 0; - h = h | 0; - if(handle.texture == null || w != handle.texture.get_width() || h != handle.texture.get_height()) { - this.resize(handle,w,h,this.ops.khaWindowId); - } - if(!this.windowEnded) { - this.endWindow(); - } - this.windowEnded = false; - this.g = handle.texture.get_g2(); - this.currentWindow = handle; - this._windowX = x + handle.dragX; - this._windowY = y + handle.dragY; - this._windowW = w; - this._windowH = h; - if(this.getInputInRect(this._windowX,this._windowY,this._windowW,this._windowH)) { - handle.redraws = 2; - } - this._x = 0; - this._y = handle.scrollOffset; - if(handle.layout == 1) { - w = this.t._ELEMENT_W * this.SCALE | 0; - } - this._w = !handle.scrollEnabled ? w : w - (this.t._SCROLL_W * this.SCALE | 0); - this._h = h; - if(handle.redraws == 0 && !this.isScrolling && !this.isTyping) { - return false; - } - if(this.t.FILL_WINDOW_BG) { - this.g.begin(true,this.t.WINDOW_BG_COL); - } else { - this.g.begin(true,0); - this.g.set_color(this.t.WINDOW_BG_COL); - this.g.fillRect(this._x,this._y - handle.scrollOffset,handle.lastMaxX,handle.lastMaxY); - } - handle.dragEnabled = drag; - if(drag) { - if(this.inputStarted && this.getInputInRect(this._windowX,this._windowY,this._windowW,15)) { - handle.dragging = true; - } else if(this.inputReleased) { - handle.dragging = false; - } - if(handle.dragging) { - handle.redraws = 2; - handle.dragX += this.inputDX | 0; - handle.dragY += this.inputDY | 0; - } - this._y += 15; - } - return true; - } - ,endWindow: function() { - var handle = this.currentWindow; - if(handle.redraws > 0 || this.isScrolling || this.isTyping) { - if(handle.dragEnabled) { - this.g.set_color(this.t.SEPARATOR_COL); - this.g.fillRect(0,0,this._windowW,15); - } - var fullHeight = this._y - handle.scrollOffset; - if(fullHeight < this._windowH || handle.layout == 1 || !this.scrollEnabled) { - handle.scrollEnabled = false; - handle.scrollOffset = 0; - } else { - handle.scrollEnabled = true; - var amountToScroll = fullHeight - this._windowH; - var amountScrolled = -handle.scrollOffset; - var ratio = amountScrolled / amountToScroll; - var barH = this._windowH * Math.abs(this._windowH / fullHeight); - barH = Math.max(barH,this.t._ELEMENT_H * this.SCALE); - var totalScrollableArea = this._windowH - barH; - var e = amountToScroll / totalScrollableArea; - var barY = totalScrollableArea * ratio; - if(this.inputStarted && this.getInputInRect(this._windowX + this._windowW - this.t._SCROLL_BAR_W * this.SCALE,barY + this._windowY,this.t._SCROLL_BAR_W * this.SCALE,barH)) { - handle.scrolling = true; - this.scrollingHandle = handle; - this.isScrolling = true; - } - if(handle.scrolling) { - this.scroll(this.inputDY * e,fullHeight); - } else if(this.inputWheelDelta != 0) { - this.scroll(this.inputWheelDelta * (this.t._ELEMENT_H * this.SCALE),fullHeight); - } - if(handle.scrollOffset > 0) { - handle.scrollOffset = 0; - } else if(fullHeight + handle.scrollOffset < this._windowH) { - handle.scrollOffset = this._windowH - fullHeight; - } - this.g.set_color(this.t.SCROLL_BG_COL); - this.g.fillRect(this._windowW - (this.t._SCROLL_W * this.SCALE | 0),this._windowY,this.t._SCROLL_W * this.SCALE | 0,this._windowH); - this.g.set_color(this.t.SCROLL_COL); - this.g.drawRect(this._windowW - this.t._SCROLL_BAR_W * this.SCALE - this.scrollAlign,barY,this.t._SCROLL_BAR_W * this.SCALE,barH); - } - handle.lastMaxX = this._x; - handle.lastMaxY = this._y; - if(handle.layout == 0) { - handle.lastMaxX += this._windowW; - } else { - handle.lastMaxY += this._windowH; - } - handle.redraws--; - this.g.end(); - } - this.windowEnded = true; - this.globalG.begin(false); - this.globalG.set_color(this.t.WINDOW_TINT_COL); - this.globalG.drawScaledImage(handle.texture,this._windowX,this._windowY,handle.texture.get_width() / this.ops.scaleTexture,handle.texture.get_height() / this.ops.scaleTexture); - this.globalG.end(); - } - ,scroll: function(delta,fullHeight) { - this.currentWindow.scrollOffset -= delta; - } - ,panel: function(handle,text,accent) { - if(accent == null) { - accent = 0; - } - if(!this.isVisible()) { - this.endElement(); - return handle.selected; - } - if(this.getReleased()) { - handle.selected = !handle.selected; - } - var hover = this.getHover(); - if(accent > 0) { - this.g.set_color(accent == 1 ? this.t.PANEL_BG1_COL : this.t.PANEL_BG2_COL); - this.g.fillRect(this._x,this._y,this._w,this.t._ELEMENT_H * this.SCALE); - } - this.drawArrow(handle.selected,hover); - this.g.set_color(hover ? this.t.PANEL_TEXT_COL_HOVER : this.t.PANEL_TEXT_COL); - this.g.set_opacity(1.0); - if(accent > 0) { - this.drawString(this.g,text,this.titleOffsetX,0); - } else { - this.drawStringSmall(this.g,text,this.titleOffsetX,0); - } - this.endElement(); - return handle.selected; - } - ,image: function(image) { - var w = this._w - this.buttonOffsetY * 2; - var ratio = w / image.get_width(); - var h = image.get_height() * ratio; - if(!this.isVisible()) { - this.endElement(h); - return; - } - this.g.set_color(this.t.WINDOW_TINT_COL); - this.g.drawScaledImage(image,this._x + this.buttonOffsetY,this._y,w,h); - this.endElement(h); - } - ,text: function(text,align,bg) { - if(bg == null) { - bg = 0; - } - if(align == null) { - align = 0; - } - if(!this.isVisible()) { - this.endElement(); - return; - } - if(bg != 0) { - this.g.set_color(bg); - this.g.fillRect(this._x + this.buttonOffsetY,this._y + this.buttonOffsetY,this._w - this.buttonOffsetY * 2,this.t._BUTTON_H * this.SCALE); - } - this.g.set_color(this.t.TEXT_COL); - this.drawStringSmall(this.g,text,this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE,0,align); - this.endElement(); - } - ,textInput: function(handle,label,align) { - if(align == null) { - align = 0; - } - if(label == null) { - label = ""; - } - if(!this.isVisible()) { - this.endElement(); - return handle.text; - } - if(this.submitTextHandle == handle) { - handle.text = this.textToSubmit; - this.textToSubmit = ""; - this.submitTextHandle = null; - this.textSelectedCurrentText = ""; - } - var hover = this.getHover(); - this.g.set_color(hover ? this.t.TEXT_INPUT_BG_COL_HOVER : this.t.TEXT_INPUT_BG_COL); - var g = this.g; - var x = this._x + this.buttonOffsetY; - var y = this._y + this.buttonOffsetY; - var w = this._w - this.buttonOffsetY * 2; - var h = this.t._BUTTON_H * this.SCALE; - if(this.t.FILL_TEXT_INPUT_BG) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - if(this.textSelectedHandle != handle && this.getReleased()) { - this.isTyping = true; - this.submitTextHandle = this.textSelectedHandle; - this.textToSubmit = this.textSelectedCurrentText; - this.textSelectedHandle = handle; - this.textSelectedCurrentText = handle.text; - this.cursorX = handle.text.length; - this.cursorY = 0; - if(kha_input_Keyboard.get() != null) { - kha_input_Keyboard.get().show(); - } - } - if(this.textSelectedHandle == handle) { - var text = this.textSelectedCurrentText; - if(this.isKeyDown) { - if(this.key == kha_Key.LEFT) { - if(this.cursorX > 0) { - this.cursorX--; - } - } else if(this.key == kha_Key.RIGHT) { - if(this.cursorX < text.length) { - this.cursorX++; - } - } else if(this.key == kha_Key.BACKSPACE) { - if(this.cursorX > 0) { - text = HxOverrides.substr(text,0,this.cursorX - 1) + HxOverrides.substr(text,this.cursorX,null); - this.cursorX--; - } - } else if(this.key == kha_Key.ENTER) { - this.deselectText(); - } else if(this.key == kha_Key.CHAR) { - text = HxOverrides.substr(text,0,this.cursorX) + this["char"] + HxOverrides.substr(text,this.cursorX,null); - this.cursorX++; - } - } - var time = kha_Scheduler.time(); - if(time % (this.t.TEXT_CURSOR_FLASH_SPEED * 2.0) < this.t.TEXT_CURSOR_FLASH_SPEED) { - this.g.set_color(this.t.TEXT_CURSOR_COL); - var cursorHeight = this.t._ELEMENT_H * this.SCALE - this.buttonOffsetY * 3.0; - var lineHeight = this.t._ELEMENT_H * this.SCALE; - var str = align == 0 ? HxOverrides.substr(text,0,this.cursorX) : text.substring(this.cursorX,text.length); - var strw = this.g.get_font().width(this.g.get_fontSize(),str); - var off = this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE; - var cursorX = align == 0 ? this._x + strw + off : this._x + this._w - strw - off; - this.g.fillRect(cursorX,this._y + this.cursorY * lineHeight + this.buttonOffsetY * 1.5,this.SCALE,cursorHeight); - } - this.textSelectedCurrentText = text; - } - if(label != "") { - this.g.set_color(this.t.DEFAULT_LABEL_COL); - var labelAlign = align == 2 ? 0 : 2; - var xOffset = labelAlign == 0 ? 7 : 0; - this.drawStringSmall(this.g,label,xOffset,0,labelAlign); - } - this.g.set_color(this.t.TEXT_COL); - if(this.textSelectedHandle != handle) { - this.drawStringSmall(this.g,handle.text,null,0,align); - } else { - this.drawStringSmall(this.g,this.textSelectedCurrentText,null,0,align); - } - this.endElement(); - return handle.text; - } - ,deselectText: function() { - this.submitTextHandle = this.textSelectedHandle; - this.textToSubmit = this.textSelectedCurrentText; - this.textSelectedHandle = null; - this.isTyping = false; - if(this.currentWindow != null) { - this.currentWindow.redraws = 2; - } - if(kha_input_Keyboard.get() != null) { - kha_input_Keyboard.get().hide(); - } - } - ,button: function(text) { - if(!this.isVisible()) { - this.endElement(); - return false; - } - var wasPressed = this.getReleased(); - var pushed = this.getPushed(); - var hover = this.getHover(); - this.g.set_color(pushed ? this.t.BUTTON_BG_COL_PRESSED : hover ? this.t.BUTTON_BG_COL_HOVER : this.t.BUTTON_BG_COL); - var g = this.g; - var x = this._x + this.buttonOffsetY; - var y = this._y + this.buttonOffsetY; - var w = this._w - this.buttonOffsetY * 2; - var h = this.t._BUTTON_H * this.SCALE; - if(this.t.FILL_BUTTON_BG) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - this.g.set_color(this.t.BUTTON_TEXT_COL); - this.drawStringSmall(this.g,text,0,0,1); - this.endElement(); - return wasPressed; - } - ,check: function(handle,text) { - if(!this.isVisible()) { - this.endElement(); - return handle.selected; - } - if(this.getReleased()) { - handle.selected = !handle.selected; - } - var hover = this.getHover(); - this.drawCheck(handle.selected,hover); - this.g.set_color(hover ? this.t.TEXT_COL_HOVER : this.t.TEXT_COL); - this.drawStringSmall(this.g,text,this.titleOffsetX,0,0); - this.endElement(); - return handle.selected; - } - ,radio: function(handle,position,text) { - if(!this.isVisible()) { - this.endElement(); - return handle.position == position; - } - if(this.getReleased()) { - handle.position = position; - } - var hover = this.getHover(); - this.drawRadio(handle.position == position,hover); - this.g.set_color(hover ? this.t.TEXT_COL_HOVER : this.t.TEXT_COL); - this.drawStringSmall(this.g,text,this.titleOffsetX,0); - this.endElement(); - return handle.position == position; - } - ,inlineRadio: function(handle,texts) { - if(!this.isVisible()) { - this.endElement(); - return handle.position; - } - if(this.getReleased()) { - if(++handle.position >= texts.length) { - handle.position = 0; - } - } - var hover = this.getHover(); - this.drawInlineRadio(texts[handle.position],hover); - this.endElement(); - return handle.position; - } - ,slider: function(handle,text,from,to,filled,precision,displayValue) { - if(displayValue == null) { - displayValue = true; - } - if(precision == null) { - precision = 100; - } - if(filled == null) { - filled = false; - } - if(to == null) { - to = 1.0; - } - if(from == null) { - from = 0.0; - } - if(!this.isVisible()) { - this.endElement(); - return handle.value; - } - if(this.getStarted()) { - handle.scrolling = true; - this.scrollingHandle = handle; - this.isScrolling = true; - } - if(handle.scrolling) { - var range = to - from; - var sliderX = this._x + this._windowX + this.buttonOffsetY; - var sliderW = this._w - this.buttonOffsetY * 2; - var step = range / sliderW; - var value = from + (this.inputX - sliderX) * step; - handle.value = (value * precision | 0) / precision; - if(handle.value < from) { - handle.value = from; - } else if(handle.value > to) { - handle.value = to; - } - } - var hover = this.getHover(); - this.drawSlider(handle.value,from,to,filled,hover); - this.g.set_color(this.t.DEFAULT_LABEL_COL); - this.drawStringSmall(this.g,text,0,0,2); - if(displayValue) { - this.g.set_color(this.t.TEXT_COL); - this.drawStringSmall(this.g,handle.value + ""); - } - this.endElement(); - return handle.value; - } - ,separator: function() { - if(!this.isVisible()) { - this._y += 2; - return; - } - this.g.set_color(this.t.SEPARATOR_COL); - this.g.fillRect(this._x,this._y,this._w - this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE,this.t._LINE_STRENGTH * this.SCALE); - this._y += 2; - } - ,drawArrow: function(selected,hover) { - var x = this._x + this.arrowOffsetX; - var y = this._y + this.arrowOffsetY; - this.g.set_color(hover ? this.t.ARROW_COL_HOVER : this.t.ARROW_COL); - if(selected) { - this.g.fillTriangle(x,y,x + this.t._ARROW_W * this.SCALE,y,x + this.t._ARROW_W * this.SCALE / 2,y + this.t._ARROW_H * this.SCALE); - } else { - this.g.fillTriangle(x,y,x,y + this.t._ARROW_H * this.SCALE,x + this.t._ARROW_W * this.SCALE,y + this.t._ARROW_H * this.SCALE / 2); - } - } - ,drawCheck: function(selected,hover) { - var x = this._x + this.checkOffsetX; - var y = this._y + this.checkOffsetY; - this.g.set_color(hover ? this.t.CHECK_COL_HOVER : this.t.CHECK_COL); - var g = this.g; - var w = this.t._CHECK_W * this.SCALE; - var h = this.t._CHECK_H * this.SCALE; - if(this.t.FILL_CHECK_BG) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - if(selected) { - this.g.set_color(-1); - this.g.drawImage(zui_Zui.checkSelectImage,x + this.checkSelectOffsetX,y + this.checkSelectOffsetY); - } - } - ,drawRadio: function(selected,hover) { - var x = this._x + this.radioOffsetX; - var y = this._y + this.radioOffsetY; - this.g.set_color(hover ? this.t.RADIO_COL_HOVER : this.t.RADIO_COL); - var g = this.g; - var w = this.t._RADIO_W * this.SCALE; - var h = this.t._RADIO_H * this.SCALE; - if(this.t.FILL_RADIO_BG) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - if(selected) { - this.g.set_color(this.t.RADIO_SELECT_COL); - this.g.fillRect(x + this.radioSelectOffsetX,y + this.radioSelectOffsetY,this.t._RADIO_SELECT_W * this.SCALE,this.t._RADIO_SELECT_H * this.SCALE); - } - } - ,drawInlineRadio: function(text,hover) { - if(hover) { - this.g.set_color(this.t.RADIO_COL_HOVER); - this.g.fillRect(this._x + 5,this._y + 5,this._w - 10,this.t._ELEMENT_H * this.SCALE - 10); - } - var x = this._x + this.arrowOffsetX; - var y = this._y + this.arrowOffsetY; - this.g.set_color(hover ? this.t.ARROW_COL_HOVER : this.t.ARROW_COL); - this.g.fillTriangle(x,y,x,y + this.t._ARROW_H * this.SCALE,x - this.t._ARROW_W * this.SCALE / 2,y + this.t._ARROW_H * this.SCALE / 2); - var x1 = this._x + this._w - this.arrowOffsetX - 5; - this.g.fillTriangle(x1,y,x1,y + this.t._ARROW_H * this.SCALE,x1 + this.t._ARROW_W * this.SCALE / 2,y + this.t._ARROW_H * this.SCALE / 2); - this.g.set_color(hover ? this.t.TEXT_COL_HOVER : this.t.TEXT_COL); - this.drawStringSmall(this.g,text,this.titleOffsetX,0,1); - } - ,drawSlider: function(value,from,to,filled,hover) { - var x = this._x + this.buttonOffsetY; - var y = this._y + this.buttonOffsetY; - var w = this._w - this.buttonOffsetY * 2; - this.g.set_color(hover ? this.t.CHECK_COL_HOVER : this.t.CHECK_COL); - var g = this.g; - var h = this.t._BUTTON_H * this.SCALE; - if(this.t.FILL_SLIDER_BG) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - this.g.set_color(hover ? this.t.SLIDER_COL_HOVER : this.t.SLIDER_COL); - var offset = (value - from) / (to - from); - var barW = 8 * this.SCALE; - var sliderX = filled ? x : x + (w - barW) * offset; - var sliderW = filled ? w * offset : barW; - this.g.fillRect(sliderX,y,sliderW,this.t._BUTTON_H * this.SCALE); - } - ,drawString: function(g,text,xOffset,yOffset,align) { - if(align == null) { - align = 0; - } - if(yOffset == null) { - yOffset = 0; - } - if(xOffset == null) { - xOffset = this.t._DEFAULT_TEXT_OFFSET_X; - } - xOffset *= this.SCALE; - g.set_font(this.ops.font); - g.set_fontSize(this.fontSize); - if(align == 1) { - xOffset = this._w / 2 - this.ops.font.width(this.fontSize,text) / 2; - } else if(align == 2) { - xOffset = this._w - this.ops.font.width(this.fontSize,text) - this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE; - } - g.drawString(text,this._x + xOffset,this._y + this.fontOffsetY + yOffset); - } - ,drawStringSmall: function(g,text,xOffset,yOffset,align) { - if(align == null) { - align = 0; - } - if(yOffset == null) { - yOffset = 0; - } - if(xOffset == null) { - xOffset = this.t._DEFAULT_TEXT_OFFSET_X; - } - xOffset *= this.SCALE; - g.set_font(this.ops.font); - g.set_fontSize(this.fontSmallSize); - if(align == 1) { - xOffset = this._w / 2 - this.ops.font.width(this.fontSmallSize,text) / 2; - } else if(align == 2) { - xOffset = this._w - this.ops.font.width(this.fontSmallSize,text) - this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE; - } - g.drawString(text,this._x + xOffset,this._y + this.fontSmallOffsetY + yOffset); - } - ,endElement: function(elementSize) { - if(this.currentWindow == null) { - this._y += this.t._ELEMENT_H * this.SCALE + this.t._ELEMENT_SEPARATOR_SIZE * this.SCALE; - return; - } - if(this.currentWindow.layout == 0) { - if(this.curRatio == -1 || this.ratios != null && this.curRatio == this.ratios.length - 1) { - if(elementSize == null) { - elementSize = this.t._ELEMENT_H * this.SCALE + this.t._ELEMENT_SEPARATOR_SIZE * this.SCALE; - } - this._y += elementSize; - if(this.ratios != null && this.curRatio == this.ratios.length - 1) { - this.curRatio = -1; - this.ratios = null; - this._x = this.xBeforeSplit; - this._w = this.wBeforeSplit; - } - } else { - this.curRatio++; - this._x += this._w; - this._w = this.wBeforeSplit * this.ratios[this.curRatio] | 0; - } - } else { - this._x += this._w + this.t._ELEMENT_SEPARATOR_SIZE * this.SCALE; - } - } - ,row: function(ratios) { - this.ratios = ratios; - this.curRatio = 0; - this.xBeforeSplit = this._x; - this.wBeforeSplit = this._w; - this._w = this._w * ratios[this.curRatio] | 0; - } - ,indent: function() { - this._x += this.t._TAB_W * this.SCALE | 0; - this._w -= this.t._TAB_W * this.SCALE | 0; - } - ,unindent: function() { - this._x -= this.t._TAB_W * this.SCALE | 0; - this._w += this.t._TAB_W * this.SCALE | 0; - } - ,drawRect: function(g,fill,x,y,w,h,strength) { - if(strength == null) { - strength = 1.0; - } - if(fill) { - g.fillRect(x,y,w,h); - } else { - g.drawRect(x,y,w,h,this.t._LINE_STRENGTH * this.SCALE); - } - } - ,isVisible: function() { - if(this.currentWindow == null) { - return true; - } - if(this._y + this.t._ELEMENT_H * this.SCALE > 0) { - return this._y < this.currentWindow.texture.get_height(); - } else { - return false; - } - } - ,getReleased: function() { - if(this.inputReleased && this.getHover()) { - return this.getInitialHover(); - } else { - return false; - } - } - ,getPushed: function() { - if(this.inputDown && this.getHover()) { - return this.getInitialHover(); - } else { - return false; - } - } - ,getStarted: function() { - if(this.inputStarted) { - return this.getHover(); - } else { - return false; - } - } - ,getInitialHover: function() { - if(this.inputInitialX >= this._windowX + this._x && this.inputInitialX < this._windowX + this._x + this._w && this.inputInitialY >= this._windowY + this._y) { - return this.inputInitialY < this._windowY + this._y + this.t._ELEMENT_H * this.SCALE; - } else { - return false; - } - } - ,getHover: function() { - if(this.inputX >= this._windowX + this._x && this.inputX < this._windowX + this._x + this._w && this.inputY >= this._windowY + this._y) { - return this.inputY < this._windowY + this._y + this.t._ELEMENT_H * this.SCALE; - } else { - return false; - } - } - ,getInputInRect: function(x,y,w,h,scale) { - if(scale == null) { - scale = 1.0; - } - if(this.inputX >= x * scale && this.inputX < (x + w) * scale && this.inputY >= y * scale) { - return this.inputY < (y + h) * scale; - } else { - return false; - } - } - ,onMouseDown: function(button,x,y) { - this.inputStarted = true; - if(button == 0) { - this.inputDown = true; - } else { - this.inputDownR = true; - } - this.setInitialInputPosition(x * this.ops.scaleTexture | 0,y * this.ops.scaleTexture | 0); - } - ,onMouseUp: function(button,x,y) { - if(this.isScrolling) { - this.isScrolling = false; - if(this.scrollingHandle != null) { - this.scrollingHandle.scrolling = false; - } - } else { - this.inputReleased = true; - } - if(button == 0) { - this.inputDown = false; - } else { - this.inputDownR = false; - } - this.setInputPosition(x * this.ops.scaleTexture | 0,y * this.ops.scaleTexture | 0); - this.deselectText(); - } - ,onMouseMove: function(x,y,movementX,movementY) { - this.setInputPosition(x * this.ops.scaleTexture | 0,y * this.ops.scaleTexture | 0); - } - ,onMouseWheel: function(delta) { - this.inputWheelDelta = delta; - } - ,setInitialInputPosition: function(inputX,inputY) { - this.setInputPosition(inputX,inputY); - this.inputInitialX = inputX; - this.inputInitialY = inputY; - } - ,setInputPosition: function(inputX,inputY) { - this.inputDX += inputX - this.inputX; - this.inputDY += inputY - this.inputY; - this.inputX = inputX; - this.inputY = inputY; - } - ,onKeyDown: function(key,$char) { - this.isKeyDown = true; - this.key = key; - this["char"] = $char; - } - ,onKeyUp: function(key,$char) { - } - ,ELEMENT_W: function() { - return this.t._ELEMENT_W * this.SCALE; - } - ,ELEMENT_H: function() { - return this.t._ELEMENT_H * this.SCALE; - } - ,ELEMENT_SEPARATOR_SIZE: function() { - return this.t._ELEMENT_SEPARATOR_SIZE * this.SCALE; - } - ,ARROW_W: function() { - return this.t._ARROW_W * this.SCALE; - } - ,ARROW_H: function() { - return this.t._ARROW_H * this.SCALE; - } - ,BUTTON_H: function() { - return this.t._BUTTON_H * this.SCALE; - } - ,CHECK_W: function() { - return this.t._CHECK_W * this.SCALE; - } - ,CHECK_H: function() { - return this.t._CHECK_H * this.SCALE; - } - ,CHECK_SELECT_W: function() { - return this.t._CHECK_SELECT_W * this.SCALE; - } - ,CHECK_SELECT_H: function() { - return this.t._CHECK_SELECT_H * this.SCALE; - } - ,RADIO_W: function() { - return this.t._RADIO_W * this.SCALE; - } - ,RADIO_H: function() { - return this.t._RADIO_H * this.SCALE; - } - ,RADIO_SELECT_W: function() { - return this.t._RADIO_SELECT_W * this.SCALE; - } - ,RADIO_SELECT_H: function() { - return this.t._RADIO_SELECT_H * this.SCALE; - } - ,SCROLL_W: function() { - return this.t._SCROLL_W * this.SCALE | 0; - } - ,SCROLL_BAR_W: function() { - return this.t._SCROLL_BAR_W * this.SCALE; - } - ,DEFAULT_TEXT_OFFSET_X: function() { - return this.t._DEFAULT_TEXT_OFFSET_X * this.SCALE; - } - ,TAB_W: function() { - return this.t._TAB_W * this.SCALE | 0; - } - ,LINE_STRENGTH: function() { - return this.t._LINE_STRENGTH * this.SCALE; - } - ,resize: function(handle,w,h,khaWindowId) { - if(khaWindowId == null) { - khaWindowId = 0; - } - handle.redraws = 2; - if(handle.texture != null) { - handle.texture.unload(); - } - handle.texture = kha_Image.createRenderTarget(w,h,kha_graphics4_TextureFormat.RGBA32,0,1,khaWindowId); - handle.texture.get_g2().set_imageScaleQuality(kha_graphics2_ImageScaleQuality.High); - } - ,__class__: zui_Zui -}; -var zui_Handle = function(ops) { - this.dragY = 0; - this.dragX = 0; - this.dragEnabled = false; - this.dragging = false; - this.lastMaxY = 0.0; - this.lastMaxX = 0.0; - this.layout = 0; - this.scrollEnabled = false; - this.scrollOffset = 0.0; - this.scrolling = false; - this.redraws = 2; - this.texture = null; - this.text = ""; - this.value = 0.0; - this.color = -1; - this.position = 0; - this.selected = false; - if(ops != null) { - if(ops.selected != null) { - this.selected = ops.selected; - } - if(ops.position != null) { - this.position = ops.position; - } - if(ops.value != null) { - this.value = ops.value; - } - if(ops.text != null) { - this.text = ops.text; - } - if(ops.color != null) { - this.color = ops.color; - } - if(ops.layout != null) { - this.layout = ops.layout; - } - } -}; -$hxClasses["zui.Handle"] = zui_Handle; -zui_Handle.__name__ = true; -zui_Handle.prototype = { - selected: null - ,position: null - ,color: null - ,value: null - ,text: null - ,texture: null - ,redraws: null - ,scrolling: null - ,scrollOffset: null - ,scrollEnabled: null - ,layout: null - ,lastMaxX: null - ,lastMaxY: null - ,dragging: null - ,dragEnabled: null - ,dragX: null - ,dragY: null - ,children: null - ,nest: function(i,ops) { - if(this.children == null) { - this.children = []; - } - while(this.children.length <= i) this.children.push(null); - if(this.children[i] == null) { - this.children[i] = new zui_Handle(ops); - } - return this.children[i]; - } - ,__class__: zui_Handle -}; -function $iterator(o) { if( o instanceof Array ) return function() { return HxOverrides.iter(o); }; return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator; } -var $_, $fid = 0; -function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $fid++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = function(){ return f.method.apply(f.scope, arguments); }; f.scope = o; f.method = m; o.hx__closures__[m.__id__] = f; } return f; } -$hxClasses["Math"] = Math; -String.prototype.__class__ = $hxClasses["String"] = String; -String.__name__ = true; -$hxClasses["Array"] = Array; -Array.__name__ = true; -Date.prototype.__class__ = $hxClasses["Date"] = Date; -Date.__name__ = ["Date"]; -var Int = $hxClasses["Int"] = { __name__ : ["Int"]}; -var Dynamic = $hxClasses["Dynamic"] = { __name__ : ["Dynamic"]}; -var Float = $hxClasses["Float"] = Number; -Float.__name__ = ["Float"]; -var Bool = $hxClasses["Bool"] = Boolean; -Bool.__ename__ = ["Bool"]; -var Class = $hxClasses["Class"] = { __name__ : ["Class"]}; -var Enum = { }; -var __map_reserved = {} -var ArrayBuffer = $global.ArrayBuffer || js_html_compat_ArrayBuffer; -if(ArrayBuffer.prototype.slice == null) { - ArrayBuffer.prototype.slice = js_html_compat_ArrayBuffer.sliceImpl; -} -var DataView = $global.DataView || js_html_compat_DataView; -var Float32Array = $global.Float32Array || js_html_compat_Float32Array._new; -var Uint8Array = $global.Uint8Array || js_html_compat_Uint8Array._new; -haxe_Unserializer.DEFAULT_RESOLVER = new haxe__$Unserializer_DefaultResolver(); -haxe_Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"; -haxe_crypto_Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -haxe_crypto_Base64.BYTES = haxe_io_Bytes.ofString(haxe_crypto_Base64.CHARS); -haxe_ds_ObjectMap.count = 0; -haxe_io_FPHelper.i64tmp = (function($this) { - var $r; - var this1 = new haxe__$Int64__$_$_$Int64(0,0); - $r = this1; - return $r; -}(this)); -js_Boot.__toStr = ({ }).toString; -js_html_compat_Float32Array.BYTES_PER_ELEMENT = 4; -js_html_compat_Uint8Array.BYTES_PER_ELEMENT = 1; -kha_Assets.images = new kha__$Assets_ImageList(); -kha_Assets.sounds = new kha__$Assets_SoundList(); -kha_Assets.blobs = new kha__$Assets_BlobList(); -kha_Assets.fonts = new kha__$Assets_FontList(); -kha_Assets.videos = new kha__$Assets_VideoList(); -kha__$Color_Color_$Impl_$.Black = -16777216; -kha__$Color_Color_$Impl_$.White = -1; -kha__$Color_Color_$Impl_$.Red = -65536; -kha__$Color_Color_$Impl_$.Blue = -16776961; -kha__$Color_Color_$Impl_$.Green = -16711936; -kha__$Color_Color_$Impl_$.Magenta = -65281; -kha__$Color_Color_$Impl_$.Yellow = -256; -kha__$Color_Color_$Impl_$.Cyan = -16711681; -kha__$Color_Color_$Impl_$.Purple = -8388480; -kha__$Color_Color_$Impl_$.Pink = -16181; -kha__$Color_Color_$Impl_$.Orange = -23296; -kha__$Color_Color_$Impl_$.Transparent = 0; -kha__$Color_Color_$Impl_$.invMaxChannelValue = 0.00392156862745098; -kha_CompilerDefines.js = "1"; -kha_CompilerDefines.kha_a1 = "1"; -kha_CompilerDefines.kha_g3 = "1"; -kha_CompilerDefines.kha_g4 = "1"; -kha_CompilerDefines.kha_html5_js = "1"; -kha_CompilerDefines["source-header"] = "Generated by Haxe 3.4.2"; -kha_CompilerDefines.sys_g3 = "1"; -kha_CompilerDefines.kha_g1 = "1"; -kha_CompilerDefines.sys_a1 = "1"; -kha_CompilerDefines.haxe_ver = "3.402"; -kha_CompilerDefines.jquery_ver = "11204"; -kha_CompilerDefines.kha_js = "1"; -kha_CompilerDefines.sys_html5 = "1"; -kha_CompilerDefines.canvas_id = "khanvas"; -kha_CompilerDefines.kha_version = "1611"; -kha_CompilerDefines.sys_g4 = "1"; -kha_CompilerDefines.js_es = "5"; -kha_CompilerDefines.kha_html5 = "1"; -kha_CompilerDefines.zui = "1"; -kha_CompilerDefines["js-es5"] = "1"; -kha_CompilerDefines.js_es5 = "1"; -kha_CompilerDefines.sys_a2 = "1"; -kha_CompilerDefines.dce = "std"; -kha_CompilerDefines.sys_g1 = "1"; -kha_CompilerDefines["true"] = "1"; -kha_CompilerDefines.sys_g2 = "1"; -kha_CompilerDefines.kha_webgl = "1"; -kha_CompilerDefines.kha = "1"; -kha_CompilerDefines.kha_g2 = "1"; -kha_CompilerDefines.haxe3 = "1"; -kha_CompilerDefines.kha_a2 = "1"; -kha_CompilerDefines.script_name = "kha"; -kha_FontStyle.Default = new kha_FontStyle(false,false,false); -kha_Scheduler.timeWarpSaveTime = 1.0; -kha_Scheduler.DIF_COUNT = 3; -kha_Scheduler.maxframetime = 0.5; -kha_Scheduler.startTime = 0; -kha_Shaders.painter_colored_fragData0 = "s198:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gaGlnaHAgaW50OwoKdmFyeWluZyBoaWdocCB2ZWM0IGZyYWdtZW50Q29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9GcmFnRGF0YVswXSA9IGZyYWdtZW50Q29sb3I7Cn0KCg"; -kha_Shaders.painter_colored_fragData1 = "s192:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp2YXJ5aW5nIHZlYzQgZnJhZ21lbnRDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX0ZyYWdEYXRhWzBdID0gZnJhZ21lbnRDb2xvcjsKfQoK"; -kha_Shaders.painter_colored_fragData2 = "s210:I3ZlcnNpb24gMzAwIGVzCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7CgpvdXQgdmVjNCBGcmFnQ29sb3I7CmluIHZlYzQgZnJhZ21lbnRDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIEZyYWdDb2xvciA9IGZyYWdtZW50Q29sb3I7Cn0KCg"; -kha_Shaders.painter_colored_vertData0 = "s331:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmF0dHJpYnV0ZSB2ZWMzIHZlcnRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzQgZnJhZ21lbnRDb2xvcjsKYXR0cmlidXRlIHZlYzQgdmVydGV4Q29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApOwogICAgZnJhZ21lbnRDb2xvciA9IHZlcnRleENvbG9yOwp9Cgo"; -kha_Shaders.painter_colored_vertData1 = "s374:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKYXR0cmlidXRlIG1lZGl1bXAgdmVjMyB2ZXJ0ZXhQb3NpdGlvbjsKdmFyeWluZyBtZWRpdW1wIHZlYzQgZnJhZ21lbnRDb2xvcjsKYXR0cmlidXRlIG1lZGl1bXAgdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICBmcmFnbWVudENvbG9yID0gdmVydGV4Q29sb3I7Cn0KCg"; -kha_Shaders.painter_colored_vertData2 = "s354:I3ZlcnNpb24gMzAwIGVzCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKaW4gbWVkaXVtcCB2ZWMzIHZlcnRleFBvc2l0aW9uOwpvdXQgbWVkaXVtcCB2ZWM0IGZyYWdtZW50Q29sb3I7CmluIG1lZGl1bXAgdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICBmcmFnbWVudENvbG9yID0gdmVydGV4Q29sb3I7Cn0KCg"; -kha_Shaders.painter_image_fragData0 = "s471:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gaGlnaHAgaW50OwoKdW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OwoKdmFyeWluZyBoaWdocCB2ZWMyIHRleENvb3JkOwp2YXJ5aW5nIGhpZ2hwIHZlYzQgY29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBoaWdocCB2ZWM0IHRleGNvbG9yID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpICogY29sb3I7CiAgICBoaWdocCB2ZWMzIF8zMiA9IHRleGNvbG9yLnh5eiAqIGNvbG9yLnc7CiAgICB0ZXhjb2xvciA9IHZlYzQoXzMyLngsIF8zMi55LCBfMzIueiwgdGV4Y29sb3Iudyk7CiAgICBnbF9GcmFnRGF0YVswXSA9IHRleGNvbG9yOwp9Cgo"; -kha_Shaders.painter_image_fragData1 = "s444:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCnZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKdmFyeWluZyB2ZWM0IGNvbG9yOwoKdm9pZCBtYWluKCkKewogICAgdmVjNCB0ZXhjb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKSAqIGNvbG9yOwogICAgdmVjMyBfMzIgPSB0ZXhjb2xvci54eXogKiBjb2xvci53OwogICAgdGV4Y29sb3IgPSB2ZWM0KF8zMi54LCBfMzIueSwgXzMyLnosIHRleGNvbG9yLncpOwogICAgZ2xfRnJhZ0RhdGFbMF0gPSB0ZXhjb2xvcjsKfQoK"; -kha_Shaders.painter_image_fragData2 = "s452:I3ZlcnNpb24gMzAwIGVzCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCmluIHZlYzIgdGV4Q29vcmQ7CmluIHZlYzQgY29sb3I7Cm91dCB2ZWM0IEZyYWdDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIHZlYzQgdGV4Y29sb3IgPSB0ZXh0dXJlKHRleCwgdGV4Q29vcmQpICogY29sb3I7CiAgICB2ZWMzIF8zMiA9IHRleGNvbG9yLnh5eiAqIGNvbG9yLnc7CiAgICB0ZXhjb2xvciA9IHZlYzQoXzMyLngsIF8zMi55LCBfMzIueiwgdGV4Y29sb3Iudyk7CiAgICBGcmFnQ29sb3IgPSB0ZXhjb2xvcjsKfQoK"; -kha_Shaders.painter_image_vertData0 = "s415:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmF0dHJpYnV0ZSB2ZWMzIHZlcnRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSB2ZWMyIHRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzQgY29sb3I7CmF0dHJpYnV0ZSB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBjb2xvciA9IHZlcnRleENvbG9yOwp9Cgo"; -kha_Shaders.painter_image_vertData1 = "s479:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKYXR0cmlidXRlIG1lZGl1bXAgdmVjMyB2ZXJ0ZXhQb3NpdGlvbjsKdmFyeWluZyBtZWRpdW1wIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247CnZhcnlpbmcgbWVkaXVtcCB2ZWM0IGNvbG9yOwphdHRyaWJ1dGUgbWVkaXVtcCB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBjb2xvciA9IHZlcnRleENvbG9yOwp9Cgo"; -kha_Shaders.painter_image_vertData2 = "s444:I3ZlcnNpb24gMzAwIGVzCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKaW4gbWVkaXVtcCB2ZWMzIHZlcnRleFBvc2l0aW9uOwpvdXQgbWVkaXVtcCB2ZWMyIHRleENvb3JkOwppbiBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247Cm91dCBtZWRpdW1wIHZlYzQgY29sb3I7CmluIG1lZGl1bXAgdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICB0ZXhDb29yZCA9IHRleFBvc2l0aW9uOwogICAgY29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK"; -kha_Shaders.painter_text_fragData0 = "s351:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gaGlnaHAgaW50OwoKdW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OwoKdmFyeWluZyBoaWdocCB2ZWM0IGZyYWdtZW50Q29sb3I7CnZhcnlpbmcgaGlnaHAgdmVjMiB0ZXhDb29yZDsKCnZvaWQgbWFpbigpCnsKICAgIGdsX0ZyYWdEYXRhWzBdID0gdmVjNChmcmFnbWVudENvbG9yLnh5eiwgdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpLnggKiBmcmFnbWVudENvbG9yLncpOwp9Cgo"; -kha_Shaders.painter_text_fragData1 = "s340:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCnZhcnlpbmcgdmVjNCBmcmFnbWVudENvbG9yOwp2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9GcmFnRGF0YVswXSA9IHZlYzQoZnJhZ21lbnRDb2xvci54eXosIHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKS54ICogZnJhZ21lbnRDb2xvci53KTsKfQoK"; -kha_Shaders.painter_text_fragData2 = "s348:I3ZlcnNpb24gMzAwIGVzCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCm91dCB2ZWM0IEZyYWdDb2xvcjsKaW4gdmVjNCBmcmFnbWVudENvbG9yOwppbiB2ZWMyIHRleENvb3JkOwoKdm9pZCBtYWluKCkKewogICAgRnJhZ0NvbG9yID0gdmVjNChmcmFnbWVudENvbG9yLnh5eiwgdGV4dHVyZSh0ZXgsIHRleENvb3JkKS54ICogZnJhZ21lbnRDb2xvci53KTsKfQoK"; -kha_Shaders.painter_text_vertData0 = "s436:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmF0dHJpYnV0ZSB2ZWMzIHZlcnRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSB2ZWMyIHRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzQgZnJhZ21lbnRDb2xvcjsKYXR0cmlidXRlIHZlYzQgdmVydGV4Q29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApOwogICAgdGV4Q29vcmQgPSB0ZXhQb3NpdGlvbjsKICAgIGZyYWdtZW50Q29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK"; -kha_Shaders.painter_text_vertData1 = "s500:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKYXR0cmlidXRlIG1lZGl1bXAgdmVjMyB2ZXJ0ZXhQb3NpdGlvbjsKdmFyeWluZyBtZWRpdW1wIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247CnZhcnlpbmcgbWVkaXVtcCB2ZWM0IGZyYWdtZW50Q29sb3I7CmF0dHJpYnV0ZSBtZWRpdW1wIHZlYzQgdmVydGV4Q29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApOwogICAgdGV4Q29vcmQgPSB0ZXhQb3NpdGlvbjsKICAgIGZyYWdtZW50Q29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK"; -kha_Shaders.painter_text_vertData2 = "s466:I3ZlcnNpb24gMzAwIGVzCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKaW4gbWVkaXVtcCB2ZWMzIHZlcnRleFBvc2l0aW9uOwpvdXQgbWVkaXVtcCB2ZWMyIHRleENvb3JkOwppbiBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247Cm91dCBtZWRpdW1wIHZlYzQgZnJhZ21lbnRDb2xvcjsKaW4gbWVkaXVtcCB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBmcmFnbWVudENvbG9yID0gdmVydGV4Q29sb3I7Cn0KCg"; -kha_Shaders.painter_video_fragData0 = "s471:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gaGlnaHAgaW50OwoKdW5pZm9ybSBoaWdocCBzYW1wbGVyMkQgdGV4OwoKdmFyeWluZyBoaWdocCB2ZWMyIHRleENvb3JkOwp2YXJ5aW5nIGhpZ2hwIHZlYzQgY29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBoaWdocCB2ZWM0IHRleGNvbG9yID0gdGV4dHVyZTJEKHRleCwgdGV4Q29vcmQpICogY29sb3I7CiAgICBoaWdocCB2ZWMzIF8zMiA9IHRleGNvbG9yLnh5eiAqIGNvbG9yLnc7CiAgICB0ZXhjb2xvciA9IHZlYzQoXzMyLngsIF8zMi55LCBfMzIueiwgdGV4Y29sb3Iudyk7CiAgICBnbF9GcmFnRGF0YVswXSA9IHRleGNvbG9yOwp9Cgo"; -kha_Shaders.painter_video_fragData1 = "s444:I3ZlcnNpb24gMTAwCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCnZhcnlpbmcgdmVjMiB0ZXhDb29yZDsKdmFyeWluZyB2ZWM0IGNvbG9yOwoKdm9pZCBtYWluKCkKewogICAgdmVjNCB0ZXhjb2xvciA9IHRleHR1cmUyRCh0ZXgsIHRleENvb3JkKSAqIGNvbG9yOwogICAgdmVjMyBfMzIgPSB0ZXhjb2xvci54eXogKiBjb2xvci53OwogICAgdGV4Y29sb3IgPSB2ZWM0KF8zMi54LCBfMzIueSwgXzMyLnosIHRleGNvbG9yLncpOwogICAgZ2xfRnJhZ0RhdGFbMF0gPSB0ZXhjb2xvcjsKfQoK"; -kha_Shaders.painter_video_fragData2 = "s452:I3ZlcnNpb24gMzAwIGVzCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwpwcmVjaXNpb24gbWVkaXVtcCBpbnQ7Cgp1bmlmb3JtIG1lZGl1bXAgc2FtcGxlcjJEIHRleDsKCmluIHZlYzIgdGV4Q29vcmQ7CmluIHZlYzQgY29sb3I7Cm91dCB2ZWM0IEZyYWdDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIHZlYzQgdGV4Y29sb3IgPSB0ZXh0dXJlKHRleCwgdGV4Q29vcmQpICogY29sb3I7CiAgICB2ZWMzIF8zMiA9IHRleGNvbG9yLnh5eiAqIGNvbG9yLnc7CiAgICB0ZXhjb2xvciA9IHZlYzQoXzMyLngsIF8zMi55LCBfMzIueiwgdGV4Y29sb3Iudyk7CiAgICBGcmFnQ29sb3IgPSB0ZXhjb2xvcjsKfQoK"; -kha_Shaders.painter_video_vertData0 = "s415:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmF0dHJpYnV0ZSB2ZWMzIHZlcnRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSB2ZWMyIHRleFBvc2l0aW9uOwp2YXJ5aW5nIHZlYzQgY29sb3I7CmF0dHJpYnV0ZSB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBjb2xvciA9IHZlcnRleENvbG9yOwp9Cgo"; -kha_Shaders.painter_video_vertData1 = "s479:I3ZlcnNpb24gMTAwCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKYXR0cmlidXRlIG1lZGl1bXAgdmVjMyB2ZXJ0ZXhQb3NpdGlvbjsKdmFyeWluZyBtZWRpdW1wIHZlYzIgdGV4Q29vcmQ7CmF0dHJpYnV0ZSBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247CnZhcnlpbmcgbWVkaXVtcCB2ZWM0IGNvbG9yOwphdHRyaWJ1dGUgbWVkaXVtcCB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBjb2xvciA9IHZlcnRleENvbG9yOwp9Cgo"; -kha_Shaders.painter_video_vertData2 = "s444:I3ZlcnNpb24gMzAwIGVzCgp1bmlmb3JtIG1lZGl1bXAgbWF0NCBwcm9qZWN0aW9uTWF0cml4OwoKaW4gbWVkaXVtcCB2ZWMzIHZlcnRleFBvc2l0aW9uOwpvdXQgbWVkaXVtcCB2ZWMyIHRleENvb3JkOwppbiBtZWRpdW1wIHZlYzIgdGV4UG9zaXRpb247Cm91dCBtZWRpdW1wIHZlYzQgY29sb3I7CmluIG1lZGl1bXAgdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICB0ZXhDb29yZCA9IHRleFBvc2l0aW9uOwogICAgY29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK"; -kha_System.renderListeners = []; -kha_System.foregroundListeners = []; -kha_System.resumeListeners = []; -kha_System.pauseListeners = []; -kha_System.backgroundListeners = []; -kha_System.shutdownListeners = []; -kha_SystemImpl.mobile = false; -kha_SystemImpl.mobileAudioPlaying = false; -kha_SystemImpl.chrome = false; -kha_SystemImpl.insideInputEvent = false; -kha_SystemImpl.maxGamepads = 4; -kha_SystemImpl.leftMouseCtrlDown = false; -kha_SystemImpl.minimumScroll = 999; -kha_SystemImpl.lastFirstTouchX = 0; -kha_SystemImpl.lastFirstTouchY = 0; -kha_SystemImpl.iosSoundEnabled = false; -kha_WebGLImage.GL_RGBA16F = 34842; -kha_WebGLImage.GL_RGBA32F = 34836; -kha_WebGLImage.GL_R16F = 33325; -kha_WebGLImage.GL_R32F = 33326; -kha_WebGLImage.GL_DEPTH_COMPONENT24 = 33190; -kha_WebGLImage.GL_DEPTH24_STENCIL8 = 35056; -kha_WebGLImage.GL_DEPTH32F_STENCIL8 = 36013; -kha_audio2_Audio1.channelCount = 16; -kha_audio2_ogg_tools_Crc32.POLY = 79764919; -kha_audio2_ogg_vorbis_VorbisDecodeState.INVALID_BITS = -1; -kha_audio2_ogg_vorbis_VorbisTools.EOP = -1; -kha_audio2_ogg_vorbis_VorbisTools.M__PI = 3.14159265358979323846264; -kha_audio2_ogg_vorbis_VorbisTools.DIVTAB_NUMER = 32; -kha_audio2_ogg_vorbis_VorbisTools.DIVTAB_DENOM = 64; -kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE = [1.0649863e-07,1.1341951e-07,1.2079015e-07,1.2863978e-07,1.3699951e-07,1.4590251e-07,1.5538408e-07,1.6548181e-07,1.7623575e-07,1.8768855e-07,1.9988561e-07,2.1287530e-07,2.2670913e-07,2.4144197e-07,2.5713223e-07,2.7384213e-07,2.9163793e-07,3.1059021e-07,3.3077411e-07,3.5226968e-07,3.7516214e-07,3.9954229e-07,4.2550680e-07,4.5315863e-07,4.8260743e-07,5.1396998e-07,5.4737065e-07,5.8294187e-07,6.2082472e-07,6.6116941e-07,7.0413592e-07,7.4989464e-07,7.9862701e-07,8.5052630e-07,9.0579828e-07,9.6466216e-07,1.0273513e-06,1.0941144e-06,1.1652161e-06,1.2409384e-06,1.3215816e-06,1.4074654e-06,1.4989305e-06,1.5963394e-06,1.7000785e-06,1.8105592e-06,1.9282195e-06,2.0535261e-06,2.1869758e-06,2.3290978e-06,2.4804557e-06,2.6416497e-06,2.8133190e-06,2.9961443e-06,3.1908506e-06,3.3982101e-06,3.6190449e-06,3.8542308e-06,4.1047004e-06,4.3714470e-06,4.6555282e-06,4.9580707e-06,5.2802740e-06,5.6234160e-06,5.9888572e-06,6.3780469e-06,6.7925283e-06,7.2339451e-06,7.7040476e-06,8.2047000e-06,8.7378876e-06,9.3057248e-06,9.9104632e-06,1.0554501e-05,1.1240392e-05,1.1970856e-05,1.2748789e-05,1.3577278e-05,1.4459606e-05,1.5399272e-05,1.6400004e-05,1.7465768e-05,1.8600792e-05,1.9809576e-05,2.1096914e-05,2.2467911e-05,2.3928002e-05,2.5482978e-05,2.7139006e-05,2.8902651e-05,3.0780908e-05,3.2781225e-05,3.4911534e-05,3.7180282e-05,3.9596466e-05,4.2169667e-05,4.4910090e-05,4.7828601e-05,5.0936773e-05,5.4246931e-05,5.7772202e-05,6.1526565e-05,6.5524908e-05,6.9783085e-05,7.4317983e-05,7.9147585e-05,8.4291040e-05,8.9768747e-05,9.5602426e-05,0.00010181521,0.00010843174,0.00011547824,0.00012298267,0.00013097477,0.00013948625,0.00014855085,0.00015820453,0.00016848555,0.00017943469,0.00019109536,0.00020351382,0.00021673929,0.00023082423,0.00024582449,0.00026179955,0.00027881276,0.00029693158,0.00031622787,0.00033677814,0.00035866388,0.00038197188,0.00040679456,0.00043323036,0.00046138411,0.00049136745,0.00052329927,0.00055730621,0.00059352311,0.00063209358,0.00067317058,0.00071691700,0.00076350630,0.00081312324,0.00086596457,0.00092223983,0.00098217216,0.0010459992,0.0011139742,0.0011863665,0.0012634633,0.0013455702,0.0014330129,0.0015261382,0.0016253153,0.0017309374,0.0018434235,0.0019632195,0.0020908006,0.0022266726,0.0023713743,0.0025254795,0.0026895994,0.0028643847,0.0030505286,0.0032487691,0.0034598925,0.0036847358,0.0039241906,0.0041792066,0.0044507950,0.0047400328,0.0050480668,0.0053761186,0.0057254891,0.0060975636,0.0064938176,0.0069158225,0.0073652516,0.0078438871,0.0083536271,0.0088964928,0.009474637,0.010090352,0.010746080,0.011444421,0.012188144,0.012980198,0.013823725,0.014722068,0.015678791,0.016697687,0.017782797,0.018938423,0.020169149,0.021479854,0.022875735,0.024362330,0.025945531,0.027631618,0.029427276,0.031339626,0.033376252,0.035545228,0.037855157,0.040315199,0.042935108,0.045725273,0.048696758,0.051861348,0.055231591,0.058820850,0.062643361,0.066714279,0.071049749,0.075666962,0.080584227,0.085821044,0.091398179,0.097337747,0.10366330,0.11039993,0.11757434,0.12521498,0.13335215,0.14201813,0.15124727,0.16107617,0.17154380,0.18269168,0.19456402,0.20720788,0.22067342,0.23501402,0.25028656,0.26655159,0.28387361,0.30232132,0.32196786,0.34289114,0.36517414,0.38890521,0.41417847,0.44109412,0.46975890,0.50028648,0.53279791,0.56742212,0.60429640,0.64356699,0.68538959,0.72993007,0.77736504,0.82788260,0.88168307,0.9389798,1.0]; -kha_audio2_ogg_vorbis_data_Codebook.NO_CODE = 255; -kha_audio2_ogg_vorbis_data_Codebook.delay = 0; -kha_audio2_ogg_vorbis_data_Header.PACKET_ID = 1; -kha_audio2_ogg_vorbis_data_Header.PACKET_COMMENT = 3; -kha_audio2_ogg_vorbis_data_Header.PACKET_SETUP = 5; -kha_audio2_ogg_vorbis_data_PageFlag.CONTINUED_PACKET = 1; -kha_audio2_ogg_vorbis_data_PageFlag.FIRST_PAGE = 2; -kha_audio2_ogg_vorbis_data_PageFlag.LAST_PAGE = 4; -kha_audio2_ogg_vorbis_data_Setting.MAX_CHANNELS = 16; -kha_audio2_ogg_vorbis_data_Setting.PUSHDATA_CRC_COUNT = 4; -kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_LENGTH = 10; -kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_TABLE_SIZE = 1024; -kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_TABLE_MASK = 1023; -kha_graphics2_truetype_StbTruetype.STBTT_vmove = 1; -kha_graphics2_truetype_StbTruetype.STBTT_vline = 2; -kha_graphics2_truetype_StbTruetype.STBTT_vcurve = 3; -kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_DONTCARE = 0; -kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_BOLD = 1; -kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_ITALIC = 2; -kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_UNDERSCORE = 4; -kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_NONE = 8; -kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_UNICODE = 0; -kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_MAC = 1; -kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_ISO = 2; -kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_MICROSOFT = 3; -kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_1_0 = 0; -kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_1_1 = 1; -kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_ISO_10646 = 2; -kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_2_0_BMP = 3; -kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_2_0_FULL = 4; -kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_SYMBOL = 0; -kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_UNICODE_BMP = 1; -kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_SHIFTJIS = 2; -kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_UNICODE_FULL = 10; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_ROMAN = 0; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_ARABIC = 4; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_JAPANESE = 1; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_HEBREW = 5; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_CHINESE_TRAD = 2; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_GREEK = 6; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_KOREAN = 3; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_RUSSIAN = 7; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_ENGLISH = 1033; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_ITALIAN = 1040; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_CHINESE = 2052; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_JAPANESE = 1041; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_DUTCH = 1043; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_KOREAN = 1042; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_FRENCH = 1036; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_RUSSIAN = 1049; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_GERMAN = 1031; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_SPANISH = 1033; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_HEBREW = 1037; -kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_SWEDISH = 1053; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ENGLISH = 0; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_JAPANESE = 11; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ARABIC = 12; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_KOREAN = 23; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_DUTCH = 4; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_RUSSIAN = 32; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_FRENCH = 1; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_SPANISH = 6; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_GERMAN = 2; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_SWEDISH = 5; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_HEBREW = 10; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_CHINESE_SIMPLIFIED = 33; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ITALIAN = 3; -kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_CHINESE_TRAD = 19; -kha_graphics2_truetype_StbTruetype.STBTT_MAX_OVERSAMPLE = 8; -kha_graphics2_truetype_StbTruetype.STBTT_RASTERIZER_VERSION = 2; -kha_graphics4_CubeMap.GL_RGBA16F = 34842; -kha_graphics4_CubeMap.GL_RGBA32F = 34836; -kha_graphics4_CubeMap.GL_R16F = 33325; -kha_graphics4_CubeMap.GL_R32F = 33326; -kha_graphics4_CubeMap.GL_DEPTH_COMPONENT24 = 33190; -kha_graphics4_CubeMap.GL_DEPTH24_STENCIL8 = 35056; -kha_graphics4_CubeMap.GL_DEPTH32F_STENCIL8 = 36013; -kha_graphics4_ImageShaderPainter.bufferSize = 1500; -kha_graphics4_ImageShaderPainter.vertexSize = 9; -kha_graphics4_ColoredShaderPainter.bufferSize = 100; -kha_graphics4_ColoredShaderPainter.triangleBufferSize = 100; -kha_graphics4_TextShaderPainter.bufferSize = 100; -kha_input_Gamepad.__meta__ = { fields : { sendAxisEvent : { input : null}, sendButtonEvent : { input : null}}}; -kha_input_Gamepad.instances = []; -kha_input_Keyboard.__meta__ = { fields : { sendDownEvent : { input : null}, sendUpEvent : { input : null}}}; -kha_input_Mouse.__meta__ = { fields : { sendLeaveEvent : { input : null}, sendDownEvent : { input : null}, sendUpEvent : { input : null}, sendMoveEvent : { input : null}, sendWheelEvent : { input : null}}}; -kha_internal_HdrFormat.radiancePattern = new EReg("#\\?RADIANCE","i"); -kha_internal_HdrFormat.commentPattern = new EReg("#.*","i"); -kha_internal_HdrFormat.gammaPattern = new EReg("GAMMA=","i"); -kha_internal_HdrFormat.exposurePattern = new EReg("EXPOSURE=\\s*([0-9]*[.][0-9]*)","i"); -kha_internal_HdrFormat.formatPattern = new EReg("FORMAT=32-bit_rle_rgbe","i"); -kha_internal_HdrFormat.widthHeightPattern = new EReg("-Y ([0-9]+) \\+X ([0-9]+)","i"); -kha_js_AEAudioChannel.todo = []; -kha_js_Sound.loading = []; -kha_js_Video.loading = new List(); -kha_math_FastMatrix3.width = 3; -kha_math_FastMatrix3.height = 3; -kha_math_FastMatrix4.width = 4; -kha_math_FastMatrix4.height = 4; -kha_math_Matrix3.width = 3; -kha_math_Matrix3.height = 3; -kha_math_Matrix4.width = 4; -kha_math_Matrix4.height = 4; -kha_math_Quaternion.AXIS_X = 0; -kha_math_Quaternion.AXIS_Y = 1; -kha_math_Quaternion.AXIS_Z = 2; -kha_network_ControllerBuilder.nextId = 0; -kha_network_Session.START = 0; -kha_network_Session.ENTITY_UPDATES = 1; -kha_network_Session.CONTROLLER_UPDATES = 2; -kha_network_Session.REMOTE_CALL = 3; -kha_network_Session.PING = 4; -kha_network_Session.ERROR = 5; -kha_network_Session.PLAYER_UPDATES = 6; -kha_network_Session.RPC_SERVER = 0; -kha_network_Session.RPC_ALL = 1; -kha_network_SyncBuilder.nextId = 0; -kha_network_SyncBuilder.objects = []; -zui_Id.i = 0; -zui_Themes.light = { _FONT_SIZE : 15, _FONT_SMALL_SIZE : 15, _ELEMENT_W : 100, _ELEMENT_H : 26, _ELEMENT_SEPARATOR_SIZE : 2, _ARROW_W : 9, _ARROW_H : 9, _BUTTON_H : 19, _CHECK_W : 15, _CHECK_H : 15, _CHECK_SELECT_W : 8, _CHECK_SELECT_H : 8, _RADIO_W : 15, _RADIO_H : 15, _RADIO_SELECT_W : 8, _RADIO_SELECT_H : 8, _SCROLL_W : 12, _SCROLL_BAR_W : 8, _DEFAULT_TEXT_OFFSET_X : 8, _TAB_W : 12, _LINE_STRENGTH : 1, WINDOW_BG_COL : -1776412, WINDOW_TINT_COL : -1, SCROLL_BG_COL : -1776412, SCROLL_COL : -15658735, SCROLL_HOVER_COL : -10055985, PANEL_BG1_COL : -16777216, PANEL_BG2_COL : -16777216, PANEL_TEXT_COL : -13421773, PANEL_TEXT_COL_HOVER : -13421773, BUTTON_BG_COL : -11175241, BUTTON_TEXT_COL : -15658735, BUTTON_BG_COL_HOVER : -10055985, BUTTON_BG_COL_PRESSED : -3299061, TEXT_INPUT_BG_COL : -13355978, TEXT_INPUT_BG_COL_HOVER : -12303290, TEXT_CURSOR_COL : -15658735, TEXT_CURSOR_FLASH_SPEED : 0.5, CHECK_COL : -13355978, CHECK_COL_HOVER : -7829368, CHECK_SELECT_COL : -13355978, RADIO_COL : -13355978, RADIO_COL_HOVER : -7829368, RADIO_SELECT_COL : -13355978, SLIDER_COL : -9069865, SLIDER_COL_HOVER : -10055985, TEXT_COL : -15658735, TEXT_COL_HOVER : -15658735, DEFAULT_LABEL_COL : -14540254, ARROW_COL : -4539977, ARROW_COL_HOVER : -3487289, SEPARATOR_COL : -5592406, FILL_WINDOW_BG : true, FILL_TEXT_INPUT_BG : false, FILL_BUTTON_BG : false, FILL_CHECK_BG : false, FILL_RADIO_BG : false, FILL_SLIDER_BG : false}; -zui_Themes.dark = { _FONT_SIZE : 15, _FONT_SMALL_SIZE : 15, _ELEMENT_W : 100, _ELEMENT_H : 26, _ELEMENT_SEPARATOR_SIZE : 2, _ARROW_W : 9, _ARROW_H : 9, _BUTTON_H : 19, _CHECK_W : 15, _CHECK_H : 15, _CHECK_SELECT_W : 8, _CHECK_SELECT_H : 8, _RADIO_W : 15, _RADIO_H : 15, _RADIO_SELECT_W : 8, _RADIO_SELECT_H : 8, _SCROLL_W : 12, _SCROLL_BAR_W : 8, _DEFAULT_TEXT_OFFSET_X : 8, _TAB_W : 12, _LINE_STRENGTH : 1, WINDOW_BG_COL : -15658735, WINDOW_TINT_COL : -1, SCROLL_BG_COL : -15724528, SCROLL_COL : -11974327, SCROLL_HOVER_COL : -2894893, PANEL_BG1_COL : -16777216, PANEL_BG2_COL : -16777216, PANEL_TEXT_COL : -1118482, PANEL_TEXT_COL_HOVER : -1118482, BUTTON_BG_COL : -11175241, BUTTON_TEXT_COL : -3487289, BUTTON_BG_COL_HOVER : -10055985, BUTTON_BG_COL_PRESSED : -3299061, TEXT_INPUT_BG_COL : -13355978, TEXT_INPUT_BG_COL_HOVER : -12303290, TEXT_CURSOR_COL : -3487289, TEXT_CURSOR_FLASH_SPEED : 0.5, CHECK_COL : -13355978, CHECK_COL_HOVER : -12303290, CHECK_SELECT_COL : -2697514, RADIO_COL : -13355978, RADIO_COL_HOVER : -12303290, RADIO_SELECT_COL : -2697514, SLIDER_COL : -13355978, SLIDER_COL_HOVER : -12303290, TEXT_COL : -3487289, TEXT_COL_HOVER : -3487289, DEFAULT_LABEL_COL : -5592406, ARROW_COL : -3487289, ARROW_COL_HOVER : -3487289, SEPARATOR_COL : -14540513, FILL_WINDOW_BG : false, FILL_TEXT_INPUT_BG : false, FILL_BUTTON_BG : false, FILL_CHECK_BG : false, FILL_RADIO_BG : false, FILL_SLIDER_BG : false}; -zui_Zui.elementsBaked = false; -zui_Handle.global = new zui_Handle(); -Main.main(); -})(typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this); diff --git a/tools/armorui/.gitignore b/tools/armorui/krom/.gitignore similarity index 100% rename from tools/armorui/.gitignore rename to tools/armorui/krom/.gitignore diff --git a/tools/armorui/krom/DroidSans.ttf b/tools/armorui/krom/DroidSans.ttf new file mode 100644 index 00000000..efd1f8bb Binary files /dev/null and b/tools/armorui/krom/DroidSans.ttf differ diff --git a/tools/armorui/krom/color_wheel.png b/tools/armorui/krom/color_wheel.png new file mode 100644 index 00000000..aee45c17 Binary files /dev/null and b/tools/armorui/krom/color_wheel.png differ diff --git a/tools/armorui/krom/krom.js b/tools/armorui/krom/krom.js new file mode 100644 index 00000000..c413cc77 --- /dev/null +++ b/tools/armorui/krom/krom.js @@ -0,0 +1 @@ +function $extend(e,t){function a(){}a.prototype=e;var i=new a;for(var r in t)i[r]=t[r];return t.toString!==Object.prototype.toString&&(i.toString=t.toString),i}function $iterator(e){return e instanceof Array?function(){return HxOverrides.iter(e)}:"function"==typeof e.iterator?$bind(e,e.iterator):e.iterator}function $bind(e,t){if(null==t)return null;null==t.__id__&&(t.__id__=$fid++);var a;return null==e.hx__closures__?e.hx__closures__={}:a=e.hx__closures__[t.__id__],null==a&&((a=function(){return a.method.apply(a.scope,arguments)}).scope=e,a.method=t,e.hx__closures__[t.__id__]=a),a}var $hx_exports="undefined"!=typeof exports?exports:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this;$hx_exports.kha=$hx_exports.kha||{},$hx_exports.kha.input=$hx_exports.kha.input||{},$hx_exports.kha._Color=$hx_exports.kha._Color||{};var $global="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,$hxClasses=$hxClasses||{},$estr=function(){return js_Boot.__string_rec(this,"")},Elements=$hxClasses.Elements=function(e){this.hradio=zui_Handle.global.nest(6,null),this.hwin=zui_Handle.global.nest(0,null),this.selectedElem=-1,this.dragAsset=null,this.assetId=0,this.assetNames=[],this.drag=!1,this.bg=null,this.canvas=e,kha_Assets.loadEverything($bind(this,this.loaded))};Elements.__name__=!0,Elements.prototype={ui:null,cui:null,bg:null,canvas:null,drag:null,assetNames:null,assetId:null,dragAsset:null,loaded:function(){var e=this,t=Reflect.copy(zui_Themes.dark);t.FILL_WINDOW_BG=!0,this.ui=new zui_Zui({font:kha_Assets.fonts.DroidSans,theme:t,color_wheel:kha_Assets.images.color_wheel}),this.cui=new zui_Zui({font:kha_Assets.fonts.DroidSans,autoNotifyInput:!1}),kha_System.notifyOnDropFiles(function(t){t=StringTools.rtrim(t),e.importAsset(t)}),kha_System.notifyOnRender($bind(this,this.render)),kha_Scheduler.addTimeTask($bind(this,this.update),0,.016666666666666666)},importAsset:function(e){var t=this;(StringTools.endsWith(e,".jpg")||StringTools.endsWith(e,".png")||StringTools.endsWith(e,".hdr"))&&kha_LoaderImpl.loadImageFromDescription({files:[e]},function(a){var i=e.split("/"),r=i[i.length-1],s={name:r,file:e,image:a,id:t.assetId++};t.canvas.assets.push(s),t.assetNames.push(r),t.hwin.redraws=2})},makeElem:function(e){var t="",a=100;return 0==e?(t="Text",a=48):2==e?t="Button":1==e&&(t="Image"),{id:zui_Canvas.getElementId(this.canvas),type:e,name:t,event:"",x:0,y:0,width:150,height:a,text:t,asset:"",color:16777215,anchor:0,children:[]}},getEnumTexts:function(){return this.assetNames.length>0?this.assetNames:[""]},getAssetIndex:function(e){for(var t=0,a=this.canvas.assets.length;t=0&&this.selectedElem=0;){var y=this.canvas.elements[S];this.ui.radio(this.hradio,S,y.name)&&(this.selectedElem=S),--S}this.ui.row([.3333333333333333,.3333333333333333,.3333333333333333]);var x=this.ui.t.BUTTON_BG_COL,B=this.ui.t.BUTTON_BG_COL_HOVER,T=this.ui.t.BUTTON_BG_COL_PRESSED;this.ui.t.BUTTON_BG_COL=-13355978,this.ui.t.BUTTON_BG_COL_HOVER=-12303290,this.ui.t.BUTTON_BG_COL_PRESSED=-13619152;var w=this.canvas.elements;if(this.ui.button("Up")&&this.selectedElem0){var I=this.canvas.elements[this.selectedElem];this.canvas.elements[this.selectedElem]=this.canvas.elements[this.selectedElem-1],this.canvas.elements[this.selectedElem-1]=I,this.selectedElem--,this.hradio.position=this.selectedElem}this.ui.button("Remove")&&(w.splice(this.selectedElem,1),this.selectedElem==w.length?this.selectedElem--:this.selectedElem<0&&this.selectedElem++,this.hradio.position=this.selectedElem),this.ui.t.BUTTON_BG_COL=x,this.ui.t.BUTTON_BG_COL_HOVER=B,this.ui.t.BUTTON_BG_COL_PRESSED=T}if(this.ui.separator(),this.ui.panel(zui_Handle.global.nest(7,{selected:!0}),"PROPERTIES")&&this.selectedElem>=0){var C=this.canvas.elements[this.selectedElem],A=C.id;this.ui.row([.5,.5]),C.name=this.ui.textInput(zui_Handle.global.nest(8,null).nest(A,{text:C.name}),"Name",2),C.event=this.ui.textInput(zui_Handle.global.nest(9,null).nest(A,{text:C.event}),"Event",2),this.ui.row([.5,.5]);var L=C.x+"",R=zui_Handle.global.nest(10,null).nest(A,{text:L}),$=C.y+"",F=zui_Handle.global.nest(11,null).nest(A,{text:$});R.text=C.x+"",F.text=C.y+"";var V=this.ui.textInput(R,"X",2),N=this.ui.textInput(F,"Y",2);C.x=parseFloat(V),C.y=parseFloat(N),this.ui.row([.5,.5]);var P=C.width+"",M=this.ui.textInput(zui_Handle.global.nest(12,null).nest(A,{text:P}),"Width",2),O=C.height+"",D=this.ui.textInput(zui_Handle.global.nest(13,null).nest(A,{text:O}),"Height",2);C.width=0|parseFloat(M),C.height=0|parseFloat(D),C.text=this.ui.textInput(zui_Handle.global.nest(14,null).nest(A,{text:C.text}),"Text",2),C.anchor=this.ui.combo(zui_Handle.global.nest(15,null).nest(A),["None","Top-Left","Top-Center","Top-Right"],"Anchor",!0,2);var U=this.ui.combo(zui_Handle.global.nest(16,null).nest(A,{position:this.getAssetIndex(C.asset)}),this.getEnumTexts(),"Asset",!0,2);C.asset=this.getEnumTexts()[U],C.color=zui_Ext.colorWheel(this.ui,zui_Handle.global.nest(17,null).nest(A,{color:16777215}),!0,null,!0)}if(this.ui.separator(),this.ui.panel(zui_Handle.global.nest(18,{selected:!0}),"ASSETS"))if(this.canvas.assets.length>0)for(var H=this.canvas.assets.length-1;H>=0;){var G=this.canvas.assets[H];1==this.ui.image(G.image)&&(this.dragAsset=G),this.ui.row([.875,.125]),G.name=this.ui.textInput(zui_Handle.global.nest(19,null).nest(G.id,{text:G.name}),"",2),this.assetNames[H]=G.name,this.ui.button("X")&&(G.image.unload(),this.canvas.assets.splice(H,1),this.assetNames.splice(H,1)),--H}else this.ui.text("(Drag & drop assets)",1,-15395563),this.ui.text("(.png .jpg .hdr)",1,-15395563)}if(this.ui.end(),h.begin(!1),null!=this.dragAsset){var W=128/this.dragAsset.image.get_width(),z=this.dragAsset.image.get_height()*W;h.drawScaledImage(this.dragAsset.image,this.ui.inputX,this.ui.inputY,128,z)}h.end()},acceptDrag:function(e){var t=this.makeElem(1);t.asset=this.assetNames[e],t.x=this.ui.inputX-this.canvas.x,t.y=this.ui.inputY-this.canvas.y,this.canvas.elements.push(t),this.hradio.position=this.canvas.elements.length-1},update:function(){if(this.ui.inputReleased&&null!=this.dragAsset){if(this.ui.inputXthis.canvas.x+_.x&&this.ui.inputXthis.canvas.y+_.y&&this.ui.inputY=0&&this.selectedElemthis.canvas.x+o.x&&this.ui.inputXthis.canvas.y+o.y&&this.ui.inputY=a&&HxOverrides.substr(e,i-a,a)==t},StringTools.isSpace=function(e,t){var a=HxOverrides.cca(e,t);return a>8&&a<14||32==a},StringTools.rtrim=function(e){for(var t=e.length,a=0;a0?HxOverrides.substr(e,0,t-a):e};var Type=$hxClasses.Type=function(){};Type.__name__=!0,Type.resolveClass=function(e){var t=$hxClasses[e];return null!=t&&t.__name__?t:null},Type.resolveEnum=function(e){var t=$hxClasses[e];return null!=t&&t.__ename__?t:null},Type.createEmptyInstance=function(e){function t(){}return t.prototype=e.prototype,new t},Type.createEnum=function(e,t,a){var i=Reflect.field(e,t);if(null==i)throw new js__$Boot_HaxeError("No such constructor "+t);if(Reflect.isFunction(i)){if(null==a)throw new js__$Boot_HaxeError("Constructor "+t+" need parameters");return i.apply(e,a)}if(null!=a&&0!=a.length)throw new js__$Boot_HaxeError("Constructor "+t+" does not need parameters");return i},Type.getInstanceFields=function(e){var t=[];for(var a in e.prototype)t.push(a);return HxOverrides.remove(t,"__class__"),HxOverrides.remove(t,"__properties__"),t};var _$UInt_UInt_$Impl_$=$hxClasses["_UInt.UInt_Impl_"]={};_$UInt_UInt_$Impl_$.__name__=!0,_$UInt_UInt_$Impl_$.gt=function(e,t){var a=e<0;return a!=t<0?a:e>t},_$UInt_UInt_$Impl_$.gte=function(e,t){var a=e<0;return a!=t<0?a:e>=t},_$UInt_UInt_$Impl_$.toFloat=function(e){var t=e;return t<0?4294967296+t:t+0};var haxe_IMap=$hxClasses["haxe.IMap"]=function(){};haxe_IMap.__name__=!0;var haxe__$Int64__$_$_$Int64=$hxClasses["haxe._Int64.___Int64"]=function(e,t){this.high=e,this.low=t};haxe__$Int64__$_$_$Int64.__name__=!0,haxe__$Int64__$_$_$Int64.prototype={high:null,low:null,__class__:haxe__$Int64__$_$_$Int64};var haxe_Log=$hxClasses["haxe.Log"]=function(){};haxe_Log.__name__=!0,haxe_Log.trace=function(e,t){js_Boot.__trace(e,t)};var haxe__$Unserializer_DefaultResolver=$hxClasses["haxe._Unserializer.DefaultResolver"]=function(){};haxe__$Unserializer_DefaultResolver.__name__=!0,haxe__$Unserializer_DefaultResolver.prototype={resolveClass:function(e){return Type.resolveClass(e)},resolveEnum:function(e){return Type.resolveEnum(e)},__class__:haxe__$Unserializer_DefaultResolver};var haxe_Unserializer=$hxClasses["haxe.Unserializer"]=function(e){this.buf=e,this.length=e.length,this.pos=0,this.scache=[],this.cache=[];var t=haxe_Unserializer.DEFAULT_RESOLVER;null==t&&(t=new haxe__$Unserializer_DefaultResolver,haxe_Unserializer.DEFAULT_RESOLVER=t),this.resolver=t};haxe_Unserializer.__name__=!0,haxe_Unserializer.initCodes=function(){for(var e=[],t=0,a=haxe_Unserializer.BASE64.length;t57)break;e=10*e+(i-48),this.pos++}else{if(this.pos!=a)break;t=!0,this.pos++}}return t&&(e*=-1),e},readFloat:function(){for(var e=this.pos;;){var t=this.buf.charCodeAt(this.pos);if(t!=t)break;if(!(t>=43&&t<58||101==t||69==t))break;this.pos++}return parseFloat(HxOverrides.substr(this.buf,e,this.pos-e))},unserializeObject:function(e){for(;;){if(this.pos>=this.length)throw new js__$Boot_HaxeError("Invalid object");if(103==this.buf.charCodeAt(this.pos))break;var t=this.unserialize();if("string"!=typeof t)throw new js__$Boot_HaxeError("Invalid object key");var a=this.unserialize();e[t]=a}this.pos++},unserializeEnum:function(e,t){if(58!=this.buf.charCodeAt(this.pos++))throw new js__$Boot_HaxeError("Invalid enum format");var a=this.readDigits();if(0==a)return Type.createEnum(e,t);for(var i=[];a-- >0;)i.push(this.unserialize());return Type.createEnum(e,t,i)},unserialize:function(){switch(this.buf.charCodeAt(this.pos++)){case 65:var e=this.unserialize(),t=this.resolver.resolveClass(e);if(null==t)throw new js__$Boot_HaxeError("Class not found "+e);return t;case 66:var a=this.unserialize(),i=this.resolver.resolveEnum(a);if(null==i)throw new js__$Boot_HaxeError("Enum not found "+a);return i;case 67:var r=this.unserialize(),s=this.resolver.resolveClass(r);if(null==s)throw new js__$Boot_HaxeError("Class not found "+r);var n=Type.createEmptyInstance(s);if(this.cache.push(n),n.hxUnserialize(this),103!=this.buf.charCodeAt(this.pos++))throw new js__$Boot_HaxeError("Invalid custom data");return n;case 77:var _=new haxe_ds_ObjectMap;this.cache.push(_);for(this.buf;104!=this.buf.charCodeAt(this.pos);){var o=this.unserialize();_.set(o,this.unserialize())}return this.pos++,_;case 82:var h=this.readDigits();if(h<0||h>=this.scache.length)throw new js__$Boot_HaxeError("Invalid string reference");return this.scache[h];case 97:this.buf;var l=[];for(this.cache.push(l);;){var u=this.buf.charCodeAt(this.pos);if(104==u){this.pos++;break}if(117==u){this.pos++;var c=this.readDigits();l[l.length+c-1]=null}else l.push(this.unserialize())}return l;case 98:var d=new haxe_ds_StringMap;this.cache.push(d);for(this.buf;104!=this.buf.charCodeAt(this.pos);){var p=this.unserialize(),g=this.unserialize();null!=__map_reserved[p]?d.setReserved(p,g):d.h[p]=g}return this.pos++,d;case 99:var f=this.unserialize(),v=this.resolver.resolveClass(f);if(null==v)throw new js__$Boot_HaxeError("Class not found "+f);var k=Type.createEmptyInstance(v);return this.cache.push(k),this.unserializeObject(k),k;case 100:return this.readFloat();case 102:return!1;case 105:return this.readDigits();case 106:var m=this.unserialize(),b=this.resolver.resolveEnum(m);if(null==b)throw new js__$Boot_HaxeError("Enum not found "+m);this.pos++;var S=this.readDigits(),y=b.__constructs__.slice()[S];if(null==y)throw new js__$Boot_HaxeError("Unknown enum index "+m+"@"+S);var x=this.unserializeEnum(b,y);return this.cache.push(x),x;case 107:return NaN;case 108:var B=new List;this.cache.push(B);for(this.buf;104!=this.buf.charCodeAt(this.pos);)B.add(this.unserialize());return this.pos++,B;case 109:return-1/0;case 110:return null;case 111:var T={};return this.cache.push(T),this.unserializeObject(T),T;case 112:return 1/0;case 113:var w=new haxe_ds_IntMap;this.cache.push(w);this.buf;for(var E=this.buf.charCodeAt(this.pos++);58==E;){var I=this.readDigits(),C=this.unserialize();w.h[I]=C,E=this.buf.charCodeAt(this.pos++)}if(104!=E)throw new js__$Boot_HaxeError("Invalid IntMap format");return w;case 114:var A=this.readDigits();if(A<0||A>=this.cache.length)throw new js__$Boot_HaxeError("Invalid reference");return this.cache[A];case 115:var L=this.readDigits(),R=this.buf;if(58!=this.buf.charCodeAt(this.pos++)||this.length-this.pos>2)+(V>=2?V-1:0))),M=0;F>4);var U=$[R.charCodeAt(F++)];P.b[M++]=255&(D<<4|U>>2);var H=$[R.charCodeAt(F++)];P.b[M++]=255&(U<<6|H)}if(V>=2){var G=$[R.charCodeAt(F++)],W=$[R.charCodeAt(F++)];if(P.b[M++]=255&(G<<2|W>>4),3==V){var z=$[R.charCodeAt(F++)];P.b[M++]=255&(W<<4|z>>2)}}return this.pos+=L,this.cache.push(P),P;case 116:return!0;case 118:var j;if(this.buf.charCodeAt(this.pos)>=48&&this.buf.charCodeAt(this.pos)<=57&&this.buf.charCodeAt(this.pos+1)>=48&&this.buf.charCodeAt(this.pos+1)<=57&&this.buf.charCodeAt(this.pos+2)>=48&&this.buf.charCodeAt(this.pos+2)<=57&&this.buf.charCodeAt(this.pos+3)>=48&&this.buf.charCodeAt(this.pos+3)<=57&&45==this.buf.charCodeAt(this.pos+4))j=HxOverrides.strDate(HxOverrides.substr(this.buf,this.pos,19)),this.pos+=19;else{var K=this.readFloat();j=new Date(K)}return this.cache.push(j),j;case 119:var X=this.unserialize(),Y=this.resolver.resolveEnum(X);if(null==Y)throw new js__$Boot_HaxeError("Enum not found "+X);var Z=this.unserializeEnum(Y,this.unserialize());return this.cache.push(Z),Z;case 120:throw js__$Boot_HaxeError.wrap(this.unserialize());case 121:var Q=this.readDigits();if(58!=this.buf.charCodeAt(this.pos++)||this.length-this.pos>6),t.push(128|63&i)):i<=65535?(t.push(224|i>>12),t.push(128|i>>6&63),t.push(128|63&i)):(t.push(240|i>>18),t.push(128|i>>12&63),t.push(128|i>>6&63),t.push(128|63&i))}return new haxe_io_Bytes(new Uint8Array(t).buffer)},haxe_io_Bytes.ofData=function(e){var t=e.hxBytes;return null!=t?t:new haxe_io_Bytes(e)},haxe_io_Bytes.prototype={length:null,b:null,data:null,sub:function(e,t){if(e<0||t<0||e+t>this.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);return new haxe_io_Bytes(this.b.buffer.slice(e+this.b.byteOffset,e+this.b.byteOffset+t))},getFloat:function(e){return null==this.data&&(this.data=new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength)),this.data.getFloat32(e,!0)},setInt32:function(e,t){null==this.data&&(this.data=new DataView(this.b.buffer,this.b.byteOffset,this.b.byteLength)),this.data.setInt32(e,t,!0)},getString:function(e,t){if(e<0||t<0||e+t>this.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);for(var a="",i=this.b,r=String.fromCharCode,s=e,n=e+t;s>10)),a+=r(1023&o|56320)}}return a},toString:function(){return this.getString(0,this.length)},__class__:haxe_io_Bytes};var haxe_io_BytesBuffer=$hxClasses["haxe.io.BytesBuffer"]=function(){this.b=[]};haxe_io_BytesBuffer.__name__=!0,haxe_io_BytesBuffer.prototype={b:null,getBytes:function(){var e=new haxe_io_Bytes(new Uint8Array(this.b).buffer);return this.b=null,e},__class__:haxe_io_BytesBuffer};var haxe_io_Input=$hxClasses["haxe.io.Input"]=function(){};haxe_io_Input.__name__=!0,haxe_io_Input.prototype={bigEndian:null,readByte:function(){throw new js__$Boot_HaxeError("Not implemented")},readBytes:function(e,t,a){var i=a,r=e.b;if(t<0||a<0||t+a>e.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);try{for(;i>0;)r[t]=this.readByte(),++t,--i}catch(e){if(e instanceof js__$Boot_HaxeError&&(e=e.val),!js_Boot.__instanceof(e,haxe_io_Eof))throw e}return a-i},readFullBytes:function(e,t,a){for(;a>0;){var i=this.readBytes(e,t,a);if(0==i)throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);t+=i,a-=i}},read:function(e){for(var t=new haxe_io_Bytes(new ArrayBuffer(e)),a=0;e>0;){var i=this.readBytes(t,a,e);if(0==i)throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);a+=i,e-=i}return t},readInt32:function(){var e=this.readByte(),t=this.readByte(),a=this.readByte(),i=this.readByte();return this.bigEndian?i|a<<8|t<<16|e<<24:e|t<<8|a<<16|i<<24},readString:function(e){var t=new haxe_io_Bytes(new ArrayBuffer(e));return this.readFullBytes(t,0,e),t.toString()},__class__:haxe_io_Input};var haxe_io_BytesInput=$hxClasses["haxe.io.BytesInput"]=function(e,t,a){if(null==t&&(t=0),null==a&&(a=e.length-t),t<0||a<0||t+a>e.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);this.b=e.b,this.pos=t,this.len=a,this.totlen=a};haxe_io_BytesInput.__name__=!0,haxe_io_BytesInput.__super__=haxe_io_Input,haxe_io_BytesInput.prototype=$extend(haxe_io_Input.prototype,{b:null,pos:null,len:null,totlen:null,set_position:function(e){return e<0?e=0:e>this.totlen&&(e=this.totlen),this.len=this.totlen-e,this.pos=e},readByte:function(){if(0==this.len)throw new js__$Boot_HaxeError(new haxe_io_Eof);return this.len--,this.b[this.pos++]},readBytes:function(e,t,a){if(t<0||a<0||t+a>e.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);if(0==this.len&&a>0)throw new js__$Boot_HaxeError(new haxe_io_Eof);this.lene.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);for(var i=e.b,r=a;r>0;)this.writeByte(i[t]),++t,--r;return a},write:function(e){for(var t=e.length,a=0;t>0;){var i=this.writeBytes(e,a,t);if(0==i)throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);a+=i,t-=i}},writeFloat:function(e){this.writeInt32(haxe_io_FPHelper.floatToI32(e))},writeInt32:function(e){this.bigEndian?(this.writeByte(e>>>24),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e)):(this.writeByte(255&e),this.writeByte(e>>8&255),this.writeByte(e>>16&255),this.writeByte(e>>>24))},__class__:haxe_io_Output};var haxe_io_BytesOutput=$hxClasses["haxe.io.BytesOutput"]=function(){this.b=new haxe_io_BytesBuffer};haxe_io_BytesOutput.__name__=!0,haxe_io_BytesOutput.__super__=haxe_io_Output,haxe_io_BytesOutput.prototype=$extend(haxe_io_Output.prototype,{b:null,writeByte:function(e){this.b.b.push(e)},writeBytes:function(e,t,a){var i=this.b;if(t<0||a<0||t+a>e.length)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);i.b;for(var r=e.b,s=t,n=t+a;s>>31<<1),a=e>>>23&255,i=8388607&e;return 0==i&&0==a?0:t*(1+Math.pow(2,-23)*i)*Math.pow(2,a-127)},haxe_io_FPHelper.floatToI32=function(e){if(0==e)return 0;var t=e<0?-e:e,a=Math.floor(Math.log(t)/.6931471805599453);a<-127?a=-127:a>128&&(a=128);var i=Math.round(8388608*(t/Math.pow(2,a)-1));return 8388608==i&&a<128&&(i=0,++a),(e<0?-2147483648:0)|a+127<<23|i},haxe_io_FPHelper.i64ToDouble=function(e,t){var a=1-(t>>>31<<1),i=(t>>20&2047)-1023,r=4294967296*(1048575&t)+2147483648*(e>>>31)+(2147483647&e);return 0==r&&-1023==i?0:a*(1+Math.pow(2,-52)*r)*Math.pow(2,i)},haxe_io_FPHelper.doubleToI64=function(e){var t=haxe_io_FPHelper.i64tmp;if(0==e)t.low=0,t.high=0;else if(isFinite(e)){var a=e<0?-e:e,i=Math.floor(Math.log(a)/.6931471805599453),r=Math.round(4503599627370496*(a/Math.pow(2,i)-1)),s=0|r,n=r/4294967296|0;t.low=s,t.high=(e<0?-2147483648:0)|i+1023<<20|n}else e>0?(t.low=0,t.high=2146435072):(t.low=0,t.high=-1048576);return t};var js__$Boot_HaxeError=$hxClasses["js._Boot.HaxeError"]=function(e){Error.call(this),this.val=e,this.message=String(e),Error.captureStackTrace&&Error.captureStackTrace(this,js__$Boot_HaxeError)};js__$Boot_HaxeError.__name__=!0,js__$Boot_HaxeError.wrap=function(e){return e instanceof Error?e:new js__$Boot_HaxeError(e)},js__$Boot_HaxeError.__super__=Error,js__$Boot_HaxeError.prototype=$extend(Error.prototype,{val:null,__class__:js__$Boot_HaxeError});var js_Boot=$hxClasses["js.Boot"]=function(){};js_Boot.__name__=!0,js_Boot.__unhtml=function(e){return e.split("&").join("&").split("<").join("<").split(">").join(">")},js_Boot.__trace=function(e,t){var a=null!=t?t.fileName+":"+t.lineNumber+": ":"";if(a+=js_Boot.__string_rec(e,""),null!=t&&null!=t.customParams)for(var i=0,r=t.customParams;i":"undefined"!=typeof console&&null!=console.log&&console.log(a)},js_Boot.getClass=function(e){if(e instanceof Array&&null==e.__enum__)return Array;var t=e.__class__;if(null!=t)return t;var a=js_Boot.__nativeClassName(e);return null!=a?js_Boot.__resolveNativeClass(a):null},js_Boot.__string_rec=function(e,t){if(null==e)return"null";if(t.length>=5)return"<...>";var a=typeof e;switch("function"==a&&(e.__name__||e.__ename__)&&(a="object"),a){case"function":return"";case"object":if(e instanceof Array){if(e.__enum__){if(2==e.length)return e[0];var i=e[0]+"(";t+="\t";for(var r=2,s=e.length;r0?",":"")+js_Boot.__string_rec(e[l],t)}return _+="]"}var u;try{u=e.toString}catch(e){return"???"}if(null!=u&&u!=Object.toString&&"function"==typeof u){var c=e.toString();if("[object Object]"!=c)return c}var d=null,p="{\n";t+="\t";var g=null!=e.hasOwnProperty;for(var d in e)g&&!e.hasOwnProperty(d)||"prototype"!=d&&"__class__"!=d&&"__super__"!=d&&"__interfaces__"!=d&&"__properties__"!=d&&(2!=p.length&&(p+=", \n"),p+=t+d+" : "+js_Boot.__string_rec(e[d],t));return t=t.substring(1),p+="\n"+t+"}";case"string":return e;default:return String(e)}},js_Boot.__interfLoop=function(e,t){if(null==e)return!1;if(e==t)return!0;var a=e.__interfaces__;if(null!=a)for(var i=0,r=a.length;ie.byteLength)throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);this.byteLength=this.length,this.byteOffset=this.offset,this.buffer=this.buf};js_html_compat_DataView.__name__=!0,js_html_compat_DataView.prototype={buf:null,offset:null,length:null,byteLength:null,byteOffset:null,buffer:null,getInt8:function(e){var t=this.buf.a[this.offset+e];return t>=128?t-256:t},getUint8:function(e){return this.buf.a[this.offset+e]},getInt16:function(e,t){var a=this.getUint16(e,t);return a>=32768?a-65536:a},getUint16:function(e,t){return t?this.buf.a[this.offset+e]|this.buf.a[this.offset+e+1]<<8:this.buf.a[this.offset+e]<<8|this.buf.a[this.offset+e+1]},getInt32:function(e,t){var a=this.offset+e,i=this.buf.a[a++],r=this.buf.a[a++],s=this.buf.a[a++],n=this.buf.a[a++];return t?i|r<<8|s<<16|n<<24:n|s<<8|r<<16|i<<24},getUint32:function(e,t){var a=this.getInt32(e,t);return a<0?a+4294967296:a},getFloat32:function(e,t){return haxe_io_FPHelper.i32ToFloat(this.getInt32(e,t))},getFloat64:function(e,t){var a=this.getInt32(e,t),i=this.getInt32(e+4,t);return haxe_io_FPHelper.i64ToDouble(t?a:i,t?i:a)},setInt8:function(e,t){this.buf.a[e+this.offset]=t<0?t+128&255:255&t},setUint8:function(e,t){this.buf.a[e+this.offset]=255&t},setInt16:function(e,t,a){this.setUint16(e,t<0?t+65536:t,a)},setUint16:function(e,t,a){var i=e+this.offset;a?(this.buf.a[i]=255&t,this.buf.a[i++]=t>>8&255):(this.buf.a[i++]=t>>8&255,this.buf.a[i]=255&t)},setInt32:function(e,t,a){this.setUint32(e,t,a)},setUint32:function(e,t,a){var i=e+this.offset;a?(this.buf.a[i++]=255&t,this.buf.a[i++]=t>>8&255,this.buf.a[i++]=t>>16&255,this.buf.a[i++]=t>>>24):(this.buf.a[i++]=t>>>24,this.buf.a[i++]=t>>16&255,this.buf.a[i++]=t>>8&255,this.buf.a[i++]=255&t)},setFloat32:function(e,t,a){this.setUint32(e,haxe_io_FPHelper.floatToI32(t),a)},setFloat64:function(e,t,a){var i=haxe_io_FPHelper.doubleToI64(t);a?(this.setUint32(e,i.low),this.setUint32(e,i.high)):(this.setUint32(e,i.high),this.setUint32(e,i.low))},__class__:js_html_compat_DataView};var js_html_compat_Float32Array=$hxClasses["js.html.compat.Float32Array"]=function(){};js_html_compat_Float32Array.__name__=!0,js_html_compat_Float32Array._new=function(e,t,a){var i;if("number"==typeof e){i=[];for(var r=0,s=e;r>2),i=[];for(var l=0,u=a;l>8&255),d.push(f>>16&255),d.push(f>>>24)}i.byteLength=i.length<<2,i.byteOffset=0,i.buffer=new js_html_compat_ArrayBuffer(d)}return i.subarray=js_html_compat_Float32Array._subarray,i.set=js_html_compat_Float32Array._set,i},js_html_compat_Float32Array._set=function(e,t){if(js_Boot.__instanceof(e.buffer,js_html_compat_ArrayBuffer)){var a=e;if(e.byteLength+t>this.byteLength)throw new js__$Boot_HaxeError("set() outside of range");for(var i=0,r=e.byteLength;ithis.byteLength)throw new js__$Boot_HaxeError("set() outside of range");for(var _=0,o=n.length;_this.byteLength)throw new js__$Boot_HaxeError("set() outside of range");for(var i=0,r=e.byteLength;ithis.byteLength)throw new js__$Boot_HaxeError("set() outside of range");for(var _=0,o=n.length;_>>16},kha__$Color_Color_$Impl_$.get_Gb=function(e){return(65280&e)>>>8},kha__$Color_Color_$Impl_$.get_Bb=function(e){return 255&e},kha__$Color_Color_$Impl_$.get_Ab=function(e){return e>>>24},kha__$Color_Color_$Impl_$.set_Rb=function(e,t){return e=e>>>24<<24|t<<16|(65280&e)>>>8<<8|255&e,t},kha__$Color_Color_$Impl_$.set_Gb=function(e,t){return e=e>>>24<<24|(16711680&e)>>>16<<16|t<<8|255&e,t},kha__$Color_Color_$Impl_$.set_Bb=function(e,t){return e=e>>>24<<24|(16711680&e)>>>16<<16|(65280&e)>>>8<<8|t,t},kha__$Color_Color_$Impl_$.set_Ab=function(e,t){return e=t<<24|(16711680&e)>>>16<<16|(65280&e)>>>8<<8|255&e,t},kha__$Color_Color_$Impl_$.get_R=function(e){return.00392156862745098*((16711680&e)>>>16)},kha__$Color_Color_$Impl_$.get_G=function(e){return.00392156862745098*((65280&e)>>>8)},kha__$Color_Color_$Impl_$.get_B=function(e){return.00392156862745098*(255&e)},kha__$Color_Color_$Impl_$.get_A=function(e){return.00392156862745098*(e>>>24)},kha__$Color_Color_$Impl_$.set_R=function(e,t){return e=(.00392156862745098*(e>>>24)*255|0)<<24|(255*t|0)<<16|(.00392156862745098*((65280&e)>>>8)*255|0)<<8|.00392156862745098*(255&e)*255|0,t},kha__$Color_Color_$Impl_$.set_G=function(e,t){return e=(.00392156862745098*(e>>>24)*255|0)<<24|(.00392156862745098*((16711680&e)>>>16)*255|0)<<16|(255*t|0)<<8|.00392156862745098*(255&e)*255|0,t},kha__$Color_Color_$Impl_$.set_B=function(e,t){return e=(.00392156862745098*(e>>>24)*255|0)<<24|(.00392156862745098*((16711680&e)>>>16)*255|0)<<16|(.00392156862745098*((65280&e)>>>8)*255|0)<<8|255*t|0,t},kha__$Color_Color_$Impl_$.set_A=function(e,t){return e=(255*t|0)<<24|(.00392156862745098*((16711680&e)>>>16)*255|0)<<16|(.00392156862745098*((65280&e)>>>8)*255|0)<<8|.00392156862745098*(255&e)*255|0,t};var kha_Display=$hxClasses["kha.Display"]=function(){};kha_Display.__name__=!0,kha_Display.width=function(e){return kha_DisplayImpl.width(e)},kha_Display.height=function(e){return kha_DisplayImpl.height(e)},kha_Display.x=function(e){return kha_DisplayImpl.x(e)},kha_Display.y=function(e){return kha_DisplayImpl.y(e)},kha_Display.isPrimary=function(e){return kha_DisplayImpl.isPrimary(e)},kha_Display.get_count=function(){return kha_DisplayImpl.count()};var kha_DisplayImpl=$hxClasses["kha.DisplayImpl"]=function(){};kha_DisplayImpl.__name__=!0,kha_DisplayImpl.count=function(){return Krom.displayCount()},kha_DisplayImpl.width=function(e){return Krom.displayWidth(e)},kha_DisplayImpl.height=function(e){return Krom.displayHeight(e)},kha_DisplayImpl.x=function(e){return Krom.displayX(e)},kha_DisplayImpl.y=function(e){return Krom.displayY(e)},kha_DisplayImpl.isPrimary=function(e){return Krom.displayIsPrimary(e)};var kha_Resource=$hxClasses["kha.Resource"]=function(){};kha_Resource.__name__=!0,kha_Resource.prototype={unload:null,__class__:kha_Resource};var kha_Font=$hxClasses["kha.Font"]=function(){};kha_Font.__name__=!0,kha_Font.__interfaces__=[kha_Resource],kha_Font.prototype={height:null,width:null,baseline:null,__class__:kha_Font};var kha_FontStyle=$hxClasses["kha.FontStyle"]=function(e,t,a){this.bold=e,this.italic=t,this.underlined=a};kha_FontStyle.__name__=!0,kha_FontStyle.prototype={bold:null,italic:null,underlined:null,getBold:function(){return this.bold},getItalic:function(){return this.italic},getUnderlined:function(){return this.underlined},__class__:kha_FontStyle};var kha_Framebuffer=$hxClasses["kha.Framebuffer"]=function(e,t,a,i){this.windowId=e,this.graphics1=t,this.graphics2=a,this.graphics4=i};kha_Framebuffer.__name__=!0,kha_Framebuffer.__interfaces__=[kha_Canvas],kha_Framebuffer.prototype={windowId:null,graphics1:null,graphics2:null,graphics4:null,init:function(e,t,a){this.graphics1=e,this.graphics2=t,this.graphics4=a},g1:null,get_g1:function(){return this.graphics1},g2:null,get_g2:function(){return this.graphics2},g4:null,get_g4:function(){return this.graphics4},width:null,get_width:function(){return kha_System.windowWidth(this.windowId)},height:null,get_height:function(){return kha_System.windowHeight(this.windowId)},__class__:kha_Framebuffer};var kha_Image=$hxClasses["kha.Image"]=function(e){this.pixels=null,this.bytes=null,this.texture_=e};kha_Image.__name__=!0,kha_Image.__interfaces__=[kha_Resource,kha_Canvas],kha_Image.getRenderTargetFormat=function(e){switch(e[1]){case 0:return 0;case 1:return 5;case 2:return 3;case 3:return 4;case 4:return 1;case 5:return 2;case 6:return 6}},kha_Image.getDepthBufferBits=function(e){switch(e){case 0:return-1;case 1:case 2:case 3:return 24;case 4:return 32;case 5:return 16}},kha_Image.getStencilBufferBits=function(e){switch(e){case 0:case 1:return-1;case 2:case 3:case 4:return 8;case 5:return 0}},kha_Image.getTextureFormat=function(e){switch(e[1]){case 0:return 0;case 2:return 3;case 4:return 4;case 5:return 5;case 6:return 7;default:return 1}},kha_Image._fromTexture=function(e){return new kha_Image(e)},kha_Image.fromBytes=function(e,t,a,i,r){null==i&&(i=kha_graphics4_TextureFormat.RGBA32);var s=new kha_Image(null);return s.format=i,s.texture_=Krom.createTextureFromBytes(e.b.bufferValue,t,a,kha_Image.getTextureFormat(i),!0),s},kha_Image.create=function(e,t,a,i){null==a&&(a=kha_graphics4_TextureFormat.RGBA32);var r=new kha_Image(null);return r.format=a,r.texture_=Krom.createTexture(e,t,kha_Image.getTextureFormat(a)),r},kha_Image.create3D=function(e,t,a,i,r){null==i&&(i=kha_graphics4_TextureFormat.RGBA32);var s=new kha_Image(null);return s.format=i,s.texture_=Krom.createTexture3D(e,t,a,kha_Image.getTextureFormat(i)),s},kha_Image.createRenderTarget=function(e,t,a,i,r,s){null==s&&(s=0),null==r&&(r=1),null==i&&(i=0),null==a&&(a=kha_graphics4_TextureFormat.RGBA32);var n=new kha_Image(null);return n.format=a,n.renderTarget_=Krom.createRenderTarget(e,t,kha_Image.getDepthBufferBits(i),kha_Image.getRenderTargetFormat(a),kha_Image.getStencilBufferBits(i),s),n},kha_Image.get_maxSize=function(){return 4096},kha_Image.get_nonPow2Supported=function(){return!0},kha_Image.formatByteSize=function(e){switch(e[1]){case 0:return 4;case 1:return 1;case 2:return 16;case 3:return 2;case 4:return 8;case 5:return 4;case 6:return 2}},kha_Image.prototype={texture_:null,renderTarget_:null,format:null,readable:null,graphics1:null,graphics2:null,graphics4:null,isOpaque:function(e,t){return!1},at:function(e,t){return-16777216},unload:function(){Krom.unloadImage(this),this.texture_=null,this.renderTarget_=null},bytes:null,lock:function(e){return null==e&&(e=0),this.bytes=new haxe_io_Bytes(new ArrayBuffer(this.format==kha_graphics4_TextureFormat.RGBA32?4*this.get_width()*this.get_height():this.get_width()*this.get_height())),this.bytes},unlock:function(){Krom.unlockTexture(this.texture_,this.bytes.b.bufferValue)},pixels:null,getPixels:function(){return null==this.renderTarget_?null:(null==this.pixels&&(this.pixels=new haxe_io_Bytes(new ArrayBuffer(kha_Image.formatByteSize(this.format)*this.get_width()*this.get_height()))),Krom.getRenderTargetPixels(this.renderTarget_,this.pixels.b.bufferValue),this.pixels)},generateMipmaps:function(e){Krom.generateMipmaps(this.texture_,e)},setMipmaps:function(e){Krom.setMipmaps(this.texture_,e)},setDepthStencilFrom:function(e){Krom.setDepthStencilFrom(this.renderTarget_,e.renderTarget_)},clear:function(e,t,a,i,r,s,n){Krom.clearTexture(this.texture_,e,t,a,i,r,s,n)},width:null,get_width:function(){return null==this.texture_?this.renderTarget_.width:this.texture_.width},height:null,get_height:function(){return null==this.texture_?this.renderTarget_.height:this.texture_.height},depth:null,get_depth:function(){return null!=this.texture_?this.texture_.depth:1},realWidth:null,get_realWidth:function(){return null==this.texture_?this.renderTarget_.width:this.texture_.realWidth},realHeight:null,get_realHeight:function(){return null==this.texture_?this.renderTarget_.height:this.texture_.realHeight},g1:null,get_g1:function(){return null==this.graphics1&&(this.graphics1=new kha_graphics2_Graphics1(this)),this.graphics1},g2:null,get_g2:function(){return null==this.graphics2&&(this.graphics2=new kha_graphics4_Graphics2(this)),this.graphics2},g4:null,get_g4:function(){return null==this.graphics4&&(this.graphics4=new kha_krom_Graphics(this)),this.graphics4},__class__:kha_Image};var kha_AlignedQuad=$hxClasses["kha.AlignedQuad"]=function(){};kha_AlignedQuad.__name__=!0,kha_AlignedQuad.prototype={x0:null,y0:null,s0:null,t0:null,x1:null,y1:null,s1:null,t1:null,xadvance:null,__class__:kha_AlignedQuad};var kha_KravurImage=$hxClasses["kha.KravurImage"]=function(e,t,a,i,r,s,n,_){this.mySize=e,this.width=r,this.height=s,this.chars=n,this.baseline=t;for(var o=0;o=this.chars.length)return null;var i=1/this.width,r=1/this.height,s=this.chars[e];if(null==s)return null;var n=Math.round(t+s.xoff),_=Math.round(a+s.yoff),o=new kha_AlignedQuad;return o.x0=n,o.y0=_,o.x1=n+s.x1-s.x0,o.y1=_+s.y1-s.y0,o.s0=s.x0*i,o.t0=s.y0*r,o.s1=s.x1*i,o.t1=s.y1*r,o.xadvance=s.xadvance,o},getCharWidth:function(e){return e<32?0:e-32>=this.chars.length?0:this.chars[e-32].xadvance},getHeight:function(){return this.mySize},stringWidth:function(e){for(var t=new String(e),a=0,i=0,r=t.length;i=57&&t<=63&&(t=60),kha_Scheduler.onedifhz=1/t,kha_Scheduler.stopped=!1,kha_Scheduler.resetTime(),kha_Scheduler.lastTime=kha_Scheduler.realTime()-kha_Scheduler.startTime;for(var a=0,i=kha_Scheduler.DIF_COUNT;a=e)i.next=i.start;else if(i.period>0){var r=e-i.start,s=Math.ceil(r/i.period);i.next=i.start+s*i.period}}},kha_Scheduler.back=function(e){if(!(e>=kha_Scheduler.lastTime)){kha_Scheduler.current=e,kha_Scheduler.lastTime=e,kha_Scheduler.warpTimeTasks(e,kha_Scheduler.outdatedTimeTasks),kha_Scheduler.warpTimeTasks(e,kha_Scheduler.timeTasks);for(var t=0,a=kha_Scheduler.outdatedTimeTasks;t=e&&kha_Scheduler.timeTasksScratchpad.push(i)}for(var r=0,s=kha_Scheduler.timeTasksScratchpad;r0;)HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0]);for(var l=0,u=kha_Scheduler.outdatedTimeTasks;l0;)HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0])}},kha_Scheduler.executeFrame=function(){var e=kha_Scheduler.realTime()-kha_Scheduler.startTime-kha_Scheduler.lastTime,t=kha_Scheduler.current;if(!(e<0)){if(e>kha_Scheduler.maxframetime)kha_Scheduler.startTime+=e-kha_Scheduler.maxframetime,t+=e=kha_Scheduler.maxframetime;else if(kha_Scheduler.vsync){for(var a=kha_Scheduler.onedifhz;a0&&(kha_Scheduler.activeTimeTask=kha_Scheduler.timeTasks[0],kha_Scheduler.activeTimeTask.next<=t);)kha_Scheduler.activeTimeTask.next+=kha_Scheduler.activeTimeTask.period,HxOverrides.remove(kha_Scheduler.timeTasks,kha_Scheduler.activeTimeTask),kha_Scheduler.activeTimeTask.active&&kha_Scheduler.activeTimeTask.task()?kha_Scheduler.activeTimeTask.period>0&&(0==kha_Scheduler.activeTimeTask.duration||kha_Scheduler.activeTimeTask.duration>=kha_Scheduler.activeTimeTask.start+kha_Scheduler.activeTimeTask.next)?kha_Scheduler.insertSorted(kha_Scheduler.timeTasks,kha_Scheduler.activeTimeTask):kha_Scheduler.archiveTimeTask(kha_Scheduler.activeTimeTask,t):(kha_Scheduler.activeTimeTask.active=!1,kha_Scheduler.archiveTimeTask(kha_Scheduler.activeTimeTask,t));kha_Scheduler.activeTimeTask=null,kha_Scheduler.sortFrameTasks();for(var m=0,b=kha_Scheduler.frameTasks;m0;)HxOverrides.remove(kha_Scheduler.frameTasks,kha_Scheduler.toDeleteFrame.pop())}},kha_Scheduler.archiveTimeTask=function(e,t){},kha_Scheduler.time=function(){return kha_Scheduler.current},kha_Scheduler.realTime=function(){return kha_System.get_time()},kha_Scheduler.resetTime=function(){var e=kha_System.get_time(),t=e-kha_Scheduler.startTime;kha_Scheduler.startTime=e;for(var a=0,i=kha_Scheduler.timeTasks;a0;)HxOverrides.remove(kha_Scheduler.timeTasksScratchpad,kha_Scheduler.timeTasksScratchpad[0]);null!=kha_Scheduler.activeTimeTask&&kha_Scheduler.activeTimeTask.groupId==e&&(kha_Scheduler.activeTimeTask.active=!1)},kha_Scheduler.numTasksInSchedule=function(){return kha_Scheduler.timeTasks.length+kha_Scheduler.frameTasks.length},kha_Scheduler.insertSorted=function(e,t){for(var a=0,i=e.length;at.next)return void e.splice(r,0,t)}e.push(t)},kha_Scheduler.sortFrameTasks=function(){kha_Scheduler.frame_tasks_sorted||(kha_Scheduler.frameTasks.sort(function(e,t){return e.priority>t.priority?1:e.priority=kha_System.renderListeners.length;)kha_System.renderListeners.push([]);kha_System.renderListeners[t].push(e)},kha_System.removeRenderListener=function(e,t){null==t&&(t=0),HxOverrides.remove(kha_System.renderListeners[t],e)},kha_System.notifyOnApplicationState=function(e,t,a,i,r){null!=e&&kha_System.foregroundListeners.push(e),null!=t&&kha_System.resumeListeners.push(t),null!=a&&kha_System.pauseListeners.push(a),null!=i&&kha_System.backgroundListeners.push(i),null!=r&&kha_System.shutdownListeners.push(r)},kha_System.notifyOnDropFiles=function(e){kha_System.dropFilesListeners.push(e)},kha_System.render=function(e,t){if(0!=kha_System.renderListeners.length)for(var a=0,i=kha_System.renderListeners[e];a=this.getLength()},unload:function(){},__class__:kha_Video};var kha_WindowMode=$hxClasses["kha.WindowMode"]={__ename__:!0,__constructs__:["Window","BorderlessWindow","Fullscreen"]};kha_WindowMode.Window=["Window",0],kha_WindowMode.Window.toString=$estr,kha_WindowMode.Window.__enum__=kha_WindowMode,kha_WindowMode.BorderlessWindow=["BorderlessWindow",1],kha_WindowMode.BorderlessWindow.toString=$estr,kha_WindowMode.BorderlessWindow.__enum__=kha_WindowMode,kha_WindowMode.Fullscreen=["Fullscreen",2],kha_WindowMode.Fullscreen.toString=$estr,kha_WindowMode.Fullscreen.__enum__=kha_WindowMode;var kha_Position=$hxClasses["kha.Position"]={__ename__:!0,__constructs__:["Center","Fixed"]};kha_Position.Center=["Center",0],kha_Position.Center.toString=$estr,kha_Position.Center.__enum__=kha_Position,kha_Position.Fixed=function(e){var t=["Fixed",1,e];return t.__enum__=kha_Position,t.toString=$estr,t};var kha_TargetDisplay=$hxClasses["kha.TargetDisplay"]={__ename__:!0,__constructs__:["Primary","ById"]};kha_TargetDisplay.Primary=["Primary",0],kha_TargetDisplay.Primary.toString=$estr,kha_TargetDisplay.Primary.__enum__=kha_TargetDisplay,kha_TargetDisplay.ById=function(e){var t=["ById",1,e];return t.__enum__=kha_TargetDisplay,t.toString=$estr,t};var kha_RendererOptions=$hxClasses["kha.RendererOptions"]=function(e,t,a){this.textureFormat=e,this.depthStencilFormat=t,this.samplesPerPixel=a};kha_RendererOptions.__name__=!0,kha_RendererOptions.prototype={textureFormat:null,depthStencilFormat:null,samplesPerPixel:null,__class__:kha_RendererOptions};var kha_WindowedModeOptions=$hxClasses["kha.WindowedModeOptions"]=function(e,t,a){this.minimizable=e,this.maximizable=t,this.resizable=a};kha_WindowedModeOptions.__name__=!0,kha_WindowedModeOptions.prototype={minimizable:null,maximizable:null,resizable:null,__class__:kha_WindowedModeOptions};var kha_WindowOptions=$hxClasses["kha.WindowOptions"]=function(e,t,a,i,r,s,n,_,o){this.width=e,this.height=t,this.mode=a,this.title=i,this.x=r,this.y=s,this.targetDisplay=n,this.rendererOptions=_,this.windowedModeOptions=o};kha_WindowOptions.__name__=!0,kha_WindowOptions.prototype={width:null,height:null,mode:null,title:null,x:null,y:null,targetDisplay:null,rendererOptions:null,windowedModeOptions:null,__class__:kha_WindowOptions};var kha_arrays__$Float32Array_Float32Array_$Impl_$=$hxClasses["kha.arrays._Float32Array.Float32Array_Impl_"]={};kha_arrays__$Float32Array_Float32Array_$Impl_$.__name__=!0,kha_arrays__$Float32Array_Float32Array_$Impl_$._new=function(e){return new Float32Array(e)},kha_arrays__$Float32Array_Float32Array_$Impl_$.get_length=function(e){return e.length},kha_arrays__$Float32Array_Float32Array_$Impl_$.set=function(e,t,a){return e[t]=a},kha_arrays__$Float32Array_Float32Array_$Impl_$.get=function(e,t){return e[t]},kha_arrays__$Float32Array_Float32Array_$Impl_$.data=function(e){return e},kha_arrays__$Float32Array_Float32Array_$Impl_$.arrayRead=function(e,t){return e[t]},kha_arrays__$Float32Array_Float32Array_$Impl_$.arrayWrite=function(e,t,a){return e[t]=a},kha_arrays__$Float32Array_Float32Array_$Impl_$.subarray=function(e,t,a){return e.subarray(t,a)};var kha_arrays__$Uint32Array_Uint32Array_$Impl_$=$hxClasses["kha.arrays._Uint32Array.Uint32Array_Impl_"]={};kha_arrays__$Uint32Array_Uint32Array_$Impl_$.__name__=!0,kha_arrays__$Uint32Array_Uint32Array_$Impl_$._new=function(e){return new Uint32Array(e)},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.get_length=function(e){return e.length},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.set=function(e,t,a){return e[t]=a},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.get=function(e,t){return e[t]},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.data=function(e){return e},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.arrayRead=function(e,t){return e[t]},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.arrayWrite=function(e,t,a){return e[t]=a},kha_arrays__$Uint32Array_Uint32Array_$Impl_$.subarray=function(e,t,a){return e.subarray(t,a)};var kha_audio1_AudioChannel=$hxClasses["kha.audio1.AudioChannel"]=function(){};kha_audio1_AudioChannel.__name__=!0,kha_audio1_AudioChannel.prototype={play:null,pause:null,stop:null,length:null,get_length:null,position:null,get_position:null,get_volume:null,set_volume:null,finished:null,get_finished:null,__class__:kha_audio1_AudioChannel};var kha_audio2_Audio=$hxClasses["kha.audio2.Audio"]=function(){};kha_audio2_Audio.__name__=!0,kha_audio2_Audio._init=function(){kha_audio2_Audio.buffer=new kha_audio2_Buffer(8192,2,44100)},kha_audio2_Audio._callCallback=function(e){if(null!=kha_audio2_Audio.buffer)if(null!=kha_audio2_Audio.audioCallback)kha_audio2_Audio.audioCallback(e,kha_audio2_Audio.buffer);else for(var t=0,a=e;t=kha_audio2_Audio.buffer.size&&(kha_audio2_Audio.buffer.writeLocation=0)}},kha_audio2_Audio._readSample=function(){if(null==kha_audio2_Audio.buffer)return 0;var e=kha_audio2_Audio.buffer.data[kha_audio2_Audio.buffer.readLocation];return kha_audio2_Audio.buffer.readLocation+=1,kha_audio2_Audio.buffer.readLocation>=kha_audio2_Audio.buffer.size&&(kha_audio2_Audio.buffer.readLocation=0),e},kha_audio2_Audio.play=function(e,t){return null==t&&(t=!1),null},kha_audio2_Audio.stream=function(e,t){return null==t&&(t=!1),null};var kha_audio2_Audio1=$hxClasses["kha.audio2.Audio1"]=function(){};kha_audio2_Audio1.__name__=!0,kha_audio2_Audio1._init=function(){var e=new Array(16);kha_audio2_Audio1.soundChannels=e;var t=new Array(16);kha_audio2_Audio1.streamChannels=t;var a=new Array(16);kha_audio2_Audio1.internalSoundChannels=a;var i=new Array(16);kha_audio2_Audio1.internalStreamChannels=i;var r=new Array(512);kha_audio2_Audio1.sampleCache1=r;var s=new Array(512);kha_audio2_Audio1.sampleCache2=s,kha_audio2_Audio.audioCallback=kha_audio2_Audio1.mix},kha_audio2_Audio1.max=function(e,t){return e>t?e:t},kha_audio2_Audio1.min=function(e,t){return e-1?$:-1,t.writeLocation+=1,t.writeLocation>=t.size&&(t.writeLocation=0)}},kha_audio2_Audio1.play=function(e,t){null==t&&(t=!1);for(var a=null,i=0;i<16;){var r=i++;if(null==kha_audio2_Audio1.soundChannels[r]||kha_audio2_Audio1.soundChannels[r].get_finished()){(a=new kha_audio2_AudioChannel(t)).data=e.uncompressedData,kha_audio2_Audio1.soundChannels[r]=a;break}}return a},kha_audio2_Audio1._playAgain=function(e){for(var t=0;t<16;){var a=t++;if(null==kha_audio2_Audio1.soundChannels[a]||kha_audio2_Audio1.soundChannels[a].get_finished()||kha_audio2_Audio1.soundChannels[a]==e){kha_audio2_Audio1.soundChannels[a]=e;break}}},kha_audio2_Audio1.stream=function(e,t){null==t&&(t=!1);var a=kha_audio2_Audio.stream(e,t);if(null!=a)return a;for(var i=null,r=0;r<16;){var s=r++;if(null==kha_audio2_Audio1.streamChannels[s]||kha_audio2_Audio1.streamChannels[s].get_finished()){i=new kha_audio2_StreamChannel(e.compressedData,t),kha_audio2_Audio1.streamChannels[s]=i;break}}return i};var kha_audio2_AudioChannel=$hxClasses["kha.audio2.AudioChannel"]=function(e){this.paused=!1,this.looping=e,this.myVolume=1,this.myPosition=0};kha_audio2_AudioChannel.__name__=!0,kha_audio2_AudioChannel.__interfaces__=[kha_audio1_AudioChannel],kha_audio2_AudioChannel.prototype={data:null,myVolume:null,myPosition:null,paused:null,looping:null,nextSamples:function(e,t,a){if(this.paused)for(var i=0,r=t;i=this.data.length&&(this.myPosition=0)}for(;s=this.data.length},__class__:kha_audio2_AudioChannel};var kha_audio2_Buffer=$hxClasses["kha.audio2.Buffer"]=function(e,t,a){this.size=e;var i=new Array(e);this.data=i,this.channels=t,this.samplesPerSecond=a,this.readLocation=0,this.writeLocation=0};kha_audio2_Buffer.__name__=!0,kha_audio2_Buffer.prototype={channels:null,samplesPerSecond:null,data:null,size:null,readLocation:null,writeLocation:null,__class__:kha_audio2_Buffer};var kha_audio2_StreamChannel=$hxClasses["kha.audio2.StreamChannel"]=function(e,t){this.paused=!1,this.atend=!1,this.myVolume=1,this.loop=t,this.reader=kha_audio2_ogg_vorbis_Reader.openFromBytes(e)};kha_audio2_StreamChannel.__name__=!0,kha_audio2_StreamChannel.__interfaces__=[kha_audio1_AudioChannel],kha_audio2_StreamChannel.prototype={reader:null,atend:null,loop:null,myVolume:null,paused:null,nextSamples:function(e,t,a){if(this.paused)for(var i=0,r=t;i>>24]};var kha_audio2_ogg_tools_MathTools=$hxClasses["kha.audio2.ogg.tools.MathTools"]=function(){};kha_audio2_ogg_tools_MathTools.__name__=!0,kha_audio2_ogg_tools_MathTools.ilog=function(e){var t=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];return e<16384?e<16?t[e]:e<512?5+t[e>>5]:10+t[e>>10]:e<16777216?e<524288?15+t[e>>15]:20+t[e>>20]:e<536870912?25+t[e>>25]:e<-2147483648?30+t[e>>30]:0};var kha_audio2_ogg_tools_Mdct=$hxClasses["kha.audio2.ogg.tools.Mdct"]=function(){};kha_audio2_ogg_tools_Mdct.__name__=!0,kha_audio2_ogg_tools_Mdct.inverseTransform=function(e,t,a,i,r,s){for(var n=t>>1,_=t>>2,o=t>>3,h=new Array(n),l=n-2,u=0,c=0,d=n;c!=d;)h[l+1]=e[c]*a[u]-e[c+2]*a[u+1],h[l]=e[c]*a[u+1]+e[c+2]*a[u],l-=2,u+=2,c+=4;for(c=n-3;l>=0;)h[l+1]=-e[c+2]*a[u]- -e[c]*a[u+1],h[l]=-e[c+2]*a[u+1]+-e[c]*a[u],l-=2,u+=2,c-=4;for(var p=e,g=h,f=n-8,v=_,k=0,m=_,b=0;f>=0;){var S=g[v+1]-g[k+1],y=g[v]-g[k];p[m+1]=g[v+1]+g[k+1],p[m]=g[v]+g[k],p[b+1]=S*a[f+4]-y*a[f+5],p[b]=y*a[f+4]+S*a[f+5],S=g[v+3]-g[k+3],y=g[v+2]-g[k+2],p[m+3]=g[v+3]+g[k+3],p[m+2]=g[v+2]+g[k+2],p[b+3]=S*a[f]-y*a[f+1],p[b+2]=y*a[f]+S*a[f+1],f-=8,m+=4,b+=4,v+=4,k+=4}for(var x=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],B=(t<16384?t<16?x[t]:t<512?5+x[t>>5]:10+x[t>>10]:t<16777216?t<524288?15+x[t>>15]:20+x[t>>20]:t<536870912?25+x[t>>25]:t<-2147483648?30+x[t>>30]:0)-1,T=n-1-0*_,w=T,E=T+-(t>>3),I=0,C=1+(t>>4>>2);--C>0;){var A=p[w]-p[E],L=p[w+-1]-p[E+-1],R=w,$=p;$[R]=$[R]+p[E];var F=w+-1,V=p;V[F]=V[F]+p[E+-1],p[E]=A*a[I]-L*a[I+1],p[E+-1]=L*a[I]+A*a[I+1],I+=8,A=p[w+-2]-p[E+-2],L=p[w+-3]-p[E+-3];var N=w+-2,P=p;P[N]=P[N]+p[E+-2];var M=w+-3,O=p;O[M]=O[M]+p[E+-3],p[E+-2]=A*a[I]-L*a[I+1],p[E+-3]=L*a[I]+A*a[I+1],I+=8,A=p[w+-4]-p[E+-4],L=p[w+-5]-p[E+-5];var D=w+-4,U=p;U[D]=U[D]+p[E+-4];var H=w+-5,G=p;G[H]=G[H]+p[E+-5],p[E+-4]=A*a[I]-L*a[I+1],p[E+-5]=L*a[I]+A*a[I+1],I+=8,A=p[w+-6]-p[E+-6],L=p[w+-7]-p[E+-7];var W=w+-6,z=p;z[W]=z[W]+p[E+-6];var j=w+-7,K=p;K[j]=K[j]+p[E+-7],p[E+-6]=A*a[I]-L*a[I+1],p[E+-7]=L*a[I]+A*a[I+1],I+=8,w-=8,E-=8}for(var X=n-1-_,Y=X,Z=X+-(t>>3),Q=0,J=1+(t>>4>>2);--J>0;){var q=p[Y]-p[Z],ee=p[Y+-1]-p[Z+-1],te=Y,ae=p;ae[te]=ae[te]+p[Z];var ie=Y+-1,re=p;re[ie]=re[ie]+p[Z+-1],p[Z]=q*a[Q]-ee*a[Q+1],p[Z+-1]=ee*a[Q]+q*a[Q+1],Q+=8,q=p[Y+-2]-p[Z+-2],ee=p[Y+-3]-p[Z+-3];var se=Y+-2,ne=p;ne[se]=ne[se]+p[Z+-2];var _e=Y+-3,oe=p;oe[_e]=oe[_e]+p[Z+-3],p[Z+-2]=q*a[Q]-ee*a[Q+1],p[Z+-3]=ee*a[Q]+q*a[Q+1],Q+=8,q=p[Y+-4]-p[Z+-4],ee=p[Y+-5]-p[Z+-5];var he=Y+-4,le=p;le[he]=le[he]+p[Z+-4];var ue=Y+-5,ce=p;ce[ue]=ce[ue]+p[Z+-5],p[Z+-4]=q*a[Q]-ee*a[Q+1],p[Z+-5]=ee*a[Q]+q*a[Q+1],Q+=8,q=p[Y+-6]-p[Z+-6],ee=p[Y+-7]-p[Z+-7];var de=Y+-6,pe=p;pe[de]=pe[de]+p[Z+-6];var ge=Y+-7,fe=p;fe[ge]=fe[ge]+p[Z+-7],p[Z+-6]=q*a[Q]-ee*a[Q+1],p[Z+-7]=ee*a[Q]+q*a[Q+1],Q+=8,Y-=8,Z-=8}for(var ve=n-1-0*o,ke=0,me=ve,be=ve+-(t>>4),Se=1+(t>>5>>2);--Se>0;){var ye=p[me]-p[be],xe=p[me+-1]-p[be+-1],Be=me,Te=p;Te[Be]=Te[Be]+p[be];var we=me+-1,Ee=p;Ee[we]=Ee[we]+p[be+-1],p[be]=ye*a[ke]-xe*a[ke+1],p[be+-1]=xe*a[ke]+ye*a[ke+1],ke+=16,ye=p[me+-2]-p[be+-2],xe=p[me+-3]-p[be+-3];var Ie=me+-2,Ce=p;Ce[Ie]=Ce[Ie]+p[be+-2];var Ae=me+-3,Le=p;Le[Ae]=Le[Ae]+p[be+-3],p[be+-2]=ye*a[ke]-xe*a[ke+1],p[be+-3]=xe*a[ke]+ye*a[ke+1],ke+=16,ye=p[me+-4]-p[be+-4],xe=p[me+-5]-p[be+-5];var Re=me+-4,$e=p;$e[Re]=$e[Re]+p[be+-4];var Fe=me+-5,Ve=p;Ve[Fe]=Ve[Fe]+p[be+-5],p[be+-4]=ye*a[ke]-xe*a[ke+1],p[be+-5]=xe*a[ke]+ye*a[ke+1],ke+=16,ye=p[me+-6]-p[be+-6],xe=p[me+-7]-p[be+-7];var Ne=me+-6,Pe=p;Pe[Ne]=Pe[Ne]+p[be+-6];var Me=me+-7,Oe=p;Oe[Me]=Oe[Me]+p[be+-7],p[be+-6]=ye*a[ke]-xe*a[ke+1],p[be+-7]=xe*a[ke]+ye*a[ke+1],me-=8,be-=8,ke+=16}for(var De=n-1-o,Ue=0,He=De,Ge=De+-(t>>4),We=1+(t>>5>>2);--We>0;){var ze=p[He]-p[Ge],je=p[He+-1]-p[Ge+-1],Ke=He,Xe=p;Xe[Ke]=Xe[Ke]+p[Ge];var Ye=He+-1,Ze=p;Ze[Ye]=Ze[Ye]+p[Ge+-1],p[Ge]=ze*a[Ue]-je*a[Ue+1],p[Ge+-1]=je*a[Ue]+ze*a[Ue+1],Ue+=16,ze=p[He+-2]-p[Ge+-2],je=p[He+-3]-p[Ge+-3];var Qe=He+-2,Je=p;Je[Qe]=Je[Qe]+p[Ge+-2];var qe=He+-3,et=p;et[qe]=et[qe]+p[Ge+-3],p[Ge+-2]=ze*a[Ue]-je*a[Ue+1],p[Ge+-3]=je*a[Ue]+ze*a[Ue+1],Ue+=16,ze=p[He+-4]-p[Ge+-4],je=p[He+-5]-p[Ge+-5];var tt=He+-4,at=p;at[tt]=at[tt]+p[Ge+-4];var it=He+-5,rt=p;rt[it]=rt[it]+p[Ge+-5],p[Ge+-4]=ze*a[Ue]-je*a[Ue+1],p[Ge+-5]=je*a[Ue]+ze*a[Ue+1],Ue+=16,ze=p[He+-6]-p[Ge+-6],je=p[He+-7]-p[Ge+-7];var st=He+-6,nt=p;nt[st]=nt[st]+p[Ge+-6];var _t=He+-7,ot=p;ot[_t]=ot[_t]+p[Ge+-7],p[Ge+-6]=ze*a[Ue]-je*a[Ue+1],p[Ge+-7]=je*a[Ue]+ze*a[Ue+1],He-=8,Ge-=8,Ue+=16}for(var ht=n-1-2*o,lt=0,ut=ht,ct=ht+-(t>>4),dt=1+(t>>5>>2);--dt>0;){var pt=p[ut]-p[ct],gt=p[ut+-1]-p[ct+-1],ft=ut,vt=p;vt[ft]=vt[ft]+p[ct];var kt=ut+-1,mt=p;mt[kt]=mt[kt]+p[ct+-1],p[ct]=pt*a[lt]-gt*a[lt+1],p[ct+-1]=gt*a[lt]+pt*a[lt+1],lt+=16,pt=p[ut+-2]-p[ct+-2],gt=p[ut+-3]-p[ct+-3];var bt=ut+-2,St=p;St[bt]=St[bt]+p[ct+-2];var yt=ut+-3,xt=p;xt[yt]=xt[yt]+p[ct+-3],p[ct+-2]=pt*a[lt]-gt*a[lt+1],p[ct+-3]=gt*a[lt]+pt*a[lt+1],lt+=16,pt=p[ut+-4]-p[ct+-4],gt=p[ut+-5]-p[ct+-5];var Bt=ut+-4,Tt=p;Tt[Bt]=Tt[Bt]+p[ct+-4];var wt=ut+-5,Et=p;Et[wt]=Et[wt]+p[ct+-5],p[ct+-4]=pt*a[lt]-gt*a[lt+1],p[ct+-5]=gt*a[lt]+pt*a[lt+1],lt+=16,pt=p[ut+-6]-p[ct+-6],gt=p[ut+-7]-p[ct+-7];var It=ut+-6,Ct=p;Ct[It]=Ct[It]+p[ct+-6];var At=ut+-7,Lt=p;Lt[At]=Lt[At]+p[ct+-7],p[ct+-6]=pt*a[lt]-gt*a[lt+1],p[ct+-7]=gt*a[lt]+pt*a[lt+1],ut-=8,ct-=8,lt+=16}for(var Rt=n-1-3*o,$t=0,Ft=Rt,Vt=Rt+-(t>>4),Nt=1+(t>>5>>2);--Nt>0;){var Pt=p[Ft]-p[Vt],Mt=p[Ft+-1]-p[Vt+-1],Ot=Ft,Dt=p;Dt[Ot]=Dt[Ot]+p[Vt];var Ut=Ft+-1,Ht=p;Ht[Ut]=Ht[Ut]+p[Vt+-1],p[Vt]=Pt*a[$t]-Mt*a[$t+1],p[Vt+-1]=Mt*a[$t]+Pt*a[$t+1],$t+=16,Pt=p[Ft+-2]-p[Vt+-2],Mt=p[Ft+-3]-p[Vt+-3];var Gt=Ft+-2,Wt=p;Wt[Gt]=Wt[Gt]+p[Vt+-2];var zt=Ft+-3,jt=p;jt[zt]=jt[zt]+p[Vt+-3],p[Vt+-2]=Pt*a[$t]-Mt*a[$t+1],p[Vt+-3]=Mt*a[$t]+Pt*a[$t+1],$t+=16,Pt=p[Ft+-4]-p[Vt+-4],Mt=p[Ft+-5]-p[Vt+-5];var Kt=Ft+-4,Xt=p;Xt[Kt]=Xt[Kt]+p[Vt+-4];var Yt=Ft+-5,Zt=p;Zt[Yt]=Zt[Yt]+p[Vt+-5],p[Vt+-4]=Pt*a[$t]-Mt*a[$t+1],p[Vt+-5]=Mt*a[$t]+Pt*a[$t+1],$t+=16,Pt=p[Ft+-6]-p[Vt+-6],Mt=p[Ft+-7]-p[Vt+-7];var Qt=Ft+-6,Jt=p;Jt[Qt]=Jt[Qt]+p[Vt+-6];var qt=Ft+-7,ea=p;ea[qt]=ea[qt]+p[Vt+-7],p[Vt+-6]=Pt*a[$t]-Mt*a[$t+1],p[Vt+-7]=Mt*a[$t]+Pt*a[$t+1],Ft-=8,Vt-=8,$t+=16}for(var ta=2,aa=B-3>>1;ta>ia+2,sa=ra>>1,na=0,_a=1<>ia+4>>2);--da>0;){var pa=p[ua]-p[ca],ga=p[ua+-1]-p[ca+-1],fa=ua,va=p;va[fa]=va[fa]+p[ca];var ka=ua+-1,ma=p;ma[ka]=ma[ka]+p[ca+-1],p[ca]=pa*a[la]-ga*a[la+1],p[ca+-1]=ga*a[la]+pa*a[la+1],la+=ha,pa=p[ua+-2]-p[ca+-2],ga=p[ua+-3]-p[ca+-3];var ba=ua+-2,Sa=p;Sa[ba]=Sa[ba]+p[ca+-2];var ya=ua+-3,xa=p;xa[ya]=xa[ya]+p[ca+-3],p[ca+-2]=pa*a[la]-ga*a[la+1],p[ca+-3]=ga*a[la]+pa*a[la+1],la+=ha,pa=p[ua+-4]-p[ca+-4],ga=p[ua+-5]-p[ca+-5];var Ba=ua+-4,Ta=p;Ta[Ba]=Ta[Ba]+p[ca+-4];var wa=ua+-5,Ea=p;Ea[wa]=Ea[wa]+p[ca+-5],p[ca+-4]=pa*a[la]-ga*a[la+1],p[ca+-5]=ga*a[la]+pa*a[la+1],la+=ha,pa=p[ua+-6]-p[ca+-6],ga=p[ua+-7]-p[ca+-7];var Ia=ua+-6,Ca=p;Ca[Ia]=Ca[Ia]+p[ca+-6];var Aa=ua+-7,La=p;La[Aa]=La[Aa]+p[ca+-7],p[ca+-6]=pa*a[la]-ga*a[la+1],p[ca+-7]=ga*a[la]+pa*a[la+1],ua-=8,ca-=8,la+=ha}for(var Ra=B-3>>1,$a=B-6;Ra<$a;)for(var Fa=Ra++,Va=t>>Fa+2,Na=1<>1,Ma=1<>Fa+6)+1;--Ua>0;){for(var Ha=a[Oa],Ga=a[Oa+1],Wa=a[Oa+Na],za=a[Oa+Na+1],ja=a[Oa+2*Na],Ka=a[Oa+2*Na+1],Xa=a[Oa+3*Na],Ya=a[Oa+3*Na+1],Za=Da,Qa=Da+-Pa,Ja=Ma+1;--Ja>0;){var qa=p[Za]-p[Qa],ei=p[Za+-1]-p[Qa+-1];p[Za]=p[Za]+p[Qa],p[Za+-1]=p[Za+-1]+p[Qa+-1],p[Qa]=qa*Ha-ei*Ga,p[Qa+-1]=ei*Ha+qa*Ga,qa=p[Za+-2]-p[Qa+-2],ei=p[Za+-3]-p[Qa+-3],p[Za+-2]=p[Za+-2]+p[Qa+-2],p[Za+-3]=p[Za+-3]+p[Qa+-3],p[Qa+-2]=qa*Wa-ei*za,p[Qa+-3]=ei*Wa+qa*za,qa=p[Za+-4]-p[Qa+-4],ei=p[Za+-5]-p[Qa+-5],p[Za+-4]=p[Za+-4]+p[Qa+-4],p[Za+-5]=p[Za+-5]+p[Qa+-5],p[Qa+-4]=qa*ja-ei*Ka,p[Qa+-5]=ei*ja+qa*Ka,qa=p[Za+-6]-p[Qa+-6],ei=p[Za+-7]-p[Qa+-7],p[Za+-6]=p[Za+-6]+p[Qa+-6],p[Za+-7]=p[Za+-7]+p[Qa+-7],p[Qa+-6]=qa*Xa-ei*Ya,p[Qa+-7]=ei*Xa+qa*Ya,Za-=Va,Qa-=Va}Oa+=4*Na,Da-=8}for(var ti=n-1,ai=a[t>>3],ii=ti,ri=ti-16*(t>>5);ii>ri;){var si=p[ii],ni=p[ii+-8];p[ii+-8]=si-ni,p[ii]=si+ni,si=p[ii+-1],ni=p[ii+-9],p[ii+-9]=si-ni,p[ii+-1]=si+ni;var _i=(si=p[ii+-2])-(ni=p[ii+-10]);p[ii+-2]=si+ni;var oi=(si=p[ii+-3])-(ni=p[ii+-11]);p[ii+-3]=si+ni,p[ii+-10]=(_i+oi)*ai,p[ii+-11]=(oi-_i)*ai,si=p[ii+-4],_i=(ni=p[ii+-12])-si,p[ii+-4]=si+ni,oi=(si=p[ii+-5])-(ni=p[ii+-13]),p[ii+-5]=si+ni,p[ii+-12]=oi,p[ii+-13]=_i,si=p[ii+-6],_i=(ni=p[ii+-14])-si,p[ii+-6]=si+ni,oi=(si=p[ii+-7])-(ni=p[ii+-15]),p[ii+-7]=si+ni,p[ii+-14]=(_i+oi)*ai,p[ii+-15]=(_i-oi)*ai;var hi=p[ii],li=p[ii+-4],ui=hi-li,ci=hi+li,di=(hi=p[ii+-2])+(li=p[ii+-6]),pi=hi-li;p[ii]=ci+di,p[ii+-2]=ci-di;var gi=p[ii+-3]-p[ii+-7];p[ii+-4]=ui+gi,p[ii+-6]=ui-gi;var fi=(hi=p[ii+-1])-(li=p[ii+-5]),vi=hi+li,ki=p[ii+-3]+p[ii+-7];p[ii+-1]=vi+ki,p[ii+-3]=vi-ki,p[ii+-5]=fi-pi,p[ii+-7]=fi+pi;var mi=ii-8,bi=p[mi],Si=p[mi+-4],yi=bi-Si,xi=bi+Si,Bi=(bi=p[mi+-2])+(Si=p[mi+-6]),Ti=bi-Si;p[mi]=xi+Bi,p[mi+-2]=xi-Bi;var wi=p[mi+-3]-p[mi+-7];p[mi+-4]=yi+wi,p[mi+-6]=yi-wi;var Ei=(bi=p[mi+-1])-(Si=p[mi+-5]),Ii=bi+Si,Ci=p[mi+-3]+p[mi+-7];p[mi+-1]=Ii+Ci,p[mi+-3]=Ii-Ci,p[mi+-5]=Ei-Ti,p[mi+-7]=Ei+Ti,ii-=16}for(var Ai=0,Li=_-4,Ri=n-4;Li>=0;){var $i=s[Ai];g[Ri+3]=p[$i],g[Ri+2]=p[$i+1],g[Li+3]=p[$i+2],g[Li+2]=p[$i+3],$i=s[Ai+1],g[Ri+1]=p[$i],g[Ri]=p[$i+1],g[Li+1]=p[$i+2],g[Li]=p[$i+3],Li-=4,Ri-=4,Ai+=2}for(var Fi=0,Vi=0,Ni=n-4;Vi=0;){var Yi=h[Wi+6]*i[Gi+7]-h[Wi+7]*i[Gi+6],Zi=-h[Wi+6]*i[Gi+6]-h[Wi+7]*i[Gi+7];e[zi]=Yi,e[ji+3]=-Yi,e[Ki]=Zi,e[Xi+3]=Zi;var Qi=h[Wi+4]*i[Gi+5]-h[Wi+5]*i[Gi+4],Ji=-h[Wi+4]*i[Gi+4]-h[Wi+5]*i[Gi+5];e[zi+1]=Qi,e[ji+2]=-Qi,e[Ki+1]=Ji,e[Xi+2]=Ji,Yi=h[Wi+2]*i[Gi+3]-h[Wi+3]*i[Gi+2],Zi=-h[Wi+2]*i[Gi+2]-h[Wi+3]*i[Gi+3],e[zi+2]=Yi,e[ji+1]=-Yi,e[Ki+2]=Zi,e[Xi+1]=Zi,Qi=h[Wi]*i[Gi+1]-h[Wi+1]*i[Gi],Ji=-h[Wi]*i[Gi]-h[Wi+1]*i[Gi+1],e[zi+3]=Qi,e[ji]=-Qi,e[Ki+3]=Ji,e[Xi]=Ji,Gi-=8,Wi-=8,zi+=4,Ki+=4,ji-=4,Xi-=4}},kha_audio2_ogg_tools_Mdct.step3Iter0Loop=function(e,t,a,i,r){for(var s=a,n=a+i,_=0,o=1+(e>>2);--o>0;){var h=t[s]-t[n],l=t[s+-1]-t[n+-1],u=s,c=t;c[u]=c[u]+t[n];var d=s+-1,p=t;p[d]=p[d]+t[n+-1],t[n]=h*r[_]-l*r[_+1],t[n+-1]=l*r[_]+h*r[_+1],_+=8,h=t[s+-2]-t[n+-2],l=t[s+-3]-t[n+-3];var g=s+-2,f=t;f[g]=f[g]+t[n+-2];var v=s+-3,k=t;k[v]=k[v]+t[n+-3],t[n+-2]=h*r[_]-l*r[_+1],t[n+-3]=l*r[_]+h*r[_+1],_+=8,h=t[s+-4]-t[n+-4],l=t[s+-5]-t[n+-5];var m=s+-4,b=t;b[m]=b[m]+t[n+-4];var S=s+-5,y=t;y[S]=y[S]+t[n+-5],t[n+-4]=h*r[_]-l*r[_+1],t[n+-5]=l*r[_]+h*r[_+1],_+=8,h=t[s+-6]-t[n+-6],l=t[s+-7]-t[n+-7];var x=s+-6,B=t;B[x]=B[x]+t[n+-6];var T=s+-7,w=t;w[T]=w[T]+t[n+-7],t[n+-6]=h*r[_]-l*r[_+1],t[n+-7]=l*r[_]+h*r[_+1],_+=8,s-=8,n-=8}},kha_audio2_ogg_tools_Mdct.step3InnerRLoop=function(e,t,a,i,r,s){for(var n=0,_=a,o=a+i,h=1+(e>>2);--h>0;){var l=t[_]-t[o],u=t[_+-1]-t[o+-1],c=_,d=t;d[c]=d[c]+t[o];var p=_+-1,g=t;g[p]=g[p]+t[o+-1],t[o]=l*r[n]-u*r[n+1],t[o+-1]=u*r[n]+l*r[n+1],n+=s,l=t[_+-2]-t[o+-2],u=t[_+-3]-t[o+-3];var f=_+-2,v=t;v[f]=v[f]+t[o+-2];var k=_+-3,m=t;m[k]=m[k]+t[o+-3],t[o+-2]=l*r[n]-u*r[n+1],t[o+-3]=u*r[n]+l*r[n+1],n+=s,l=t[_+-4]-t[o+-4],u=t[_+-5]-t[o+-5];var b=_+-4,S=t;S[b]=S[b]+t[o+-4];var y=_+-5,x=t;x[y]=x[y]+t[o+-5],t[o+-4]=l*r[n]-u*r[n+1],t[o+-5]=u*r[n]+l*r[n+1],n+=s,l=t[_+-6]-t[o+-6],u=t[_+-7]-t[o+-7];var B=_+-6,T=t;T[B]=T[B]+t[o+-6];var w=_+-7,E=t;E[w]=E[w]+t[o+-7],t[o+-6]=l*r[n]-u*r[n+1],t[o+-7]=u*r[n]+l*r[n+1],_-=8,o-=8,n+=s}},kha_audio2_ogg_tools_Mdct.step3InnerSLoop=function(e,t,a,i,r,s,n,_){for(var o=r[s],h=r[s+1],l=r[s+n],u=r[s+n+1],c=r[s+2*n],d=r[s+2*n+1],p=r[s+3*n],g=r[s+3*n+1],f=a,v=a+i,k=e+1;--k>0;){var m=t[f]-t[v],b=t[f+-1]-t[v+-1];t[f]=t[f]+t[v],t[f+-1]=t[f+-1]+t[v+-1],t[v]=m*o-b*h,t[v+-1]=b*o+m*h,m=t[f+-2]-t[v+-2],b=t[f+-3]-t[v+-3],t[f+-2]=t[f+-2]+t[v+-2],t[f+-3]=t[f+-3]+t[v+-3],t[v+-2]=m*l-b*u,t[v+-3]=b*l+m*u,m=t[f+-4]-t[v+-4],b=t[f+-5]-t[v+-5],t[f+-4]=t[f+-4]+t[v+-4],t[f+-5]=t[f+-5]+t[v+-5],t[v+-4]=m*c-b*d,t[v+-5]=b*c+m*d,m=t[f+-6]-t[v+-6],b=t[f+-7]-t[v+-7],t[f+-6]=t[f+-6]+t[v+-6],t[f+-7]=t[f+-7]+t[v+-7],t[v+-6]=m*p-b*g,t[v+-7]=b*p+m*g,f-=_,v-=_}},kha_audio2_ogg_tools_Mdct.iter54=function(e,t){var a=e[t],i=e[t+-4],r=a-i,s=a+i,n=(a=e[t+-2])+(i=e[t+-6]),_=a-i;e[t]=s+n,e[t+-2]=s-n;var o=e[t+-3]-e[t+-7];e[t+-4]=r+o,e[t+-6]=r-o;var h=(a=e[t+-1])-(i=e[t+-5]),l=a+i,u=e[t+-3]+e[t+-7];e[t+-1]=l+u,e[t+-3]=l-u,e[t+-5]=h-_,e[t+-7]=h+_},kha_audio2_ogg_tools_Mdct.step3InnerSLoopLd654=function(e,t,a,i,r){for(var s=i[r>>3],n=a,_=a-16*e;n>_;){var o=t[n],h=t[n+-8];t[n+-8]=o-h,t[n]=o+h,o=t[n+-1],h=t[n+-9],t[n+-9]=o-h,t[n+-1]=o+h;var l=(o=t[n+-2])-(h=t[n+-10]);t[n+-2]=o+h;var u=(o=t[n+-3])-(h=t[n+-11]);t[n+-3]=o+h,t[n+-10]=(l+u)*s,t[n+-11]=(u-l)*s,o=t[n+-4],l=(h=t[n+-12])-o,t[n+-4]=o+h,u=(o=t[n+-5])-(h=t[n+-13]),t[n+-5]=o+h,t[n+-12]=u,t[n+-13]=l,o=t[n+-6],l=(h=t[n+-14])-o,t[n+-6]=o+h,u=(o=t[n+-7])-(h=t[n+-15]),t[n+-7]=o+h,t[n+-14]=(l+u)*s,t[n+-15]=(l-u)*s;var c=t[n],d=t[n+-4],p=c-d,g=c+d,f=(c=t[n+-2])+(d=t[n+-6]),v=c-d;t[n]=g+f,t[n+-2]=g-f;var k=t[n+-3]-t[n+-7];t[n+-4]=p+k,t[n+-6]=p-k;var m=(c=t[n+-1])-(d=t[n+-5]),b=c+d,S=t[n+-3]+t[n+-7];t[n+-1]=b+S,t[n+-3]=b-S,t[n+-5]=m-v,t[n+-7]=m+v;var y=n-8,x=t[y],B=t[y+-4],T=x-B,w=x+B,E=(x=t[y+-2])+(B=t[y+-6]),I=x-B;t[y]=w+E,t[y+-2]=w-E;var C=t[y+-3]-t[y+-7];t[y+-4]=T+C,t[y+-6]=T-C;var A=(x=t[y+-1])-(B=t[y+-5]),L=x+B,R=t[y+-3]+t[y+-7];t[y+-1]=L+R,t[y+-3]=L-R,t[y+-5]=A-I,t[y+-7]=A+I,n-=16}};var kha_audio2_ogg_vorbis_Reader=$hxClasses["kha.audio2.ogg.vorbis.Reader"]=function(e,t,a){this.seekFunc=t,this.inputLength=a,this.decoder=kha_audio2_ogg_vorbis_VorbisDecoder.start(e),this.decoder.setupSampleNumber(t,a),this.loopStart=this.get_header().comment.get_loopStart(),this.loopLength=this.get_header().comment.get_loopLength()};kha_audio2_ogg_vorbis_Reader.__name__=!0,kha_audio2_ogg_vorbis_Reader.openFromBytes=function(e){var t=new haxe_io_BytesInput(e),a=t;return new kha_audio2_ogg_vorbis_Reader(t,function(e){kha_audio2_ogg_vorbis_Reader.seekBytes(a,e)},e.length)},kha_audio2_ogg_vorbis_Reader.seekBytes=function(e,t){e.set_position(t)},kha_audio2_ogg_vorbis_Reader.readAll=function(e,t,a){null==a&&(a=!1);var i=new haxe_io_BytesInput(e),r=kha_audio2_ogg_vorbis_VorbisDecoder.start(i),s=i;r.setupSampleNumber(function(e){kha_audio2_ogg_vorbis_Reader.seekBytes(s,e)},e.length);for(var n=r.header,_=4096*n.channel,o=new Array(_);;){for(var h=r.read(o,4096,n.channel,n.sampleRate,a),l=0,u=h*n.channel;l=0&&!(this.segments[n]<255);)n>=0&&(this.endSegWithKnownLoc=n,this.knownLocForPacket=e),--n;if(this.firstDecode){for(var _=0,o=new kha_audio2_ogg_vorbis_data_ProbedPage,h=0,l=a;h=this.segments.length&&(this.nextSeg=-1),0!=this.bytesInSeg)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisDecodeState.hx",lineNumber:184,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"next"}));return this.bytesInSeg=e,e},startPacket:function(){for(;-1==this.nextSeg;)if(this.page.start(this),0!=(1&this.page.flag))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{fileName:"VorbisDecodeState.hx",lineNumber:193,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"startPacket"}));this.lastSeg=!1,this.validBits=0,this.bytesInSeg=0},maybeStartPacket:function(){if(-1==this.nextSeg){var e,t=!1;try{this.inputPosition+=1,e=this.input.readByte()}catch(a){if(a instanceof js__$Boot_HaxeError&&(a=a.val),!js_Boot.__instanceof(a,haxe_io_Eof))throw a;t=!0,e=0}if(t)return!1;var a,i,r;if(79==e?(this.inputPosition+=1,r=103!=this.input.readByte()):r=!0,r?i=!0:(this.inputPosition+=1,i=103!=this.input.readByte()),i?a=!0:(this.inputPosition+=1,a=83!=this.input.readByte()),a)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{fileName:"VorbisDecodeState.hx",lineNumber:218,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"maybeStartPacket"}));this.page.startWithoutCapturePattern(this)}return this.startPacket(),!0},readBits:function(e){if(this.validBits<0)return 0;if(this.validBits24)return this.readBits(24)+(this.readBits(e-24)<<24);for(0==this.validBits&&(this.acc=0);;){if(0==this.bytesInSeg&&(this.lastSeg||0==this.next())){this.validBits=-1;break}if(this.bytesInSeg--,this.inputPosition+=1,this.acc=this.acc+(this.input.readByte()<>>e,this.validBits-=e,t}var a=this.acc&(1<>>e,this.validBits-=e,a},readPacketRaw:function(){return 0!=this.bytesInSeg||!this.lastSeg&&0!=this.next()?(this.bytesInSeg--,this.inputPosition+=1,this.input.readByte()):-1},readPacket:function(){var e;return 0!=this.bytesInSeg||!this.lastSeg&&0!=this.next()?(this.bytesInSeg--,this.inputPosition+=1,e=this.input.readByte()):e=-1,this.validBits=0,e},flushPacket:function(){for(;0!=this.bytesInSeg||!this.lastSeg&&0!=this.next();)this.bytesInSeg--,this.inputPosition+=1,this.input.readByte()},vorbisValidate:function(){for(var e=new haxe_io_Bytes(new ArrayBuffer(6)),t=0;t<6;){var a,i=t++;0!=this.bytesInSeg||!this.lastSeg&&0!=this.next()?(this.bytesInSeg--,this.inputPosition+=1,a=this.input.readByte()):a=-1,this.validBits=0,e.b[i]=255&a}if("vorbis"!=e.toString())throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"vorbis header",{fileName:"VorbisDecodeState.hx",lineNumber:300,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"vorbisValidate"}))},firstPageValidate:function(){if(1!=this.segments.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"segmentCount",{fileName:"VorbisDecodeState.hx",lineNumber:307,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"firstPageValidate"}));if(30!=this.segments[0])throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"decodeState head",{fileName:"VorbisDecodeState.hx",lineNumber:310,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"firstPageValidate"}))},startFirstDecode:function(){this.firstAudioPageOffset=this.inputPosition,this.firstDecode=!0},capturePattern:function(){var e,t,a;if(this.inputPosition+=1,79==this.input.readByte()?(this.inputPosition+=1,a=103!=this.input.readByte()):a=!0,a?t=!0:(this.inputPosition+=1,t=103!=this.input.readByte()),t?e=!0:(this.inputPosition+=1,e=83!=this.input.readByte()),e)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{fileName:"VorbisDecodeState.hx",lineNumber:323,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"capturePattern"}))},skip:function(e){this.inputPosition+=e;for(var t=new Array(e),a=0,i=e;a=0){var i=e.codewordLengths[a];this.acc=this.acc>>>i,this.validBits-=i,this.validBits<0?(this.validBits=0,t=-1):t=a}else t=this.decodeScalarRaw(e);return e.sparse&&(t=e.sortedValues[t]),t},decodeRaw:function(e){this.validBits<10&&this.prepHuffman();var t=e.fastHuffman[1023&this.acc];if(t>=0){var a=e.codewordLengths[t];return this.acc=this.acc>>>a,this.validBits-=a,this.validBits<0?(this.validBits=0,-1):t}return this.decodeScalarRaw(e)},isLastByte:function(){return 0==this.bytesInSeg&&this.lastSeg},finishDecodePacket:function(e,t,a){var i=a.left.start,r=!1,s=t>>1;if(this.firstDecode)this.currentLoc=-s,this.discardSamplesDeferred=t-a.right.end,r=!0,this.firstDecode=!1;else if(0!=this.discardSamplesDeferred)a.left.start+=this.discardSamplesDeferred,i=a.left.start,this.discardSamplesDeferred=0;else;if(this.lastSegWhich==this.endSegWithKnownLoc){if(r&&0!=(4&this.page.flag)){var n=this.knownLocForPacket-(t-a.right.end);if(n0)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE,null,{fileName:"VorbisDecodeState.hx",lineNumber:552,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"getSampleNumber"}));return this.pLast=new kha_audio2_ogg_vorbis_data_ProbedPage,this.pLast.pageStart=o,this.pLast.pageEnd=r,this.pLast.lastDecodedSample=d,this.pLast.firstDecodedSample=null,this.pLast.afterPreviousPageStart=i,e(this.inputPosition=a),d},forcePageResync:function(){this.nextSeg=-1},setInputOffset:function(e,t){e(this.inputPosition=t)},findPage:function(e,t){try{for(;;)if(this.inputPosition+=1,79==this.input.readByte()){var a=this.inputPosition;if(a-25>t)return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound;var i,r;if(this.inputPosition+=1,103==this.input.readByte()?(this.inputPosition+=1,r=103!=this.input.readByte()):r=!0,r?i=!0:(this.inputPosition+=1,i=83!=this.input.readByte()),i)continue;var s=new Array(27);s[0]=79,s[1]=103,s[2]=103,s[3]=83;for(var n=4;n<27;){var _=n++;this.inputPosition+=1,s[_]=this.input.readByte()}if(0!=s[4]){e(this.inputPosition=a);continue}for(var o=s[22]+(s[23]<<8)+(s[24]<<16)+(s[25]<<24),h=22;h<26;)s[h++]=0;for(var l=0,u=0;u<27;){var c=u++;l=l<<8^kha_audio2_ogg_tools_Crc32.table[s[c]^l>>>24]}var d=0;try{for(var p=0,g=s[26];p>>24],d+=f}for(var v=0,k=d;v>>24]}}catch(e){if(e instanceof js__$Boot_HaxeError&&(e=e.val),js_Boot.__instanceof(e,haxe_io_Eof))return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound;throw e}if(l==o){var b=this.inputPosition;return e(this.inputPosition=a-1),kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.Found(b,0!=(4&s[5]))}}}catch(e){if(e instanceof js__$Boot_HaxeError&&(e=e.val),js_Boot.__instanceof(e,haxe_io_Eof))return kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound;throw e}},analyzePage:function(e,t){var a=new kha_audio2_ogg_vorbis_data_ProbedPage,i=new Array(255);a.pageStart=this.inputPosition,this.inputPosition+=27;for(var r=new Array(27),s=0;s<27;)r[s++]=this.input.readByte();var n=r;if(79!=n[0]||103!=n[1]||103!=n[2]||83!=n[3])throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisDecodeState.hx",lineNumber:660,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"analyzePage"}));var _=n[26];this.inputPosition+=_;for(var o=new Array(_),h=0,l=_;h>=1;var y=v-1,x=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4];if((S&=(1<<(y<16384?y<16?x[y]:y<512?5+x[y>>5]:10+x[y>>10]:y<16777216?y<524288?15+x[y>>15]:20+x[y>>20]:y<536870912?25+x[y>>25]:y<-2147483648?30+x[y>>30]:0))-1)>=v)return e(this.inputPosition=a.pageStart),null;i[g++]=t.modes[S].blockflag;var B=u[b]-1;this.inputPosition+=B;for(var T=new Array(B),w=0,E=B;w1&&(R+=i[g-1]?t.blocksize1:t.blocksize0);for(var $=g-2;$>=1;)i[--$]?i[$+1]?R+=t.blocksize1>>1:R+=(t.blocksize1-t.blocksize0>>2)+(t.blocksize0>>1):R+=t.blocksize0>>1,--$;return a.firstDecodedSample=a.lastDecodedSample-R,e(this.inputPosition=a.pageStart),a},decodeScalarRaw:function(e){if(this.prepHuffman(),null==e.sortedCodewords&&null==e.codewords)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisDecodeState.hx",lineNumber:787,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"decodeScalarRaw"}));var t=e.codewordLengths,a=e.codewords,i=e.sortedCodewords;if(e.entries>8?null!=i:null!=a){for(var r=this.acc,s=(r=(-16711936&(r=(-252645136&(r=(-858993460&(r=(-1431655766&r)>>>1|(1431655765&r)<<1))>>>2|(858993459&r)<<2))>>>4|(252645135&r)<<4))>>>8|(16711935&r)<<8)>>>16|r<<16,n=0,_=e.sortedEntries;_>1;){var o=n+(_>>1);_$UInt_UInt_$Impl_$.gte(s,i[o])?(n=o,_-=_>>1):_>>=1}e.sparse||(n=e.sortedValues[n]);var h=t[n];return this.validBits>=h?(this.acc=this.acc>>>h,this.validBits-=h,n):(this.validBits=0,-1)}if(e.sparse)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisDecodeState.hx",lineNumber:829,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"decodeScalarRaw"}));for(var l=0,u=e.entries;l=d?(this.acc=this.acc>>>d,this.validBits-=d,c):(this.validBits=0,-1)}return this.error=new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{fileName:"VorbisDecodeState.hx",lineNumber:846,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"decodeScalarRaw"}),this.validBits=0,-1},__class__:kha_audio2_ogg_vorbis_VorbisDecodeState};var kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult=$hxClasses["kha.audio2.ogg.vorbis._VorbisDecodeState.FindPageResult"]={__ename__:!0,__constructs__:["Found","NotFound"]};kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.Found=function(e,t){var a=["Found",0,e,t];return a.__enum__=kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult,a.toString=$estr,a},kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound=["NotFound",1],kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound.toString=$estr,kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult.NotFound.__enum__=kha_audio2_ogg_vorbis__$VorbisDecodeState_FindPageResult;var kha_audio2_ogg_vorbis_VorbisDecoder=$hxClasses["kha.audio2.ogg.vorbis.VorbisDecoder"]=function(e,t){this.header=e,this.decodeState=t,this.totalSample=null,this.currentSample=0,this.previousLength=0;var a=e.channel,i=new Array(a);this.channelBuffers=i;var r=e.channel,s=new Array(r);this.previousWindow=s;var n=e.channel,_=new Array(n);this.finalY=_;for(var o=0,h=e.channel;othis.totalSample-this.currentSample&&(l=this.totalSample-this.currentSample);for(var u=0;h=l-h&&(c=l-h);for(var d=this.channelBufferStart,p=this.channelBufferStart+c;d1?x=1:x<-1&&(x=-1),r&&(e[u]=x,++u)}}if(h+=c,this.channelBufferStart+=c,h==l||0==this.getFrameFloat())break}for(var B=h,T=l;Bthis.totalSample-this.currentSample&&(e=this.totalSample-this.currentSample);t=e-t&&(a=e-t),t+=a,this.channelBufferStart+=a,t==e||0==this.getFrameFloat())break}return this.currentSample+=e,e},setupSampleNumber:function(e,t){null==this.totalSample&&(this.totalSample=this.decodeState.getSampleNumber(e,t))},seek:function(e,t,a){if(this.currentSample!=a){if(null==this.totalSample&&(this.setupSampleNumber(e,t),0==this.totalSample))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE,null,{fileName:"VorbisDecoder.hx",lineNumber:187,className:"kha.audio2.ogg.vorbis.VorbisDecoder",methodName:"seek"}));a<0&&(a=0);var i=this.decodeState.pFirst,r=this.decodeState.pLast;if(a>=r.lastDecodedSample&&(a=r.lastDecodedSample-1),a=4){var u=n+(_-n>>>1);s>=8?l=u:_$UInt_UInt_$Impl_$.gt(u,l)?l+=u-l>>>1:l=u+(l-u>>>1)}switch(++s,e(this.decodeState.inputPosition=l),this.decodeState.findPage(e,t)[1]){case 0:break;case 1:throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{fileName:"VorbisDecoder.hx",lineNumber:249,className:"kha.audio2.ogg.vorbis.VorbisDecoder",methodName:"seek"}))}var c=this.decodeState.analyzePage(e,this.header);if(null==c)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{fileName:"VorbisDecoder.hx",lineNumber:255,className:"kha.audio2.ogg.vorbis.VorbisDecoder",methodName:"seek"}));c.afterPreviousPageStart=l,c.pageStart!=r.pageStart?a>1,i=t>>2,r=t>>3,s=this.a,n=new Array(a);s[e]=n;var _=this.b,o=new Array(a);_[e]=o;var h=this.c,l=new Array(i);h[e]=l;var u=this.window,c=new Array(a);u[e]=c;var d=this.bitReverseData,p=new Array(r);d[e]=p,kha_audio2_ogg_vorbis_VorbisTools.computeTwiddleFactors(t,this.a[e],this.b[e],this.c[e]),kha_audio2_ogg_vorbis_VorbisTools.computeWindow(t,this.window[e]),kha_audio2_ogg_vorbis_VorbisTools.computeBitReverse(t,this.bitReverseData[e])},inverseMdct:function(e,t,a){for(var i=a?1:0,r=this.a[i],s=this.b[i],n=this.c[i],_=this.bitReverseData[i],o=t>>1,h=t>>2,l=t>>3,u=new Array(o),c=o-2,d=0,p=0,g=o;p!=g;)u[c+1]=e[p]*r[d]-e[p+2]*r[d+1],u[c]=e[p]*r[d+1]+e[p+2]*r[d],c-=2,d+=2,p+=4;for(p=o-3;c>=0;)u[c+1]=-e[p+2]*r[d]- -e[p]*r[d+1],u[c]=-e[p+2]*r[d+1]+-e[p]*r[d],c-=2,d+=2,p-=4;for(var f=e,v=u,k=o-8,m=h,b=0,S=h,y=0;k>=0;){var x=v[m+1]-v[b+1],B=v[m]-v[b];f[S+1]=v[m+1]+v[b+1],f[S]=v[m]+v[b],f[y+1]=x*r[k+4]-B*r[k+5],f[y]=B*r[k+4]+x*r[k+5],x=v[m+3]-v[b+3],B=v[m+2]-v[b+2],f[S+3]=v[m+3]+v[b+3],f[S+2]=v[m+2]+v[b+2],f[y+3]=x*r[k]-B*r[k+1],f[y+2]=B*r[k]+x*r[k+1],k-=8,S+=4,y+=4,m+=4,b+=4}for(var T=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],w=(t<16384?t<16?T[t]:t<512?5+T[t>>5]:10+T[t>>10]:t<16777216?t<524288?15+T[t>>15]:20+T[t>>20]:t<536870912?25+T[t>>25]:t<-2147483648?30+T[t>>30]:0)-1,E=o-1-0*h,I=E,C=E+-(t>>3),A=0,L=1+(t>>4>>2);--L>0;){var R=f[I]-f[C],$=f[I+-1]-f[C+-1],F=I,V=f;V[F]=V[F]+f[C];var N=I+-1,P=f;P[N]=P[N]+f[C+-1],f[C]=R*r[A]-$*r[A+1],f[C+-1]=$*r[A]+R*r[A+1],A+=8,R=f[I+-2]-f[C+-2],$=f[I+-3]-f[C+-3];var M=I+-2,O=f;O[M]=O[M]+f[C+-2];var D=I+-3,U=f;U[D]=U[D]+f[C+-3],f[C+-2]=R*r[A]-$*r[A+1],f[C+-3]=$*r[A]+R*r[A+1],A+=8,R=f[I+-4]-f[C+-4],$=f[I+-5]-f[C+-5];var H=I+-4,G=f;G[H]=G[H]+f[C+-4];var W=I+-5,z=f;z[W]=z[W]+f[C+-5],f[C+-4]=R*r[A]-$*r[A+1],f[C+-5]=$*r[A]+R*r[A+1],A+=8,R=f[I+-6]-f[C+-6],$=f[I+-7]-f[C+-7];var j=I+-6,K=f;K[j]=K[j]+f[C+-6];var X=I+-7,Y=f;Y[X]=Y[X]+f[C+-7],f[C+-6]=R*r[A]-$*r[A+1],f[C+-7]=$*r[A]+R*r[A+1],A+=8,I-=8,C-=8}for(var Z=o-1-h,Q=Z,J=Z+-(t>>3),q=0,ee=1+(t>>4>>2);--ee>0;){var te=f[Q]-f[J],ae=f[Q+-1]-f[J+-1],ie=Q,re=f;re[ie]=re[ie]+f[J];var se=Q+-1,ne=f;ne[se]=ne[se]+f[J+-1],f[J]=te*r[q]-ae*r[q+1],f[J+-1]=ae*r[q]+te*r[q+1],q+=8,te=f[Q+-2]-f[J+-2],ae=f[Q+-3]-f[J+-3];var _e=Q+-2,oe=f;oe[_e]=oe[_e]+f[J+-2];var he=Q+-3,le=f;le[he]=le[he]+f[J+-3],f[J+-2]=te*r[q]-ae*r[q+1],f[J+-3]=ae*r[q]+te*r[q+1],q+=8,te=f[Q+-4]-f[J+-4],ae=f[Q+-5]-f[J+-5];var ue=Q+-4,ce=f;ce[ue]=ce[ue]+f[J+-4];var de=Q+-5,pe=f;pe[de]=pe[de]+f[J+-5],f[J+-4]=te*r[q]-ae*r[q+1],f[J+-5]=ae*r[q]+te*r[q+1],q+=8,te=f[Q+-6]-f[J+-6],ae=f[Q+-7]-f[J+-7];var ge=Q+-6,fe=f;fe[ge]=fe[ge]+f[J+-6];var ve=Q+-7,ke=f;ke[ve]=ke[ve]+f[J+-7],f[J+-6]=te*r[q]-ae*r[q+1],f[J+-7]=ae*r[q]+te*r[q+1],q+=8,Q-=8,J-=8}for(var me=o-1-0*l,be=0,Se=me,ye=me+-(t>>4),xe=1+(t>>5>>2);--xe>0;){var Be=f[Se]-f[ye],Te=f[Se+-1]-f[ye+-1],we=Se,Ee=f;Ee[we]=Ee[we]+f[ye];var Ie=Se+-1,Ce=f;Ce[Ie]=Ce[Ie]+f[ye+-1],f[ye]=Be*r[be]-Te*r[be+1],f[ye+-1]=Te*r[be]+Be*r[be+1],be+=16,Be=f[Se+-2]-f[ye+-2],Te=f[Se+-3]-f[ye+-3];var Ae=Se+-2,Le=f;Le[Ae]=Le[Ae]+f[ye+-2];var Re=Se+-3,$e=f;$e[Re]=$e[Re]+f[ye+-3],f[ye+-2]=Be*r[be]-Te*r[be+1],f[ye+-3]=Te*r[be]+Be*r[be+1],be+=16,Be=f[Se+-4]-f[ye+-4],Te=f[Se+-5]-f[ye+-5];var Fe=Se+-4,Ve=f;Ve[Fe]=Ve[Fe]+f[ye+-4];var Ne=Se+-5,Pe=f;Pe[Ne]=Pe[Ne]+f[ye+-5],f[ye+-4]=Be*r[be]-Te*r[be+1],f[ye+-5]=Te*r[be]+Be*r[be+1],be+=16,Be=f[Se+-6]-f[ye+-6],Te=f[Se+-7]-f[ye+-7];var Me=Se+-6,Oe=f;Oe[Me]=Oe[Me]+f[ye+-6];var De=Se+-7,Ue=f;Ue[De]=Ue[De]+f[ye+-7],f[ye+-6]=Be*r[be]-Te*r[be+1],f[ye+-7]=Te*r[be]+Be*r[be+1],Se-=8,ye-=8,be+=16}for(var He=o-1-l,Ge=0,We=He,ze=He+-(t>>4),je=1+(t>>5>>2);--je>0;){var Ke=f[We]-f[ze],Xe=f[We+-1]-f[ze+-1],Ye=We,Ze=f;Ze[Ye]=Ze[Ye]+f[ze];var Qe=We+-1,Je=f;Je[Qe]=Je[Qe]+f[ze+-1],f[ze]=Ke*r[Ge]-Xe*r[Ge+1],f[ze+-1]=Xe*r[Ge]+Ke*r[Ge+1],Ge+=16,Ke=f[We+-2]-f[ze+-2],Xe=f[We+-3]-f[ze+-3];var qe=We+-2,et=f;et[qe]=et[qe]+f[ze+-2];var tt=We+-3,at=f;at[tt]=at[tt]+f[ze+-3],f[ze+-2]=Ke*r[Ge]-Xe*r[Ge+1],f[ze+-3]=Xe*r[Ge]+Ke*r[Ge+1],Ge+=16,Ke=f[We+-4]-f[ze+-4],Xe=f[We+-5]-f[ze+-5];var it=We+-4,rt=f;rt[it]=rt[it]+f[ze+-4];var st=We+-5,nt=f;nt[st]=nt[st]+f[ze+-5],f[ze+-4]=Ke*r[Ge]-Xe*r[Ge+1],f[ze+-5]=Xe*r[Ge]+Ke*r[Ge+1],Ge+=16,Ke=f[We+-6]-f[ze+-6],Xe=f[We+-7]-f[ze+-7];var _t=We+-6,ot=f;ot[_t]=ot[_t]+f[ze+-6];var ht=We+-7,lt=f;lt[ht]=lt[ht]+f[ze+-7],f[ze+-6]=Ke*r[Ge]-Xe*r[Ge+1],f[ze+-7]=Xe*r[Ge]+Ke*r[Ge+1],We-=8,ze-=8,Ge+=16}for(var ut=o-1-2*l,ct=0,dt=ut,pt=ut+-(t>>4),gt=1+(t>>5>>2);--gt>0;){var ft=f[dt]-f[pt],vt=f[dt+-1]-f[pt+-1],kt=dt,mt=f;mt[kt]=mt[kt]+f[pt];var bt=dt+-1,St=f;St[bt]=St[bt]+f[pt+-1],f[pt]=ft*r[ct]-vt*r[ct+1],f[pt+-1]=vt*r[ct]+ft*r[ct+1],ct+=16,ft=f[dt+-2]-f[pt+-2],vt=f[dt+-3]-f[pt+-3];var yt=dt+-2,xt=f;xt[yt]=xt[yt]+f[pt+-2];var Bt=dt+-3,Tt=f;Tt[Bt]=Tt[Bt]+f[pt+-3],f[pt+-2]=ft*r[ct]-vt*r[ct+1],f[pt+-3]=vt*r[ct]+ft*r[ct+1],ct+=16,ft=f[dt+-4]-f[pt+-4],vt=f[dt+-5]-f[pt+-5];var wt=dt+-4,Et=f;Et[wt]=Et[wt]+f[pt+-4];var It=dt+-5,Ct=f;Ct[It]=Ct[It]+f[pt+-5],f[pt+-4]=ft*r[ct]-vt*r[ct+1],f[pt+-5]=vt*r[ct]+ft*r[ct+1],ct+=16,ft=f[dt+-6]-f[pt+-6],vt=f[dt+-7]-f[pt+-7];var At=dt+-6,Lt=f;Lt[At]=Lt[At]+f[pt+-6];var Rt=dt+-7,$t=f;$t[Rt]=$t[Rt]+f[pt+-7],f[pt+-6]=ft*r[ct]-vt*r[ct+1],f[pt+-7]=vt*r[ct]+ft*r[ct+1],dt-=8,pt-=8,ct+=16}for(var Ft=o-1-3*l,Vt=0,Nt=Ft,Pt=Ft+-(t>>4),Mt=1+(t>>5>>2);--Mt>0;){var Ot=f[Nt]-f[Pt],Dt=f[Nt+-1]-f[Pt+-1],Ut=Nt,Ht=f;Ht[Ut]=Ht[Ut]+f[Pt];var Gt=Nt+-1,Wt=f;Wt[Gt]=Wt[Gt]+f[Pt+-1],f[Pt]=Ot*r[Vt]-Dt*r[Vt+1],f[Pt+-1]=Dt*r[Vt]+Ot*r[Vt+1],Vt+=16,Ot=f[Nt+-2]-f[Pt+-2],Dt=f[Nt+-3]-f[Pt+-3];var zt=Nt+-2,jt=f;jt[zt]=jt[zt]+f[Pt+-2];var Kt=Nt+-3,Xt=f;Xt[Kt]=Xt[Kt]+f[Pt+-3],f[Pt+-2]=Ot*r[Vt]-Dt*r[Vt+1],f[Pt+-3]=Dt*r[Vt]+Ot*r[Vt+1],Vt+=16,Ot=f[Nt+-4]-f[Pt+-4],Dt=f[Nt+-5]-f[Pt+-5];var Yt=Nt+-4,Zt=f;Zt[Yt]=Zt[Yt]+f[Pt+-4];var Qt=Nt+-5,Jt=f;Jt[Qt]=Jt[Qt]+f[Pt+-5],f[Pt+-4]=Ot*r[Vt]-Dt*r[Vt+1],f[Pt+-5]=Dt*r[Vt]+Ot*r[Vt+1],Vt+=16,Ot=f[Nt+-6]-f[Pt+-6],Dt=f[Nt+-7]-f[Pt+-7];var qt=Nt+-6,ea=f;ea[qt]=ea[qt]+f[Pt+-6];var ta=Nt+-7,aa=f;aa[ta]=aa[ta]+f[Pt+-7],f[Pt+-6]=Ot*r[Vt]-Dt*r[Vt+1],f[Pt+-7]=Dt*r[Vt]+Ot*r[Vt+1],Nt-=8,Pt-=8,Vt+=16}for(var ia=2,ra=w-3>>1;ia>sa+2,_a=na>>1,oa=0,ha=1<>sa+4>>2);--ga>0;){var fa=f[da]-f[pa],va=f[da+-1]-f[pa+-1],ka=da,ma=f;ma[ka]=ma[ka]+f[pa];var ba=da+-1,Sa=f;Sa[ba]=Sa[ba]+f[pa+-1],f[pa]=fa*r[ca]-va*r[ca+1],f[pa+-1]=va*r[ca]+fa*r[ca+1],ca+=ua,fa=f[da+-2]-f[pa+-2],va=f[da+-3]-f[pa+-3];var ya=da+-2,xa=f;xa[ya]=xa[ya]+f[pa+-2];var Ba=da+-3,Ta=f;Ta[Ba]=Ta[Ba]+f[pa+-3],f[pa+-2]=fa*r[ca]-va*r[ca+1],f[pa+-3]=va*r[ca]+fa*r[ca+1],ca+=ua,fa=f[da+-4]-f[pa+-4],va=f[da+-5]-f[pa+-5];var wa=da+-4,Ea=f;Ea[wa]=Ea[wa]+f[pa+-4];var Ia=da+-5,Ca=f;Ca[Ia]=Ca[Ia]+f[pa+-5],f[pa+-4]=fa*r[ca]-va*r[ca+1],f[pa+-5]=va*r[ca]+fa*r[ca+1],ca+=ua,fa=f[da+-6]-f[pa+-6],va=f[da+-7]-f[pa+-7];var Aa=da+-6,La=f;La[Aa]=La[Aa]+f[pa+-6];var Ra=da+-7,$a=f;$a[Ra]=$a[Ra]+f[pa+-7],f[pa+-6]=fa*r[ca]-va*r[ca+1],f[pa+-7]=va*r[ca]+fa*r[ca+1],da-=8,pa-=8,ca+=ua}for(var Fa=w-3>>1,Va=w-6;Fa>Na+2,Ma=1<>1,Da=1<>Na+6)+1;--Ga>0;){for(var Wa=r[Ua],za=r[Ua+1],ja=r[Ua+Ma],Ka=r[Ua+Ma+1],Xa=r[Ua+2*Ma],Ya=r[Ua+2*Ma+1],Za=r[Ua+3*Ma],Qa=r[Ua+3*Ma+1],Ja=Ha,qa=Ha+-Oa,ei=Da+1;--ei>0;){var ti=f[Ja]-f[qa],ai=f[Ja+-1]-f[qa+-1];f[Ja]=f[Ja]+f[qa],f[Ja+-1]=f[Ja+-1]+f[qa+-1],f[qa]=ti*Wa-ai*za,f[qa+-1]=ai*Wa+ti*za,ti=f[Ja+-2]-f[qa+-2],ai=f[Ja+-3]-f[qa+-3],f[Ja+-2]=f[Ja+-2]+f[qa+-2],f[Ja+-3]=f[Ja+-3]+f[qa+-3],f[qa+-2]=ti*ja-ai*Ka,f[qa+-3]=ai*ja+ti*Ka,ti=f[Ja+-4]-f[qa+-4],ai=f[Ja+-5]-f[qa+-5],f[Ja+-4]=f[Ja+-4]+f[qa+-4],f[Ja+-5]=f[Ja+-5]+f[qa+-5],f[qa+-4]=ti*Xa-ai*Ya,f[qa+-5]=ai*Xa+ti*Ya,ti=f[Ja+-6]-f[qa+-6],ai=f[Ja+-7]-f[qa+-7],f[Ja+-6]=f[Ja+-6]+f[qa+-6],f[Ja+-7]=f[Ja+-7]+f[qa+-7],f[qa+-6]=ti*Za-ai*Qa,f[qa+-7]=ai*Za+ti*Qa,Ja-=Pa,qa-=Pa}Ua+=4*Ma,Ha-=8}for(var ii=o-1,ri=r[t>>3],si=ii,ni=ii-16*(t>>5);si>ni;){var _i=f[si],oi=f[si+-8];f[si+-8]=_i-oi,f[si]=_i+oi,_i=f[si+-1],oi=f[si+-9],f[si+-9]=_i-oi,f[si+-1]=_i+oi;var hi=(_i=f[si+-2])-(oi=f[si+-10]);f[si+-2]=_i+oi;var li=(_i=f[si+-3])-(oi=f[si+-11]);f[si+-3]=_i+oi,f[si+-10]=(hi+li)*ri,f[si+-11]=(li-hi)*ri,_i=f[si+-4],hi=(oi=f[si+-12])-_i,f[si+-4]=_i+oi,li=(_i=f[si+-5])-(oi=f[si+-13]),f[si+-5]=_i+oi,f[si+-12]=li,f[si+-13]=hi,_i=f[si+-6],hi=(oi=f[si+-14])-_i,f[si+-6]=_i+oi,li=(_i=f[si+-7])-(oi=f[si+-15]),f[si+-7]=_i+oi,f[si+-14]=(hi+li)*ri,f[si+-15]=(hi-li)*ri;var ui=f[si],ci=f[si+-4],di=ui-ci,pi=ui+ci,gi=(ui=f[si+-2])+(ci=f[si+-6]),fi=ui-ci;f[si]=pi+gi,f[si+-2]=pi-gi;var vi=f[si+-3]-f[si+-7];f[si+-4]=di+vi,f[si+-6]=di-vi;var ki=(ui=f[si+-1])-(ci=f[si+-5]),mi=ui+ci,bi=f[si+-3]+f[si+-7];f[si+-1]=mi+bi,f[si+-3]=mi-bi,f[si+-5]=ki-fi,f[si+-7]=ki+fi;var Si=si-8,yi=f[Si],xi=f[Si+-4],Bi=yi-xi,Ti=yi+xi,wi=(yi=f[Si+-2])+(xi=f[Si+-6]),Ei=yi-xi;f[Si]=Ti+wi,f[Si+-2]=Ti-wi;var Ii=f[Si+-3]-f[Si+-7];f[Si+-4]=Bi+Ii,f[Si+-6]=Bi-Ii;var Ci=(yi=f[Si+-1])-(xi=f[Si+-5]),Ai=yi+xi,Li=f[Si+-3]+f[Si+-7];f[Si+-1]=Ai+Li,f[Si+-3]=Ai-Li,f[Si+-5]=Ci-Ei,f[Si+-7]=Ci+Ei,si-=16}for(var Ri=0,$i=h-4,Fi=o-4;$i>=0;){var Vi=_[Ri];v[Fi+3]=f[Vi],v[Fi+2]=f[Vi+1],v[$i+3]=f[Vi+2],v[$i+2]=f[Vi+3],Vi=_[Ri+1],v[Fi+1]=f[Vi],v[Fi]=f[Vi+1],v[$i+1]=f[Vi+2],v[$i]=f[Vi+3],$i-=4,Fi-=4,Ri+=2}for(var Ni=0,Pi=0,Mi=o-4;Pi=0;){var Qi=u[ji+6]*s[zi+7]-u[ji+7]*s[zi+6],Ji=-u[ji+6]*s[zi+6]-u[ji+7]*s[zi+7];e[Ki]=Qi,e[Xi+3]=-Qi,e[Yi]=Ji,e[Zi+3]=Ji;var qi=u[ji+4]*s[zi+5]-u[ji+5]*s[zi+4],er=-u[ji+4]*s[zi+4]-u[ji+5]*s[zi+5];e[Ki+1]=qi,e[Xi+2]=-qi,e[Yi+1]=er,e[Zi+2]=er,Qi=u[ji+2]*s[zi+3]-u[ji+3]*s[zi+2],Ji=-u[ji+2]*s[zi+2]-u[ji+3]*s[zi+3],e[Ki+2]=Qi,e[Xi+1]=-Qi,e[Yi+2]=Ji,e[Zi+1]=Ji,qi=u[ji]*s[zi+1]-u[ji+1]*s[zi],er=-u[ji]*s[zi]-u[ji+1]*s[zi+1],e[Ki+3]=qi,e[Xi]=-qi,e[Yi+3]=er,e[Zi]=er,zi-=8,ji-=8,Ki+=4,Yi+=4,Xi-=4,Zi-=4}},decodePacket:function(){var e=this.decodeInitial();return null==e?null:this.decodePacketRest(e)},decodeInitial:function(){for(this.channelBufferStart=this.channelBufferEnd=0;;){if(!this.decodeState.maybeStartPacket())return null;var e,t=this.decodeState;if(t.validBits<0)e=0;else if(t.validBits<1){for(0==t.validBits&&(t.acc=0);;){if(0==t.bytesInSeg&&(t.lastSeg||0==t.next())){t.validBits=-1;break}if(t.bytesInSeg--,t.inputPosition+=1,t.acc=t.acc+(t.input.readByte()<>>1,t.validBits-=1,e=a}}else{var i=1&t.acc;t.acc=t.acc>>>1,t.validBits-=1,e=i}if(0==e)break;for(;;){var r,s=this.decodeState;if(0!=s.bytesInSeg||!s.lastSeg&&0!=s.next()?(s.bytesInSeg--,s.inputPosition+=1,r=s.input.readByte()):r=-1,s.validBits=0,-1==r)break}}var n,_=this.decodeState,o=this.header.modes.length-1,h=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],l=o<16384?o<16?h[o]:o<512?5+h[o>>5]:10+h[o>>10]:o<16777216?o<524288?15+h[o>>15]:20+h[o>>20]:o<536870912?25+h[o>>25]:o<-2147483648?30+h[o>>30]:0;if(_.validBits<0)n=0;else if(_.validBits24)n=_.readBits(24)+(_.readBits(l-24)<<24);else{for(0==_.validBits&&(_.acc=0);;){if(0==_.bytesInSeg&&(_.lastSeg||0==_.next())){_.validBits=-1;break}if(_.bytesInSeg--,_.inputPosition+=1,_.acc=_.acc+(_.input.readByte()<<_.validBits),_.validBits+=8,!(_.validBits>>l,_.validBits-=l,n=u}}else{var c=_.acc&(1<>>l,_.validBits-=l,n=c}if(-1==n||n>=this.header.modes.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED,null,{fileName:"VorbisDecoder.hx",lineNumber:519,className:"kha.audio2.ogg.vorbis.VorbisDecoder",methodName:"decodeInitial"}));var d,p,g,f=this.header.modes[n];if(f.blockflag){d=this.header.blocksize1;var v=this.decodeState;if(v.validBits<0)p=0;else if(v.validBits<1){for(0==v.validBits&&(v.acc=0);;){if(0==v.bytesInSeg&&(v.lastSeg||0==v.next())){v.validBits=-1;break}if(v.bytesInSeg--,v.inputPosition+=1,v.acc=v.acc+(v.input.readByte()<>>1,v.validBits-=1,p=k}}else{var m=1&v.acc;v.acc=v.acc>>>1,v.validBits-=1,p=m}var b=this.decodeState;if(b.validBits<0)g=0;else if(b.validBits<1){for(0==b.validBits&&(b.acc=0);;){if(0==b.bytesInSeg&&(b.lastSeg||0==b.next())){b.validBits=-1;break}if(b.bytesInSeg--,b.inputPosition+=1,b.acc=b.acc+(b.input.readByte()<>>1,b.validBits-=1,g=S}}else{var y=1&b.acc;b.acc=b.acc>>>1,b.validBits-=1,g=y}}else p=g=0,d=this.header.blocksize0;var x=d>>1;return{mode:n,left:f.blockflag&&0==p?{start:d-this.header.blocksize0>>2,end:d+this.header.blocksize0>>2}:{start:0,end:x},right:f.blockflag&&0==g?{start:3*d-this.header.blocksize0>>2,end:3*d+this.header.blocksize0>>2}:{start:x,end:d}}},decodePacketRest:function(e){for(var t=this.header.modes[e.mode],a=new Array(256),i=new Array(256),r=t.blockflag?this.header.blocksize1:this.header.blocksize0,s=this.header.mapping[t.mapping],n=r>>1,_=[256,128,86,64],o=this.header.codebooks,h=0,l=this.header.channel;h>>1,f.validBits-=1,p=v}}else{var k=1&f.acc;f.acc=f.acc>>>1,f.validBits-=1,p=k}if(0!=p){var m=[],b=new Array(256),S=_[g.floor1Multiplier-1],y=2;m=this.finalY[u];var x,B=this.decodeState,T=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],w=(S<16384?S<16?T[S]:S<512?5+T[S>>5]:10+T[S>>10]:S<16777216?S<524288?15+T[S>>15]:20+T[S>>20]:S<536870912?25+T[S>>25]:S<-2147483648?30+T[S>>30]:0)-1;if(B.validBits<0)x=0;else if(B.validBits24)x=B.readBits(24)+(B.readBits(w-24)<<24);else{for(0==B.validBits&&(B.acc=0);;){if(0==B.bytesInSeg&&(B.lastSeg||0==B.next())){B.validBits=-1;break}if(B.bytesInSeg--,B.inputPosition+=1,B.acc=B.acc+(B.input.readByte()<>>w,B.validBits-=w,x=E}}else{var I=B.acc&(1<>>w,B.validBits-=w,x=I}m[0]=x;var C,A=this.decodeState,L=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],R=(S<16384?S<16?L[S]:S<512?5+L[S>>5]:10+L[S>>10]:S<16777216?S<524288?15+L[S>>15]:20+L[S>>20]:S<536870912?25+L[S>>25]:S<-2147483648?30+L[S>>30]:0)-1;if(A.validBits<0)C=0;else if(A.validBits24)C=A.readBits(24)+(A.readBits(R-24)<<24);else{for(0==A.validBits&&(A.acc=0);;){if(0==A.bytesInSeg&&(A.lastSeg||0==A.next())){A.validBits=-1;break}if(A.bytesInSeg--,A.inputPosition+=1,A.acc=A.acc+(A.input.readByte()<>>R,A.validBits-=R,C=$}}else{var F=A.acc&(1<>>R,A.validBits-=R,C=F}m[1]=C;for(var V=0,N=g.partitions;V=0){var K=G.codewordLengths[j];W.acc=W.acc>>>K,W.validBits-=K,W.validBits<0?(W.validBits=0,z=-1):z=j}else z=W.decodeScalarRaw(G);G.sparse&&(z=G.sortedValues[z]),H=z}for(var X=g.subclassBooks[M],Y=0,Z=O;Y>=D;var J,q=y++;if(Q>=0){var ee=this.decodeState,te=o[Q];ee.validBits<10&&ee.prepHuffman();var ae,ie=te.fastHuffman[1023&ee.acc];if(ie>=0){var re=te.codewordLengths[ie];ee.acc=ee.acc>>>re,ee.validBits-=re,ee.validBits<0?(ee.validBits=0,ae=-1):ae=ie}else ae=ee.decodeScalarRaw(te);te.sparse&&(ae=te.sortedValues[ae]),J=ae}else J=0;m[q]=J}}if(-1==this.decodeState.validBits){a[u]=!0;continue}b[0]=b[1]=!0;for(var se=g.neighbors,ne=g.xlist,_e=2,oe=g.values;_e=be?me>ve?ke-ve+ve:ve-ke+me-1:0!=(1&ke)?ve-(ke+1>>1):ve+(ke>>1)):(b[he]=!1,m[he]=ve)}for(var Se=0,ye=g.values;Se>1;--Ue>=0;)for(var Ge=this.channelBuffers[s.chan[Ue].magnitude],We=this.channelBuffers[s.chan[Ue].angle],ze=0,je=He;ze0?We[Ye]>0?(Xe=Ge[Ye],Ke=Ge[Ye]-We[Ye]):(Ke=Ge[Ye],Xe=Ge[Ye]+We[Ye]):We[Ye]>0?(Xe=Ge[Ye],Ke=Ge[Ye]+We[Ye]):(Ke=Ge[Ye],Xe=Ge[Ye]-We[Ye]),Ge[Ye]=Xe,We[Ye]=Ke}for(var Ze=0,Qe=this.header.channel;Zea&&e[o]e[t]&&(s=o,i=e[o])}return{low:r,high:s}},kha_audio2_ogg_vorbis_VorbisTools.floatUnpack=function(e){var t=_$UInt_UInt_$Impl_$.toFloat(2097151&e),a=(2145386496&e)>>>21;return(0!=(-2147483648&e)?-t:t)*Math.pow(2,a-788)},kha_audio2_ogg_vorbis_VorbisTools.bitReverse=function(e){return e=(-1431655766&e)>>>1|(1431655765&e)<<1,e=(-858993460&e)>>>2|(858993459&e)<<2,e=(-252645136&e)>>>4|(252645135&e)<<4,(e=(-16711936&e)>>>8|(16711935&e)<<8)>>>16|e<<16},kha_audio2_ogg_vorbis_VorbisTools.pointCompare=function(e,t){return e.xt.x?1:0},kha_audio2_ogg_vorbis_VorbisTools.uintAsc=function(e,t){return _$UInt_UInt_$Impl_$.gt(t,e)?-1:e==t?0:1},kha_audio2_ogg_vorbis_VorbisTools.lookup1Values=function(e,t){var a=0|Math.exp(Math.log(e)/t);if((0|Math.pow(a+1,t))<=e&&++a,!(Math.pow(a+1,t)>e))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisTools.hx",lineNumber:155,className:"kha.audio2.ogg.vorbis.VorbisTools",methodName:"lookup1Values"}));if((0|Math.pow(a,t))>e)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"VorbisTools.hx",lineNumber:156,className:"kha.audio2.ogg.vorbis.VorbisTools",methodName:"lookup1Values"}));return a},kha_audio2_ogg_vorbis_VorbisTools.computeWindow=function(e,t){for(var a=e>>1,i=0,r=a;i>5]:10+a[e>>10]:e<16777216?e<524288?15+a[e>>15]:20+a[e>>20]:e<536870912?25+a[e>>25]:e<-2147483648?30+a[e>>30]:0)-1,r=0,s=e>>3;r>>1|(1431655765&_)<<1))>>>2|(858993459&_)<<2))>>>4|(252645135&_)<<4))>>>8|(16711935&_)<<8,t[n]=(_>>>16|_<<16)>>>32-i+3<<2}},kha_audio2_ogg_vorbis_VorbisTools.computeTwiddleFactors=function(e,t,a,i){for(var r=e>>3,s=0,n=0,_=e>>2;n<_;){var o=n++;t[s]=Math.cos(4*o*3.141592653589793/e),t[s+1]=-Math.sin(4*o*3.141592653589793/e),a[s]=.5*Math.cos(3.141592653589793*(s+1)/e/2),a[s+1]=.5*Math.sin(3.141592653589793*(s+1)/e/2),s+=2}for(var h=0,l=0,u=r;ls&&(i=s);var S=k,y=e;y[S]=y[S]*kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE[m];for(var x=k+1,B=i;x=f?(b-=f,m+=p):m+=d;var w=T,E=e;E[w]=E[w]*kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE[m]}},kha_audio2_ogg_vorbis_VorbisTools.predictPoint=function(e,t,a,i,r){var s=r-i,n=a-t,_=Math.abs(s)*(e-t)/n|0;return s<0?i-_:i+_},kha_audio2_ogg_vorbis_VorbisTools.emptyFloatVector=function(e){return new Array(e)},kha_audio2_ogg_vorbis_VorbisTools.copyVector=function(e){for(var t=e.length,a=new Array(t),i=0,r=e.length;i>>8,e.validBits-=8,i=s}}else{var n=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,i=n}if(66==i){var _;if(e.validBits<0)_=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,_=o}}else{var h=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,_=h}a=67!=_}else a=!0;if(a)t=!0;else{var l;if(e.validBits<0)l=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,l=u}}else{var c=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,l=c}t=86!=l}if(t)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Codebook.hx",lineNumber:40,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"read"}));var d;if(e.validBits<0)d=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,d=p}}else{var g=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,d=g}var f;if(e.validBits<0)f=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,f=v}}else{var k=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,f=k}r.dimensions=(f<<8)+d;var m;if(e.validBits<0)m=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,m=b}}else{var S=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,m=S}var y;if(e.validBits<0)y=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,y=x}}else{var B=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,y=B}var T;if(e.validBits<0)T=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,T=w}}else{var E=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,T=E}r.entries=(T<<16)+(y<<8)+m;var I;if(e.validBits<0)I=0;else if(e.validBits<1){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>1,e.validBits-=1,I=C}}else{var A=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,I=A}var L;if(0!=I)L=!1;else{var R;if(e.validBits<0)R=0;else if(e.validBits<1){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>1,e.validBits-=1,R=$}}else{var F=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,R=F}L=0!=R}r.sparse=L;var V=r.entries,N=new Array(V);r.sparse||(r.codewordLengths=N);var P=0;if(0!=I){var M,O=0;if(e.validBits<0)M=0;else if(e.validBits<5){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>5,e.validBits-=5,M=D}}else{var U=31&e.acc;e.acc=e.acc>>>5,e.validBits-=5,M=U}for(var H=M+1;O>5]:10+z[W>>10]:W<16777216?W<524288?15+z[W>>15]:20+z[W>>20]:W<536870912?25+z[W>>25]:W<-2147483648?30+z[W>>30]:0;if(e.validBits<0)G=0;else if(e.validBits24)G=e.readBits(24)+(e.readBits(j-24)<<24);else{for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>j,e.validBits-=j,G=K}}else{var X=e.acc&(1<>>j,e.validBits-=j,G=X}if(O+G>r.entries)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"codebook entrys",{fileName:"Codebook.hx",lineNumber:67,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"read"}));for(var Y=0,Z=G;Y>>1,e.validBits-=1,q=te}}else{var ae=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,q=ae}else q=1;if(0!=q){var ie;if(e.validBits<0)ie=0;else if(e.validBits<5){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>5,e.validBits-=5,ie=re}}else{var se=31&e.acc;e.acc=e.acc>>>5,e.validBits-=5,ie=se}N[ee]=ie+1,++P}else N[ee]=255}r.sparse&&P>=r.entries>>2&&(r.codewordLengths=N,r.sparse=!1);var ne;if(r.sparse)ne=P;else{for(var _e=0,oe=0,he=r.entries;oe10&&255!=le&&++_e}ne=_e}r.sortedEntries=ne;var ue=null;if(r.sparse){if(0!=r.sortedEntries){var ce=r.sortedEntries,de=new Array(ce);r.codewordLengths=de;var pe=r.entries,ge=new Array(pe);r.codewords=ge;var fe=r.entries;ue=new Array(fe)}r.entries,r.sortedEntries}else{var ve=r.entries,ke=new Array(ve);r.codewords=ke}if(!r.computeCodewords(N,r.entries,ue))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"compute codewords",{fileName:"Codebook.hx",lineNumber:120,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"read"}));if(0!=r.sortedEntries){r.sortedCodewords=[];var me=r.sortedEntries,be=new Array(me);r.sortedValues=be,r.computeSortedHuffman(N,ue)}r.sparse&&(ue=null,r.codewords=null,N=null),r.computeAcceleratedHuffman();var Se;if(e.validBits<0)Se=0;else if(e.validBits<4){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>4,e.validBits-=4,Se=ye}}else{var xe=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,Se=xe}if(r.lookupType=Se,r.lookupType>2)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"codebook lookup type",{fileName:"Codebook.hx",lineNumber:143,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"read"}));if(r.lookupType>0){var Be;if(e.validBits<0)Be=0;else if(e.validBits<32)Be=e.readBits(24)+(e.readBits(8)<<24);else{var Te=-1&e.acc;e.acc=e.acc>>>32,e.validBits-=32,Be=Te}var we=_$UInt_UInt_$Impl_$.toFloat(2097151&Be),Ee=(2145386496&Be)>>>21,Ie=0!=(-2147483648&Be)?-we:we;r.minimumValue=Ie*Math.pow(2,Ee-788);var Ce;if(e.validBits<0)Ce=0;else if(e.validBits<32)Ce=e.readBits(24)+(e.readBits(8)<<24);else{var Ae=-1&e.acc;e.acc=e.acc>>>32,e.validBits-=32,Ce=Ae}var Le=_$UInt_UInt_$Impl_$.toFloat(2097151&Ce),Re=(2145386496&Ce)>>>21,$e=0!=(-2147483648&Ce)?-Le:Le;r.deltaValue=$e*Math.pow(2,Re-788);var Fe;if(e.validBits<0)Fe=0;else if(e.validBits<4){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>4,e.validBits-=4,Fe=Ve}}else{var Ne=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,Fe=Ne}r.valueBits=Fe+1;var Pe;if(e.validBits<0)Pe=0;else if(e.validBits<1){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>1,e.validBits-=1,Pe=Me}}else{var Oe=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,Pe=Oe}r.sequenceP=0!=Pe,1==r.lookupType?r.lookupValues=kha_audio2_ogg_vorbis_VorbisTools.lookup1Values(r.entries,r.dimensions):r.lookupValues=r.entries*r.dimensions;for(var De=r.lookupValues,Ue=new Array(De),He=0,Ge=r.lookupValues;He24)We=e.readBits(24)+(e.readBits(je-24)<<24);else{for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>je,e.validBits-=je,We=Ke}}else{var Xe=e.acc&(1<>>je,e.validBits-=je,We=Xe}if(-1==We)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"fail lookup",{fileName:"Codebook.hx",lineNumber:161,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"read"}));Ue[ze]=We}var Ye=r.lookupValues,Ze=new Array(Ye);r.multiplicands=Ze;for(var Qe=0,Je=r.lookupValues;Qe10},computeCodewords:function(e,t,a){for(var i=new Array(32),r=0;r<32;)i[r++]=0;for(var s=0;s0&&0==i[h];)--h;if(0==h)return!1;var l=i[h];i[h]=0;var u=l,c=(u=(-16711936&(u=(-252645136&(u=(-858993460&(u=(-1431655766&u)>>>1|(1431655765&u)<<1))>>>2|(858993459&u)<<2))>>>4|(252645135&u)<<4))>>>8|(16711935&u)<<8)>>>16|u<<16,d=n++;if(this.sparse?(this.codewords[d]=c,this.codewordLengths[d]=e[o],a[d]=o):this.codewords[o]=c,h!=e[o])for(var p=e[o];p>h;){if(0!=i[p])throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"Codebook.hx",lineNumber:272,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"computeCodewords"}));i[p]=l+(1<<32-p),--p}}}return!0},computeSortedHuffman:function(e,t){if(this.sparse)for(var a=0,i=this.sortedEntries;a>>1|(1431655765&s)<<1))>>>2|(858993459&s)<<2))>>>4|(252645135&s)<<4))>>>8|(16711935&s)<<8,this.sortedCodewords[r]=s>>>16|s<<16}else{for(var n=0,_=0,o=this.entries;_10;if(h){var c=this.codewords[l];c=(-16711936&(c=(-252645136&(c=(-858993460&(c=(-1431655766&c)>>>1|(1431655765&c)<<1))>>>2|(858993459&c)<<2))>>>4|(252645135&c)<<4))>>>8|(16711935&c)<<8,this.sortedCodewords[n++]=c>>>16|c<<16}}if(n!=this.sortedEntries)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER,"",{fileName:"Codebook.hx",lineNumber:296,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"computeSortedHuffman"}))}this.sortedCodewords[this.sortedEntries]=-1,this.sortedCodewords.sort(kha_audio2_ogg_vorbis_VorbisTools.uintAsc);for(var d=0,p=this.sparse?this.sortedEntries:this.entries;d10;if(g){for(var k=this.codewords[f],m=(k=(-16711936&(k=(-252645136&(k=(-858993460&(k=(-1431655766&k)>>>1|(1431655765&k)<<1))>>>2|(858993459&k)<<2))>>>4|(252645135&k)<<4))>>>8|(16711935&k)<<8)>>>16|k<<16,b=0,S=this.sortedEntries;S>1;){var y=b+(S>>1);_$UInt_UInt_$Impl_$.gte(m,this.sortedCodewords[y])?(b=y,S-=S>>1):S>>=1}this.sparse?(this.sortedValues[b]=t[f],this.codewordLengths[b]=v):this.sortedValues[b]=f}}},computeAcceleratedHuffman:function(){var e=new Array(1024);this.fastHuffman=e,this.fastHuffman[0]=-1;for(var t=0;t<1024;){var a=t++;this.fastHuffman[a]=-1}for(var i=0,r=this.sparse?this.sortedEntries:this.entries;i>>1|(1431655765&_)<<1))>>>2|(858993459&_)<<2))>>>4|(252645135&_)<<4))>>>8|(16711935&_)<<8)>>>16|_<<16}else n=this.codewords[s];for(;n<1024;)this.fastHuffman[n]=s,n+=1<=0){var n=this.codewordLengths[s];e.acc=e.acc>>>n,e.validBits-=n,e.validBits<0?(e.validBits=0,r=-1):r=s}else r=e.decodeScalarRaw(this);this.sparse&&(r=this.sortedValues[r]);var _=r,o=this.lookupValues,h=this.sequenceP,l=this.multiplicands,u=this.minimumValue;if(_<0)return!1;if(i>this.dimensions&&(i=this.dimensions),1==this.lookupType){for(var c=1,d=0,p=0,g=i;p=0){var _=this.codewordLengths[n];e.acc=e.acc>>>_,e.validBits-=_,e.validBits<0?(e.validBits=0,s=-1):s=n}else s=e.decodeScalarRaw(this);this.sparse&&(s=this.sortedValues[s]);var o=s,h=0;if(o<0)return!1;i>this.dimensions&&(i=this.dimensions);var l=this.lookupValues,u=this.sequenceP,c=this.multiplicands;if(1==this.lookupType){for(var d=1,p=0,g=i;p=0){var i=this.codewordLengths[a];e.acc=e.acc>>>i,e.validBits-=i,e.validBits<0?(e.validBits=0,t=-1):t=a}else t=e.decodeScalarRaw(this);return this.sparse&&(t=this.sortedValues[t]),t},decodeDeinterleaveRepeat:function(e,t,a,i,r,s,n){var _=this.dimensions;if(0==this.lookupType)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{fileName:"Codebook.hx",lineNumber:488,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"decodeDeinterleaveRepeat"}));for(var o=this.multiplicands,h=this.sequenceP,l=this.lookupValues;n>0;){var u=0;e.validBits<10&&e.prepHuffman();var c,d=this.fastHuffman[1023&e.acc];if(d>=0){var p=this.codewordLengths[d];e.acc=e.acc>>>p,e.validBits-=p,e.validBits<0?(e.validBits=0,c=-1):c=d}else c=e.decodeScalarRaw(this);this.sparse&&(c=this.sortedValues[c]);var g=c;if(g<0){if(0==e.bytesInSeg&&e.lastSeg)return null;throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{fileName:"Codebook.hx",lineNumber:503,className:"kha.audio2.ogg.vorbis.data.Codebook",methodName:"decodeDeinterleaveRepeat"}))}if(i+r*a+_>s*a&&(_=s*a-(r*a-i)),1==this.lookupType){var f=1;if(h)for(var v=0,k=_;v>>16,e.validBits-=16,a=r}}else{var s=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,a=s}if(i.type=a,i.type>1)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Floor.hx",lineNumber:28,className:"kha.audio2.ogg.vorbis.data.Floor",methodName:"read"}));if(0==i.type){var n,_=i.floor0=new kha_audio2_ogg_vorbis_data_Floor0;if(e.validBits<0)n=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,n=o}}else{var h=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,n=h}_.order=n;var l;if(e.validBits<0)l=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,l=u}}else{var c=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,l=c}_.rate=l;var d;if(e.validBits<0)d=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,d=p}}else{var g=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,d=g}_.barkMapSize=d;var f;if(e.validBits<0)f=0;else if(e.validBits<6){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>6,e.validBits-=6,f=v}}else{var k=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,f=k}_.amplitudeBits=f;var m;if(e.validBits<0)m=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,m=b}}else{var S=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,m=S}_.amplitudeOffset=m;var y;if(e.validBits<0)y=0;else if(e.validBits<4){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>4,e.validBits-=4,y=x}}else{var B=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,y=B}_.numberOfBooks=y+1;for(var T=0,w=_.numberOfBooks;T>>8,e.validBits-=8,E=A}}else{var L=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,E=L}C[I]=E}throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED,null,{fileName:"Floor.hx",lineNumber:41,className:"kha.audio2.ogg.vorbis.data.Floor",methodName:"read"}))}var R,$=[],F=i.floor1=new kha_audio2_ogg_vorbis_data_Floor1,V=-1;if(e.validBits<0)R=0;else if(e.validBits<5){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>5,e.validBits-=5,R=N}}else{var P=31&e.acc;e.acc=e.acc>>>5,e.validBits-=5,R=P}F.partitions=R;var M=F.partitions,O=new Array(M);F.partitionClassList=O;for(var D=0,U=F.partitions;D>>4,e.validBits-=4,H=z}}else{var j=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,H=j}W[G]=H,F.partitionClassList[G]>V&&(V=F.partitionClassList[G])}var K=new Array(V+1);F.classDimensions=K;var X=new Array(V+1);F.classMasterbooks=X;var Y=new Array(V+1);F.classSubclasses=Y;var Z=new Array(V+1);F.subclassBooks=Z;for(var Q=0,J=V+1;Q>>3,e.validBits-=3,q=ae}}else{var ie=7&e.acc;e.acc=e.acc>>>3,e.validBits-=3,q=ie}te[ee]=q+1;var re,se=F.classSubclasses;if(e.validBits<0)re=0;else if(e.validBits<2){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>2,e.validBits-=2,re=ne}}else{var _e=3&e.acc;e.acc=e.acc>>>2,e.validBits-=2,re=_e}if(se[ee]=re,0!=F.classSubclasses[ee]){var oe,he=F.classMasterbooks;if(e.validBits<0)oe=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,oe=le}}else{var ue=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,oe=ue}if(he[ee]=oe,F.classMasterbooks[ee]>=t.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Floor.hx",lineNumber:64,className:"kha.audio2.ogg.vorbis.data.Floor",methodName:"read"}))}var ce=1<>>8,e.validBits-=8,ve=be}}else{var Se=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,ve=Se}if(me[ke]=ve-1,F.subclassBooks[ee][ke]>=t.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Floor.hx",lineNumber:73,className:"kha.audio2.ogg.vorbis.data.Floor",methodName:"read"}))}}var ye;if(e.validBits<0)ye=0;else if(e.validBits<2){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>2,e.validBits-=2,ye=xe}}else{var Be=3&e.acc;e.acc=e.acc>>>2,e.validBits-=2,ye=Be}F.floor1Multiplier=ye+1;var Te;if(e.validBits<0)Te=0;else if(e.validBits<4){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>4,e.validBits-=4,Te=we}}else{var Ee=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,Te=Ee}F.rangebits=Te;var Ie=new Array(250);F.xlist=Ie,F.xlist[0]=0,F.xlist[1]=1<24)Ve=e.readBits(24)+(e.readBits(Me-24)<<24);else{for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>Me,e.validBits-=Me,Ve=Oe}}else{var De=e.acc&(1<>>Me,e.validBits-=Me,Ve=De}Ne[Pe]=Ve,F.values++}for(var Ue=0,He=F.values;Ueit&&at[ht]at[tt]&&(nt=ht,rt=at[ht])}qe=st,et=nt;var lt=F.neighbors,ut=F.values,ct=new Array(ut);lt[tt]=ct,F.neighbors[tt][0]=qe,F.neighbors[tt][1]=et}return i},kha_audio2_ogg_vorbis_data_Floor.prototype={floor0:null,floor1:null,type:null,__class__:kha_audio2_ogg_vorbis_data_Floor};var kha_audio2_ogg_vorbis_data_Floor0=$hxClasses["kha.audio2.ogg.vorbis.data.Floor0"]=function(){};kha_audio2_ogg_vorbis_data_Floor0.__name__=!0,kha_audio2_ogg_vorbis_data_Floor0.prototype={order:null,rate:null,barkMapSize:null,amplitudeBits:null,amplitudeOffset:null,numberOfBooks:null,bookList:null,__class__:kha_audio2_ogg_vorbis_data_Floor0};var kha_audio2_ogg_vorbis_data_Floor1=$hxClasses["kha.audio2.ogg.vorbis.data.Floor1"]=function(){};kha_audio2_ogg_vorbis_data_Floor1.__name__=!0,kha_audio2_ogg_vorbis_data_Floor1.prototype={partitions:null,partitionClassList:null,classDimensions:null,classSubclasses:null,classMasterbooks:null,subclassBooks:null,xlist:null,sortedOrder:null,neighbors:null,floor1Multiplier:null,rangebits:null,values:null,__class__:kha_audio2_ogg_vorbis_data_Floor1};var kha_audio2_ogg_vorbis_data_Header=$hxClasses["kha.audio2.ogg.vorbis.data.Header"]=function(){};kha_audio2_ogg_vorbis_data_Header.__name__=!0,kha_audio2_ogg_vorbis_data_Header.read=function(e){var t=e.page;if(t.start(e),0==(2&t.flag))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"not firstPage",{fileName:"Header.hx",lineNumber:46,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(0!=(4&t.flag))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"lastPage",{fileName:"Header.hx",lineNumber:49,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(0!=(1&t.flag))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"continuedPacket",{fileName:"Header.hx",lineNumber:52,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(e.firstPageValidate(),e.inputPosition+=1,1!=e.input.readByte())throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"decodeState head",{fileName:"Header.hx",lineNumber:57,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));for(var a=new haxe_io_Bytes(new ArrayBuffer(6)),i=0;i<6;){var r,s=i++;0!=e.bytesInSeg||!e.lastSeg&&0!=e.next()?(e.bytesInSeg--,e.inputPosition+=1,r=e.input.readByte()):r=-1,e.validBits=0,a.b[s]=255&r}if("vorbis"!=a.toString())throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"vorbis header",{fileName:"VorbisDecodeState.hx",lineNumber:300,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"vorbisValidate"}));e.inputPosition+=4;var n=e.input.readInt32();if(0!=n)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"vorbis version : "+n,{fileName:"Header.hx",lineNumber:66,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));var _=new kha_audio2_ogg_vorbis_data_Header;if(e.inputPosition+=1,_.channel=e.input.readByte(),0==_.channel)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"no channel",{fileName:"Header.hx",lineNumber:73,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(_.channel>16)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS,"too many channels",{fileName:"Header.hx",lineNumber:75,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(e.inputPosition+=4,_.sampleRate=e.input.readInt32(),0==_.sampleRate)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,"no sampling rate",{fileName:"Header.hx",lineNumber:80,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));e.inputPosition+=4,_.maximumBitRate=e.input.readInt32(),e.inputPosition+=4,_.nominalBitRate=e.input.readInt32(),e.inputPosition+=4,_.minimumBitRate=e.input.readInt32(),e.inputPosition+=1;var o=e.input.readByte(),h=15&o,l=o>>4;if(_.blocksize0=1<13)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:93,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(l<6||l>13)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:96,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(h>l)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:99,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));e.inputPosition+=1;var u=e.input.readByte();if(0==(1&u))throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE,null,{fileName:"Header.hx",lineNumber:105,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));e.page.start(e),e.startPacket();for(var c=0,d=new haxe_io_BytesOutput;;){if(0==(c=e.next()))break;e.inputPosition+=c,d.write(e.input.read(c)),e.bytesInSeg=0}var p=new haxe_io_BytesInput(d.getBytes());p.readByte(),p.read(6);var g=p.readInt32();_.vendor=p.readString(g),_.comment=new kha_audio2_ogg_vorbis_data_Comment;for(var f=0,v=p.readInt32();f>>8,e.validBits-=8,w=E}}else{var I=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,w=I}var C=w+1,A=new Array(C);_.codebooks=A;for(var L=0,R=C;L>>6,e.validBits-=6,F=V}}else{var N=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,F=N}for(var P=0,M=u=F+1;P>>16,e.validBits-=16,O=D}}else{var U=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,O=U}if(0!=O)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:165,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}))}var H;if(e.validBits<0)H=0;else if(e.validBits<6){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>6,e.validBits-=6,H=G}}else{var W=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,H=W}var z=H+1,j=new Array(z);_.floorConfig=j;for(var K=0,X=z;K>>6,e.validBits-=6,Z=Q}}else{var J=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,Z=J}var q=Z+1,ee=new Array(q);_.residueConfig=ee;for(var te=0,ae=q;te>>6,e.validBits-=6,re=se}}else{var ne=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,re=ne}var _e=re+1,oe=new Array(_e);_.mapping=oe;for(var he=0,le=_e;he=_.floorConfig.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:191,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}));if(ce.submapResidue[ge]>=_.residueConfig.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:194,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}))}}var fe;if(e.validBits<0)fe=0;else if(e.validBits<6){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>6,e.validBits-=6,fe=ve}}else{var ke=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,fe=ke}var me=fe+1,be=new Array(me);_.modes=be;for(var Se=0,ye=me;Se=_.mapping.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Header.hx",lineNumber:205,className:"kha.audio2.ogg.vorbis.data.Header",methodName:"read"}))}for(;0!=e.bytesInSeg||!e.lastSeg&&0!=e.next();)e.bytesInSeg--,e.inputPosition+=1,e.input.readByte();return _},kha_audio2_ogg_vorbis_data_Header.prototype={maximumBitRate:null,nominalBitRate:null,minimumBitRate:null,sampleRate:null,channel:null,blocksize0:null,blocksize1:null,codebooks:null,floorConfig:null,residueConfig:null,mapping:null,modes:null,comment:null,vendor:null,__class__:kha_audio2_ogg_vorbis_data_Header};var kha_audio2_ogg_vorbis_data_IntPoint=$hxClasses["kha.audio2.ogg.vorbis.data.IntPoint"]=function(){};kha_audio2_ogg_vorbis_data_IntPoint.__name__=!0,kha_audio2_ogg_vorbis_data_IntPoint.prototype={x:null,y:null,__class__:kha_audio2_ogg_vorbis_data_IntPoint};var kha_audio2_ogg_vorbis_data_Mapping=$hxClasses["kha.audio2.ogg.vorbis.data.Mapping"]=function(){};kha_audio2_ogg_vorbis_data_Mapping.__name__=!0,kha_audio2_ogg_vorbis_data_Mapping.read=function(e,t){var a,i=new kha_audio2_ogg_vorbis_data_Mapping;if(e.validBits<0)a=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,a=r}}else{var s=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,a=s}if(0!=a)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,"mapping type "+a,{fileName:"Mapping.hx",lineNumber:22,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}));var n=new Array(t);i.chan=n;for(var _=0,o=t;_>>1,e.validBits-=1,l=u}}else{var c=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,l=c}if(0!=l){var d;if(e.validBits<0)d=0;else if(e.validBits<4){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>4,e.validBits-=4,d=p}}else{var g=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,d=g}i.submaps=d+1}else i.submaps=1;var f;if(e.validBits<0)f=0;else if(e.validBits<1){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>1,e.validBits-=1,f=v}}else{var k=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,f=k}if(0!=f){var m;if(e.validBits<0)m=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,m=b}}else{var S=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,m=S}i.couplingSteps=m+1;for(var y=0,x=i.couplingSteps;y>5]:10+I[E>>10]:E<16777216?E<524288?15+I[E>>15]:20+I[E>>20]:E<536870912?25+I[E>>25]:E<-2147483648?30+I[E>>30]:0;if(e.validBits<0)B=0;else if(e.validBits24)B=e.readBits(24)+(e.readBits(C-24)<<24);else{for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>C,e.validBits-=C,B=A}}else{var L=e.acc&(1<>>C,e.validBits-=C,B=L}w.magnitude=B;var R,$=i.chan[T],F=t-1,V=[0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4],N=F<16384?F<16?V[F]:F<512?5+V[F>>5]:10+V[F>>10]:F<16777216?F<524288?15+V[F>>15]:20+V[F>>20]:F<536870912?25+V[F>>25]:F<-2147483648?30+V[F>>30]:0;if(e.validBits<0)R=0;else if(e.validBits24)R=e.readBits(24)+(e.readBits(N-24)<<24);else{for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>N,e.validBits-=N,R=P}}else{var M=e.acc&(1<>>N,e.validBits-=N,R=M}if($.angle=R,i.chan[T].magnitude>=t)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mapping.hx",lineNumber:46,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}));if(i.chan[T].angle>=t)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mapping.hx",lineNumber:49,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}));if(i.chan[T].magnitude==i.chan[T].angle)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mapping.hx",lineNumber:52,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}))}}else i.couplingSteps=0;var O;if(e.validBits<0)O=0;else if(e.validBits<2){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>2,e.validBits-=2,O=D}}else{var U=3&e.acc;e.acc=e.acc>>>2,e.validBits-=2,O=U}if(0!=O)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mapping.hx",lineNumber:61,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}));if(i.submaps>1)for(var H=0,G=t;H>>4,e.validBits-=4,W=K}}else{var X=15&e.acc;e.acc=e.acc>>>4,e.validBits-=4,W=X}if(j.mux=W,i.chan[z].mux>=i.submaps)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mapping.hx",lineNumber:67,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"read"}))}else for(var Y=0,Z=t;Y=0)if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<=0){e.acc;e.acc=e.acc>>>8,e.validBits-=8}}else{e.acc;e.acc=e.acc>>>8,e.validBits-=8}var se,ne=i.submapFloor;if(e.validBits<0)se=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,se=_e}}else{var oe=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,se=oe}ne[re]=se;var he,le=i.submapResidue;if(e.validBits<0)he=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,he=ue}}else{var ce=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,he=ce}le[re]=he}return i},kha_audio2_ogg_vorbis_data_Mapping.prototype={couplingSteps:null,chan:null,submaps:null,submapFloor:null,submapResidue:null,doFloor:function(e,t,a,i,r,s){var n=a>>1,_=this.chan[t].mux,o=e[this.submapFloor[_]];if(0==o.type)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM,null,{fileName:"Mapping.hx",lineNumber:94,className:"kha.audio2.ogg.vorbis.data.Mapping",methodName:"doFloor"}));for(var h=o.floor1,l=0,u=r[0]*h.floor1Multiplier,c=1,d=h.values;c=0){var f=r[g]*h.floor1Multiplier,v=h.xlist[g];kha_audio2_ogg_vorbis_VorbisTools.drawLine(i,l,u,v,f,n),l=v,u=f}}if(l>>1,e.validBits-=1,t=i}}else{var r=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,t=r}a.blockflag=0!=t;var s;if(e.validBits<0)s=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,s=n}}else{var _=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,s=_}a.windowtype=s;var o;if(e.validBits<0)o=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,o=h}}else{var l=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,o=l}a.transformtype=o;var u;if(e.validBits<0)u=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,u=c}}else{var d=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,u=d}if(a.mapping=u,0!=a.windowtype)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mode.hx",lineNumber:22,className:"kha.audio2.ogg.vorbis.data.Mode",methodName:"read"}));if(0!=a.transformtype)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Mode.hx",lineNumber:25,className:"kha.audio2.ogg.vorbis.data.Mode",methodName:"read"}));return a},kha_audio2_ogg_vorbis_data_Mode.prototype={blockflag:null,mapping:null,windowtype:null,transformtype:null,__class__:kha_audio2_ogg_vorbis_data_Mode};var kha_audio2_ogg_vorbis_data_Page=$hxClasses["kha.audio2.ogg.vorbis.data.Page"]=function(){};kha_audio2_ogg_vorbis_data_Page.__name__=!0,kha_audio2_ogg_vorbis_data_Page.prototype={flag:null,clone:function(){var e=new kha_audio2_ogg_vorbis_data_Page;return e.flag=this.flag,e},start:function(e){var t,a,i;if(e.inputPosition+=1,79==e.input.readByte()?(e.inputPosition+=1,i=103!=e.input.readByte()):i=!0,i?a=!0:(e.inputPosition+=1,a=103!=e.input.readByte()),a?t=!0:(e.inputPosition+=1,t=83!=e.input.readByte()),t)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN,null,{fileName:"VorbisDecodeState.hx",lineNumber:323,className:"kha.audio2.ogg.vorbis.VorbisDecodeState",methodName:"capturePattern"}));this.startWithoutCapturePattern(e)},startWithoutCapturePattern:function(e){e.inputPosition+=1;var t=e.input.readByte();if(0!=t)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION,""+t,{fileName:"Page.hx",lineNumber:34,className:"kha.audio2.ogg.vorbis.data.Page",methodName:"startWithoutCapturePattern"}));e.inputPosition+=1,this.flag=e.input.readByte(),e.inputPosition+=4;var a=e.input.readInt32();e.inputPosition+=4;var i=e.input.readInt32();e.inputPosition+=4,e.input.readInt32(),e.inputPosition+=4,e.input.readInt32(),e.inputPosition+=4,e.input.readInt32(),e.setup(a,i)},__class__:kha_audio2_ogg_vorbis_data_Page};var kha_audio2_ogg_vorbis_data_PageFlag=$hxClasses["kha.audio2.ogg.vorbis.data.PageFlag"]=function(){};kha_audio2_ogg_vorbis_data_PageFlag.__name__=!0;var kha_audio2_ogg_vorbis_data_ProbedPage=$hxClasses["kha.audio2.ogg.vorbis.data.ProbedPage"]=function(){};kha_audio2_ogg_vorbis_data_ProbedPage.__name__=!0,kha_audio2_ogg_vorbis_data_ProbedPage.prototype={pageStart:null,pageEnd:null,afterPreviousPageStart:null,firstDecodedSample:null,lastDecodedSample:null,__class__:kha_audio2_ogg_vorbis_data_ProbedPage};var kha_audio2_ogg_vorbis_data_ReaderError=$hxClasses["kha.audio2.ogg.vorbis.data.ReaderError"]=function(e,t,a){null==t&&(t=""),this.type=e,this.message=t,this.posInfos=a};kha_audio2_ogg_vorbis_data_ReaderError.__name__=!0,kha_audio2_ogg_vorbis_data_ReaderError.prototype={type:null,message:null,posInfos:null,__class__:kha_audio2_ogg_vorbis_data_ReaderError};var kha_audio2_ogg_vorbis_data_ReaderErrorType=$hxClasses["kha.audio2.ogg.vorbis.data.ReaderErrorType"]={__ename__:!0,__constructs__:["NEED_MORE_DATA","INVALID_API_MIXING","OUTOFMEM","FEATURE_NOT_SUPPORTED","TOO_MANY_CHANNELS","FILE_OPEN_FAILURE","SEEK_WITHOUT_LENGTH","UNEXPECTED_EOF","SEEK_INVALID","INVALID_SETUP","INVALID_STREAM","MISSING_CAPTURE_PATTERN","INVALID_STREAM_STRUCTURE_VERSION","CONTINUED_PACKET_FLAG_INVALID","INCORRECT_STREAM_SERIAL_NUMBER","INVALID_FIRST_PAGE","BAD_PACKET_TYPE","CANT_FIND_LAST_PAGE","SEEK_FAILED","OTHER"]};kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA=["NEED_MORE_DATA",0],kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.NEED_MORE_DATA.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING=["INVALID_API_MIXING",1],kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_API_MIXING.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM=["OUTOFMEM",2],kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.OUTOFMEM.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED=["FEATURE_NOT_SUPPORTED",3],kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.FEATURE_NOT_SUPPORTED.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS=["TOO_MANY_CHANNELS",4],kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.TOO_MANY_CHANNELS.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE=["FILE_OPEN_FAILURE",5],kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.FILE_OPEN_FAILURE.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH=["SEEK_WITHOUT_LENGTH",6],kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_WITHOUT_LENGTH.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF=["UNEXPECTED_EOF",7],kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.UNEXPECTED_EOF.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID=["SEEK_INVALID",8],kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_INVALID.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP=["INVALID_SETUP",9],kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM=["INVALID_STREAM",10],kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN=["MISSING_CAPTURE_PATTERN",11],kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.MISSING_CAPTURE_PATTERN.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION=["INVALID_STREAM_STRUCTURE_VERSION",12],kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID=["CONTINUED_PACKET_FLAG_INVALID",13],kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.CONTINUED_PACKET_FLAG_INVALID.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER=["INCORRECT_STREAM_SERIAL_NUMBER",14],kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INCORRECT_STREAM_SERIAL_NUMBER.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE=["INVALID_FIRST_PAGE",15],kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_FIRST_PAGE.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE=["BAD_PACKET_TYPE",16],kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.BAD_PACKET_TYPE.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE=["CANT_FIND_LAST_PAGE",17],kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.CANT_FIND_LAST_PAGE.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED=["SEEK_FAILED",18],kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.SEEK_FAILED.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType,kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER=["OTHER",19],kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER.toString=$estr,kha_audio2_ogg_vorbis_data_ReaderErrorType.OTHER.__enum__=kha_audio2_ogg_vorbis_data_ReaderErrorType;var kha_audio2_ogg_vorbis_data_Residue=$hxClasses["kha.audio2.ogg.vorbis.data.Residue"]=function(){};kha_audio2_ogg_vorbis_data_Residue.__name__=!0,kha_audio2_ogg_vorbis_data_Residue.read=function(e,t){var a,i=new kha_audio2_ogg_vorbis_data_Residue;if(e.validBits<0)a=0;else if(e.validBits<16){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>16,e.validBits-=16,a=r}}else{var s=65535&e.acc;e.acc=e.acc>>>16,e.validBits-=16,a=s}if(i.type=a,i.type>2)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Residue.hx",lineNumber:29,className:"kha.audio2.ogg.vorbis.data.Residue",methodName:"read"}));var n,_=new Array(64);if(e.validBits<0)n=0;else if(e.validBits<24){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>24,e.validBits-=24,n=o}}else{var h=16777215&e.acc;e.acc=e.acc>>>24,e.validBits-=24,n=h}i.begin=n;var l;if(e.validBits<0)l=0;else if(e.validBits<24){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>24,e.validBits-=24,l=u}}else{var c=16777215&e.acc;e.acc=e.acc>>>24,e.validBits-=24,l=c}i.end=l;var d;if(e.validBits<0)d=0;else if(e.validBits<24){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>24,e.validBits-=24,d=p}}else{var g=16777215&e.acc;e.acc=e.acc>>>24,e.validBits-=24,d=g}i.partSize=d+1;var f;if(e.validBits<0)f=0;else if(e.validBits<6){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>6,e.validBits-=6,f=v}}else{var k=63&e.acc;e.acc=e.acc>>>6,e.validBits-=6,f=k}var m,b=i.classifications=f+1;if(e.validBits<0)m=0;else if(e.validBits<8){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>8,e.validBits-=8,m=S}}else{var y=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,m=y}i.classbook=m;for(var x=0,B=i.classifications;x>>3,e.validBits-=3,T=I}}else{var C=7&e.acc;e.acc=e.acc>>>3,e.validBits-=3,T=C}var A;if(e.validBits<0)A=0;else if(e.validBits<1){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>1,e.validBits-=1,A=L}}else{var R=1&e.acc;e.acc=e.acc>>>1,e.validBits-=1,A=R}if(0!=A)if(e.validBits<0)E=0;else if(e.validBits<5){for(0==e.validBits&&(e.acc=0);;){if(0==e.bytesInSeg&&(e.lastSeg||0==e.next())){e.validBits=-1;break}if(e.bytesInSeg--,e.inputPosition+=1,e.acc=e.acc+(e.input.readByte()<>>5,e.validBits-=5,E=$}}else{var F=31&e.acc;e.acc=e.acc>>>5,e.validBits-=5,E=F}_[w]=8*E+T}var V=i.classifications,N=new Array(V);i.residueBooks=N;for(var P=0,M=i.classifications;P>>8,e.validBits-=8,W=j}}else{var K=255&e.acc;e.acc=e.acc>>>8,e.validBits-=8,W=K}if(z[G]=W,i.residueBooks[O][G]>=t.length)throw new js__$Boot_HaxeError(new kha_audio2_ogg_vorbis_data_ReaderError(kha_audio2_ogg_vorbis_data_ReaderErrorType.INVALID_SETUP,null,{fileName:"Residue.hx",lineNumber:55,className:"kha.audio2.ogg.vorbis.data.Residue",methodName:"read"}))}else i.residueBooks[O][G]=-1}}var X=t[i.classbook].entries,Y=t[i.classbook].dimensions,Z=new Array(X);i.classdata=Z;for(var Q=0,J=X;Q=0;)re[te]=ee%b,ee=ee/b|0;return i},kha_audio2_ogg_vorbis_data_Residue.prototype={begin:null,end:null,partSize:null,classifications:null,classbook:null,classdata:null,residueBooks:null,type:null,decode:function(e,t,a,i,r,s,n){for(var _=t.codebooks,o=_[this.classbook].dimensions,h=this.end-this.begin,l=this.partSize,u=_$UInt_UInt_$Impl_$.toFloat(h)/_$UInt_UInt_$Impl_$.toFloat(l)|0,c=t.channel*u+1,d=new Array(c),p=0,g=i;p=0){var C=w.codewordLengths[I];e.acc=e.acc>>>C,e.validBits-=C,e.validBits<0?(e.validBits=0,E=-1):E=I}else E=e.decodeScalarRaw(w);w.sparse&&(E=w.sortedValues[E]);var A=E;if(-1==A)return;for(var L=o;--L>=0;)d[T*u+L+y]=A%this.classifications,A=A/this.classifications|0}}for(var R=0,$=o;R<$;){R++;if(y>=u)break;for(var F=0,V=i;F=0){var O=a[N],D=this.begin+y*l,U=l;if(!_[M].residueDecode(e,O,D,U,this.type))return}}}++y}}else{for(var H=0,G=i;H>>1;if(0==j){var Q=_[this.classbook];e.validBits<10&&e.prepHuffman();var J,q=Q.fastHuffman[1023&e.acc];if(q>=0){var ee=Q.codewordLengths[q];e.acc=e.acc>>>ee,e.validBits-=ee,e.validBits<0?(e.validBits=0,J=-1):J=q}else J=e.decodeScalarRaw(Q);Q.sparse&&(J=Q.sortedValues[J]);var te=J;if(-1==te)return;for(var ae=o;--ae>=0;)d[ae+K]=te%this.classifications,te=te/this.classifications|0}for(var ie=0,re=o;ie=u)break;var se=this.begin+K*l,ne=d[K],_e=this.residueBooks[ne][j];if(_e>=0){var oe=_[_e].decodeDeinterleaveRepeat(e,a,i,Y,Z,r,l);if(null==oe)return;Y=oe.cInter,Z=oe.pInter}else Y=1&(se+=l),Z=se>>>1;++K}}else if(1==i)for(;K=0){var pe=ue.codewordLengths[de];e.acc=e.acc>>>pe,e.validBits-=pe,e.validBits<0?(e.validBits=0,ce=-1):ce=de}else ce=e.decodeScalarRaw(ue);ue.sparse&&(ce=ue.sortedValues[ce]);var ge=ce;if(-1==ge)return;for(var fe=o;--fe>=0;)d[fe+K]=ge%this.classifications,ge=ge/this.classifications|0}for(var ve=0,ke=o;ve=u)break;var me=this.begin+K*l,be=this.residueBooks[d[K]][j];if(be>=0){var Se=_[be].decodeDeinterleaveRepeat(e,a,i,he,le,r,l);if(null==Se)return;he=Se.cInter,le=Se.pInter}else he=0,le=me+=l;++K}}else for(;K=0){var Ie=Te.codewordLengths[Ee];e.acc=e.acc>>>Ie,e.validBits-=Ie,e.validBits<0?(e.validBits=0,we=-1):we=Ee}else we=e.decodeScalarRaw(Te);Te.sparse&&(we=Te.sortedValues[we]);var Ce=we;if(-1==Ce)return;for(var Ae=o;--Ae>=0;)d[Ae+K]=Ce%this.classifications,Ce=Ce/this.classifications|0}for(var Le=0,Re=o;Le=u)break;var $e=this.begin+K*l,Fe=this.residueBooks[d[K]][j];if(Fe>=0){var Ve=_[Fe].decodeDeinterleaveRepeat(e,a,i,xe,Be,r,l);if(null==Ve)return;xe=Ve.cInter,Be=Ve.pInter}else $e+=l,xe=_$UInt_UInt_$Impl_$.toFloat($e)%_$UInt_UInt_$Impl_$.toFloat(i)|0,Be=_$UInt_UInt_$Impl_$.toFloat($e)/_$UInt_UInt_$Impl_$.toFloat(i)|0;++K}}}}},__class__:kha_audio2_ogg_vorbis_data_Residue};var kha_audio2_ogg_vorbis_data_Setting=$hxClasses["kha.audio2.ogg.vorbis.data.Setting"]=function(){};kha_audio2_ogg_vorbis_data_Setting.__name__=!0;var kha_graphics1_Graphics=$hxClasses["kha.graphics1.Graphics"]=function(){};kha_graphics1_Graphics.__name__=!0,kha_graphics1_Graphics.prototype={begin:null,end:null,setPixel:null,__class__:kha_graphics1_Graphics};var kha_graphics2_Graphics=$hxClasses["kha.graphics2.Graphics"]=function(){this.transformations=[],this.transformations.push(new kha_math_FastMatrix3(1,0,0,0,1,0,0,0,1)),this.opacities=[],this.opacities.push(1),this.myFontSize=12,this.myFontGlyphs=[];for(var e=32;e<256;){var t=e++;this.myFontGlyphs.push(t)}this.pipe=null};kha_graphics2_Graphics.__name__=!0,kha_graphics2_Graphics.prototype={begin:function(e,t){null==e&&(e=!0)},end:function(){},flush:function(){},clear:function(e){},drawImage:function(e,t,a){this.drawSubImage(e,t,a,0,0,e.get_width(),e.get_height())},drawSubImage:function(e,t,a,i,r,s,n){this.drawScaledSubImage(e,i,r,s,n,t,a,s,n)},drawScaledImage:function(e,t,a,i,r){this.drawScaledSubImage(e,0,0,e.get_width(),e.get_height(),t,a,i,r)},drawScaledSubImage:function(e,t,a,i,r,s,n,_,o){},drawRect:function(e,t,a,i,r){null==r&&(r=1)},fillRect:function(e,t,a,i){},drawString:function(e,t,a){},drawLine:function(e,t,a,i,r){null==r&&(r=1)},drawVideo:function(e,t,a,i,r){},fillTriangle:function(e,t,a,i,r,s){},get_imageScaleQuality:function(){return kha_graphics2_ImageScaleQuality.Low},set_imageScaleQuality:function(e){return kha_graphics2_ImageScaleQuality.High},get_mipmapScaleQuality:function(){return kha_graphics2_ImageScaleQuality.Low},set_mipmapScaleQuality:function(e){return kha_graphics2_ImageScaleQuality.High},get_color:function(){return-16777216},set_color:function(e){return-16777216},get_font:function(){return null},set_font:function(e){return null},get_fontSize:function(){return this.myFontSize},set_fontSize:function(e){return this.myFontSize=e},get_fontGlyphs:function(){return this.myFontGlyphs},set_fontGlyphs:function(e){return this.myFontGlyphs=e},pushTransformation:function(e){var t=new kha_math_FastMatrix3(1,0,0,0,1,0,0,0,1);t._00=e._00,t._10=e._10,t._20=e._20,t._01=e._01,t._11=e._11,t._21=e._21,t._02=e._02,t._12=e._12,t._22=e._22,this.setTransformation(t),this.transformations.push(t)},popTransformation:function(){var e=this.transformations.pop();return this.setTransformation(this.transformations[this.transformations.length-1]),e},get_transformation:function(){return this.transformations[this.transformations.length-1]},set_transformation:function(e){this.setTransformation(e);var t=this.transformations[this.transformations.length-1];return t._00=e._00,t._10=e._10,t._20=e._20,t._01=e._01,t._11=e._11,t._21=e._21,t._02=e._02,t._12=e._12,t._22=e._22,e},translation:function(e,t){var a,i;i=e,a=t;var r=this.transformations[this.transformations.length-1];return new kha_math_FastMatrix3(1*r._00+0*r._01+i*r._02,1*r._10+0*r._11+i*r._12,1*r._20+0*r._21+i*r._22,0*r._00+1*r._01+a*r._02,0*r._10+1*r._11+a*r._12,0*r._20+1*r._21+a*r._22,0*r._00+0*r._01+1*r._02,0*r._10+0*r._11+1*r._12,0*r._20+0*r._21+1*r._22)},translate:function(e,t){var a,i;i=e,a=t;var r=this.transformations[this.transformations.length-1],s=new kha_math_FastMatrix3(1*r._00+0*r._01+i*r._02,1*r._10+0*r._11+i*r._12,1*r._20+0*r._21+i*r._22,0*r._00+1*r._01+a*r._02,0*r._10+1*r._11+a*r._12,0*r._20+1*r._21+a*r._22,0*r._00+0*r._01+1*r._02,0*r._10+0*r._11+1*r._12,0*r._20+0*r._21+1*r._22);this.setTransformation(s);var n=this.transformations[this.transformations.length-1];n._00=s._00,n._10=s._10,n._20=s._20,n._01=s._01,n._11=s._11,n._21=s._21,n._02=s._02,n._12=s._12,n._22=s._22},pushTranslation:function(e,t){var a,i;i=e,a=t;var r=this.transformations[this.transformations.length-1];this.pushTransformation(new kha_math_FastMatrix3(1*r._00+0*r._01+i*r._02,1*r._10+0*r._11+i*r._12,1*r._20+0*r._21+i*r._22,0*r._00+1*r._01+a*r._02,0*r._10+1*r._11+a*r._12,0*r._20+1*r._21+a*r._22,0*r._00+0*r._01+1*r._02,0*r._10+0*r._11+1*r._12,0*r._20+0*r._21+1*r._22))},rotation:function(e,t,a){var i,r,s,n,_,o,h,l,u,c,d,p,g,f,v,k,m,b,S;S=t,b=a;var y,x,B,T=Math.cos(e);x=-Math.sin(e);var w,E;u=1*(m=1*T+0*(B=Math.sin(e))+0*S)+0*(f=1*x+0*(y=Math.cos(e))+0*S)+0*(d=0+1*S),o=0*m+1*f+0*d,s=m*(E=-t)+f*(w=-a)+1*d,l=1*(k=0*T+1*B+0*b)+0*(g=0*x+1*y+0*b)+0*(c=0+1*b),_=0*k+1*g+0*c,r=k*E+g*w+1*c,h=1*(v=0*T+0*B+0)+0*(p=0*x+0*y+0)+0,n=0*v+1*p+0,i=v*E+p*w+1;var I=this.transformations[this.transformations.length-1];return new kha_math_FastMatrix3(u*I._00+o*I._01+s*I._02,u*I._10+o*I._11+s*I._12,u*I._20+o*I._21+s*I._22,l*I._00+_*I._01+r*I._02,l*I._10+_*I._11+r*I._12,l*I._20+_*I._21+r*I._22,h*I._00+n*I._01+i*I._02,h*I._10+n*I._11+i*I._12,h*I._20+n*I._21+i*I._22)},rotate:function(e,t,a){var i,r,s,n,_,o,h,l,u,c,d,p,g,f,v,k,m,b,S,y,x,B,T,w,E,I,C,A;A=t,C=a;var L,R,$,F=Math.cos(e);R=-Math.sin(e);var V,N;b=1*(I=1*F+0*($=Math.sin(e))+0*A)+0*(T=1*R+0*(L=Math.cos(e))+0*A)+0*(y=0+1*A),v=0*I+1*T+0*y,p=I*(N=-t)+T*(V=-a)+1*y,m=1*(E=0*F+1*$+0*C)+0*(B=0*R+1*L+0*C)+0*(S=0+1*C),f=0*E+1*B+0*S,d=E*N+B*V+1*S,k=1*(w=0*F+0*$+0)+0*(x=0*R+0*L+0)+0,g=0*w+1*x+0,c=w*N+x*V+1;var P=this.transformations[this.transformations.length-1];u=b*P._00+v*P._01+p*P._02,o=b*P._10+v*P._11+p*P._12,s=b*P._20+v*P._21+p*P._22,l=m*P._00+f*P._01+d*P._02,_=m*P._10+f*P._11+d*P._12,r=m*P._20+f*P._21+d*P._22,h=k*P._00+g*P._01+c*P._02,n=k*P._10+g*P._11+c*P._12,i=k*P._20+g*P._21+c*P._22,this.transformations[this.transformations.length-1]._00=u,this.transformations[this.transformations.length-1]._01=l,this.transformations[this.transformations.length-1]._02=h,this.transformations[this.transformations.length-1]._10=o,this.transformations[this.transformations.length-1]._11=_,this.transformations[this.transformations.length-1]._12=n,this.transformations[this.transformations.length-1]._20=s,this.transformations[this.transformations.length-1]._21=r,this.transformations[this.transformations.length-1]._22=i},pushRotation:function(e,t,a){var i,r,s,n,_,o,h,l,u,c,d,p,g,f,v,k,m,b,S;S=t,b=a;var y,x,B,T=Math.cos(e);x=-Math.sin(e);var w,E;u=1*(m=1*T+0*(B=Math.sin(e))+0*S)+0*(f=1*x+0*(y=Math.cos(e))+0*S)+0*(d=0+1*S),o=0*m+1*f+0*d,s=m*(E=-t)+f*(w=-a)+1*d,l=1*(k=0*T+1*B+0*b)+0*(g=0*x+1*y+0*b)+0*(c=0+1*b),_=0*k+1*g+0*c,r=k*E+g*w+1*c,h=1*(v=0*T+0*B+0)+0*(p=0*x+0*y+0)+0,n=0*v+1*p+0,i=v*E+p*w+1;var I=this.transformations[this.transformations.length-1];this.pushTransformation(new kha_math_FastMatrix3(u*I._00+o*I._01+s*I._02,u*I._10+o*I._11+s*I._12,u*I._20+o*I._21+s*I._22,l*I._00+_*I._01+r*I._02,l*I._10+_*I._11+r*I._12,l*I._20+_*I._21+r*I._22,h*I._00+n*I._01+i*I._02,h*I._10+n*I._11+i*I._12,h*I._20+n*I._21+i*I._22))},pushOpacity:function(e){this.setOpacity(e),this.opacities.push(e)},popOpacity:function(){var e=this.opacities.pop();return this.setOpacity(this.get_opacity()),e},get_opacity:function(){return this.opacities[this.opacities.length-1]},set_opacity:function(e){return this.setOpacity(e),this.opacities[this.opacities.length-1]=e},scissor:function(e,t,a,i){},disableScissor:function(){},pipe:null,get_pipeline:function(){return this.pipe},set_pipeline:function(e){return this.setPipeline(e),this.pipe=e},transformations:null,opacities:null,myFontSize:null,myFontGlyphs:null,setTransformation:function(e){},setOpacity:function(e){},setPipeline:function(e){},__class__:kha_graphics2_Graphics};var kha_graphics2_Graphics1=$hxClasses["kha.graphics2.Graphics1"]=function(e){this.canvas=e};kha_graphics2_Graphics1.__name__=!0,kha_graphics2_Graphics1.__interfaces__=[kha_graphics1_Graphics],kha_graphics2_Graphics1.prototype={canvas:null,texture:null,pixels:null,begin:function(){null==this.texture&&(this.texture=kha_Image.create(this.canvas.get_width(),this.canvas.get_height(),kha_graphics4_TextureFormat.RGBA32,kha_graphics4_Usage.ReadableUsage)),this.pixels=this.texture.lock()},end:function(){this.texture.unlock(),this.canvas.get_g2().begin(),this.canvas.get_g2().drawImage(this.texture,0,0),this.canvas.get_g2().end()},setPixel:function(e,t,a){this.pixels.setInt32(t*this.texture.get_realWidth()*4+4*e,a)},__class__:kha_graphics2_Graphics1};var kha_graphics2_ImageScaleQuality=$hxClasses["kha.graphics2.ImageScaleQuality"]={__ename__:!0,__constructs__:["Low","High"]};kha_graphics2_ImageScaleQuality.Low=["Low",0],kha_graphics2_ImageScaleQuality.Low.toString=$estr,kha_graphics2_ImageScaleQuality.Low.__enum__=kha_graphics2_ImageScaleQuality,kha_graphics2_ImageScaleQuality.High=["High",1],kha_graphics2_ImageScaleQuality.High.toString=$estr,kha_graphics2_ImageScaleQuality.High.__enum__=kha_graphics2_ImageScaleQuality;var kha_graphics2_truetype_VectorOfIntPointer=$hxClasses["kha.graphics2.truetype.VectorOfIntPointer"]=function(){};kha_graphics2_truetype_VectorOfIntPointer.__name__=!0,kha_graphics2_truetype_VectorOfIntPointer.prototype={value:null,__class__:kha_graphics2_truetype_VectorOfIntPointer};var kha_graphics2_truetype_Stbtt_$temp_$rect=$hxClasses["kha.graphics2.truetype.Stbtt_temp_rect"]=function(){};kha_graphics2_truetype_Stbtt_$temp_$rect.__name__=!0,kha_graphics2_truetype_Stbtt_$temp_$rect.prototype={x0:null,y0:null,x1:null,y1:null,__class__:kha_graphics2_truetype_Stbtt_$temp_$rect};var kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics=$hxClasses["kha.graphics2.truetype.Stbtt_temp_glyph_h_metrics"]=function(){};kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics.__name__=!0,kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics.prototype={advanceWidth:null,leftSideBearing:null,__class__:kha_graphics2_truetype_Stbtt_$temp_$glyph_$h_$metrics};var kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics=$hxClasses["kha.graphics2.truetype.Stbtt_temp_font_v_metrics"]=function(){};kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics.__name__=!0,kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics.prototype={ascent:null,descent:null,lineGap:null,__class__:kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics};var kha_graphics2_truetype_Stbtt_$temp_$region=$hxClasses["kha.graphics2.truetype.Stbtt_temp_region"]=function(){};kha_graphics2_truetype_Stbtt_$temp_$region.__name__=!0,kha_graphics2_truetype_Stbtt_$temp_$region.prototype={width:null,height:null,xoff:null,yoff:null,__class__:kha_graphics2_truetype_Stbtt_$temp_$region};var kha_graphics2_truetype_Stbtt_$bakedchar=$hxClasses["kha.graphics2.truetype.Stbtt_bakedchar"]=function(){};kha_graphics2_truetype_Stbtt_$bakedchar.__name__=!0,kha_graphics2_truetype_Stbtt_$bakedchar.prototype={x0:null,y0:null,x1:null,y1:null,xoff:null,yoff:null,xadvance:null,__class__:kha_graphics2_truetype_Stbtt_$bakedchar};var kha_graphics2_truetype_Stbtt_$aligned_$quad=$hxClasses["kha.graphics2.truetype.Stbtt_aligned_quad"]=function(){};kha_graphics2_truetype_Stbtt_$aligned_$quad.__name__=!0,kha_graphics2_truetype_Stbtt_$aligned_$quad.prototype={x0:null,y0:null,s0:null,t0:null,x1:null,y1:null,s1:null,t1:null,__class__:kha_graphics2_truetype_Stbtt_$aligned_$quad};var kha_graphics2_truetype_Stbtt_$packedchar=$hxClasses["kha.graphics2.truetype.Stbtt_packedchar"]=function(){};kha_graphics2_truetype_Stbtt_$packedchar.__name__=!0,kha_graphics2_truetype_Stbtt_$packedchar.prototype={x0:null,y0:null,x1:null,y1:null,xoff:null,yoff:null,xadvance:null,xoff2:null,yoff2:null,__class__:kha_graphics2_truetype_Stbtt_$packedchar};var kha_graphics2_truetype_Stbtt_$pack_$range=$hxClasses["kha.graphics2.truetype.Stbtt_pack_range"]=function(){};kha_graphics2_truetype_Stbtt_$pack_$range.__name__=!0,kha_graphics2_truetype_Stbtt_$pack_$range.prototype={font_size:null,first_unicode_codepoint_in_range:null,array_of_unicode_codepoints:null,num_chars:null,chardata_for_range:null,h_oversample:null,v_oversample:null,__class__:kha_graphics2_truetype_Stbtt_$pack_$range};var kha_graphics2_truetype_Stbtt_$pack_$context=$hxClasses["kha.graphics2.truetype.Stbtt_pack_context"]=function(){};kha_graphics2_truetype_Stbtt_$pack_$context.__name__=!0,kha_graphics2_truetype_Stbtt_$pack_$context.prototype={width:null,height:null,stride_in_bytes:null,padding:null,h_oversample:null,v_oversample:null,pixels:null,__class__:kha_graphics2_truetype_Stbtt_$pack_$context};var kha_graphics2_truetype_Stbtt_$fontinfo=$hxClasses["kha.graphics2.truetype.Stbtt_fontinfo"]=function(){};kha_graphics2_truetype_Stbtt_$fontinfo.__name__=!0,kha_graphics2_truetype_Stbtt_$fontinfo.prototype={data:null,fontstart:null,numGlyphs:null,loca:null,head:null,glyf:null,hhea:null,hmtx:null,kern:null,index_map:null,indexToLocFormat:null,__class__:kha_graphics2_truetype_Stbtt_$fontinfo};var kha_graphics2_truetype_Stbtt_$vertex=$hxClasses["kha.graphics2.truetype.Stbtt_vertex"]=function(){};kha_graphics2_truetype_Stbtt_$vertex.__name__=!0,kha_graphics2_truetype_Stbtt_$vertex.prototype={x:null,y:null,cx:null,cy:null,type:null,padding:null,__class__:kha_graphics2_truetype_Stbtt_$vertex};var kha_graphics2_truetype_Stbtt_$_$bitmap=$hxClasses["kha.graphics2.truetype.Stbtt__bitmap"]=function(){};kha_graphics2_truetype_Stbtt_$_$bitmap.__name__=!0,kha_graphics2_truetype_Stbtt_$_$bitmap.prototype={w:null,h:null,stride:null,pixels:null,pixels_offset:null,__class__:kha_graphics2_truetype_Stbtt_$_$bitmap};var kha_graphics2_truetype_Stbtt_$_$edge=$hxClasses["kha.graphics2.truetype.Stbtt__edge"]=function(){};kha_graphics2_truetype_Stbtt_$_$edge.__name__=!0,kha_graphics2_truetype_Stbtt_$_$edge.prototype={x0:null,y0:null,x1:null,y1:null,invert:null,__class__:kha_graphics2_truetype_Stbtt_$_$edge};var kha_graphics2_truetype_Stbtt_$_$active_$edge=$hxClasses["kha.graphics2.truetype.Stbtt__active_edge"]=function(){};kha_graphics2_truetype_Stbtt_$_$active_$edge.__name__=!0,kha_graphics2_truetype_Stbtt_$_$active_$edge.prototype={next:null,fx:null,fdx:null,fdy:null,direction:null,sy:null,ey:null,__class__:kha_graphics2_truetype_Stbtt_$_$active_$edge};var kha_graphics2_truetype_Stbtt_$_$point=$hxClasses["kha.graphics2.truetype.Stbtt__point"]=function(){};kha_graphics2_truetype_Stbtt_$_$point.__name__=!0,kha_graphics2_truetype_Stbtt_$_$point.prototype={x:null,y:null,__class__:kha_graphics2_truetype_Stbtt_$_$point};var kha_graphics2_truetype_StbTruetype=$hxClasses["kha.graphics2.truetype.StbTruetype"]=function(){};kha_graphics2_truetype_StbTruetype.__name__=!0,kha_graphics2_truetype_StbTruetype.STBTT_assert=function(e){if(!e)throw new js__$Boot_HaxeError("Error")},kha_graphics2_truetype_StbTruetype.STBTT_POINT_SIZE=function(e){return-e},kha_graphics2_truetype_StbTruetype.ttBYTE=function(e,t){return null==t&&(t=0),e.readU8(t)},kha_graphics2_truetype_StbTruetype.ttCHAR=function(e,t){null==t&&(t=0);var a=e.readU8(t);return a>=128?a-256:a},kha_graphics2_truetype_StbTruetype.ttUSHORT=function(e,t){null==t&&(t=0);var a=e.readU8(t);return e.readU8(t+1)|a<<8},kha_graphics2_truetype_StbTruetype.ttSHORT=function(e,t){null==t&&(t=0);var a=e.readU8(t),i=e.readU8(t+1)|a<<8;return 0!=(32768&i)?i-65536:i},kha_graphics2_truetype_StbTruetype.ttULONG=function(e,t){null==t&&(t=0);var a=e.readU8(t),i=e.readU8(t+1),r=e.readU8(t+2);return e.readU8(t+3)|r<<8|i<<16|a<<24},kha_graphics2_truetype_StbTruetype.ttLONG=function(e,t){null==t&&(t=0);var a=e.readU8(t),i=e.readU8(t+1),r=e.readU8(t+2);return e.readU8(t+3)|r<<8|i<<16|a<<24},kha_graphics2_truetype_StbTruetype.ttFixed=function(e,t){null==t&&(t=0);var a=e.readU8(t),i=e.readU8(t+1),r=e.readU8(t+2);return e.readU8(t+3)|r<<8|i<<16|a<<24},kha_graphics2_truetype_StbTruetype.stbtt_tag4=function(e,t,a,i,r,s){return e.readU8(t)==a&&e.readU8(t+1)==i&&e.readU8(t+2)==r&&e.readU8(t+3)==s},kha_graphics2_truetype_StbTruetype.stbtt_tag=function(e,t,a){var i=HxOverrides.cca(a,0),r=HxOverrides.cca(a,1),s=HxOverrides.cca(a,2),n=HxOverrides.cca(a,3);return e.readU8(t)==i&&e.readU8(t+1)==r&&e.readU8(t+2)==s&&e.readU8(t+3)==n},kha_graphics2_truetype_StbTruetype.stbtt__isfont=function(e){var t=HxOverrides.cca("1",0);if(e.readU8(0)==t&&0==e.readU8(1)&&0==e.readU8(2)&&0==e.readU8(3))return!0;var a=HxOverrides.cca("typ1",0),i=HxOverrides.cca("typ1",1),r=HxOverrides.cca("typ1",2),s=HxOverrides.cca("typ1",3);if(e.readU8(0)==a&&e.readU8(1)==i&&e.readU8(2)==r&&e.readU8(3)==s)return!0;var n=HxOverrides.cca("OTTO",0),_=HxOverrides.cca("OTTO",1),o=HxOverrides.cca("OTTO",2),h=HxOverrides.cca("OTTO",3);return e.readU8(0)==n&&e.readU8(1)==_&&e.readU8(2)==o&&e.readU8(3)==h||0==e.readU8(0)&&1==e.readU8(1)&&0==e.readU8(2)&&0==e.readU8(3)},kha_graphics2_truetype_StbTruetype.stbtt__find_table=function(e,t,a){for(var i=t+4,r=e.readU8(i),s=t+12,n=0,_=e.readU8(i+1)|r<<8;n<_;){var o=s+16*n++,h=HxOverrides.cca(a,0),l=HxOverrides.cca(a,1),u=HxOverrides.cca(a,2),c=HxOverrides.cca(a,3);if(e.readU8(o)==h&&e.readU8(o+1)==l&&e.readU8(o+2)==u&&e.readU8(o+3)==c){var d=o+8,p=e.readU8(d),g=e.readU8(d+1),f=e.readU8(d+2);return e.readU8(d+3)|f<<8|g<<16|p<<24}}return 0},kha_graphics2_truetype_StbTruetype.stbtt_GetFontOffsetForIndex=function(e,t){if(kha_graphics2_truetype_StbTruetype.stbtt__isfont(e))return 0==t?0:-1;var a=HxOverrides.cca("ttcf",0),i=HxOverrides.cca("ttcf",1),r=HxOverrides.cca("ttcf",2),s=HxOverrides.cca("ttcf",3);if(e.readU8(0)==a&&e.readU8(1)==i&&e.readU8(2)==r&&e.readU8(3)==s){var n,_=e.readU8(4),o=e.readU8(5),h=e.readU8(6);if(65536!=(e.readU8(7)|h<<8|o<<16|_<<24)){var l=e.readU8(4),u=e.readU8(5),c=e.readU8(6);n=131072==(e.readU8(7)|c<<8|u<<16|l<<24)}else n=!0;if(n){var d=e.readU8(8),p=e.readU8(9),g=e.readU8(10);if(t>=(e.readU8(11)|g<<8|p<<16|d<<24))return-1;var f=12+4*t,v=e.readU8(f),k=e.readU8(f+1),m=e.readU8(f+2);return e.readU8(f+3)|m<<8|k<<16|v<<24}}return-1},kha_graphics2_truetype_StbTruetype.stbtt_InitFont=function(e,t,a){var i,r,s;if(e.data=t,e.fontstart=a,i=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"cmap"),e.loca=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"loca"),e.head=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"head"),e.glyf=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"glyf"),e.hhea=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"hhea"),e.hmtx=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"hmtx"),e.kern=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"kern"),0==i||0==e.loca||0==e.head||0==e.glyf||0==e.hhea||0==e.hmtx)return!1;if(0!=(r=kha_graphics2_truetype_StbTruetype.stbtt__find_table(t,a,"maxp"))){var n=r+4,_=t.readU8(n),o=t.readU8(n+1);e.numGlyphs=o|_<<8}else e.numGlyphs=65535;var h=i+2,l=t.readU8(h);s=t.readU8(h+1)|l<<8,e.index_map=0;for(var u=0,c=s;u=l&&t>1,m=i+8,b=a.readU8(m),S=(a.readU8(m+1)|b<<8)>>1,y=i+10,x=a.readU8(y),B=a.readU8(y+1)|x<<8,T=i+12,w=a.readU8(T),E=(a.readU8(T+1)|w<<8)>>1,I=i+14,C=I;if(t>65535)return 0;var A=C+2*E,L=a.readU8(A);for(t>=(a.readU8(A+1)|L<<8)&&(C+=2*E),C-=2;0!=B;){var R=C+2*(S>>=1),$=a.readU8(R);t>(a.readU8(R+1)|$<<8)&&(C+=2*S),--B}var F,V,N=(C+=2)-I>>1,P=I+2*N,M=a.readU8(P);if(t>(a.readU8(P+1)|M<<8))throw new js__$Boot_HaxeError("Error");var O=i+14+2*k+2+2*N,D=a.readU8(O);if(V=a.readU8(O+1)|D<<8,t>1),te=i+16+12*ee,ae=a.readU8(te),ie=a.readU8(te+1),re=a.readU8(te+2),se=a.readU8(te+3)|re<<8|ie<<16|ae<<24,ne=i+16+12*ee+4,_e=a.readU8(ne),oe=a.readU8(ne+1),he=a.readU8(ne+2),le=a.readU8(ne+3)|he<<8|oe<<16|_e<<24;if(tle)){var ue=i+16+12*ee+8,ce=a.readU8(ue),de=a.readU8(ue+1),pe=a.readU8(ue+2),ge=a.readU8(ue+3)|pe<<8|de<<16|ce<<24;return 12==s?ge+t-se:ge}X=ee+1}}return 0}throw new js__$Boot_HaxeError("Error")},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointShape=function(e,t){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(e,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,t))},kha_graphics2_truetype_StbTruetype.stbtt_setvertex=function(e,t,a,i,r,s){e.type=t,e.x=a,e.y=i,e.cx=r,e.cy=s},kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset=function(e,t){var a,i;if(t>=e.numGlyphs)return-1;if(e.indexToLocFormat>=2)return-1;if(0==e.indexToLocFormat){var r=e.glyf,s=e.data,n=e.loca+2*t,_=s.readU8(n);a=r+2*(s.readU8(n+1)|_<<8);var o=e.glyf,h=e.data,l=e.loca+2*t+2,u=h.readU8(l);i=o+2*(h.readU8(l+1)|u<<8)}else{var c=e.glyf,d=e.data,p=e.loca+4*t,g=d.readU8(p),f=d.readU8(p+1),v=d.readU8(p+2);a=c+(d.readU8(p+3)|v<<8|f<<16|g<<24);var k=e.glyf,m=e.data,b=e.loca+4*t+4,S=m.readU8(b),y=m.readU8(b+1),x=m.readU8(b+2);i=k+(m.readU8(b+3)|x<<8|y<<16|S<<24)}return a==i?-1:a},kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox=function(e,t,a){var i=kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset(e,t);if(i<0)return!1;var r=e.data,s=i+2,n=r.readU8(s),_=r.readU8(s+1)|n<<8;a.x0=0!=(32768&_)?_-65536:_;var o=e.data,h=i+4,l=o.readU8(h),u=o.readU8(h+1)|l<<8;a.y0=0!=(32768&u)?u-65536:u;var c=e.data,d=i+6,p=c.readU8(d),g=c.readU8(d+1)|p<<8;a.x1=0!=(32768&g)?g-65536:g;var f=e.data,v=i+8,k=f.readU8(v),m=f.readU8(v+1)|k<<8;return a.y1=0!=(32768&m)?m-65536:m,!0},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBox=function(e,t,a){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox(e,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,t),a)},kha_graphics2_truetype_StbTruetype.stbtt_IsGlyphEmpty=function(e,t){var a=kha_graphics2_truetype_StbTruetype.stbtt__GetGlyfOffset(e,t);if(a<0)return!0;var i=e.data,r=i.readU8(a),s=i.readU8(a+1)|r<<8;return 0==(0!=(32768&s)?s-65536:s)},kha_graphics2_truetype_StbTruetype.stbtt__close_shape=function(e,t,a,i,r,s,n,_,o,h){return i?(a&&kha_graphics2_truetype_StbTruetype.stbtt_setvertex(e[t++],3,o+n>>1,h+_>>1,o,h),kha_graphics2_truetype_StbTruetype.stbtt_setvertex(e[t++],3,r,s,n,_)):a?kha_graphics2_truetype_StbTruetype.stbtt_setvertex(e[t++],3,r,s,o,h):kha_graphics2_truetype_StbTruetype.stbtt_setvertex(e[t++],2,r,s,0,0),t},kha_graphics2_truetype_StbTruetype.copyVertices=function(e,t,a,i){for(var r=0,s=i;r0){var l,u,c,d,p,g,f,v,k,m,b,S,y,x=0,B=0,T=0,w=0,E=!1,I=!1,C=0;i=r.sub(_+10,r.get_length()-(_+10));var A=_+10+2*a,L=r.readU8(A);u=r.readU8(A+1)|L<<8,y=r.sub(_+10+2*a+2+u,r.get_length()-(_+10+2*a+2+u));var R=2*a-2,$=i.readU8(R);if(c=(d=1+(i.readU8(R+1)|$<<8))+2*a,null==(s=new Array(c)))return null;for(var F=0,V=s.length;F>1,m=g+s[w+Q+1].y>>1):(k=s[w+Q+1].x,m=s[w+Q+1].y,++Q)):(k=p,m=g),kha_graphics2_truetype_StbTruetype.stbtt_setvertex(s[n++],1,k,m,0,0),E=!1;var J=2*B,q=i.readU8(J);T=1+(i.readU8(J+1)|q<<8),++B}else 0==(1&x)?(E&&kha_graphics2_truetype_StbTruetype.stbtt_setvertex(s[n++],3,f+p>>1,v+g>>1,f,v),f=p,v=g,E=!0):(E?kha_graphics2_truetype_StbTruetype.stbtt_setvertex(s[n++],3,p,g,f,v):kha_graphics2_truetype_StbTruetype.stbtt_setvertex(s[n++],2,p,g,0,0),E=!1);++Q}n=kha_graphics2_truetype_StbTruetype.stbtt__close_shape(s,n,E,I,k,m,b,S,f,v)}else if(-1==a){var ee=1,te=r.sub(_+10,r.get_length()-(_+10)),ae=0;for(n=0,s=null;0!=ee;){var ie,re,se,ne,_e=0,oe=null,he=null,le=1,ue=0,ce=0,de=1,pe=0,ge=0,fe=te.readU8(ae),ve=te.readU8(ae+1)|fe<<8;ie=0!=(32768&ve)?ve-65536:ve,ae+=2;var ke=te.readU8(ae),me=te.readU8(ae+1)|ke<<8;if(re=0!=(32768&me)?me-65536:me,ae+=2,0==(2&ie))throw new js__$Boot_HaxeError("Error");if(0!=(1&ie)){var be=te.readU8(ae),Se=te.readU8(ae+1)|be<<8;pe=0!=(32768&Se)?Se-65536:Se,ae+=2;var ye=te.readU8(ae),xe=te.readU8(ae+1)|ye<<8;ge=0!=(32768&xe)?xe-65536:xe,ae+=2}else{var Be=te.readU8(ae);pe=Be>=128?Be-256:Be,++ae;var Te=te.readU8(ae);ge=Te>=128?Te-256:Te,++ae}if(0!=(8&ie)){var we=te.readU8(ae),Ee=te.readU8(ae+1)|we<<8;le=de=(0!=(32768&Ee)?Ee-65536:Ee)/16384,ae+=2,ue=ce=0}else if(0!=(64&ie)){var Ie=te.readU8(ae),Ce=te.readU8(ae+1)|Ie<<8;le=(0!=(32768&Ce)?Ce-65536:Ce)/16384,ae+=2,ue=ce=0;var Ae=te.readU8(ae),Le=te.readU8(ae+1)|Ae<<8;de=(0!=(32768&Le)?Le-65536:Le)/16384,ae+=2}else if(0!=(128&ie)){var Re=te.readU8(ae),$e=te.readU8(ae+1)|Re<<8;le=(0!=(32768&$e)?$e-65536:$e)/16384,ae+=2;var Fe=te.readU8(ae),Ve=te.readU8(ae+1)|Fe<<8;ue=(0!=(32768&Ve)?Ve-65536:Ve)/16384,ae+=2;var Ne=te.readU8(ae),Pe=te.readU8(ae+1)|Ne<<8;ce=(0!=(32768&Pe)?Pe-65536:Pe)/16384,ae+=2;var Me=te.readU8(ae),Oe=te.readU8(ae+1)|Me<<8;de=(0!=(32768&Oe)?Oe-65536:Oe)/16384,ae+=2}if(se=Math.sqrt(le*le+ue*ue),ne=Math.sqrt(ce*ce+de*de),oe=kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(e,re),(_e=null==oe?0:oe.length)>0){for(var De=0,Ue=_e;De0&&kha_graphics2_truetype_StbTruetype.copyVertices(s,he,0,n),kha_graphics2_truetype_StbTruetype.copyVertices(oe,he,n,_e),s=he,n+=_e}ee=32&ie}}else if(a<0)throw new js__$Boot_HaxeError("Error");if(null==s)return null;if(s.length>1),d=o.readU8(c),p=o.readU8(c+1),g=o.readU8(c+2);if(r=o.readU8(c+3)|g<<8|p<<16|d<<24,ir)){var f=22+6*_,v=o.readU8(f),k=o.readU8(f+1)|v<<8;return 0!=(32768&k)?k-65536:k}s=_+1}}return 0},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointKernAdvance=function(e,t,a){return 0==e.kern?0:kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphKernAdvance(e,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,t),kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,a))},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointHMetrics=function(e,t){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphHMetrics(e,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,t))},kha_graphics2_truetype_StbTruetype.stbtt_GetFontVMetrics=function(e){var t=new kha_graphics2_truetype_Stbtt_$temp_$font_$v_$metrics,a=e.data,i=e.hhea+4,r=a.readU8(i),s=a.readU8(i+1)|r<<8;t.ascent=0!=(32768&s)?s-65536:s;var n=e.data,_=e.hhea+6,o=n.readU8(_),h=n.readU8(_+1)|o<<8;t.descent=0!=(32768&h)?h-65536:h;var l=e.data,u=e.hhea+8,c=l.readU8(u),d=l.readU8(u+1)|c<<8;return t.lineGap=0!=(32768&d)?d-65536:d,t},kha_graphics2_truetype_StbTruetype.stbtt_GetFontBoundingBox=function(e){var t=new kha_graphics2_truetype_Stbtt_$temp_$rect,a=e.data,i=e.head+36,r=a.readU8(i),s=a.readU8(i+1)|r<<8;t.x0=0!=(32768&s)?s-65536:s;var n=e.data,_=e.head+38,o=n.readU8(_),h=n.readU8(_+1)|o<<8;t.y0=0!=(32768&h)?h-65536:h;var l=e.data,u=e.head+40,c=l.readU8(u),d=l.readU8(u+1)|c<<8;t.x1=0!=(32768&d)?d-65536:d;var p=e.data,g=e.head+42,f=p.readU8(g),v=p.readU8(g+1)|f<<8;return t.y1=0!=(32768&v)?v-65536:v,t},kha_graphics2_truetype_StbTruetype.stbtt_ScaleForPixelHeight=function(e,t){var a=e.data,i=e.hhea+4,r=a.readU8(i),s=a.readU8(i+1)|r<<8,n=e.data,_=e.hhea+6,o=n.readU8(_),h=n.readU8(_+1)|o<<8;return t/((0!=(32768&s)?s-65536:s)-(0!=(32768&h)?h-65536:h))},kha_graphics2_truetype_StbTruetype.stbtt_ScaleForMappingEmToPixels=function(e,t){var a=e.data,i=e.head+18,r=a.readU8(i);return t/(a.readU8(i+1)|r<<8)},kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel=function(e,t,a,i,r,s){var n=new kha_graphics2_truetype_Stbtt_$temp_$rect;if(kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBox(e,t,n)){var _=n.x0,o=n.x1,h=n.y0,l=n.y1;n.x0=Math.floor(_*a+r),n.y0=Math.floor(-l*i+s),n.x1=Math.ceil(o*a+r),n.y1=Math.ceil(-h*i+s)}else n.x0=0,n.y0=0,n.x1=0,n.y1=0;return n},kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBox=function(e,t,a,i){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(e,t,a,i,0,0)},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBoxSubpixel=function(e,t,a,i,r,s){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(e,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,t),a,i,r,s)},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBox=function(e,t,a,i){return kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapBoxSubpixel(e,t,a,i,0,0)},kha_graphics2_truetype_StbTruetype.stbtt__new_active=function(e,t,a,i){var r=new kha_graphics2_truetype_Stbtt_$_$active_$edge,s=(e[t].x1-e[t].x0)/(e[t].y1-e[t].y0);return null==r?r:(r.fdx=s,r.fdy=0!=s?1/s:0,r.fx=e[t].x0+s*(i-e[t].y0),r.fx-=a,r.direction=e[t].invert?1:-1,r.sy=e[t].y0,r.ey=e[t].y1,r.next=null,r)},kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge=function(e,t,a,i,r,s,n,_){if(s!=_){if(!(s<_))throw new js__$Boot_HaxeError("Error");if(!(i.sy<=i.ey))throw new js__$Boot_HaxeError("Error");if(!(s>i.ey||_i.ey&&(n+=(n-r)*(i.ey-_)/(_-s),_=i.ey),r==a){if(!(n<=a+1))throw new js__$Boot_HaxeError("Error")}else if(r==a+1){if(!(n>=a))throw new js__$Boot_HaxeError("Error")}else if(r<=a){if(!(n<=a))throw new js__$Boot_HaxeError("Error")}else if(r>=a+1){if(!(n>=a+1))throw new js__$Boot_HaxeError("Error")}else if(!(n>=a&&n<=a+1))throw new js__$Boot_HaxeError("Error");if(r<=a&&n<=a){var o=t+a,h=e;h[o]=h[o]+i.direction*(_-s)}else if(!(r>=a+1&&n>=a+1)){if(!(r>=a&&r<=a+1&&n>=a&&n<=a+1))throw new js__$Boot_HaxeError("Error");var l=t+a,u=e;u[l]=u[l]+i.direction*(_-s)*(1-(r-a+(n-a))/2)}}}},kha_graphics2_truetype_StbTruetype.stbtt__fill_active_edges_new=function(e,t,a,i,r,s){for(var n=s+1;null!=r;){if(!(r.ey>=s))throw new js__$Boot_HaxeError("Error");if(0==r.fdx){var _=r.fx;_=0?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,0|_,r,_,s,_,n),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(t,a-1,_+1|0,r,_,s,_,n)):kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(t,a-1,0,r,_,s,_,n))}else{var o,h,l,u,c=r.fx,d=r.fdx,p=c+d,g=r.fdy;if(!(r.sy<=n&&r.ey>=s))throw new js__$Boot_HaxeError("Error");if(r.sy>s?(o=c+d*(r.sy-s),l=r.sy):(o=c,l=s),r.ey=0&&h>=0&&o=0&&vh){var I;I=l=n-(l-s),l=u=n-(u-s),u=I,I=h,h=o,o=I,d=-d,g=-g,I=c,c=p,p=I}x=0|h,B=((y=0|o)+1-c)*g+s,E=(w=r.direction)*(B-l);var C=y,A=e;A[C]=A[C]+E*(1-(o-y+(y+1-y))/2),T=w*g;for(var L=y+1,R=x;Lj?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,z,U),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,z,U,j,H),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,j,H,K,X)):Kj?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,j,H),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,j,H,z,U),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,z,U,K,X)):cz?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,z,U),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,z,U,K,X)):Kz?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,z,U),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,z,U,K,X)):cj?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,j,H),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,j,H,K,X)):Kj?(kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,j,H),kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,j,H,K,X)):kha_graphics2_truetype_StbTruetype.stbtt__handle_clipped_edge(e,0,G,r,c,W,K,X)}}r=r.next}},kha_graphics2_truetype_StbTruetype.stbtt__rasterize_sorted_edges=function(e,t,a,i,r,s){var n,_,o,h=null,l=0,u=0,c=0;if(e.w>64){var d=2*e.w+1;_=new Array(d)}else _=new Array(129);for(o=_,u=e.w,n=s,t[c+a].y0=s+e.h+1;l=f))throw new js__$Boot_HaxeError("Error");x.next=h,h=x}++c}null!=h&&kha_graphics2_truetype_StbTruetype.stbtt__fill_active_edges_new(_,o,u+1,e.w,h,f);for(var B=0,T=0,w=e.w;T255&&(I=255),e.pixels.writeU8(e.pixels_offset+l*e.stride+C,I)}for(g=null,p=h;null!=p;){var A=p;A.fx+=A.fdx,g=p,p=p.next}++n,++l}},kha_graphics2_truetype_StbTruetype.STBTT__COMPARE=function(e,t){return e.y00;){var o=e[a-1];if(!kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(_,o))break;e[a]=e[a-1],--a}s!=a&&(e[a]=n)}},kha_graphics2_truetype_StbTruetype.stbtt__sort_edges_quicksort=function(e,t,a){for(;a>12;){var i,r,s,n,_,o;if(n=a>>1,r=kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(e[t],e[t+n]),s=kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(e[t+n],e[t+a-1]),r!=s){var h;i=e[t+(h=kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(e[t],e[t+a-1])==s?0:a-1)],e[t+h]=e[t+n],e[t+n]=i}for(i=e[t],e[t]=e[t+n],e[t+n]=i,_=1,o=a-1;;){for(;kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(e[t+_],e[t]);)++_;for(;kha_graphics2_truetype_StbTruetype.STBTT__COMPARE(e[t],e[t+o]);)--o;if(_>=o)break;i=e[t+_],e[t+_]=e[t+o],e[t+o]=i,++_,--o}ox[B+E].y:x[B+d].y16?1:(c*c+d*d>o?(kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(e,t,a,i,(a+r)/2,(i+s)/2,l,u,o,h+1),kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(e,t,l,u,(r+n)/2,(s+_)/2,n,_,o,h+1)):(kha_graphics2_truetype_StbTruetype.stbtt__add_point(e,t.value,n,_),t.value+=1),1)},kha_graphics2_truetype_StbTruetype.stbtt_FlattenCurves=function(e,t,a,i,r){for(var s=null,n=0,_=a*a,o=0,h=0,l=0,u=t;l=0&&(i.value[o]=n-h),++o,h=n,p=e[b].x,g=e[b].y,kha_graphics2_truetype_StbTruetype.stbtt__add_point(s,n++,p,g);break;case 2:p=e[b].x,g=e[b].y,kha_graphics2_truetype_StbTruetype.stbtt__add_point(s,n++,p,g);break;case 3:var S={value:n};kha_graphics2_truetype_StbTruetype.stbtt__tesselate_curve(s,S,p,g,e[b].cx,e[b].cy,e[b].x,e[b].y,_,0),n=S.value,p=e[b].x,g=e[b].y}}i.value[o]=n-h}return s},kha_graphics2_truetype_StbTruetype.stbtt_Rasterize=function(e,t,a,i,r,s,n,_,o,h,l){var u=r>s?s:r,c=0,d=null,p={value:c},g=new kha_graphics2_truetype_VectorOfIntPointer,f=kha_graphics2_truetype_StbTruetype.stbtt_FlattenCurves(a,i,t/u,g,p);c=p.value,d=g.value,null!=f&&kha_graphics2_truetype_StbTruetype.stbtt__rasterize(e,f,d,c,r,s,n,_,o,h,l)},kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel=function(e,t,a,i,r,s,n){var _,o,h,l,u=new kha_graphics2_truetype_Stbtt_$_$bitmap,c=kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(e,s),d=c.length;if(0==t&&(t=a),0==a){if(0==t)return null;a=t}var p=kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(e,s,t,a,i,r);return _=p.x0,o=p.y0,h=p.x1,l=p.y1,u.w=h-_,u.h=l-o,u.pixels=null,n.width=u.w,n.height=u.h,n.xoff=_,n.yoff=o,0!=u.w&&0!=u.h&&(u.pixels=kha_internal_BytesBlob.alloc(u.w*u.h),null!=u.pixels&&(u.stride=u.w,kha_graphics2_truetype_StbTruetype.stbtt_Rasterize(u,.35,c,d,t,a,i,r,_,o,!0))),u.pixels},kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmap=function(e,t,a,i,r){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel(e,t,a,0,0,i,r)},kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel=function(e,t,a,i,r,s,n,_,o,h,l){var u=0,c=0,d=kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphShape(e,l),p=null==d?0:d.length,g=new kha_graphics2_truetype_Stbtt_$_$bitmap,f=kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapBoxSubpixel(e,l,n,_,o,h);u=f.x0,c=f.y0,g.pixels=t,g.pixels_offset=a,g.w=i,g.h=r,g.stride=s,0!=g.w&&0!=g.h&&kha_graphics2_truetype_StbTruetype.stbtt_Rasterize(g,.35,d,p,n,_,o,h,u,c,!0)},kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmap=function(e,t,a,i,r,s,n,_,o){kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel(e,t,a,i,r,s,n,_,0,0,o)},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapSubpixel=function(e,t,a,i,r,s,n){return kha_graphics2_truetype_StbTruetype.stbtt_GetGlyphBitmapSubpixel(e,t,a,i,r,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,s),n)},kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmapSubpixel=function(e,t,a,i,r,s,n,_,o,h,l){kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmapSubpixel(e,t,a,i,r,s,n,_,o,h,kha_graphics2_truetype_StbTruetype.stbtt_FindGlyphIndex(e,l))},kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmap=function(e,t,a,i,r){return kha_graphics2_truetype_StbTruetype.stbtt_GetCodepointBitmapSubpixel(e,t,a,0,0,i,r)},kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmap=function(e,t,a,i,r,s,n,_,o){kha_graphics2_truetype_StbTruetype.stbtt_MakeCodepointBitmapSubpixel(e,t,a,i,r,s,n,_,0,0,o)},kha_graphics2_truetype_StbTruetype.stbtt_BakeFontBitmap=function(e,t,a,i,r,s,n,_){var o,h,l,u,c=new kha_graphics2_truetype_Stbtt_$fontinfo;if(!kha_graphics2_truetype_StbTruetype.stbtt_InitFont(c,e,t))return-1;for(var d=0,p=r*s;d=r&&(l=u,h=1),l+T+1>=s)return-f;if(h+B>=r)throw new js__$Boot_HaxeError("Error");if(l+T>=s)throw new js__$Boot_HaxeError("Error");kha_graphics2_truetype_StbTruetype.stbtt_MakeGlyphBitmap(c,i,h+l*r,B,T,r,o,o,w),_[f].x0=h,_[f].y0=l,_[f].x1=h+B,_[f].y1=l+T,_[f].xadvance=o*m,_[f].xoff=b,_[f].yoff=S,h=h+B+1,l+T+1>u&&(u=l+T+1),++f}return u},kha_graphics2_truetype_StbTruetype.stbtt_GetBakedQuad=function(e,t,a,i,r,s,n,_){var o=_?0:-.5,h=1/t,l=1/a,u=e[i],c=Math.floor(r.value+u.xoff+.5),d=Math.floor(s.value+u.yoff+.5);n.x0=c+o,n.y0=d+o,n.x1=c+u.x1-u.x0+o,n.y1=d+u.y1-u.y0+o,n.s0=u.x0*h,n.t0=u.y0*l,n.s1=u.x1*h,n.t1=u.y1*l,r.value+=u.xadvance};var kha_graphics4_BlendingFactor=$hxClasses["kha.graphics4.BlendingFactor"]={__ename__:!0,__constructs__:["Undefined","BlendOne","BlendZero","SourceAlpha","DestinationAlpha","InverseSourceAlpha","InverseDestinationAlpha","SourceColor","DestinationColor","InverseSourceColor","InverseDestinationColor"]};kha_graphics4_BlendingFactor.Undefined=["Undefined",0],kha_graphics4_BlendingFactor.Undefined.toString=$estr,kha_graphics4_BlendingFactor.Undefined.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.BlendOne=["BlendOne",1],kha_graphics4_BlendingFactor.BlendOne.toString=$estr,kha_graphics4_BlendingFactor.BlendOne.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.BlendZero=["BlendZero",2],kha_graphics4_BlendingFactor.BlendZero.toString=$estr,kha_graphics4_BlendingFactor.BlendZero.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.SourceAlpha=["SourceAlpha",3],kha_graphics4_BlendingFactor.SourceAlpha.toString=$estr,kha_graphics4_BlendingFactor.SourceAlpha.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.DestinationAlpha=["DestinationAlpha",4],kha_graphics4_BlendingFactor.DestinationAlpha.toString=$estr,kha_graphics4_BlendingFactor.DestinationAlpha.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.InverseSourceAlpha=["InverseSourceAlpha",5],kha_graphics4_BlendingFactor.InverseSourceAlpha.toString=$estr,kha_graphics4_BlendingFactor.InverseSourceAlpha.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.InverseDestinationAlpha=["InverseDestinationAlpha",6],kha_graphics4_BlendingFactor.InverseDestinationAlpha.toString=$estr,kha_graphics4_BlendingFactor.InverseDestinationAlpha.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.SourceColor=["SourceColor",7],kha_graphics4_BlendingFactor.SourceColor.toString=$estr,kha_graphics4_BlendingFactor.SourceColor.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.DestinationColor=["DestinationColor",8],kha_graphics4_BlendingFactor.DestinationColor.toString=$estr,kha_graphics4_BlendingFactor.DestinationColor.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.InverseSourceColor=["InverseSourceColor",9],kha_graphics4_BlendingFactor.InverseSourceColor.toString=$estr,kha_graphics4_BlendingFactor.InverseSourceColor.__enum__=kha_graphics4_BlendingFactor,kha_graphics4_BlendingFactor.InverseDestinationColor=["InverseDestinationColor",10],kha_graphics4_BlendingFactor.InverseDestinationColor.toString=$estr,kha_graphics4_BlendingFactor.InverseDestinationColor.__enum__=kha_graphics4_BlendingFactor;var kha_graphics4_BlendingOperation=$hxClasses["kha.graphics4.BlendingOperation"]={__ename__:!0,__constructs__:["Add","Subtract","ReverseSubtract","Min","Max"]};kha_graphics4_BlendingOperation.Add=["Add",0],kha_graphics4_BlendingOperation.Add.toString=$estr,kha_graphics4_BlendingOperation.Add.__enum__=kha_graphics4_BlendingOperation,kha_graphics4_BlendingOperation.Subtract=["Subtract",1],kha_graphics4_BlendingOperation.Subtract.toString=$estr,kha_graphics4_BlendingOperation.Subtract.__enum__=kha_graphics4_BlendingOperation,kha_graphics4_BlendingOperation.ReverseSubtract=["ReverseSubtract",2],kha_graphics4_BlendingOperation.ReverseSubtract.toString=$estr,kha_graphics4_BlendingOperation.ReverseSubtract.__enum__=kha_graphics4_BlendingOperation,kha_graphics4_BlendingOperation.Min=["Min",3],kha_graphics4_BlendingOperation.Min.toString=$estr,kha_graphics4_BlendingOperation.Min.__enum__=kha_graphics4_BlendingOperation,kha_graphics4_BlendingOperation.Max=["Max",4],kha_graphics4_BlendingOperation.Max.toString=$estr,kha_graphics4_BlendingOperation.Max.__enum__=kha_graphics4_BlendingOperation;var kha_graphics4_CompareMode=$hxClasses["kha.graphics4.CompareMode"]={__ename__:!0,__constructs__:["Always","Never","Equal","NotEqual","Less","LessEqual","Greater","GreaterEqual"]};kha_graphics4_CompareMode.Always=["Always",0],kha_graphics4_CompareMode.Always.toString=$estr,kha_graphics4_CompareMode.Always.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.Never=["Never",1],kha_graphics4_CompareMode.Never.toString=$estr,kha_graphics4_CompareMode.Never.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.Equal=["Equal",2],kha_graphics4_CompareMode.Equal.toString=$estr,kha_graphics4_CompareMode.Equal.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.NotEqual=["NotEqual",3],kha_graphics4_CompareMode.NotEqual.toString=$estr,kha_graphics4_CompareMode.NotEqual.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.Less=["Less",4],kha_graphics4_CompareMode.Less.toString=$estr,kha_graphics4_CompareMode.Less.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.LessEqual=["LessEqual",5],kha_graphics4_CompareMode.LessEqual.toString=$estr,kha_graphics4_CompareMode.LessEqual.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.Greater=["Greater",6],kha_graphics4_CompareMode.Greater.toString=$estr,kha_graphics4_CompareMode.Greater.__enum__=kha_graphics4_CompareMode,kha_graphics4_CompareMode.GreaterEqual=["GreaterEqual",7],kha_graphics4_CompareMode.GreaterEqual.toString=$estr,kha_graphics4_CompareMode.GreaterEqual.__enum__=kha_graphics4_CompareMode;var kha_graphics4_ConstantLocation=$hxClasses["kha.graphics4.ConstantLocation"]=function(){};kha_graphics4_ConstantLocation.__name__=!0;var kha_graphics4_CubeMap=$hxClasses["kha.graphics4.CubeMap"]=function(e){this.texture_=e};kha_graphics4_CubeMap.__name__=!0,kha_graphics4_CubeMap.__interfaces__=[kha_Resource,kha_Canvas],kha_graphics4_CubeMap.getRenderTargetFormat=function(e){switch(e[1]){case 0:return 0;case 2:return 3;case 3:return 4;case 4:return 1;default:return 0}},kha_graphics4_CubeMap.getDepthBufferBits=function(e){switch(e){case 0:return-1;case 1:case 2:case 3:return 24;case 4:return 32;case 5:return 16}},kha_graphics4_CubeMap.getStencilBufferBits=function(e){switch(e){case 0:case 1:return-1;case 2:case 3:case 4:return 8;case 5:return 0}},kha_graphics4_CubeMap.getTextureFormat=function(e){switch(e[1]){case 0:return 0;case 2:return 3;case 4:return 4;case 5:return 5;default:return 1}},kha_graphics4_CubeMap.createRenderTarget=function(e,t,a,i){null==i&&(i=0),null==a&&(a=0),null==t&&(t=kha_graphics4_TextureFormat.RGBA32);var r=new kha_graphics4_CubeMap(null);return r.format=t,r.renderTarget_=Krom.createRenderTargetCubeMap(e,kha_graphics4_CubeMap.getDepthBufferBits(a),kha_graphics4_CubeMap.getRenderTargetFormat(t),kha_graphics4_CubeMap.getStencilBufferBits(a),i),r},kha_graphics4_CubeMap.prototype={texture_:null,renderTarget_:null,format:null,graphics4:null,unload:function(){},lock:function(e){return null==e&&(e=0),null},unlock:function(){},width:null,get_width:function(){return null==this.texture_?this.renderTarget_.width:this.texture_.width},height:null,get_height:function(){return null==this.texture_?this.renderTarget_.height:this.texture_.height},g1:null,get_g1:function(){return null},g2:null,get_g2:function(){return null},g4:null,get_g4:function(){return null==this.graphics4&&(this.graphics4=new kha_krom_Graphics(this)),this.graphics4},__class__:kha_graphics4_CubeMap};var kha_graphics4_CullMode=$hxClasses["kha.graphics4.CullMode"]={__ename__:!0,__constructs__:["Clockwise","CounterClockwise","None"]};kha_graphics4_CullMode.Clockwise=["Clockwise",0],kha_graphics4_CullMode.Clockwise.toString=$estr,kha_graphics4_CullMode.Clockwise.__enum__=kha_graphics4_CullMode,kha_graphics4_CullMode.CounterClockwise=["CounterClockwise",1],kha_graphics4_CullMode.CounterClockwise.toString=$estr,kha_graphics4_CullMode.CounterClockwise.__enum__=kha_graphics4_CullMode,kha_graphics4_CullMode.None=["None",2],kha_graphics4_CullMode.None.toString=$estr,kha_graphics4_CullMode.None.__enum__=kha_graphics4_CullMode;var kha_graphics4_FragmentShader=$hxClasses["kha.graphics4.FragmentShader"]=function(e,t){null!=e&&(this.shader=Krom.createFragmentShader(e[0].bytes.b.bufferValue,t[0]))};kha_graphics4_FragmentShader.__name__=!0,kha_graphics4_FragmentShader.fromSource=function(e){var t=new kha_graphics4_FragmentShader(null,null);return t.shader=Krom.createFragmentShaderFromSource(e),t},kha_graphics4_FragmentShader.prototype={shader:null,delete:function(){Krom.deleteShader(this.shader),this.shader=null},__class__:kha_graphics4_FragmentShader};var kha_graphics4_GeometryShader=$hxClasses["kha.graphics4.GeometryShader"]=function(e,t){this.shader=Krom.createGeometryShader(e[0].bytes.b.bufferValue,t[0])};kha_graphics4_GeometryShader.__name__=!0,kha_graphics4_GeometryShader.prototype={shader:null,delete:function(){Krom.deleteShader(this.shader),this.shader=null},__class__:kha_graphics4_GeometryShader};var kha_graphics4_Graphics=$hxClasses["kha.graphics4.Graphics"]=function(){};kha_graphics4_Graphics.__name__=!0,kha_graphics4_Graphics.prototype={begin:null,beginFace:null,beginEye:null,end:null,vsynced:null,refreshRate:null,clear:null,viewport:null,scissor:null,disableScissor:null,setVertexBuffer:null,setVertexBuffers:null,setIndexBuffer:null,setTexture:null,setTextureDepth:null,setVideoTexture:null,setImageTexture:null,setTextureParameters:null,setTexture3DParameters:null,setCubeMap:null,setCubeMapDepth:null,renderTargetsInvertedY:null,instancedRenderingAvailable:null,setPipeline:null,setBool:null,setInt:null,setFloat:null,setFloat2:null,setFloat3:null,setFloat4:null,setFloats:null,setVector2:null,setVector3:null,setVector4:null,setMatrix:null,setMatrix3:null,drawIndexedVertices:null,drawIndexedVerticesInstanced:null,flush:null,__class__:kha_graphics4_Graphics};var kha_graphics4_ImageShaderPainter=$hxClasses["kha.graphics4.ImageShaderPainter"]=function(e){this.destinationBlend=kha_graphics4_BlendingFactor.Undefined,this.sourceBlend=kha_graphics4_BlendingFactor.Undefined,this.myPipeline=null,this.bilinearMipmaps=!1,this.bilinear=!1,this.g=e,this.bufferIndex=0,kha_graphics4_ImageShaderPainter.initShaders(),this.initBuffers(),this.projectionLocation=kha_graphics4_ImageShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"),this.textureLocation=kha_graphics4_ImageShaderPainter.shaderPipeline.getTextureUnit("tex")};kha_graphics4_ImageShaderPainter.__name__=!0,kha_graphics4_ImageShaderPainter.initShaders=function(){null==kha_graphics4_ImageShaderPainter.shaderPipeline&&(kha_graphics4_ImageShaderPainter.shaderPipeline=new kha_graphics4_PipelineState,kha_graphics4_ImageShaderPainter.shaderPipeline.fragmentShader=kha_Shaders.painter_image_frag,kha_graphics4_ImageShaderPainter.shaderPipeline.vertexShader=kha_Shaders.painter_image_vert,kha_graphics4_ImageShaderPainter.structure=new kha_graphics4_VertexStructure,kha_graphics4_ImageShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3),kha_graphics4_ImageShaderPainter.structure.add("texPosition",kha_graphics4_VertexData.Float2),kha_graphics4_ImageShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4),kha_graphics4_ImageShaderPainter.shaderPipeline.inputLayout=[kha_graphics4_ImageShaderPainter.structure],kha_graphics4_ImageShaderPainter.shaderPipeline.blendSource=kha_graphics4_BlendingFactor.BlendOne,kha_graphics4_ImageShaderPainter.shaderPipeline.blendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_ImageShaderPainter.shaderPipeline.alphaBlendSource=kha_graphics4_BlendingFactor.SourceAlpha,kha_graphics4_ImageShaderPainter.shaderPipeline.alphaBlendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_ImageShaderPainter.shaderPipeline.compile())},kha_graphics4_ImageShaderPainter.prototype={projectionMatrix:null,projectionLocation:null,textureLocation:null,bufferIndex:null,rectVertexBuffer:null,rectVertices:null,indexBuffer:null,lastTexture:null,bilinear:null,bilinearMipmaps:null,g:null,myPipeline:null,sourceBlend:null,destinationBlend:null,get_pipeline:function(){return this.myPipeline},set_pipeline:function(e){return null==e?(this.projectionLocation=kha_graphics4_ImageShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"),this.textureLocation=kha_graphics4_ImageShaderPainter.shaderPipeline.getTextureUnit("tex")):(this.projectionLocation=e.getConstantLocation("projectionMatrix"),this.textureLocation=e.getTextureUnit("tex")),this.myPipeline=e},setProjection:function(e){this.projectionMatrix=e},initBuffers:function(){this.rectVertexBuffer=new kha_graphics4_VertexBuffer(4*kha_graphics4_ImageShaderPainter.bufferSize,kha_graphics4_ImageShaderPainter.structure,kha_graphics4_Usage.DynamicUsage),this.rectVertices=this.rectVertexBuffer.lock(),this.indexBuffer=new kha_graphics4_IndexBuffer(3*kha_graphics4_ImageShaderPainter.bufferSize*2,kha_graphics4_Usage.StaticUsage);for(var e=this.indexBuffer.lock(),t=0,a=kha_graphics4_ImageShaderPainter.bufferSize;t=kha_graphics4_ImageShaderPainter.bufferSize||null!=this.lastTexture&&u!=this.lastTexture)&&this.drawBuffer();var c=.00392156862745098*((16711680&l)>>>16),d=.00392156862745098*((65280&l)>>>8),p=.00392156862745098*(255&l),g=.00392156862745098*(l>>>24)*h,f=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[f+5]=c,this.rectVertices[f+6]=d,this.rectVertices[f+7]=p,this.rectVertices[f+8]=g,this.rectVertices[f+14]=c,this.rectVertices[f+15]=d,this.rectVertices[f+16]=p,this.rectVertices[f+17]=g,this.rectVertices[f+23]=c,this.rectVertices[f+24]=d,this.rectVertices[f+25]=p,this.rectVertices[f+26]=g,this.rectVertices[f+32]=c,this.rectVertices[f+33]=d,this.rectVertices[f+34]=p,this.rectVertices[f+35]=g;var v=u.get_width()/u.get_realWidth(),k=u.get_height()/u.get_realHeight(),m=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[m+3]=0,this.rectVertices[m+4]=k,this.rectVertices[m+12]=0,this.rectVertices[m+13]=0,this.rectVertices[m+21]=v,this.rectVertices[m+22]=0,this.rectVertices[m+30]=v,this.rectVertices[m+31]=k;var b=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[b]=t,this.rectVertices[b+1]=a,this.rectVertices[b+2]=-5,this.rectVertices[b+9]=i,this.rectVertices[b+10]=r,this.rectVertices[b+11]=-5,this.rectVertices[b+18]=s,this.rectVertices[b+19]=n,this.rectVertices[b+20]=-5,this.rectVertices[b+27]=_,this.rectVertices[b+28]=o,this.rectVertices[b+29]=-5,++this.bufferIndex,this.lastTexture=u},drawImage2:function(e,t,a,i,r,s,n,_,o,h,l,u,c,d,p){var g=e;(this.bufferIndex+1>=kha_graphics4_ImageShaderPainter.bufferSize||null!=this.lastTexture&&g!=this.lastTexture)&&this.drawBuffer();var f=t/g.get_realWidth(),v=a/g.get_realHeight(),k=(t+i)/g.get_realWidth(),m=(a+r)/g.get_realHeight(),b=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[b+3]=f,this.rectVertices[b+4]=m,this.rectVertices[b+12]=f,this.rectVertices[b+13]=v,this.rectVertices[b+21]=k,this.rectVertices[b+22]=v,this.rectVertices[b+30]=k,this.rectVertices[b+31]=m;var S=.00392156862745098*((16711680&p)>>>16),y=.00392156862745098*((65280&p)>>>8),x=.00392156862745098*(255&p),B=.00392156862745098*(p>>>24)*d,T=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[T+5]=S,this.rectVertices[T+6]=y,this.rectVertices[T+7]=x,this.rectVertices[T+8]=B,this.rectVertices[T+14]=S,this.rectVertices[T+15]=y,this.rectVertices[T+16]=x,this.rectVertices[T+17]=B,this.rectVertices[T+23]=S,this.rectVertices[T+24]=y,this.rectVertices[T+25]=x,this.rectVertices[T+26]=B,this.rectVertices[T+32]=S,this.rectVertices[T+33]=y,this.rectVertices[T+34]=x,this.rectVertices[T+35]=B;var w=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[w]=s,this.rectVertices[w+1]=n,this.rectVertices[w+2]=-5,this.rectVertices[w+9]=_,this.rectVertices[w+10]=o,this.rectVertices[w+11]=-5,this.rectVertices[w+18]=h,this.rectVertices[w+19]=l,this.rectVertices[w+20]=-5,this.rectVertices[w+27]=u,this.rectVertices[w+28]=c,this.rectVertices[w+29]=-5,++this.bufferIndex,this.lastTexture=g},drawImageScale:function(e,t,a,i,r,s,n,_,o,h,l){var u=e;(this.bufferIndex+1>=kha_graphics4_ImageShaderPainter.bufferSize||null!=this.lastTexture&&u!=this.lastTexture)&&this.drawBuffer();var c=t/u.get_realWidth(),d=a/u.get_realHeight(),p=(t+i)/u.get_realWidth(),g=(a+r)/u.get_realHeight(),f=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[f+3]=c,this.rectVertices[f+4]=g,this.rectVertices[f+12]=c,this.rectVertices[f+13]=d,this.rectVertices[f+21]=p,this.rectVertices[f+22]=d,this.rectVertices[f+30]=p,this.rectVertices[f+31]=g;var v=.00392156862745098*((16711680&l)>>>16),k=.00392156862745098*((65280&l)>>>8),m=.00392156862745098*(255&l),b=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[b+5]=v,this.rectVertices[b+6]=k,this.rectVertices[b+7]=m,this.rectVertices[b+8]=h,this.rectVertices[b+14]=v,this.rectVertices[b+15]=k,this.rectVertices[b+16]=m,this.rectVertices[b+17]=h,this.rectVertices[b+23]=v,this.rectVertices[b+24]=k,this.rectVertices[b+25]=m,this.rectVertices[b+26]=h,this.rectVertices[b+32]=v,this.rectVertices[b+33]=k,this.rectVertices[b+34]=m,this.rectVertices[b+35]=h;var S=this.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;this.rectVertices[S]=s,this.rectVertices[S+1]=o,this.rectVertices[S+2]=-5,this.rectVertices[S+9]=s,this.rectVertices[S+10]=n,this.rectVertices[S+11]=-5,this.rectVertices[S+18]=_,this.rectVertices[S+19]=n,this.rectVertices[S+20]=-5,this.rectVertices[S+27]=_,this.rectVertices[S+28]=o,this.rectVertices[S+29]=-5,++this.bufferIndex,this.lastTexture=u},end:function(){this.bufferIndex>0&&this.drawBuffer(),this.lastTexture=null},__class__:kha_graphics4_ImageShaderPainter};var kha_graphics4_ColoredShaderPainter=$hxClasses["kha.graphics4.ColoredShaderPainter"]=function(e){this.destinationBlend=kha_graphics4_BlendingFactor.Undefined,this.sourceBlend=kha_graphics4_BlendingFactor.Undefined,this.myPipeline=null,this.g=e,this.bufferIndex=0,this.triangleBufferIndex=0,kha_graphics4_ColoredShaderPainter.initShaders(),this.initBuffers(),this.projectionLocation=kha_graphics4_ColoredShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix")};kha_graphics4_ColoredShaderPainter.__name__=!0,kha_graphics4_ColoredShaderPainter.initShaders=function(){null==kha_graphics4_ColoredShaderPainter.shaderPipeline&&(kha_graphics4_ColoredShaderPainter.shaderPipeline=new kha_graphics4_PipelineState,kha_graphics4_ColoredShaderPainter.shaderPipeline.fragmentShader=kha_Shaders.painter_colored_frag,kha_graphics4_ColoredShaderPainter.shaderPipeline.vertexShader=kha_Shaders.painter_colored_vert,kha_graphics4_ColoredShaderPainter.structure=new kha_graphics4_VertexStructure,kha_graphics4_ColoredShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3),kha_graphics4_ColoredShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4),kha_graphics4_ColoredShaderPainter.shaderPipeline.inputLayout=[kha_graphics4_ColoredShaderPainter.structure],kha_graphics4_ColoredShaderPainter.shaderPipeline.blendSource=kha_graphics4_BlendingFactor.SourceAlpha,kha_graphics4_ColoredShaderPainter.shaderPipeline.blendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_ColoredShaderPainter.shaderPipeline.alphaBlendSource=kha_graphics4_BlendingFactor.SourceAlpha,kha_graphics4_ColoredShaderPainter.shaderPipeline.alphaBlendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_ColoredShaderPainter.shaderPipeline.compile())},kha_graphics4_ColoredShaderPainter.prototype={projectionMatrix:null,projectionLocation:null,bufferIndex:null,rectVertexBuffer:null,rectVertices:null,indexBuffer:null,triangleBufferIndex:null,triangleVertexBuffer:null,triangleVertices:null,triangleIndexBuffer:null,g:null,myPipeline:null,sourceBlend:null,destinationBlend:null,get_pipeline:function(){return this.myPipeline},set_pipeline:function(e){return this.projectionLocation=null==e?kha_graphics4_ColoredShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"):e.getConstantLocation("projectionMatrix"),this.myPipeline=e},setProjection:function(e){this.projectionMatrix=e},initBuffers:function(){this.rectVertexBuffer=new kha_graphics4_VertexBuffer(4*kha_graphics4_ColoredShaderPainter.bufferSize,kha_graphics4_ColoredShaderPainter.structure,kha_graphics4_Usage.DynamicUsage),this.rectVertices=this.rectVertexBuffer.lock(),this.indexBuffer=new kha_graphics4_IndexBuffer(3*kha_graphics4_ColoredShaderPainter.bufferSize*2,kha_graphics4_Usage.StaticUsage);for(var e=this.indexBuffer.lock(),t=0,a=kha_graphics4_ColoredShaderPainter.bufferSize;t>>24));this.rectVertices[a+3]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+4]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+5]=.00392156862745098*(255&t),this.rectVertices[a+6]=i,this.rectVertices[a+10]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+11]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+12]=.00392156862745098*(255&t),this.rectVertices[a+13]=i,this.rectVertices[a+17]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+18]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+19]=.00392156862745098*(255&t),this.rectVertices[a+20]=i,this.rectVertices[a+24]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+25]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+26]=.00392156862745098*(255&t),this.rectVertices[a+27]=i},setTriVertices:function(e,t,a,i,r,s){var n=7*this.triangleBufferIndex*3;this.triangleVertices[n]=e,this.triangleVertices[n+1]=t,this.triangleVertices[n+2]=-5,this.triangleVertices[n+7]=a,this.triangleVertices[n+8]=i,this.triangleVertices[n+9]=-5,this.triangleVertices[n+14]=r,this.triangleVertices[n+15]=s,this.triangleVertices[n+16]=-5},setTriColors:function(e,t){var a=7*this.triangleBufferIndex*3,i=e*(.00392156862745098*(t>>>24));this.triangleVertices[a+3]=.00392156862745098*((16711680&t)>>>16),this.triangleVertices[a+4]=.00392156862745098*((65280&t)>>>8),this.triangleVertices[a+5]=.00392156862745098*(255&t),this.triangleVertices[a+6]=i,this.triangleVertices[a+10]=.00392156862745098*((16711680&t)>>>16),this.triangleVertices[a+11]=.00392156862745098*((65280&t)>>>8),this.triangleVertices[a+12]=.00392156862745098*(255&t),this.triangleVertices[a+13]=i,this.triangleVertices[a+17]=.00392156862745098*((16711680&t)>>>16),this.triangleVertices[a+18]=.00392156862745098*((65280&t)>>>8),this.triangleVertices[a+19]=.00392156862745098*(255&t),this.triangleVertices[a+20]=i},drawBuffer:function(e){e||this.triangleBufferIndex>0&&this.drawTriBuffer(!0),this.rectVertexBuffer.unlock(),this.g.setVertexBuffer(this.rectVertexBuffer),this.g.setIndexBuffer(this.indexBuffer),this.g.setPipeline(null==this.get_pipeline()?kha_graphics4_ColoredShaderPainter.shaderPipeline:this.get_pipeline()),this.g.setMatrix(this.projectionLocation,this.projectionMatrix),this.g.drawIndexedVertices(0,2*this.bufferIndex*3),this.bufferIndex=0,this.rectVertices=this.rectVertexBuffer.lock()},drawTriBuffer:function(e){e||this.bufferIndex>0&&this.drawBuffer(!0),this.triangleVertexBuffer.unlock(),this.g.setVertexBuffer(this.triangleVertexBuffer),this.g.setIndexBuffer(this.triangleIndexBuffer),this.g.setPipeline(null==this.get_pipeline()?kha_graphics4_ColoredShaderPainter.shaderPipeline:this.get_pipeline()),this.g.setMatrix(this.projectionLocation,this.projectionMatrix),this.g.drawIndexedVertices(0,3*this.triangleBufferIndex),this.triangleBufferIndex=0,this.triangleVertices=this.triangleVertexBuffer.lock()},fillRect:function(e,t,a,i,r,s,n,_,o,h){this.triangleBufferIndex>0&&this.drawTriBuffer(!0),this.bufferIndex+1>=kha_graphics4_ColoredShaderPainter.bufferSize&&this.drawBuffer(!1),this.setRectColors(e,t),this.setRectVertices(a,i,r,s,n,_,o,h),++this.bufferIndex},fillTriangle:function(e,t,a,i,r,s,n,_){this.bufferIndex>0&&this.drawBuffer(!0),this.triangleBufferIndex+1>=kha_graphics4_ColoredShaderPainter.triangleBufferSize&&this.drawTriBuffer(!1),this.setTriColors(e,t),this.setTriVertices(a,i,r,s,n,_),++this.triangleBufferIndex},endTris:function(e){this.triangleBufferIndex>0&&this.drawTriBuffer(e)},endRects:function(e){this.bufferIndex>0&&this.drawBuffer(e)},end:function(){this.triangleBufferIndex>0&&this.drawTriBuffer(!1),this.bufferIndex>0&&this.drawBuffer(!1)},__class__:kha_graphics4_ColoredShaderPainter};var kha_graphics4_TextShaderPainter=$hxClasses["kha.graphics4.TextShaderPainter"]=function(e){this.destinationBlend=kha_graphics4_BlendingFactor.Undefined,this.sourceBlend=kha_graphics4_BlendingFactor.Undefined,this.bilinear=!1,this.myPipeline=null,this.g=e,this.bufferIndex=0,kha_graphics4_TextShaderPainter.initShaders(),this.initBuffers(),this.projectionLocation=kha_graphics4_TextShaderPainter.shaderPipeline.getConstantLocation("projectionMatrix"),this.textureLocation=kha_graphics4_TextShaderPainter.shaderPipeline.getTextureUnit("tex")};kha_graphics4_TextShaderPainter.__name__=!0,kha_graphics4_TextShaderPainter.initShaders=function(){null==kha_graphics4_TextShaderPainter.shaderPipeline&&(kha_graphics4_TextShaderPainter.shaderPipeline=new kha_graphics4_PipelineState,kha_graphics4_TextShaderPainter.shaderPipeline.fragmentShader=kha_Shaders.painter_text_frag,kha_graphics4_TextShaderPainter.shaderPipeline.vertexShader=kha_Shaders.painter_text_vert,kha_graphics4_TextShaderPainter.structure=new kha_graphics4_VertexStructure,kha_graphics4_TextShaderPainter.structure.add("vertexPosition",kha_graphics4_VertexData.Float3),kha_graphics4_TextShaderPainter.structure.add("texPosition",kha_graphics4_VertexData.Float2),kha_graphics4_TextShaderPainter.structure.add("vertexColor",kha_graphics4_VertexData.Float4),kha_graphics4_TextShaderPainter.shaderPipeline.inputLayout=[kha_graphics4_TextShaderPainter.structure],kha_graphics4_TextShaderPainter.shaderPipeline.blendSource=kha_graphics4_BlendingFactor.SourceAlpha,kha_graphics4_TextShaderPainter.shaderPipeline.blendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_TextShaderPainter.shaderPipeline.alphaBlendSource=kha_graphics4_BlendingFactor.SourceAlpha,kha_graphics4_TextShaderPainter.shaderPipeline.alphaBlendDestination=kha_graphics4_BlendingFactor.InverseSourceAlpha,kha_graphics4_TextShaderPainter.shaderPipeline.compile())},kha_graphics4_TextShaderPainter.findIndex=function(e,t){for(var a=0,i=t.length;a>>24));this.rectVertices[a+5]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+6]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+7]=.00392156862745098*(255&t),this.rectVertices[a+8]=i,this.rectVertices[a+14]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+15]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+16]=.00392156862745098*(255&t),this.rectVertices[a+17]=i,this.rectVertices[a+23]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+24]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+25]=.00392156862745098*(255&t),this.rectVertices[a+26]=i,this.rectVertices[a+32]=.00392156862745098*((16711680&t)>>>16),this.rectVertices[a+33]=.00392156862745098*((65280&t)>>>8),this.rectVertices[a+34]=.00392156862745098*(255&t),this.rectVertices[a+35]=i},drawBuffer:function(){this.rectVertexBuffer.unlock(),this.g.setVertexBuffer(this.rectVertexBuffer),this.g.setIndexBuffer(this.indexBuffer),this.g.setPipeline(null==this.get_pipeline()?kha_graphics4_TextShaderPainter.shaderPipeline:this.get_pipeline()),this.g.setTexture(this.textureLocation,this.lastTexture),this.g.setMatrix(this.projectionLocation,this.projectionMatrix),this.g.setTextureParameters(this.textureLocation,kha_graphics4_TextureAddressing.Clamp,kha_graphics4_TextureAddressing.Clamp,this.bilinear?kha_graphics4_TextureFilter.LinearFilter:kha_graphics4_TextureFilter.PointFilter,this.bilinear?kha_graphics4_TextureFilter.LinearFilter:kha_graphics4_TextureFilter.PointFilter,kha_graphics4_MipMapFilter.NoMipFilter),this.g.drawIndexedVertices(0,2*this.bufferIndex*3),this.g.setTexture(this.textureLocation,null),this.bufferIndex=0,this.rectVertices=this.rectVertexBuffer.lock()},setBilinearFilter:function(e){this.end(),this.bilinear=e},setFont:function(e){this.font=js_Boot.__cast(e,kha_Kravur)},text:null,startString:function(e){this.text=e},charCodeAt:function(e){return HxOverrides.cca(this.text,e)},stringLength:function(){return this.text.length},endString:function(){this.text=null},drawString:function(e,t,a,i,r,s,n){var _=this.font._get(this.fontSize,n),o=_.getTexture();null!=this.lastTexture&&o!=this.lastTexture&&this.drawBuffer(),this.lastTexture=o;var h=i,l=r;this.startString(e);for(var u=0,c=this.stringLength();u=kha_graphics4_TextShaderPainter.bufferSize&&this.drawBuffer(),this.setRectColors(t,a),this.setRectTexCoords(p.s0*o.get_width()/o.get_realWidth(),p.t0*o.get_height()/o.get_realHeight(),p.s1*o.get_width()/o.get_realWidth(),p.t1*o.get_height()/o.get_realHeight());var g,f,v,k=p.x0;v=p.y1;var m=s._02*k+s._12*v+s._22;f=(s._00*k+s._10*v+s._20)/m,g=(s._01*k+s._11*v+s._21)/m;var b,S,y,x=p.x0;y=p.y0;var B=s._02*x+s._12*y+s._22;S=(s._00*x+s._10*y+s._20)/B,b=(s._01*x+s._11*y+s._21)/B;var T,w,E,I=p.x1;E=p.y0;var C=s._02*I+s._12*E+s._22;w=(s._00*I+s._10*E+s._20)/C,T=(s._01*I+s._11*E+s._21)/C;var A,L,R,$=p.x1;R=p.y1;var F=s._02*$+s._12*R+s._22;L=(s._00*$+s._10*R+s._20)/F,A=(s._01*$+s._11*R+s._21)/F,this.setRectVertices(f,g,S,b,w,T,L,A),h+=p.xadvance,++this.bufferIndex}}this.endString()},end:function(){this.bufferIndex>0&&this.drawBuffer(),this.lastTexture=null},__class__:kha_graphics4_TextShaderPainter};var kha_graphics4_Graphics2=$hxClasses["kha.graphics4.Graphics2"]=function(e){if(this.myMipmapScaleQuality=kha_graphics2_ImageScaleQuality.High,this.myImageScaleQuality=kha_graphics2_ImageScaleQuality.High,kha_graphics2_Graphics.call(this),this.set_color(-1),this.canvas=e,this.g=e.get_g4(),this.imagePainter=new kha_graphics4_ImageShaderPainter(this.g),this.coloredPainter=new kha_graphics4_ColoredShaderPainter(this.g),this.textPainter=new kha_graphics4_TextShaderPainter(this.g),this.textPainter.fontSize=this.get_fontSize(),this.setProjection(),null==kha_graphics4_Graphics2.videoPipeline){kha_graphics4_Graphics2.videoPipeline=new kha_graphics4_PipelineState,kha_graphics4_Graphics2.videoPipeline.fragmentShader=kha_Shaders.painter_video_frag,kha_graphics4_Graphics2.videoPipeline.vertexShader=kha_Shaders.painter_video_vert;var t=new kha_graphics4_VertexStructure;t.add("vertexPosition",kha_graphics4_VertexData.Float3),t.add("texPosition",kha_graphics4_VertexData.Float2),t.add("vertexColor",kha_graphics4_VertexData.Float4),kha_graphics4_Graphics2.videoPipeline.inputLayout=[t],kha_graphics4_Graphics2.videoPipeline.compile()}};kha_graphics4_Graphics2.__name__=!0,kha_graphics4_Graphics2.upperPowerOfTwo=function(e){return--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,++e},kha_graphics4_Graphics2.__super__=kha_graphics2_Graphics,kha_graphics4_Graphics2.prototype=$extend(kha_graphics2_Graphics.prototype,{myColor:null,myFont:null,projectionMatrix:null,imagePainter:null,coloredPainter:null,textPainter:null,canvas:null,g:null,setProjection:function(){var e=this.canvas.get_width(),t=this.canvas.get_height();js_Boot.__instanceof(this.canvas,kha_Framebuffer)?this.projectionMatrix=kha_math_FastMatrix4.orthogonalProjection(0,e,t,0,.1,1e3):(kha_Image.get_nonPow2Supported()||(e=kha_graphics4_Graphics2.upperPowerOfTwo(e),t=kha_graphics4_Graphics2.upperPowerOfTwo(t)),this.g.renderTargetsInvertedY()?this.projectionMatrix=kha_math_FastMatrix4.orthogonalProjection(0,e,0,t,.1,1e3):this.projectionMatrix=kha_math_FastMatrix4.orthogonalProjection(0,e,t,0,.1,1e3)),this.imagePainter.setProjection(this.projectionMatrix),this.coloredPainter.setProjection(this.projectionMatrix),this.textPainter.setProjection(this.projectionMatrix)},drawImage:function(e,t,a){var i=this.coloredPainter;i.triangleBufferIndex>0&&i.drawTriBuffer(!1),i.bufferIndex>0&&i.drawBuffer(!1),this.textPainter.end();var r,s,n,_=t+e.get_width(),o=a+e.get_height(),h=this.transformations[this.transformations.length-1],l=t;n=o;var u=h._02*l+h._12*n+h._22;s=(h._00*l+h._10*n+h._20)/u,r=(h._01*l+h._11*n+h._21)/u;var c,d,p,g=this.transformations[this.transformations.length-1],f=t;p=a;var v=g._02*f+g._12*p+g._22;d=(g._00*f+g._10*p+g._20)/v,c=(g._01*f+g._11*p+g._21)/v;var k,m,b,S=this.transformations[this.transformations.length-1],y=_;b=a;var x=S._02*y+S._12*b+S._22;m=(S._00*y+S._10*b+S._20)/x,k=(S._01*y+S._11*b+S._21)/x;var B,T,w,E=this.transformations[this.transformations.length-1],I=_;w=o;var C=E._02*I+E._12*w+E._22;T=(E._00*I+E._10*w+E._20)/C,B=(E._01*I+E._11*w+E._21)/C;var A=this.imagePainter,L=this.get_opacity(),R=this.get_color(),$=e;(A.bufferIndex+1>=kha_graphics4_ImageShaderPainter.bufferSize||null!=A.lastTexture&&$!=A.lastTexture)&&A.drawBuffer();var F=.00392156862745098*((16711680&R)>>>16),V=.00392156862745098*((65280&R)>>>8),N=.00392156862745098*(255&R),P=.00392156862745098*(R>>>24)*L,M=A.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;A.rectVertices[M+5]=F,A.rectVertices[M+6]=V,A.rectVertices[M+7]=N,A.rectVertices[M+8]=P,A.rectVertices[M+14]=F,A.rectVertices[M+15]=V,A.rectVertices[M+16]=N,A.rectVertices[M+17]=P,A.rectVertices[M+23]=F,A.rectVertices[M+24]=V,A.rectVertices[M+25]=N,A.rectVertices[M+26]=P,A.rectVertices[M+32]=F,A.rectVertices[M+33]=V,A.rectVertices[M+34]=N,A.rectVertices[M+35]=P;var O=$.get_width()/$.get_realWidth(),D=$.get_height()/$.get_realHeight(),U=A.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;A.rectVertices[U+3]=0,A.rectVertices[U+4]=D,A.rectVertices[U+12]=0,A.rectVertices[U+13]=0,A.rectVertices[U+21]=O,A.rectVertices[U+22]=0,A.rectVertices[U+30]=O,A.rectVertices[U+31]=D;var H=A.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;A.rectVertices[H]=s,A.rectVertices[H+1]=r,A.rectVertices[H+2]=-5,A.rectVertices[H+9]=d,A.rectVertices[H+10]=c,A.rectVertices[H+11]=-5,A.rectVertices[H+18]=m,A.rectVertices[H+19]=k,A.rectVertices[H+20]=-5,A.rectVertices[H+27]=T,A.rectVertices[H+28]=B,A.rectVertices[H+29]=-5,++A.bufferIndex,A.lastTexture=$},drawScaledSubImage:function(e,t,a,i,r,s,n,_,o){var h=this.coloredPainter;h.triangleBufferIndex>0&&h.drawTriBuffer(!1),h.bufferIndex>0&&h.drawBuffer(!1),this.textPainter.end();var l,u,c,d=this.transformations[this.transformations.length-1],p=s;c=n+o;var g=d._02*p+d._12*c+d._22;u=(d._00*p+d._10*c+d._20)/g,l=(d._01*p+d._11*c+d._21)/g;var f,v,k,m=this.transformations[this.transformations.length-1],b=s;k=n;var S=m._02*b+m._12*k+m._22;v=(m._00*b+m._10*k+m._20)/S,f=(m._01*b+m._11*k+m._21)/S;var y,x,B,T=this.transformations[this.transformations.length-1],w=s+_;B=n;var E=T._02*w+T._12*B+T._22;x=(T._00*w+T._10*B+T._20)/E,y=(T._01*w+T._11*B+T._21)/E;var I,C,A,L=this.transformations[this.transformations.length-1],R=s+_;A=n+o;var $=L._02*R+L._12*A+L._22;C=(L._00*R+L._10*A+L._20)/$,I=(L._01*R+L._11*A+L._21)/$;var F=this.imagePainter,V=this.get_opacity(),N=this.get_color(),P=e;(F.bufferIndex+1>=kha_graphics4_ImageShaderPainter.bufferSize||null!=F.lastTexture&&P!=F.lastTexture)&&F.drawBuffer();var M=t/P.get_realWidth(),O=a/P.get_realHeight(),D=(t+i)/P.get_realWidth(),U=(a+r)/P.get_realHeight(),H=F.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;F.rectVertices[H+3]=M,F.rectVertices[H+4]=U,F.rectVertices[H+12]=M,F.rectVertices[H+13]=O,F.rectVertices[H+21]=D,F.rectVertices[H+22]=O,F.rectVertices[H+30]=D,F.rectVertices[H+31]=U;var G=.00392156862745098*((16711680&N)>>>16),W=.00392156862745098*((65280&N)>>>8),z=.00392156862745098*(255&N),j=.00392156862745098*(N>>>24)*V,K=F.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;F.rectVertices[K+5]=G,F.rectVertices[K+6]=W,F.rectVertices[K+7]=z,F.rectVertices[K+8]=j,F.rectVertices[K+14]=G,F.rectVertices[K+15]=W,F.rectVertices[K+16]=z,F.rectVertices[K+17]=j,F.rectVertices[K+23]=G,F.rectVertices[K+24]=W,F.rectVertices[K+25]=z,F.rectVertices[K+26]=j,F.rectVertices[K+32]=G,F.rectVertices[K+33]=W,F.rectVertices[K+34]=z,F.rectVertices[K+35]=j;var X=F.bufferIndex*kha_graphics4_ImageShaderPainter.vertexSize*4;F.rectVertices[X]=u,F.rectVertices[X+1]=l,F.rectVertices[X+2]=-5,F.rectVertices[X+9]=v,F.rectVertices[X+10]=f,F.rectVertices[X+11]=-5,F.rectVertices[X+18]=x,F.rectVertices[X+19]=y,F.rectVertices[X+20]=-5,F.rectVertices[X+27]=C,F.rectVertices[X+28]=I,F.rectVertices[X+29]=-5,++F.bufferIndex,F.lastTexture=P},get_color:function(){return this.myColor},set_color:function(e){return this.myColor=e},drawRect:function(e,t,a,i,r){null==r&&(r=1),this.imagePainter.end(),this.textPainter.end();var s,n=this.transformations[this.transformations.length-1],_=e-r/2;s=t+r/2;var o,h=n._02*_+n._12*s+n._22,l=(n._00*_+n._10*s+n._20)/h,u=(n._01*_+n._11*s+n._21)/h,c=new kha_math_FastVector2(l,u),d=this.transformations[this.transformations.length-1],p=e-r/2;o=t-r/2;var g,f=d._02*p+d._12*o+d._22,v=(d._00*p+d._10*o+d._20)/f,k=(d._01*p+d._11*o+d._21)/f,m=new kha_math_FastVector2(v,k),b=this.transformations[this.transformations.length-1],S=e+a+r/2;g=t-r/2;var y,x=b._02*S+b._12*g+b._22,B=(b._00*S+b._10*g+b._20)/x,T=(b._01*S+b._11*g+b._21)/x,w=new kha_math_FastVector2(B,T),E=this.transformations[this.transformations.length-1],I=e+a+r/2;y=t+r/2;var C=E._02*I+E._12*y+E._22,A=(E._00*I+E._10*y+E._20)/C,L=(E._01*I+E._11*y+E._21)/C,R=new kha_math_FastVector2(A,L);this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),c.x,c.y,m.x,m.y,w.x,w.y,R.x,R.y);var $,F=this.transformations[this.transformations.length-1],V=e-r/2;$=t+i+r/2;var N=F._02*V+F._12*$+F._22,P=(F._00*V+F._10*$+F._20)/N,M=(F._01*V+F._11*$+F._21)/N;c=new kha_math_FastVector2(P,M);var O,D=this.transformations[this.transformations.length-1],U=e+r/2;O=t-r/2;var H=D._02*U+D._12*O+D._22,G=(D._00*U+D._10*O+D._20)/H,W=(D._01*U+D._11*O+D._21)/H;w=new kha_math_FastVector2(G,W);var z,j=this.transformations[this.transformations.length-1],K=e+r/2;z=t+i+r/2;var X=j._02*K+j._12*z+j._22,Y=(j._00*K+j._10*z+j._20)/X,Z=(j._01*K+j._11*z+j._21)/X;R=new kha_math_FastVector2(Y,Z),this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),c.x,c.y,m.x,m.y,w.x,w.y,R.x,R.y);var Q,J=this.transformations[this.transformations.length-1],q=e-r/2;Q=t+i-r/2;var ee=J._02*q+J._12*Q+J._22,te=(J._00*q+J._10*Q+J._20)/ee,ae=(J._01*q+J._11*Q+J._21)/ee;m=new kha_math_FastVector2(te,ae);var ie,re=this.transformations[this.transformations.length-1],se=e+a+r/2;ie=t+i-r/2;var ne=re._02*se+re._12*ie+re._22,_e=(re._00*se+re._10*ie+re._20)/ne,oe=(re._01*se+re._11*ie+re._21)/ne;w=new kha_math_FastVector2(_e,oe);var he,le=this.transformations[this.transformations.length-1],ue=e+a+r/2;he=t+i+r/2;var ce=le._02*ue+le._12*he+le._22,de=(le._00*ue+le._10*he+le._20)/ce,pe=(le._01*ue+le._11*he+le._21)/ce;R=new kha_math_FastVector2(de,pe),this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),c.x,c.y,m.x,m.y,w.x,w.y,R.x,R.y);var ge,fe=this.transformations[this.transformations.length-1],ve=e+a-r/2;ge=t+i+r/2;var ke=fe._02*ve+fe._12*ge+fe._22,me=(fe._00*ve+fe._10*ge+fe._20)/ke,be=(fe._01*ve+fe._11*ge+fe._21)/ke;c=new kha_math_FastVector2(me,be);var Se,ye=this.transformations[this.transformations.length-1],xe=e+a-r/2;Se=t-r/2;var Be=ye._02*xe+ye._12*Se+ye._22,Te=(ye._00*xe+ye._10*Se+ye._20)/Be,we=(ye._01*xe+ye._11*Se+ye._21)/Be;m=new kha_math_FastVector2(Te,we);var Ee,Ie=this.transformations[this.transformations.length-1],Ce=e+a+r/2;Ee=t-r/2;var Ae=Ie._02*Ce+Ie._12*Ee+Ie._22,Le=(Ie._00*Ce+Ie._10*Ee+Ie._20)/Ae,Re=(Ie._01*Ce+Ie._11*Ee+Ie._21)/Ae;w=new kha_math_FastVector2(Le,Re);var $e,Fe=this.transformations[this.transformations.length-1],Ve=e+a+r/2;$e=t+i+r/2;var Ne=Fe._02*Ve+Fe._12*$e+Fe._22,Pe=(Fe._00*Ve+Fe._10*$e+Fe._20)/Ne,Me=(Fe._01*Ve+Fe._11*$e+Fe._21)/Ne;R=new kha_math_FastVector2(Pe,Me),this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),c.x,c.y,m.x,m.y,w.x,w.y,R.x,R.y)},fillRect:function(e,t,a,i){this.imagePainter.end(),this.textPainter.end();var r,s,n,_=this.transformations[this.transformations.length-1],o=e;n=t+i;var h=_._02*o+_._12*n+_._22;s=(_._00*o+_._10*n+_._20)/h,r=(_._01*o+_._11*n+_._21)/h;var l,u,c,d=this.transformations[this.transformations.length-1],p=e;c=t;var g=d._02*p+d._12*c+d._22;u=(d._00*p+d._10*c+d._20)/g,l=(d._01*p+d._11*c+d._21)/g;var f,v,k,m=this.transformations[this.transformations.length-1],b=e+a;k=t;var S=m._02*b+m._12*k+m._22;v=(m._00*b+m._10*k+m._20)/S,f=(m._01*b+m._11*k+m._21)/S;var y,x,B,T=this.transformations[this.transformations.length-1],w=e+a;B=t+i;var E=T._02*w+T._12*B+T._22;x=(T._00*w+T._10*B+T._20)/E,y=(T._01*w+T._11*B+T._21)/E,this.coloredPainter.fillRect(this.get_opacity(),this.get_color(),s,r,u,l,v,f,x,y)},drawString:function(e,t,a){this.imagePainter.end();var i=this.coloredPainter;i.triangleBufferIndex>0&&i.drawTriBuffer(!1),i.bufferIndex>0&&i.drawBuffer(!1),this.textPainter.drawString(e,this.get_opacity(),this.get_color(),t,a,this.transformations[this.transformations.length-1],this.get_fontGlyphs())},get_font:function(){return this.myFont},set_font:function(e){return this.textPainter.setFont(e),this.myFont=e},set_fontSize:function(e){return kha_graphics2_Graphics.prototype.set_fontSize.call(this,this.textPainter.fontSize=e)},drawLine:function(e,t,a,i,r){null==r&&(r=1),this.imagePainter.end(),this.textPainter.end();var s;(s=i==t?new kha_math_FastVector2(0,-1):new kha_math_FastVector2(1,-(a-e)/(i-t))).set_length(r);var n=new kha_math_FastVector2(e+.5*s.x,t+.5*s.y),_=new kha_math_FastVector2(a+.5*s.x,i+.5*s.y),o=new kha_math_FastVector2(n.x-s.x,n.y-s.y),h=new kha_math_FastVector2(_.x-s.x,_.y-s.y),l=this.transformations[this.transformations.length-1],u=l._02*n.x+l._12*n.y+l._22,c=(l._00*n.x+l._10*n.y+l._20)/u,d=(l._01*n.x+l._11*n.y+l._21)/u;n=new kha_math_FastVector2(c,d);var p=this.transformations[this.transformations.length-1],g=p._02*_.x+p._12*_.y+p._22,f=(p._00*_.x+p._10*_.y+p._20)/g,v=(p._01*_.x+p._11*_.y+p._21)/g;_=new kha_math_FastVector2(f,v);var k=this.transformations[this.transformations.length-1],m=k._02*o.x+k._12*o.y+k._22,b=(k._00*o.x+k._10*o.y+k._20)/m,S=(k._01*o.x+k._11*o.y+k._21)/m;o=new kha_math_FastVector2(b,S);var y=this.transformations[this.transformations.length-1],x=y._02*h.x+y._12*h.y+y._22,B=(y._00*h.x+y._10*h.y+y._20)/x,T=(y._01*h.x+y._11*h.y+y._21)/x;h=new kha_math_FastVector2(B,T),this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),n.x,n.y,_.x,_.y,o.x,o.y),this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),o.x,o.y,_.x,_.y,h.x,h.y)},fillTriangle:function(e,t,a,i,r,s){this.imagePainter.end(),this.textPainter.end();var n,_,o,h=this.transformations[this.transformations.length-1],l=e;o=t;var u=h._02*l+h._12*o+h._22;_=(h._00*l+h._10*o+h._20)/u,n=(h._01*l+h._11*o+h._21)/u;var c,d,p,g=this.transformations[this.transformations.length-1],f=a;p=i;var v=g._02*f+g._12*p+g._22;d=(g._00*f+g._10*p+g._20)/v,c=(g._01*f+g._11*p+g._21)/v;var k,m,b,S=this.transformations[this.transformations.length-1],y=r;b=s;var x=S._02*y+S._12*b+S._22;m=(S._00*y+S._10*b+S._20)/x,k=(S._01*y+S._11*b+S._21)/x,this.coloredPainter.fillTriangle(this.get_opacity(),this.get_color(),_,n,d,c,m,k)},myImageScaleQuality:null,get_imageScaleQuality:function(){return this.myImageScaleQuality},set_imageScaleQuality:function(e){return this.imagePainter.setBilinearFilter(e==kha_graphics2_ImageScaleQuality.High),this.textPainter.setBilinearFilter(e==kha_graphics2_ImageScaleQuality.High),this.myImageScaleQuality=e},myMipmapScaleQuality:null,get_mipmapScaleQuality:function(){return this.myMipmapScaleQuality},set_mipmapScaleQuality:function(e){return this.imagePainter.setBilinearMipmapFilter(e==kha_graphics2_ImageScaleQuality.High),this.myMipmapScaleQuality=e},setPipeline:function(e){this.flush(),this.imagePainter.set_pipeline(e),this.coloredPainter.set_pipeline(e),this.textPainter.set_pipeline(e),null!=e&&this.g.setPipeline(e)},scissor:function(e,t,a,i){this.flush(),this.g.scissor(e,t,a,i)},disableScissor:function(){this.flush(),this.g.disableScissor()},begin:function(e,t){null==e&&(e=!0),this.g.begin(),e&&this.clear(t),this.setProjection()},clear:function(e){this.flush(),this.g.clear(null==e?-16777216:e)},flush:function(){this.imagePainter.end(),this.textPainter.end();var e=this.coloredPainter;e.triangleBufferIndex>0&&e.drawTriBuffer(!1),e.bufferIndex>0&&e.drawBuffer(!1)},end:function(){this.flush(),this.g.end()},drawVideoInternal:function(e,t,a,i,r){},drawVideo:function(e,t,a,i,r){this.setPipeline(kha_graphics4_Graphics2.videoPipeline),this.drawVideoInternal(e,t,a,i,r),this.setPipeline(null)},__class__:kha_graphics4_Graphics2});var kha_graphics4_IndexBuffer=$hxClasses["kha.graphics4.IndexBuffer"]=function(e,t,a){null==a&&(a=!1),this.indexCount=e;var i=new Uint32Array(e);this._data=i,this.buffer=Krom.createIndexBuffer(e)};kha_graphics4_IndexBuffer.__name__=!0,kha_graphics4_IndexBuffer.prototype={buffer:null,_data:null,indexCount:null,delete:function(){Krom.deleteIndexBuffer(this.buffer),this.buffer=null},lock:function(e,t){return null==e&&(e=0),null==t&&(t=this.indexCount),this._data.subarray(e,e+t)},unlock:function(){Krom.setIndices(this.buffer,this._data)},set:function(){Krom.setIndexBuffer(this.buffer)},count:function(){return this.indexCount},__class__:kha_graphics4_IndexBuffer};var kha_graphics4_MipMapFilter=$hxClasses["kha.graphics4.MipMapFilter"]={__ename__:!0,__constructs__:["NoMipFilter","PointMipFilter","LinearMipFilter"]};kha_graphics4_MipMapFilter.NoMipFilter=["NoMipFilter",0],kha_graphics4_MipMapFilter.NoMipFilter.toString=$estr,kha_graphics4_MipMapFilter.NoMipFilter.__enum__=kha_graphics4_MipMapFilter,kha_graphics4_MipMapFilter.PointMipFilter=["PointMipFilter",1],kha_graphics4_MipMapFilter.PointMipFilter.toString=$estr,kha_graphics4_MipMapFilter.PointMipFilter.__enum__=kha_graphics4_MipMapFilter,kha_graphics4_MipMapFilter.LinearMipFilter=["LinearMipFilter",2],kha_graphics4_MipMapFilter.LinearMipFilter.toString=$estr,kha_graphics4_MipMapFilter.LinearMipFilter.__enum__=kha_graphics4_MipMapFilter;var kha_graphics4_PipelineStateBase=$hxClasses["kha.graphics4.PipelineStateBase"]=function(){this.inputLayout=null,this.interleavedLayout=!0,this.vertexShader=null,this.fragmentShader=null,this.geometryShader=null,this.tessellationControlShader=null,this.tessellationEvaluationShader=null,this.cullMode=kha_graphics4_CullMode.None,this.depthWrite=!1,this.depthMode=kha_graphics4_CompareMode.Always,this.stencilMode=kha_graphics4_CompareMode.Always,this.stencilBothPass=kha_graphics4_StencilAction.Keep,this.stencilDepthFail=kha_graphics4_StencilAction.Keep,this.stencilFail=kha_graphics4_StencilAction.Keep,this.stencilReferenceValue=0,this.stencilReadMask=255,this.stencilWriteMask=255,this.blendSource=kha_graphics4_BlendingFactor.BlendOne,this.blendDestination=kha_graphics4_BlendingFactor.BlendZero,this.blendOperation=kha_graphics4_BlendingOperation.Add,this.alphaBlendSource=kha_graphics4_BlendingFactor.BlendOne,this.alphaBlendDestination=kha_graphics4_BlendingFactor.BlendZero,this.alphaBlendOperation=kha_graphics4_BlendingOperation.Add,this.colorWriteMaskRed=this.colorWriteMaskBlue=this.colorWriteMaskGreen=this.colorWriteMaskAlpha=!0,this.conservativeRasterization=!1};kha_graphics4_PipelineStateBase.__name__=!0,kha_graphics4_PipelineStateBase.prototype={inputLayout:null,interleavedLayout:null,vertexShader:null,fragmentShader:null,geometryShader:null,tessellationControlShader:null,tessellationEvaluationShader:null,cullMode:null,depthWrite:null,depthMode:null,stencilMode:null,stencilBothPass:null,stencilDepthFail:null,stencilFail:null,stencilReferenceValue:null,stencilReadMask:null,stencilWriteMask:null,blendSource:null,blendDestination:null,blendOperation:null,alphaBlendSource:null,alphaBlendDestination:null,alphaBlendOperation:null,colorWriteMaskRed:null,colorWriteMaskGreen:null,colorWriteMaskBlue:null,colorWriteMaskAlpha:null,set_colorWriteMask:function(e){return this.colorWriteMaskRed=this.colorWriteMaskBlue=this.colorWriteMaskGreen=this.colorWriteMaskAlpha=e},conservativeRasterization:null,__class__:kha_graphics4_PipelineStateBase};var kha_graphics4_PipelineState=$hxClasses["kha.graphics4.PipelineState"]=function(){kha_graphics4_PipelineStateBase.call(this),this.pipeline=Krom.createPipeline()};kha_graphics4_PipelineState.__name__=!0,kha_graphics4_PipelineState.convertCullMode=function(e){switch(e[1]){case 0:return 0;case 1:return 1;case 2:return 2}},kha_graphics4_PipelineState.convertCompareMode=function(e){switch(e[1]){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7}},kha_graphics4_PipelineState.convertStencilAction=function(e){switch(e[1]){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7}},kha_graphics4_PipelineState.convertBlendingFactor=function(e){switch(e[1]){case 0:case 1:return 0;case 2:return 1;case 3:return 2;case 4:return 3;case 5:return 4;case 6:return 5;case 7:return 6;case 8:return 7;case 9:return 8;case 10:return 9}},kha_graphics4_PipelineState.__super__=kha_graphics4_PipelineStateBase,kha_graphics4_PipelineState.prototype=$extend(kha_graphics4_PipelineStateBase.prototype,{pipeline:null,delete:function(){Krom.deletePipeline(this.pipeline),this.pipeline=null},compile:function(){var e=this.inputLayout.length>0?this.inputLayout[0].elements:null,t=this.inputLayout.length>1?this.inputLayout[1].elements:null,a=this.inputLayout.length>2?this.inputLayout[2].elements:null,i=this.inputLayout.length>3?this.inputLayout[3].elements:null,r=null!=this.geometryShader?this.geometryShader.shader:null,s=null!=this.tessellationControlShader?this.tessellationControlShader.shader:null,n=null!=this.tessellationEvaluationShader?this.tessellationEvaluationShader.shader:null;Krom.compilePipeline(this.pipeline,e,t,a,i,this.inputLayout.length,this.vertexShader.shader,this.fragmentShader.shader,r,s,n,{interleavedLayout:this.interleavedLayout,cullMode:kha_graphics4_PipelineState.convertCullMode(this.cullMode),depthWrite:this.depthWrite,depthMode:kha_graphics4_PipelineState.convertCompareMode(this.depthMode),stencilMode:kha_graphics4_PipelineState.convertCompareMode(this.stencilMode),stencilBothPass:kha_graphics4_PipelineState.convertStencilAction(this.stencilBothPass),stencilDepthFail:kha_graphics4_PipelineState.convertStencilAction(this.stencilDepthFail),stencilFail:kha_graphics4_PipelineState.convertStencilAction(this.stencilFail),stencilReferenceValue:this.stencilReferenceValue,stencilReadMask:this.stencilReadMask,stencilWriteMask:this.stencilWriteMask,blendSource:kha_graphics4_PipelineState.convertBlendingFactor(this.blendSource),blendDestination:kha_graphics4_PipelineState.convertBlendingFactor(this.blendDestination),alphaBlendSource:kha_graphics4_PipelineState.convertBlendingFactor(this.alphaBlendSource),alphaBlendDestination:kha_graphics4_PipelineState.convertBlendingFactor(this.alphaBlendDestination),colorWriteMaskRed:this.colorWriteMaskRed,colorWriteMaskGreen:this.colorWriteMaskGreen,colorWriteMaskBlue:this.colorWriteMaskBlue,colorWriteMaskAlpha:this.colorWriteMaskAlpha,conservativeRasterization:this.conservativeRasterization})},set:function(){Krom.setPipeline(this.pipeline)},getConstantLocation:function(e){return Krom.getConstantLocation(this.pipeline,e)},getTextureUnit:function(e){return Krom.getTextureUnit(this.pipeline,e)},__class__:kha_graphics4_PipelineState});var kha_graphics4_StencilAction=$hxClasses["kha.graphics4.StencilAction"]={__ename__:!0,__constructs__:["Keep","Zero","Replace","Increment","IncrementWrap","Decrement","DecrementWrap","Invert"]};kha_graphics4_StencilAction.Keep=["Keep",0],kha_graphics4_StencilAction.Keep.toString=$estr,kha_graphics4_StencilAction.Keep.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.Zero=["Zero",1],kha_graphics4_StencilAction.Zero.toString=$estr,kha_graphics4_StencilAction.Zero.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.Replace=["Replace",2],kha_graphics4_StencilAction.Replace.toString=$estr,kha_graphics4_StencilAction.Replace.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.Increment=["Increment",3],kha_graphics4_StencilAction.Increment.toString=$estr,kha_graphics4_StencilAction.Increment.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.IncrementWrap=["IncrementWrap",4],kha_graphics4_StencilAction.IncrementWrap.toString=$estr,kha_graphics4_StencilAction.IncrementWrap.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.Decrement=["Decrement",5],kha_graphics4_StencilAction.Decrement.toString=$estr,kha_graphics4_StencilAction.Decrement.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.DecrementWrap=["DecrementWrap",6],kha_graphics4_StencilAction.DecrementWrap.toString=$estr,kha_graphics4_StencilAction.DecrementWrap.__enum__=kha_graphics4_StencilAction,kha_graphics4_StencilAction.Invert=["Invert",7],kha_graphics4_StencilAction.Invert.toString=$estr,kha_graphics4_StencilAction.Invert.__enum__=kha_graphics4_StencilAction;var kha_graphics4_TessellationControlShader=$hxClasses["kha.graphics4.TessellationControlShader"]=function(e,t){this.shader=Krom.createTessellationControlShader(e[0].bytes.b.bufferValue,t[0])};kha_graphics4_TessellationControlShader.__name__=!0,kha_graphics4_TessellationControlShader.prototype={shader:null,delete:function(){Krom.deleteShader(this.shader),this.shader=null},__class__:kha_graphics4_TessellationControlShader};var kha_graphics4_TessellationEvaluationShader=$hxClasses["kha.graphics4.TessellationEvaluationShader"]=function(e,t){this.shader=Krom.createTessellationEvaluationShader(e[0].bytes.b.bufferValue,t[0])};kha_graphics4_TessellationEvaluationShader.__name__=!0,kha_graphics4_TessellationEvaluationShader.prototype={shader:null,delete:function(){Krom.deleteShader(this.shader),this.shader=null},__class__:kha_graphics4_TessellationEvaluationShader};var kha_graphics4_TexDir=$hxClasses["kha.graphics4.TexDir"]={__ename__:!0,__constructs__:["U","V"]};kha_graphics4_TexDir.U=["U",0],kha_graphics4_TexDir.U.toString=$estr,kha_graphics4_TexDir.U.__enum__=kha_graphics4_TexDir,kha_graphics4_TexDir.V=["V",1],kha_graphics4_TexDir.V.toString=$estr,kha_graphics4_TexDir.V.__enum__=kha_graphics4_TexDir;var kha_graphics4_TextureAddressing=$hxClasses["kha.graphics4.TextureAddressing"]={__ename__:!0,__constructs__:["Repeat","Mirror","Clamp"]};kha_graphics4_TextureAddressing.Repeat=["Repeat",0],kha_graphics4_TextureAddressing.Repeat.toString=$estr,kha_graphics4_TextureAddressing.Repeat.__enum__=kha_graphics4_TextureAddressing,kha_graphics4_TextureAddressing.Mirror=["Mirror",1],kha_graphics4_TextureAddressing.Mirror.toString=$estr,kha_graphics4_TextureAddressing.Mirror.__enum__=kha_graphics4_TextureAddressing,kha_graphics4_TextureAddressing.Clamp=["Clamp",2],kha_graphics4_TextureAddressing.Clamp.toString=$estr,kha_graphics4_TextureAddressing.Clamp.__enum__=kha_graphics4_TextureAddressing;var kha_graphics4_TextureFilter=$hxClasses["kha.graphics4.TextureFilter"]={__ename__:!0,__constructs__:["PointFilter","LinearFilter","AnisotropicFilter"]};kha_graphics4_TextureFilter.PointFilter=["PointFilter",0],kha_graphics4_TextureFilter.PointFilter.toString=$estr,kha_graphics4_TextureFilter.PointFilter.__enum__=kha_graphics4_TextureFilter,kha_graphics4_TextureFilter.LinearFilter=["LinearFilter",1],kha_graphics4_TextureFilter.LinearFilter.toString=$estr,kha_graphics4_TextureFilter.LinearFilter.__enum__=kha_graphics4_TextureFilter,kha_graphics4_TextureFilter.AnisotropicFilter=["AnisotropicFilter",2],kha_graphics4_TextureFilter.AnisotropicFilter.toString=$estr,kha_graphics4_TextureFilter.AnisotropicFilter.__enum__=kha_graphics4_TextureFilter;var kha_graphics4_TextureFormat=$hxClasses["kha.graphics4.TextureFormat"]={__ename__:!0,__constructs__:["RGBA32","L8","RGBA128","DEPTH16","RGBA64","A32","A16"]};kha_graphics4_TextureFormat.RGBA32=["RGBA32",0],kha_graphics4_TextureFormat.RGBA32.toString=$estr,kha_graphics4_TextureFormat.RGBA32.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.L8=["L8",1],kha_graphics4_TextureFormat.L8.toString=$estr,kha_graphics4_TextureFormat.L8.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.RGBA128=["RGBA128",2],kha_graphics4_TextureFormat.RGBA128.toString=$estr,kha_graphics4_TextureFormat.RGBA128.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.DEPTH16=["DEPTH16",3],kha_graphics4_TextureFormat.DEPTH16.toString=$estr,kha_graphics4_TextureFormat.DEPTH16.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.RGBA64=["RGBA64",4],kha_graphics4_TextureFormat.RGBA64.toString=$estr,kha_graphics4_TextureFormat.RGBA64.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.A32=["A32",5],kha_graphics4_TextureFormat.A32.toString=$estr,kha_graphics4_TextureFormat.A32.__enum__=kha_graphics4_TextureFormat,kha_graphics4_TextureFormat.A16=["A16",6],kha_graphics4_TextureFormat.A16.toString=$estr,kha_graphics4_TextureFormat.A16.__enum__=kha_graphics4_TextureFormat;var kha_graphics4_TextureUnit=$hxClasses["kha.graphics4.TextureUnit"]=function(){};kha_graphics4_TextureUnit.__name__=!0;var kha_graphics4_Usage=$hxClasses["kha.graphics4.Usage"]={__ename__:!0,__constructs__:["StaticUsage","DynamicUsage","ReadableUsage"]};kha_graphics4_Usage.StaticUsage=["StaticUsage",0],kha_graphics4_Usage.StaticUsage.toString=$estr,kha_graphics4_Usage.StaticUsage.__enum__=kha_graphics4_Usage,kha_graphics4_Usage.DynamicUsage=["DynamicUsage",1],kha_graphics4_Usage.DynamicUsage.toString=$estr,kha_graphics4_Usage.DynamicUsage.__enum__=kha_graphics4_Usage,kha_graphics4_Usage.ReadableUsage=["ReadableUsage",2],kha_graphics4_Usage.ReadableUsage.toString=$estr,kha_graphics4_Usage.ReadableUsage.__enum__=kha_graphics4_Usage;var kha_graphics4_VertexBuffer=$hxClasses["kha.graphics4.VertexBuffer"]=function(e,t,a,i,r){null==r&&(r=!1),null==i&&(i=0),this.vertexCount=e,this.structure=t,this.buffer=Krom.createVertexBuffer(e,t.elements,i);var s=new Float32Array(e*(t.byteSize()/4|0));this._data=s};kha_graphics4_VertexBuffer.__name__=!0,kha_graphics4_VertexBuffer.prototype={buffer:null,_data:null,vertexCount:null,structure:null,delete:function(){Krom.deleteVertexBuffer(this.buffer),this.buffer=null},lock:function(e,t){return this._data},unlock:function(){Krom.setVertices(this.buffer,this._data)},stride:function(){return this.structure.byteSize()},count:function(){return this.vertexCount},set:function(e){return Krom.setVertexBuffer(this.buffer),0},__class__:kha_graphics4_VertexBuffer};var kha_graphics4_VertexData=$hxClasses["kha.graphics4.VertexData"]={__ename__:!0,__constructs__:["Float1","Float2","Float3","Float4","Float4x4"]};kha_graphics4_VertexData.Float1=["Float1",0],kha_graphics4_VertexData.Float1.toString=$estr,kha_graphics4_VertexData.Float1.__enum__=kha_graphics4_VertexData,kha_graphics4_VertexData.Float2=["Float2",1],kha_graphics4_VertexData.Float2.toString=$estr,kha_graphics4_VertexData.Float2.__enum__=kha_graphics4_VertexData,kha_graphics4_VertexData.Float3=["Float3",2],kha_graphics4_VertexData.Float3.toString=$estr,kha_graphics4_VertexData.Float3.__enum__=kha_graphics4_VertexData,kha_graphics4_VertexData.Float4=["Float4",3],kha_graphics4_VertexData.Float4.toString=$estr,kha_graphics4_VertexData.Float4.__enum__=kha_graphics4_VertexData,kha_graphics4_VertexData.Float4x4=["Float4x4",4],kha_graphics4_VertexData.Float4x4.toString=$estr,kha_graphics4_VertexData.Float4x4.__enum__=kha_graphics4_VertexData;var kha_graphics4_VertexElement=$hxClasses["kha.graphics4.VertexElement"]=function(e,t){this.name=e,this.data=t};kha_graphics4_VertexElement.__name__=!0,kha_graphics4_VertexElement.prototype={name:null,data:null,__class__:kha_graphics4_VertexElement};var kha_graphics4_VertexShader=$hxClasses["kha.graphics4.VertexShader"]=function(e,t){null!=e&&(this.shader=Krom.createVertexShader(e[0].bytes.b.bufferValue,t[0]))};kha_graphics4_VertexShader.__name__=!0,kha_graphics4_VertexShader.fromSource=function(e){var t=new kha_graphics4_VertexShader(null,null);return t.shader=Krom.createVertexShaderFromSource(e),t},kha_graphics4_VertexShader.prototype={shader:null,delete:function(){Krom.deleteShader(this.shader),this.shader=null},__class__:kha_graphics4_VertexShader};var kha_graphics4_VertexStructure=$hxClasses["kha.graphics4.VertexStructure"]=function(){this.elements=[]};kha_graphics4_VertexStructure.__name__=!0,kha_graphics4_VertexStructure.prototype={elements:null,add:function(e,t){this.elements.push(new kha_graphics4_VertexElement(e,t))},size:function(){return this.elements.length},byteSize:function(){for(var e=0,t=0,a=this.elements.length;t=kha_input_Gamepad.instances.length?null:kha_input_Gamepad.instances[e]},kha_input_Gamepad.prototype={index:null,notify:function(e,t){null!=e&&this.axisListeners.push(e),null!=t&&this.buttonListeners.push(t)},remove:function(e,t){null!=e&&HxOverrides.remove(this.axisListeners,e),null!=t&&HxOverrides.remove(this.buttonListeners,t)},axisListeners:null,buttonListeners:null,id:null,get_id:function(){return kha_SystemImpl.getGamepadId(this.index)},sendAxisEvent:function(e,t){for(var a=0,i=this.axisListeners;a>23&255,i=8388607&e;switch(a){case 0:return 0;case 255:return 0!=i?NaN:t>0?1/0:-1/0;default:return t*((i+8388608)/8388608)*Math.pow(2,a-127)}},kha_internal_BytesBlob.bit=function(e,t){if(1==(e>>>t&1)){return 0,!0}return 0,!1},kha_internal_BytesBlob.prototype={bytes:null,buffer:null,myFirstLine:null,sub:function(e,t){return new kha_internal_BytesBlob(this.bytes.sub(e,t))},length:null,get_length:function(){return this.bytes.length},writeU8:function(e,t){this.bytes.b[e]=255&t},readU8:function(e){var t=this.bytes.b[e];return++e,t},readS8:function(e){var t=this.bytes.b[e];++e;var a=0==(128&t)?1:-1;return t&=127,a*t},readU16BE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1];return e+=2,256*t+a},readU16LE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1];return e+=2,256*a+t},readU32LE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1],i=this.bytes.b[e+2],r=this.bytes.b[e+3];return e+=4,t+256*a+256*i*256+256*r*256*256},readU32BE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1],i=this.bytes.b[e+2],r=this.bytes.b[e+3];return e+=4,r+256*i+256*a*256+256*t*256*256},readS16BE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1];e+=2;var i=0==(128&t)?1:-1;return t&=127,-1==i?256*t-32767+a:256*t+a},readS16LE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1],i=0==(128&a)?1:-1;return a&=127,e+=2,-1==i?256*a-32767+t:256*a+t},readS32LE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1],i=this.bytes.b[e+2],r=this.bytes.b[e+3],s=0==(128&r)?1:-1;return r&=127,e+=4,-1==s?-2147483647+t+256*a+256*i*256+256*r*256*256:t+256*a+256*i*256+256*r*256*256},readS32BE:function(e){var t=this.bytes.b[e],a=this.bytes.b[e+1],i=this.bytes.b[e+2],r=this.bytes.b[e+3],s=0==(128&t)?1:-1;return t&=127,e+=4,-1==s?-2147483647+r+256*i+256*a*256+256*t*256*256:r+256*i+256*a*256+256*t*256*256},readF32LE:function(e){return kha_internal_BytesBlob.readF32(this.readS32LE(e))},readF32BE:function(e){return kha_internal_BytesBlob.readF32(this.readS32BE(e))},toString:function(){return this.bytes.toString()},readUtf8Char:function(e){if(e.value>=this.get_length())return-1;var t=this.readU8(e.value);++e.value;var a=0;if(kha_internal_BytesBlob.bit(t,7))if(kha_internal_BytesBlob.bit(t,7)&&kha_internal_BytesBlob.bit(t,6)&&!kha_internal_BytesBlob.bit(t,5)){var i=31&t,r=this.readU8(e.value);++e.value,a=i<<6|63&r}else kha_internal_BytesBlob.bit(t,7)&&kha_internal_BytesBlob.bit(t,6)&&kha_internal_BytesBlob.bit(t,5)&&!kha_internal_BytesBlob.bit(t,4)?e.value+=2:kha_internal_BytesBlob.bit(t,7)&&kha_internal_BytesBlob.bit(t,6)&&kha_internal_BytesBlob.bit(t,5)&&kha_internal_BytesBlob.bit(t,4)&&!kha_internal_BytesBlob.bit(t,3)&&(e.value+=3);else a=t;return a},readUtf8Block:function(e){var t=0;if(e.value>=this.get_length())return"";for(;t<2e3;){var a=this.readUtf8Char(e);if(a<0)break;this.buffer[t]=a,++t}if(this.myFirstLine&&(this.myFirstLine=!1,t>2&&239==this.buffer[0]&&187==this.buffer[1]&&191==this.buffer[2])){for(var i=[],r=3,s=t-3;r>>16)}),"R",0,1,!0),r=e.slider(t.nest(1,{value:.00392156862745098*((65280&t.color)>>>8)}),"G",0,1,!0),s=e.slider(t.nest(2,{value:.00392156862745098*(255&t.color)}),"B",0,1,!0),n=.00392156862745098*(t.color>>>24);a&&(n=e.slider(t.nest(3,{value:n}),"A",0,1,!0));var _=kha__$Color_Color_$Impl_$.fromFloats(i,r,s,n);return e.text("",2,_),_},zui_Ext.initPath=function(e,t){e.text="Windows"==t?"C:\\Users":"/"},zui_Ext.fileBrowser=function(e,t){var a="ls ",i=kha_System.get_systemId();""==t.text&&(zui_Ext.initPath(t,i),"Windows"==i&&(a="dir "));var r="Linux"==i?"/tmp":Krom.savePath();r+="/dir.txt",Krom.sysCommand(a+t.text+' > "'+r+'"');var s=haxe_io_Bytes.ofData(Krom.loadBlob(r)).toString().split("\n");(-1!=t.text.indexOf("/",1)||-1!=t.text.indexOf("\\",2))&&e.button("..",0)&&(t.text=t.text.substring(0,t.text.lastIndexOf("/")));for(var n=0;n0||this.isScrolling||this.isTyping){e.dragEnabled&&(this.g.set_color(this.t.SEPARATOR_COL),this.g.fillRect(0,0,this._windowW,15));var t=this._y-e.scrollOffset;if(t0?e.scrollOffset=0:t+e.scrollOffset0&&(this.g.set_color(1==a?this.t.PANEL_BG1_COL:this.t.PANEL_BG2_COL),this.g.fillRect(this._x,this._y,this._w,this.t._ELEMENT_H*this.SCALE)),this.drawArrow(e.selected,i),this.g.set_color(i?this.t.PANEL_TEXT_COL_HOVER:this.t.PANEL_TEXT_COL),this.g.set_opacity(1),a>0?this.drawString(this.g,t,this.titleOffsetX,0):this.drawStringSmall(this.g,t,this.titleOffsetX,0),this.endElement(),e.selected},image:function(e,t){null==t&&(t=-1);var a=this._w-2*this.buttonOffsetY,i=this._x+this.buttonOffsetY;if(!(null!=this.currentWindow&&this.currentWindow.scrollEnabled)){var r=-1==this.curRatio?1:this.ratios[this.curRatio];a-=(this.t._SCROLL_W*this.SCALE|0)*r,i+=(this.t._SCROLL_W*this.SCALE|0)*r/2}var s=a/e.get_width(),n=e.get_height()*s;if(!this.isVisible(n))return this.endElement(n),0;var _=this.getStarted(n),o=this.getPushed(n),h=this.getReleased(n);return this.g.set_color(t),this.g.drawScaledImage(e,i,this._y,a,n),this.endElement(n),_?1:h?3:o?2:0},text:function(e,t,a){null==a&&(a=0),null==t&&(t=0),this.isVisible(this.t._ELEMENT_H*this.SCALE)?(0!=a&&(this.g.set_color(a),this.g.fillRect(this._x+this.buttonOffsetY,this._y+this.buttonOffsetY,this._w-2*this.buttonOffsetY,this.t._BUTTON_H*this.SCALE)),this.g.set_color(this.t.TEXT_COL),this.drawStringSmall(this.g,e,this.t._DEFAULT_TEXT_OFFSET_X*this.SCALE,0,t),this.endElement()):this.endElement()},textInput:function(e,t,a){if(null==a&&(a=0),null==t&&(t=""),!this.isVisible(this.t._ELEMENT_H*this.SCALE))return this.endElement(),e.text;this.submitTextHandle==e?(e.text=this.textToSubmit,e.changed=this.changed=!0,this.textToSubmit="",this.submitTextHandle=null,this.textSelectedCurrentText=""):e.changed=!1;var i=this.getHover();this.g.set_color(i?this.t.TEXT_INPUT_BG_COL_HOVER:this.t.TEXT_INPUT_BG_COL);var r=this.g,s=this._x+this.buttonOffsetY,n=this._y+this.buttonOffsetY,_=this._w-2*this.buttonOffsetY,o=this.t._BUTTON_H*this.SCALE;if(this.t.FILL_TEXT_INPUT_BG?r.fillRect(s,n,_,o):r.drawRect(s,n,_,o,this.t._LINE_STRENGTH*this.SCALE),this.textSelectedHandle!=e&&this.getReleased()&&(this.isTyping=!0,this.submitTextHandle=this.textSelectedHandle,this.textToSubmit=this.textSelectedCurrentText,this.textSelectedHandle=e,this.textSelectedCurrentText=e.text,this.cursorX=e.text.length,this.cursorY=0,null!=kha_input_Keyboard.get()&&kha_input_Keyboard.get().show()),this.textSelectedHandle==e){var h=this.textSelectedCurrentText;if(this.isKeyDown&&(37==this.key?this.cursorX>0&&this.cursorX--:39==this.key?this.cursorX0&&(h=HxOverrides.substr(h,0,this.cursorX-1)+HxOverrides.substr(h,this.cursorX,null),this.cursorX--):13==this.key?this.deselectText():16!=this.key&&20!=this.key&&null!=this.char&&""!=this.char&&HxOverrides.cca(this.char,0)>=32&&127!=HxOverrides.cca(this.char,0)&&(h=HxOverrides.substr(h,0,this.cursorX)+this.char+HxOverrides.substr(h,this.cursorX,null),this.cursorX++)),kha_Scheduler.time()%(2*this.t.TEXT_CURSOR_FLASH_SPEED)=t.length&&(e.position=0),e.changed=this.changed=!0):e.changed=!1;var a=this.getHover();return this.drawInlineRadio(t[e.position],a),this.endElement(),e.position},combo:function(e,t,a,i,r){if(null==r&&(r=0),null==i&&(i=!1),null==a&&(a=""),!this.isVisible(this.t._ELEMENT_H*this.SCALE))return this.endElement(),e.position;this.getReleased()&&null==this.comboSelectedHandle&&(this.inputEnabled=!1,this.comboSelectedHandle=e,this.comboSelectedWindow=this.currentWindow,this.comboSelectedAlign=r,this.comboSelectedTexts=t,this.comboSelectedLabel=a,this.comboSelectedX=this._x+this._windowX|0,this.comboSelectedY=this._y+this._windowY+this.t._ELEMENT_H*this.SCALE+this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE|0,this.comboSelectedW=0|this._w),e==this.submitComboHandle?(e.position=this.comboToSubmit,this.submitComboHandle=null,e.changed=this.changed=!0):e.changed=!1,this.getHover()?(this.g.set_color(this.t.RADIO_COL_HOVER),this.g.drawRect(this._x+this.buttonOffsetY,this._y+this.buttonOffsetY,this._w-2*this.buttonOffsetY,this.t._BUTTON_H*this.SCALE)):(this.g.set_color(this.t.RADIO_COL),this.g.drawRect(this._x+this.buttonOffsetY,this._y+this.buttonOffsetY,this._w-2*this.buttonOffsetY,this.t._BUTTON_H*this.SCALE));var s=this._x+this._w-this.arrowOffsetX-8,n=this._y+this.arrowOffsetY+3;return this.g.fillTriangle(s,n,s+this.t._ARROW_W*this.SCALE,n,s+this.t._ARROW_W*this.SCALE/2,n+this.t._ARROW_H*this.SCALE/2),this.g.set_color(this.t.TEXT_COL),i&&""!=a&&(0==r&&(this._x-=15),this.drawStringSmall(this.g,a,null,null,0==r?2:0),0==r&&(this._x+=15)),2==r&&(this._x-=15),this.drawStringSmall(this.g,t[e.position],null,null,r),2==r&&(this._x+=15),this.endElement(),e.position},slider:function(e,t,a,i,r,s,n,_){if(null==_&&(_=2),null==n&&(n=!0),null==s&&(s=100),null==r&&(r=!1),null==i&&(i=1),null==a&&(a=0),!this.isVisible(this.t._ELEMENT_H*this.SCALE))return this.endElement(),e.value;if(this.getStarted()&&(e.scrolling=!0,this.scrollingHandle=e,this.isScrolling=!0),e.scrolling){var o=i-a,h=this._x+this._windowX+this.buttonOffsetY,l=o/(this._w-2*this.buttonOffsetY),u=a+(this.inputX-h)*l;e.value=(u*s|0)/s,e.valuei&&(e.value=i),e.changed=this.changed=!0}else e.changed=!1;var c=this.getHover();return this.drawSlider(e.value,a,i,r,c),this.g.set_color(this.t.DEFAULT_LABEL_COL),this.drawStringSmall(this.g,t,null,0,_),n&&(this.g.set_color(this.t.TEXT_COL),this.drawStringSmall(this.g,e.value+"",null,0,0==_?2:0)),this.endElement(),e.value},separator:function(){this.isVisible(this.t._ELEMENT_H*this.SCALE)?(this.g.set_color(this.t.SEPARATOR_COL),this.g.fillRect(this._x,this._y,this._w-this.t._DEFAULT_TEXT_OFFSET_X*this.SCALE,this.t._LINE_STRENGTH*this.SCALE),this._y+=2):this._y+=2},drawArrow:function(e,t){var a=this._x+this.arrowOffsetX,i=this._y+this.arrowOffsetY;this.g.set_color(t?this.t.ARROW_COL_HOVER:this.t.ARROW_COL),e?this.g.fillTriangle(a,i,a+this.t._ARROW_W*this.SCALE,i,a+this.t._ARROW_W*this.SCALE/2,i+this.t._ARROW_H*this.SCALE):this.g.fillTriangle(a,i,a,i+this.t._ARROW_H*this.SCALE,a+this.t._ARROW_W*this.SCALE,i+this.t._ARROW_H*this.SCALE/2)},drawCheck:function(e,t){var a=this._x+this.checkOffsetX,i=this._y+this.checkOffsetY;this.g.set_color(t?this.t.CHECK_COL_HOVER:this.t.CHECK_COL);var r=this.g,s=this.t._CHECK_W*this.SCALE,n=this.t._CHECK_H*this.SCALE;this.t.FILL_CHECK_BG?r.fillRect(a,i,s,n):r.drawRect(a,i,s,n,this.t._LINE_STRENGTH*this.SCALE),e&&(this.g.set_color(-1),this.g.drawImage(zui_Zui.checkSelectImage,a+this.checkSelectOffsetX,i+this.checkSelectOffsetY))},drawRadio:function(e,t){var a=this._x+this.radioOffsetX,i=this._y+this.radioOffsetY;this.g.set_color(t?this.t.RADIO_COL_HOVER:this.t.RADIO_COL);var r=this.g,s=this.t._RADIO_W*this.SCALE,n=this.t._RADIO_H*this.SCALE;this.t.FILL_RADIO_BG?r.fillRect(a,i,s,n):r.drawRect(a,i,s,n,this.t._LINE_STRENGTH*this.SCALE),e&&(this.g.set_color(this.t.RADIO_SELECT_COL),this.g.fillRect(a+this.radioSelectOffsetX,i+this.radioSelectOffsetY,this.t._RADIO_SELECT_W*this.SCALE,this.t._RADIO_SELECT_H*this.SCALE))},drawInlineRadio:function(e,t){t?(this.g.set_color(this.t.RADIO_COL_HOVER),this.g.fillRect(this._x+this.buttonOffsetY,this._y+this.buttonOffsetY,this._w-2*this.buttonOffsetY,this.t._BUTTON_H*this.SCALE)):(this.g.set_color(this.t.RADIO_COL),this.g.drawRect(this._x+this.buttonOffsetY,this._y+this.buttonOffsetY,this._w-2*this.buttonOffsetY,this.t._BUTTON_H*this.SCALE)),this.g.set_color(t?this.t.TEXT_COL_HOVER:this.t.TEXT_COL),this.drawStringSmall(this.g,e,this.titleOffsetX,0,1)},drawSlider:function(e,t,a,i,r){var s=this._x+this.buttonOffsetY,n=this._y+this.buttonOffsetY,_=this._w-2*this.buttonOffsetY;this.g.set_color(r?this.t.CHECK_COL_HOVER:this.t.CHECK_COL);var o=this.g,h=this.t._BUTTON_H*this.SCALE;this.t.FILL_SLIDER_BG?o.fillRect(s,n,_,h):o.drawRect(s,n,_,h,this.t._LINE_STRENGTH*this.SCALE),this.g.set_color(r?this.t.SLIDER_COL_HOVER:this.t.SLIDER_COL);var l=(e-t)/(a-t),u=8*this.SCALE,c=i?s:s+(_-u)*l,d=i?_*l:u;this.g.fillRect(c,n,d,this.t._BUTTON_H*this.SCALE)},drawCombo:function(){var e=this.g;this.globalG.set_color(-14540254);var t=this.t._ELEMENT_H*this.SCALE+this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE;this.globalG.begin(!1),this.globalG.fillRect(this.comboSelectedX,this.comboSelectedY,this.comboSelectedW,(this.comboSelectedTexts.length+1)*t),this.beginLayout(this.globalG,this.comboSelectedX,this.comboSelectedY,this.comboSelectedW),this.inputEnabled=!0;for(var a=0,i=this.comboSelectedTexts.length;as&&(t=t.substring(0,s)+".."),null==a&&(a=this.t._DEFAULT_TEXT_OFFSET_X),a*=this.SCALE,e.set_font(this.ops.font),e.set_fontSize(this.fontSize),1==r?a=this._w/2-this.ops.font.width(this.fontSize,t)/2:2==r&&(a=this._w-this.ops.font.width(this.fontSize,t)-this.t._DEFAULT_TEXT_OFFSET_X*this.SCALE),e.drawString(t,this._x+a,this._y+this.fontOffsetY+i)},drawStringSmall:function(e,t,a,i,r){null==r&&(r=0),null==i&&(i=0);var s=this._w/(this.fontSmallSize/2|0)|0;t.length>s&&(t=t.substring(0,s)+".."),null==a&&(a=this.t._DEFAULT_TEXT_OFFSET_X),a*=this.SCALE,e.set_font(this.ops.font),e.set_fontSize(this.fontSmallSize),1==r?a=this._w/2-this.ops.font.width(this.fontSmallSize,t)/2:2==r&&(a=this._w-this.ops.font.width(this.fontSmallSize,t)-this.t._DEFAULT_TEXT_OFFSET_X*this.SCALE),e.drawString(t,this._x+a,this._y+this.fontSmallOffsetY+i)},endElement:function(e){null!=this.currentWindow?0==this.currentWindow.layout?-1==this.curRatio||null!=this.ratios&&this.curRatio==this.ratios.length-1?(null==e&&(e=this.t._ELEMENT_H*this.SCALE+this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE),this._y+=e,null!=this.ratios&&this.curRatio==this.ratios.length-1&&(this.curRatio=-1,this.ratios=null,this._x=this.xBeforeSplit,this._w=this.wBeforeSplit)):(this.curRatio++,this._x+=this._w,this._w=this.wBeforeSplit*this.ratios[this.curRatio]|0):this._x+=this._w+this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE:this._y+=this.t._ELEMENT_H*this.SCALE+this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE},row:function(e){this.ratios=e,this.curRatio=0,this.xBeforeSplit=this._x,this.wBeforeSplit=this._w,this._w=this._w*e[this.curRatio]|0},indent:function(){this._x+=this.t._TAB_W*this.SCALE|0,this._w-=this.t._TAB_W*this.SCALE|0},unindent:function(){this._x-=this.t._TAB_W*this.SCALE|0,this._w+=this.t._TAB_W*this.SCALE|0},drawRect:function(e,t,a,i,r,s,n){null==n&&(n=1),t?e.fillRect(a,i,r,s):e.drawRect(a,i,r,s,this.t._LINE_STRENGTH*this.SCALE)},isVisible:function(e){return null==this.currentWindow||this._y+e>0&&this._y=this._windowX+this._x&&this.inputInitialX=this._windowY+this._y)&&this.inputInitialY=this._windowX+this._x&&this.inputX=this._windowY+this._y)&&this.inputY=e*r&&this.inputX<(e+a)*r&&this.inputY>=t*r)&&this.inputY<(t+i)*r},onMouseDown:function(e,t,a){this.inputStarted=!0,0==e?this.inputDown=!0:this.inputDownR=!0,this.setInitialInputPosition(t*this.ops.scaleTexture|0,a*this.ops.scaleTexture|0)},onMouseUp:function(e,t,a){this.isScrolling?(this.isScrolling=!1,null!=this.scrollingHandle&&(this.scrollingHandle.scrolling=!1)):this.inputReleased=!0,0==e?this.inputDown=!1:this.inputDownR=!1,this.setInputPosition(t*this.ops.scaleTexture|0,a*this.ops.scaleTexture|0),this.deselectText()},onMouseMove:function(e,t,a,i){this.setInputPosition(e*this.ops.scaleTexture|0,t*this.ops.scaleTexture|0)},onMouseWheel:function(e){this.inputWheelDelta=e},setInitialInputPosition:function(e,t){this.setInputPosition(e,t),this.inputInitialX=e,this.inputInitialY=t},setInputPosition:function(e,t){this.inputDX+=e-this.inputX,this.inputDY+=t-this.inputY,this.inputX=e,this.inputY=t},onKeyDown:function(e){this.isKeyDown=!0,this.key=e,32==e&&(this.char=" ")},onKeyUp:function(e){},onKeyPress:function(e){this.isKeyDown=!0,this.char=e},ELEMENT_W:function(){return this.t._ELEMENT_W*this.SCALE},ELEMENT_H:function(){return this.t._ELEMENT_H*this.SCALE},ELEMENT_SEPARATOR_SIZE:function(){return this.t._ELEMENT_SEPARATOR_SIZE*this.SCALE},ARROW_W:function(){return this.t._ARROW_W*this.SCALE},ARROW_H:function(){return this.t._ARROW_H*this.SCALE},BUTTON_H:function(){return this.t._BUTTON_H*this.SCALE},CHECK_W:function(){return this.t._CHECK_W*this.SCALE},CHECK_H:function(){return this.t._CHECK_H*this.SCALE},CHECK_SELECT_W:function(){return this.t._CHECK_SELECT_W*this.SCALE},CHECK_SELECT_H:function(){return this.t._CHECK_SELECT_H*this.SCALE},RADIO_W:function(){return this.t._RADIO_W*this.SCALE},RADIO_H:function(){return this.t._RADIO_H*this.SCALE},RADIO_SELECT_W:function(){return this.t._RADIO_SELECT_W*this.SCALE},RADIO_SELECT_H:function(){return this.t._RADIO_SELECT_H*this.SCALE},SCROLL_W:function(){return this.t._SCROLL_W*this.SCALE|0},SCROLL_BAR_W:function(){return this.t._SCROLL_BAR_W*this.SCALE},DEFAULT_TEXT_OFFSET_X:function(){return this.t._DEFAULT_TEXT_OFFSET_X*this.SCALE},TAB_W:function(){return this.t._TAB_W*this.SCALE|0},LINE_STRENGTH:function(){return this.t._LINE_STRENGTH*this.SCALE},resize:function(e,t,a,i){null==i&&(i=0),e.redraws=2,null!=e.texture&&e.texture.unload(),e.texture=kha_Image.createRenderTarget(t,a,kha_graphics4_TextureFormat.RGBA32,0,1,i),e.texture.get_g2().set_imageScaleQuality(kha_graphics2_ImageScaleQuality.High)},__class__:zui_Zui};var zui_Handle=$hxClasses["zui.Handle"]=function(e){this.changed=!1,this.dragY=0,this.dragX=0,this.dragEnabled=!1,this.dragging=!1,this.lastMaxY=0,this.lastMaxX=0,this.layout=0,this.scrollEnabled=!1,this.scrollOffset=0,this.scrolling=!1,this.redraws=2,this.texture=null,this.text="",this.value=0,this.b=0,this.g=0,this.r=0,this.color=-1,this.position=0,this.selected=!1,null!=e&&(null!=e.selected&&(this.selected=e.selected),null!=e.position&&(this.position=e.position),null!=e.value&&(this.value=e.value),null!=e.text&&(this.text=e.text),null!=e.color&&(this.color=e.color),null!=e.layout&&(this.layout=e.layout))};zui_Handle.__name__=!0,zui_Handle.prototype={selected:null,position:null,color:null,r:null,g:null,b:null,value:null,text:null,texture:null,redraws:null,scrolling:null,scrollOffset:null,scrollEnabled:null,layout:null,lastMaxX:null,lastMaxY:null,dragging:null,dragEnabled:null,dragX:null,dragY:null,changed:null,children:null,nest:function(e,t){for(null==this.children&&(this.children=[]);this.children.length<=e;)this.children.push(null);return null==this.children[e]&&(this.children[e]=new zui_Handle(t)),this.children[e]},__class__:zui_Handle};var $_,$fid=0;$hxClasses.Math=Math,String.prototype.__class__=$hxClasses.String=String,String.__name__=!0,$hxClasses.Array=Array,Array.__name__=!0,Date.prototype.__class__=$hxClasses.Date=Date,Date.__name__=["Date"];var Int=$hxClasses.Int={__name__:["Int"]},Dynamic=$hxClasses.Dynamic={__name__:["Dynamic"]},Float=$hxClasses.Float=Number;Float.__name__=["Float"];var Bool=$hxClasses.Bool=Boolean;Bool.__ename__=["Bool"];var Class=$hxClasses.Class={__name__:["Class"]},Enum={},__map_reserved={},ArrayBuffer=$global.ArrayBuffer||js_html_compat_ArrayBuffer;null==ArrayBuffer.prototype.slice&&(ArrayBuffer.prototype.slice=js_html_compat_ArrayBuffer.sliceImpl);var DataView=$global.DataView||js_html_compat_DataView,Float32Array=$global.Float32Array||js_html_compat_Float32Array._new,Uint8Array=$global.Uint8Array||js_html_compat_Uint8Array._new;Elements.uiw=240,Elements.coff=40,haxe_Unserializer.DEFAULT_RESOLVER=new haxe__$Unserializer_DefaultResolver,haxe_Unserializer.BASE64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:",haxe_ds_ObjectMap.count=0,haxe_io_FPHelper.i64tmp=new haxe__$Int64__$_$_$Int64(0,0),js_Boot.__toStr={}.toString,js_html_compat_Float32Array.BYTES_PER_ELEMENT=4,js_html_compat_Uint8Array.BYTES_PER_ELEMENT=1,kha_Assets.images=new kha__$Assets_ImageList,kha_Assets.sounds=new kha__$Assets_SoundList,kha_Assets.blobs=new kha__$Assets_BlobList,kha_Assets.fonts=new kha__$Assets_FontList,kha_Assets.videos=new kha__$Assets_VideoList,kha__$Color_Color_$Impl_$.Black=-16777216,kha__$Color_Color_$Impl_$.White=-1,kha__$Color_Color_$Impl_$.Red=-65536,kha__$Color_Color_$Impl_$.Blue=-16776961,kha__$Color_Color_$Impl_$.Green=-16711936,kha__$Color_Color_$Impl_$.Magenta=-65281,kha__$Color_Color_$Impl_$.Yellow=-256,kha__$Color_Color_$Impl_$.Cyan=-16711681,kha__$Color_Color_$Impl_$.Purple=-8388480,kha__$Color_Color_$Impl_$.Pink=-16181,kha__$Color_Color_$Impl_$.Orange=-23296,kha__$Color_Color_$Impl_$.Transparent=0,kha__$Color_Color_$Impl_$.invMaxChannelValue=.00392156862745098,kha_FontStyle.Default=new kha_FontStyle(!1,!1,!1),kha_Scheduler.timeWarpSaveTime=1,kha_Scheduler.DIF_COUNT=3,kha_Scheduler.maxframetime=.5,kha_Scheduler.startTime=0,kha_Shaders.painter_colored_fragData0="s274:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgpvdXQgdmVjNCBGcmFnQ29sb3I7CmluIHZlYzQgZnJhZ21lbnRDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIEZyYWdDb2xvciA9IGZyYWdtZW50Q29sb3I7Cn0KCg",kha_Shaders.painter_colored_vertData0="s439:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmluIHZlYzMgdmVydGV4UG9zaXRpb247Cm91dCB2ZWM0IGZyYWdtZW50Q29sb3I7CmluIHZlYzQgdmVydGV4Q29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2ZWM0KHZlcnRleFBvc2l0aW9uLCAxLjApOwogICAgZnJhZ21lbnRDb2xvciA9IHZlcnRleENvbG9yOwp9Cgo",kha_Shaders.painter_image_fragData0="s506:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIHNhbXBsZXIyRCB0ZXg7CgppbiB2ZWMyIHRleENvb3JkOwppbiB2ZWM0IGNvbG9yOwpvdXQgdmVjNCBGcmFnQ29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICB2ZWM0IHRleGNvbG9yID0gdGV4dHVyZSh0ZXgsIHRleENvb3JkKSAqIGNvbG9yOwogICAgdmVjMyBfMzIgPSB0ZXhjb2xvci54eXogKiBjb2xvci53OwogICAgdGV4Y29sb3IgPSB2ZWM0KF8zMi54LCBfMzIueSwgXzMyLnosIHRleGNvbG9yLncpOwogICAgRnJhZ0NvbG9yID0gdGV4Y29sb3I7Cn0KCg",kha_Shaders.painter_image_vertData0="s508:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmluIHZlYzMgdmVydGV4UG9zaXRpb247Cm91dCB2ZWMyIHRleENvb3JkOwppbiB2ZWMyIHRleFBvc2l0aW9uOwpvdXQgdmVjNCBjb2xvcjsKaW4gdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICB0ZXhDb29yZCA9IHRleFBvc2l0aW9uOwogICAgY29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK",kha_Shaders.painter_text_fragData0="s402:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIHNhbXBsZXIyRCB0ZXg7CgpvdXQgdmVjNCBGcmFnQ29sb3I7CmluIHZlYzQgZnJhZ21lbnRDb2xvcjsKaW4gdmVjMiB0ZXhDb29yZDsKCnZvaWQgbWFpbigpCnsKICAgIEZyYWdDb2xvciA9IHZlYzQoZnJhZ21lbnRDb2xvci54eXosIHRleHR1cmUodGV4LCB0ZXhDb29yZCkueCAqIGZyYWdtZW50Q29sb3Iudyk7Cn0KCg",kha_Shaders.painter_text_vertData0="s530:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmluIHZlYzMgdmVydGV4UG9zaXRpb247Cm91dCB2ZWMyIHRleENvb3JkOwppbiB2ZWMyIHRleFBvc2l0aW9uOwpvdXQgdmVjNCBmcmFnbWVudENvbG9yOwppbiB2ZWM0IHZlcnRleENvbG9yOwoKdm9pZCBtYWluKCkKewogICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTsKICAgIHRleENvb3JkID0gdGV4UG9zaXRpb247CiAgICBmcmFnbWVudENvbG9yID0gdmVydGV4Q29sb3I7Cn0KCg",kha_Shaders.painter_video_fragData0="s506:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIHNhbXBsZXIyRCB0ZXg7CgppbiB2ZWMyIHRleENvb3JkOwppbiB2ZWM0IGNvbG9yOwpvdXQgdmVjNCBGcmFnQ29sb3I7Cgp2b2lkIG1haW4oKQp7CiAgICB2ZWM0IHRleGNvbG9yID0gdGV4dHVyZSh0ZXgsIHRleENvb3JkKSAqIGNvbG9yOwogICAgdmVjMyBfMzIgPSB0ZXhjb2xvci54eXogKiBjb2xvci53OwogICAgdGV4Y29sb3IgPSB2ZWM0KF8zMi54LCBfMzIueSwgXzMyLnosIHRleGNvbG9yLncpOwogICAgRnJhZ0NvbG9yID0gdGV4Y29sb3I7Cn0KCg",kha_Shaders.painter_video_vertData0="s508:I3ZlcnNpb24gMzMwCiNpZmRlZiBHTF9BUkJfc2hhZGluZ19sYW5ndWFnZV80MjBwYWNrCiNleHRlbnNpb24gR0xfQVJCX3NoYWRpbmdfbGFuZ3VhZ2VfNDIwcGFjayA6IHJlcXVpcmUKI2VuZGlmCgp1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeDsKCmluIHZlYzMgdmVydGV4UG9zaXRpb247Cm91dCB2ZWMyIHRleENvb3JkOwppbiB2ZWMyIHRleFBvc2l0aW9uOwpvdXQgdmVjNCBjb2xvcjsKaW4gdmVjNCB2ZXJ0ZXhDb2xvcjsKCnZvaWQgbWFpbigpCnsKICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7CiAgICB0ZXhDb29yZCA9IHRleFBvc2l0aW9uOwogICAgY29sb3IgPSB2ZXJ0ZXhDb2xvcjsKfQoK",kha_System.renderListeners=[],kha_System.foregroundListeners=[],kha_System.resumeListeners=[],kha_System.pauseListeners=[],kha_System.backgroundListeners=[],kha_System.shutdownListeners=[],kha_System.dropFilesListeners=[],kha_SystemImpl.maxGamepads=4,kha_audio2_Audio1.channelCount=16,kha_audio2_ogg_tools_Crc32.POLY=79764919,kha_audio2_ogg_vorbis_VorbisDecodeState.INVALID_BITS=-1,kha_audio2_ogg_vorbis_VorbisTools.EOP=-1,kha_audio2_ogg_vorbis_VorbisTools.M__PI=3.141592653589793,kha_audio2_ogg_vorbis_VorbisTools.DIVTAB_NUMER=32,kha_audio2_ogg_vorbis_VorbisTools.DIVTAB_DENOM=64,kha_audio2_ogg_vorbis_VorbisTools.INVERSE_DB_TABLE=[1.0649863e-7,1.1341951e-7,1.2079015e-7,1.2863978e-7,1.3699951e-7,1.4590251e-7,1.5538408e-7,1.6548181e-7,1.7623575e-7,1.8768855e-7,1.9988561e-7,2.128753e-7,2.2670913e-7,2.4144197e-7,2.5713223e-7,2.7384213e-7,2.9163793e-7,3.1059021e-7,3.3077411e-7,3.5226968e-7,3.7516214e-7,3.9954229e-7,4.255068e-7,4.5315863e-7,4.8260743e-7,5.1396998e-7,5.4737065e-7,5.8294187e-7,6.2082472e-7,6.6116941e-7,7.0413592e-7,7.4989464e-7,7.9862701e-7,8.505263e-7,9.0579828e-7,9.6466216e-7,10273513e-13,10941144e-13,11652161e-13,12409384e-13,13215816e-13,14074654e-13,14989305e-13,15963394e-13,17000785e-13,18105592e-13,19282195e-13,20535261e-13,21869758e-13,23290978e-13,24804557e-13,26416497e-13,2813319e-12,29961443e-13,31908506e-13,33982101e-13,36190449e-13,38542308e-13,41047004e-13,4371447e-12,46555282e-13,49580707e-13,5280274e-12,5623416e-12,59888572e-13,63780469e-13,67925283e-13,72339451e-13,77040476e-13,82047e-10,87378876e-13,93057248e-13,99104632e-13,10554501e-12,11240392e-12,11970856e-12,12748789e-12,13577278e-12,14459606e-12,15399272e-12,16400004e-12,17465768e-12,18600792e-12,19809576e-12,21096914e-12,22467911e-12,23928002e-12,25482978e-12,27139006e-12,28902651e-12,30780908e-12,32781225e-12,34911534e-12,37180282e-12,39596466e-12,42169667e-12,4491009e-11,47828601e-12,50936773e-12,54246931e-12,57772202e-12,61526565e-12,65524908e-12,69783085e-12,74317983e-12,79147585e-12,8429104e-11,89768747e-12,95602426e-12,.00010181521,.00010843174,.00011547824,.00012298267,.00013097477,.00013948625,.00014855085,.00015820453,.00016848555,.00017943469,.00019109536,.00020351382,.00021673929,.00023082423,.00024582449,.00026179955,.00027881276,.00029693158,.00031622787,.00033677814,.00035866388,.00038197188,.00040679456,.00043323036,.00046138411,.00049136745,.00052329927,.00055730621,.00059352311,.00063209358,.00067317058,716917e-9,.0007635063,.00081312324,.00086596457,.00092223983,.00098217216,.0010459992,.0011139742,.0011863665,.0012634633,.0013455702,.0014330129,.0015261382,.0016253153,.0017309374,.0018434235,.0019632195,.0020908006,.0022266726,.0023713743,.0025254795,.0026895994,.0028643847,.0030505286,.0032487691,.0034598925,.0036847358,.0039241906,.0041792066,.004450795,.0047400328,.0050480668,.0053761186,.0057254891,.0060975636,.0064938176,.0069158225,.0073652516,.0078438871,.0083536271,.0088964928,.009474637,.010090352,.01074608,.011444421,.012188144,.012980198,.013823725,.014722068,.015678791,.016697687,.017782797,.018938423,.020169149,.021479854,.022875735,.02436233,.025945531,.027631618,.029427276,.031339626,.033376252,.035545228,.037855157,.040315199,.042935108,.045725273,.048696758,.051861348,.055231591,.05882085,.062643361,.066714279,.071049749,.075666962,.080584227,.085821044,.091398179,.097337747,.1036633,.11039993,.11757434,.12521498,.13335215,.14201813,.15124727,.16107617,.1715438,.18269168,.19456402,.20720788,.22067342,.23501402,.25028656,.26655159,.28387361,.30232132,.32196786,.34289114,.36517414,.38890521,.41417847,.44109412,.4697589,.50028648,.53279791,.56742212,.6042964,.64356699,.68538959,.72993007,.77736504,.8278826,.88168307,.9389798,1],kha_audio2_ogg_vorbis_data_Codebook.NO_CODE=255,kha_audio2_ogg_vorbis_data_Codebook.delay=0,kha_audio2_ogg_vorbis_data_Header.PACKET_ID=1,kha_audio2_ogg_vorbis_data_Header.PACKET_COMMENT=3,kha_audio2_ogg_vorbis_data_Header.PACKET_SETUP=5,kha_audio2_ogg_vorbis_data_PageFlag.CONTINUED_PACKET=1,kha_audio2_ogg_vorbis_data_PageFlag.FIRST_PAGE=2,kha_audio2_ogg_vorbis_data_PageFlag.LAST_PAGE=4,kha_audio2_ogg_vorbis_data_Setting.MAX_CHANNELS=16,kha_audio2_ogg_vorbis_data_Setting.PUSHDATA_CRC_COUNT=4,kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_LENGTH=10,kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_TABLE_SIZE=1024,kha_audio2_ogg_vorbis_data_Setting.FAST_HUFFMAN_TABLE_MASK=1023,kha_graphics2_truetype_StbTruetype.STBTT_vmove=1,kha_graphics2_truetype_StbTruetype.STBTT_vline=2,kha_graphics2_truetype_StbTruetype.STBTT_vcurve=3,kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_DONTCARE=0,kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_BOLD=1,kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_ITALIC=2,kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_UNDERSCORE=4,kha_graphics2_truetype_StbTruetype.STBTT_MACSTYLE_NONE=8,kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_UNICODE=0,kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_MAC=1,kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_ISO=2,kha_graphics2_truetype_StbTruetype.STBTT_PLATFORM_ID_MICROSOFT=3,kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_1_0=0,kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_1_1=1,kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_ISO_10646=2,kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_2_0_BMP=3,kha_graphics2_truetype_StbTruetype.STBTT_UNICODE_EID_UNICODE_2_0_FULL=4,kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_SYMBOL=0,kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_UNICODE_BMP=1,kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_SHIFTJIS=2,kha_graphics2_truetype_StbTruetype.STBTT_MS_EID_UNICODE_FULL=10,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_ROMAN=0,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_ARABIC=4,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_JAPANESE=1,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_HEBREW=5,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_CHINESE_TRAD=2,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_GREEK=6,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_KOREAN=3,kha_graphics2_truetype_StbTruetype.STBTT_MAC_EID_RUSSIAN=7,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_ENGLISH=1033,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_ITALIAN=1040,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_CHINESE=2052,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_JAPANESE=1041,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_DUTCH=1043,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_KOREAN=1042,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_FRENCH=1036,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_RUSSIAN=1049,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_GERMAN=1031,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_SPANISH=1033,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_HEBREW=1037,kha_graphics2_truetype_StbTruetype.STBTT_MS_LANG_SWEDISH=1053,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ENGLISH=0,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_JAPANESE=11,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ARABIC=12,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_KOREAN=23,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_DUTCH=4,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_RUSSIAN=32,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_FRENCH=1,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_SPANISH=6,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_GERMAN=2,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_SWEDISH=5,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_HEBREW=10,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_CHINESE_SIMPLIFIED=33,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_ITALIAN=3,kha_graphics2_truetype_StbTruetype.STBTT_MAC_LANG_CHINESE_TRAD=19,kha_graphics2_truetype_StbTruetype.STBTT_MAX_OVERSAMPLE=8,kha_graphics2_truetype_StbTruetype.STBTT_RASTERIZER_VERSION=2,kha_graphics4_ImageShaderPainter.bufferSize=1500,kha_graphics4_ImageShaderPainter.vertexSize=9,kha_graphics4_ColoredShaderPainter.bufferSize=100,kha_graphics4_ColoredShaderPainter.triangleBufferSize=100,kha_graphics4_TextShaderPainter.bufferSize=100,kha_input_Gamepad.__meta__={fields:{sendAxisEvent:{input:null},sendButtonEvent:{input:null}}},kha_input_Gamepad.instances=[],kha_input_Keyboard.__meta__={fields:{sendDownEvent:{input:null},sendUpEvent:{input:null},sendPressEvent:{input:null}}},kha_input_Mouse.__meta__={fields:{sendLeaveEvent:{input:null},sendDownEvent:{input:null},sendUpEvent:{input:null},sendMoveEvent:{input:null},sendWheelEvent:{input:null}}},kha_math_FastMatrix3.width=3,kha_math_FastMatrix3.height=3,kha_math_FastMatrix4.width=4,kha_math_FastMatrix4.height=4,kha_math_Matrix3.width=3,kha_math_Matrix3.height=3,kha_math_Matrix4.width=4,kha_math_Matrix4.height=4,kha_network_ControllerBuilder.nextId=0,zui_Canvas.events=[],zui_Canvas.elemId=-1,zui_Ext.kx=1,zui_Ext.ky=.6666666666666666,zui_Ext.kz=.3333333333333333,zui_Ext.kw=3,zui_Ext.ar=[0,0,0],zui_Ext.Kx=0,zui_Ext.Ky=-.3333333333333333,zui_Ext.Kz=.6666666666666666,zui_Ext.Kw=-1,zui_Ext.e=1e-10,zui_Id.i=0,zui_Themes.light={_FONT_SIZE:15,_FONT_SMALL_SIZE:15,_ELEMENT_W:100,_ELEMENT_H:26,_ELEMENT_SEPARATOR_SIZE:2,_ARROW_W:9,_ARROW_H:9,_BUTTON_H:19,_CHECK_W:15,_CHECK_H:15,_CHECK_SELECT_W:8,_CHECK_SELECT_H:8,_RADIO_W:15,_RADIO_H:15,_RADIO_SELECT_W:8,_RADIO_SELECT_H:8,_SCROLL_W:12,_SCROLL_BAR_W:8,_DEFAULT_TEXT_OFFSET_X:8,_TAB_W:12,_LINE_STRENGTH:1,WINDOW_BG_COL:-1776412,WINDOW_TINT_COL:-1,SCROLL_BG_COL:-1776412,SCROLL_COL:-15658735,SCROLL_HOVER_COL:-10055985,PANEL_BG1_COL:-16777216,PANEL_BG2_COL:-16777216,PANEL_TEXT_COL:-13421773,PANEL_TEXT_COL_HOVER:-13421773,BUTTON_BG_COL:-11175241,BUTTON_TEXT_COL:-15658735,BUTTON_BG_COL_HOVER:-10055985,BUTTON_BG_COL_PRESSED:-3299061,TEXT_INPUT_BG_COL:-13355978,TEXT_INPUT_BG_COL_HOVER:-12303290,TEXT_CURSOR_COL:-15658735,TEXT_CURSOR_FLASH_SPEED:.5,CHECK_COL:-13355978,CHECK_COL_HOVER:-7829368,CHECK_SELECT_COL:-13355978,RADIO_COL:-13355978,RADIO_COL_HOVER:-7829368,RADIO_SELECT_COL:-13355978,SLIDER_COL:-9069865,SLIDER_COL_HOVER:-10055985,TEXT_COL:-15658735,TEXT_COL_HOVER:-15658735,DEFAULT_LABEL_COL:-14540254,ARROW_COL:-4539977,ARROW_COL_HOVER:-3487289,SEPARATOR_COL:-5592406,FILL_WINDOW_BG:!0,FILL_TEXT_INPUT_BG:!1,FILL_BUTTON_BG:!1,FILL_CHECK_BG:!1,FILL_RADIO_BG:!1,FILL_SLIDER_BG:!1},zui_Themes.dark={_FONT_SIZE:15,_FONT_SMALL_SIZE:15,_ELEMENT_W:100,_ELEMENT_H:26,_ELEMENT_SEPARATOR_SIZE:2,_ARROW_W:9,_ARROW_H:9,_BUTTON_H:19,_CHECK_W:15,_CHECK_H:15,_CHECK_SELECT_W:8,_CHECK_SELECT_H:8,_RADIO_W:15,_RADIO_H:15,_RADIO_SELECT_W:8,_RADIO_SELECT_H:8,_SCROLL_W:12,_SCROLL_BAR_W:8,_DEFAULT_TEXT_OFFSET_X:8,_TAB_W:12,_LINE_STRENGTH:1,WINDOW_BG_COL:-15658735,WINDOW_TINT_COL:-1,SCROLL_BG_COL:-15724528,SCROLL_COL:-11974327,SCROLL_HOVER_COL:-2894893,PANEL_BG1_COL:-16777216,PANEL_BG2_COL:-16777216,PANEL_TEXT_COL:-1118482,PANEL_TEXT_COL_HOVER:-1118482,BUTTON_BG_COL:-11175241,BUTTON_TEXT_COL:-3487289,BUTTON_BG_COL_HOVER:-10055985,BUTTON_BG_COL_PRESSED:-3299061,TEXT_INPUT_BG_COL:-13355978,TEXT_INPUT_BG_COL_HOVER:-12303290,TEXT_CURSOR_COL:-3487289,TEXT_CURSOR_FLASH_SPEED:.5,CHECK_COL:-13355978,CHECK_COL_HOVER:-12303290,CHECK_SELECT_COL:-2697514,RADIO_COL:-13355978,RADIO_COL_HOVER:-12303290,RADIO_SELECT_COL:-2697514,SLIDER_COL:-13355978,SLIDER_COL_HOVER:-12303290,TEXT_COL:-3487289,TEXT_COL_HOVER:-3487289,DEFAULT_LABEL_COL:-5592406,ARROW_COL:-3487289,ARROW_COL_HOVER:-3487289,SEPARATOR_COL:-14540513,FILL_WINDOW_BG:!1,FILL_TEXT_INPUT_BG:!1,FILL_BUTTON_BG:!1,FILL_CHECK_BG:!1,FILL_RADIO_BG:!1,FILL_SLIDER_BG:!1},zui_Zui.comboFirst=!0,zui_Handle.global=new zui_Handle,Main.main(); \ No newline at end of file