@supraio/client-daemon-js 0.0.0-mznacl.300 → 0.0.0-mznacldate1212.297

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14587,7 +14587,7 @@ $packages["strconv"] = (function() {
14587
14587
  return $pkg;
14588
14588
  })();
14589
14589
  $packages["reflect"] = (function() {
14590
- var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, unsafeheader, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, ptrType$2, funcType$1, sliceType$7, sliceType$8, ptrType$6, ptrType$8, ptrType$9, sliceType$10, ptrType$10, sliceType$11, ptrType$11, ptrType$12, sliceType$12, ptrType$13, ptrType$14, funcType$2, sliceType$14, sliceType$15, ptrType$18, structType$3, sliceType$16, ptrType$19, ptrType$20, sliceType$17, sliceType$18, arrayType$6, sliceType$19, arrayType$7, sliceType$20, funcType$3, ptrType$23, arrayType$8, ptrType$24, funcType$4, funcType$5, ptrType$26, ptrType$27, bytesType, uint8Type, stringType, kindNames, initialized, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, copyVal, overflowFloat32, typesMustMatch, grow, Append, MakeMap, MakeMapWithSize, Indirect, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, methodValueCallCodePtr, methodValueCall, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, makemap, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, Copy, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, DeepEqual, deepValueEqualJs, stringsLastIndex, stringsHasPrefix, valueMethodName, verifyNotInHeapPtr;
14590
+ var $pkg = {}, $init, errors, js, abi, bytealg, goarch, itoa, unsafeheader, math, runtime, strconv, sync, unicode, utf8, Value, flag, ValueError, MapIter, SliceHeader, Type, Kind, tflag, rtype, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, uncommonType, funcType, name, nameData, hiter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, ptrType$2, funcType$1, sliceType$7, sliceType$8, ptrType$6, ptrType$8, ptrType$9, sliceType$10, ptrType$10, sliceType$11, ptrType$11, ptrType$12, sliceType$12, ptrType$13, ptrType$14, funcType$2, sliceType$14, sliceType$15, ptrType$18, structType$3, sliceType$16, ptrType$19, ptrType$20, sliceType$17, sliceType$18, arrayType$6, sliceType$19, arrayType$7, sliceType$20, funcType$3, ptrType$23, arrayType$8, ptrType$24, funcType$4, funcType$5, ptrType$26, ptrType$27, bytesType, uint8Type, stringType, kindNames, initialized, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, copyVal, overflowFloat32, typesMustMatch, grow, Append, MakeMap, MakeMapWithSize, Indirect, convertOp, makeFloat, makeFloat32, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I, PtrTo, PointerTo, implements$1, specialChannelAssignability, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, methodValueCallCodePtr, methodValueCall, init, New, jsType, reflectType, setKindType, newName, newMethodName, resolveReflectName, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, makemap, keyFor, mapaccess, mapassign, mapdelete, mapaccess_faststr, mapassign_faststr, mapdelete_faststr, mapiterinit, mapiterkey, mapiterelem, mapiternext, maplen, cvtDirect, cvtSliceArrayPtr, Copy, methodReceiver, valueInterface, ifaceE2I, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, DeepEqual, deepValueEqualJs, stringsLastIndex, stringsHasPrefix, valueMethodName, verifyNotInHeapPtr;
14591
14591
  errors = $packages["errors"];
14592
14592
  js = $packages["github.com/gopherjs/gopherjs/js"];
14593
14593
  abi = $packages["internal/abi"];
@@ -14634,6 +14634,18 @@ $packages["reflect"] = (function() {
14634
14634
  this.m = m_;
14635
14635
  this.hiter = hiter_;
14636
14636
  });
14637
+ SliceHeader = $pkg.SliceHeader = $newType(0, $kindStruct, "reflect.SliceHeader", true, "reflect", true, function(Data_, Len_, Cap_) {
14638
+ this.$val = this;
14639
+ if (arguments.length === 0) {
14640
+ this.Data = 0;
14641
+ this.Len = 0;
14642
+ this.Cap = 0;
14643
+ return;
14644
+ }
14645
+ this.Data = Data_;
14646
+ this.Len = Len_;
14647
+ this.Cap = Cap_;
14648
+ });
14637
14649
  Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null);
14638
14650
  Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null);
14639
14651
  tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null);
@@ -19883,6 +19895,7 @@ $packages["reflect"] = (function() {
19883
19895
  Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]);
19884
19896
  ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]);
19885
19897
  MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "hiter", name: "hiter", embedded: false, exported: false, typ: hiter, tag: ""}]);
19898
+ SliceHeader.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}]);
19886
19899
  Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$7], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$10], false)}]);
19887
19900
  rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$14, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]);
19888
19901
  method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]);
@@ -65687,7 +65700,7 @@ $packages["math/rand"] = (function() {
65687
65700
  return $pkg;
65688
65701
  })();
65689
65702
  $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
65690
- var $pkg = {}, $init, log, rand, os, syscall, time, sliceType, sliceType$1, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, WaitOnStopSignal, ClampedInt64;
65703
+ var $pkg = {}, $init, log, rand, os, syscall, time, sliceType, sliceType$1, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, WaitOnStopSignal;
65691
65704
  log = $packages["log"];
65692
65705
  rand = $packages["math/rand"];
65693
65706
  os = $packages["os"];
@@ -65729,29 +65742,18 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
65729
65742
  $go((function(signalChannel) { return function $b() {
65730
65743
  var {$s, $r, $c} = $restore(this, {});
65731
65744
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65732
- $r = time.Sleep(new time.Duration(140815, 4180213760)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65745
+ $r = time.Sleep(new time.Duration(20116, 2437873664)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65733
65746
  $r = $send(signalChannel[0], new syscall.Signal(6)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65734
65747
  $s = -1; return;
65735
65748
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
65736
65749
  }; })(signalChannel), []);
65737
65750
  _r$4 = $recv(signalChannel[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
65738
65751
  sig = _r$4[0];
65739
- $r = log.Printf("Signal %s received (emulated after 1 week).\n", new sliceType$1([sig])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65752
+ $r = log.Printf("Signal %s received (emulated after 24 hours).\n", new sliceType$1([sig])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65740
65753
  $s = -1; return;
65741
65754
  /* */ } return; } var $f = {$blk: WaitOnStopSignal, $c: true, $r, _r$4, sig, signalChannel, $s};return $f;
65742
65755
  };
65743
65756
  $pkg.WaitOnStopSignal = WaitOnStopSignal;
65744
- ClampedInt64 = function(value, min, max) {
65745
- var max, min, value;
65746
- if ((value.$high < min.$high || (value.$high === min.$high && value.$low < min.$low))) {
65747
- return min;
65748
- }
65749
- if ((value.$high > max.$high || (value.$high === max.$high && value.$low > max.$low))) {
65750
- return max;
65751
- }
65752
- return value;
65753
- };
65754
- $pkg.ClampedInt64 = ClampedInt64;
65755
65757
  $init = function() {
65756
65758
  $pkg.$init = function() {};
65757
65759
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -180064,42 +180066,11 @@ $packages["github.com/supraio/client-daemon/pkg/clientscreen"] = (function() {
180064
180066
  return $pkg;
180065
180067
  })();
180066
180068
  $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180067
- var $pkg = {}, $init, errs, log, js, ptrType, sliceType, GetError, Await;
180068
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
180069
+ var $pkg = {}, $init, log, js, ptrType, sliceType, Await;
180069
180070
  log = $packages["log"];
180070
180071
  js = $packages["syscall/js"];
180071
180072
  ptrType = $ptrType(js.Value);
180072
180073
  sliceType = $sliceType($emptyInterface);
180073
- GetError = function(err) {
180074
- var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, err, $s, $r, $c} = $restore(this, {err});
180075
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180076
- /* */ if (err === ptrType.nil) { $s = 1; continue; }
180077
- /* */ $s = 2; continue;
180078
- /* if (err === ptrType.nil) { */ case 1:
180079
- _r = errs.Errorf("Error is nil", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180080
- $24r = _r;
180081
- $s = 4; case 4: return $24r;
180082
- /* } */ case 2:
180083
- /* */ if ($clone(err, js.Value).Type() === 4) { $s = 5; continue; }
180084
- /* */ if ($clone(err, js.Value).Type() === 6) { $s = 6; continue; }
180085
- /* */ $s = 7; continue;
180086
- /* if ($clone(err, js.Value).Type() === 4) { */ case 5:
180087
- _r$1 = errs.Errorf("%s", new sliceType([new $String($clone(err, js.Value).String())])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180088
- $24r$1 = _r$1;
180089
- $s = 10; case 10: return $24r$1;
180090
- /* } else if ($clone(err, js.Value).Type() === 6) { */ case 6:
180091
- _r$2 = errs.Errorf("%s, stack: %s", new sliceType([new $String($clone($clone(err, js.Value).Get("message"), js.Value).String()), new $String($clone($clone(err, js.Value).Get("stack"), js.Value).String())])); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180092
- $24r$2 = _r$2;
180093
- $s = 12; case 12: return $24r$2;
180094
- /* } else { */ case 7:
180095
- _r$3 = errs.Errorf("Unknown error type: %v", new sliceType([err])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180096
- $24r$3 = _r$3;
180097
- $s = 14; case 14: return $24r$3;
180098
- /* } */ case 8:
180099
- $s = -1; return $ifaceNil;
180100
- /* */ } return; } var $f = {$blk: GetError, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, err, $s};return $f;
180101
- };
180102
- $pkg.GetError = GetError;
180103
180074
  Await = function(awaitable) {
180104
180075
  var {$24r, $24r$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred, $r, $c} = $restore(this, {awaitable});
180105
180076
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
@@ -180116,7 +180087,7 @@ $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180116
180087
  /* */ if (then[0] === $chanNil) { $s = 1; continue; }
180117
180088
  /* */ $s = 2; continue;
180118
180089
  /* if (then[0] === $chanNil) { */ case 1:
180119
- $r = log.Printf("Promise already resolved cannot resolve again: %v\n", new sliceType([(0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180090
+ $r = log.Println(new sliceType([new $String("Promise already resolved cannot resolve again")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180120
180091
  $s = -1; return $ifaceNil;
180121
180092
  /* } */ case 2:
180122
180093
  $r = $send(then[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -180130,19 +180101,17 @@ $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180130
180101
  catch$1[0] = $chanNil;
180131
180102
  }; })(catch$1, then), []]);
180132
180103
  catchFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
180133
- var {_arg, _r, args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
180104
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
180134
180105
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180135
180106
  /* */ if (catch$1[0] === $chanNil) { $s = 1; continue; }
180136
180107
  /* */ $s = 2; continue;
180137
180108
  /* if (catch$1[0] === $chanNil) { */ case 1:
180138
- _r = GetError((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180139
- _arg = _r;
180140
- $r = errs.Print("Promise already resolved cannot be rejected", _arg); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180109
+ $r = log.Println(new sliceType([new $String("Promise already resolved cannot be rejected")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180141
180110
  $s = -1; return $ifaceNil;
180142
180111
  /* } */ case 2:
180143
- $r = $send(catch$1[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180112
+ $r = $send(catch$1[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180144
180113
  $s = -1; return $ifaceNil;
180145
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r, args, this$1, $s};return $f;
180114
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
180146
180115
  }; })(catch$1, then)), js.Func);
180147
180116
  $deferred.push([$methodVal($clone(catchFunc, js.Func), "Release"), []]);
180148
180117
  _r = $clone(awaitable, js.Value).Call("then", new sliceType([new thenFunc.constructor.elem(thenFunc)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
@@ -180169,9 +180138,8 @@ $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180169
180138
  $init = function() {
180170
180139
  $pkg.$init = function() {};
180171
180140
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
180172
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180173
- $r = log.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180174
- $r = js.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180141
+ $r = log.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180142
+ $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180175
180143
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
180176
180144
  };
180177
180145
  $pkg.$init = $init;
@@ -180273,45 +180241,39 @@ $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180273
180241
  var {_r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s, $r, $c} = $restore(this, {});
180274
180242
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180275
180243
  c = this;
180276
- /* */ if ($clone(c.clipboard, js.Value).IsUndefined()) { $s = 1; continue; }
180244
+ readTextFn = $clone($clone(c.clipboard, js.Value).Get("readText"), js.Value);
180245
+ /* */ if ($clone(readTextFn, js.Value).IsUndefined()) { $s = 1; continue; }
180277
180246
  /* */ $s = 2; continue;
180278
- /* if ($clone(c.clipboard, js.Value).IsUndefined()) { */ case 1:
180247
+ /* if ($clone(readTextFn, js.Value).IsUndefined()) { */ case 1:
180279
180248
  $r = log.Println(new sliceType([new $String("Clipboard is not supported in the browser")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180280
180249
  $s = -1; return;
180281
180250
  /* } */ case 2:
180282
- readTextFn = $clone($clone(c.clipboard, js.Value).Get("readText"), js.Value);
180283
- /* */ if ($clone(readTextFn, js.Value).IsUndefined()) { $s = 4; continue; }
180284
- /* */ $s = 5; continue;
180285
- /* if ($clone(readTextFn, js.Value).IsUndefined()) { */ case 4:
180286
- $r = log.Println(new sliceType([new $String("Clipboard readText is not supported in the browser")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180287
- $s = -1; return;
180288
- /* } */ case 5:
180289
- /* while (true) { */ case 7:
180290
- _r = $clone(readTextFn, js.Value).Call("call", new sliceType([(x = c.clipboard, new x.constructor.elem(x))])); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180291
- _r$1 = jshelper.Await($clone(_r, js.Value)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180251
+ /* while (true) { */ case 4:
180252
+ _r = $clone(readTextFn, js.Value).Call("call", new sliceType([(x = c.clipboard, new x.constructor.elem(x))])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180253
+ _r$1 = jshelper.Await($clone(_r, js.Value)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180292
180254
  _tuple = _r$1;
180293
180255
  jsValue = _tuple[0];
180294
180256
  err = _tuple[1];
180295
- /* */ if (!(err === ptrType$1.nil)) { $s = 11; continue; }
180296
- /* */ $s = 12; continue;
180297
- /* if (!(err === ptrType$1.nil)) { */ case 11:
180257
+ /* */ if (!(err === ptrType$1.nil)) { $s = 8; continue; }
180258
+ /* */ $s = 9; continue;
180259
+ /* if (!(err === ptrType$1.nil)) { */ case 8:
180298
180260
  errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
180299
- /* */ if (errMessage === "Document is not focused.") { $s = 13; continue; }
180300
- /* */ $s = 14; continue;
180301
- /* if (errMessage === "Document is not focused.") { */ case 13:
180302
- _r$2 = c.whenFocused(); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180303
- _r$3 = jshelper.Await($clone(_r$2, js.Value)); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180261
+ /* */ if (errMessage === "Document is not focused.") { $s = 10; continue; }
180262
+ /* */ $s = 11; continue;
180263
+ /* if (errMessage === "Document is not focused.") { */ case 10:
180264
+ _r$2 = c.whenFocused(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180265
+ _r$3 = jshelper.Await($clone(_r$2, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180304
180266
  _r$3;
180305
- /* continue; */ $s = 7; continue;
180306
- /* } */ case 14:
180307
- $r = log.Println(new sliceType([new $String("Error getting clipboard value"), new $String(errMessage)])); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180308
- $r = time.Sleep(new time.Duration(2, 1410065408)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180309
- /* continue; */ $s = 7; continue;
180310
- /* } */ case 12:
180311
- $r = c.updateClipboardIfChanged($clone(new UpdateClipboardInfo.ptr($clone(jsValue, js.Value).String()), UpdateClipboardInfo)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180312
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180313
- $s = 7; continue;
180314
- case 8:
180267
+ /* continue; */ $s = 4; continue;
180268
+ /* } */ case 11:
180269
+ $r = log.Println(new sliceType([new $String("Error getting clipboard value"), new $String(errMessage)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180270
+ $r = time.Sleep(new time.Duration(2, 1410065408)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180271
+ /* continue; */ $s = 4; continue;
180272
+ /* } */ case 9:
180273
+ $r = c.updateClipboardIfChanged($clone(new UpdateClipboardInfo.ptr($clone(jsValue, js.Value).String()), UpdateClipboardInfo)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180274
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180275
+ $s = 4; continue;
180276
+ case 5:
180315
180277
  $s = -1; return;
180316
180278
  /* */ } return; } var $f = {$blk: JsClipboard.ptr.prototype.runPeriodicChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s};return $f;
180317
180279
  };
@@ -181279,12 +181241,26 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
181279
181241
  };
181280
181242
  MetadataServer.prototype.handleData = function() { return this.$val.handleData(); };
181281
181243
  NewMetadataResponsiveSender = function(metadataServer, timeoutDuration) {
181282
- var metadataServer, s, timeoutDuration;
181283
- s = new MetadataResponsiveSender.ptr(metadataServer, timeoutDuration, $makeMap($String.keyFor, []), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex));
181284
- metadataServer.OnMessage($methodVal(s, "handleServerData"));
181285
- return s;
181244
+ var metadataServer, timeoutDuration;
181245
+ return new MetadataResponsiveSender.ptr(metadataServer, timeoutDuration, $makeMap($String.keyFor, []), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex));
181286
181246
  };
181287
181247
  $pkg.NewMetadataResponsiveSender = NewMetadataResponsiveSender;
181248
+ MetadataResponsiveSender.ptr.prototype.Listen = function() {
181249
+ var s;
181250
+ s = this;
181251
+ s.metadataServer.OnMessage($methodVal(s, "handleServerData"));
181252
+ };
181253
+ MetadataResponsiveSender.prototype.Listen = function() { return this.$val.Listen(); };
181254
+ MetadataResponsiveSender.ptr.prototype.Close = function() {
181255
+ var {$24r, _r, s, $s, $r, $c} = $restore(this, {});
181256
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
181257
+ s = this;
181258
+ _r = s.metadataServer.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
181259
+ $24r = _r;
181260
+ $s = 2; case 2: return $24r;
181261
+ /* */ } return; } var $f = {$blk: MetadataResponsiveSender.ptr.prototype.Close, $c: true, $r, $24r, _r, s, $s};return $f;
181262
+ };
181263
+ MetadataResponsiveSender.prototype.Close = function() { return this.$val.Close(); };
181288
181264
  MetadataResponsiveSender.ptr.prototype.SendServerWaitResponse = function(msgType, data) {
181289
181265
  var {$24r, $24r$1, $24r$2, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _selection, _tuple, data, err, msgType, reqData, requestChan, requestID, resp, s, $s, $r, $c} = $restore(this, {msgType, data});
181290
181266
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -181603,7 +181579,7 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
181603
181579
  };
181604
181580
  Framer.prototype.parseFrames = function() { return this.$val.parseFrames(); };
181605
181581
  ptrType$1.methods = [{prop: "start", name: "start", pkg: "github.com/supraio/client-daemon/pkg/netclient", typ: $funcType([], [], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "OnMessage", name: "OnMessage", pkg: "", typ: $funcType([funcType$1], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "handleData", name: "handleData", pkg: "github.com/supraio/client-daemon/pkg/netclient", typ: $funcType([], [], false)}];
181606
- ptrType$2.methods = [{prop: "SendServerWaitResponse", name: "SendServerWaitResponse", pkg: "", typ: $funcType([message.MsgType, sliceType$1], [sliceType$1, $error], false)}, {prop: "handleServerData", name: "handleServerData", pkg: "github.com/supraio/client-daemon/pkg/netclient", typ: $funcType([message.MsgType, sliceType$1], [], false)}];
181582
+ ptrType$2.methods = [{prop: "Listen", name: "Listen", pkg: "", typ: $funcType([], [], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "SendServerWaitResponse", name: "SendServerWaitResponse", pkg: "", typ: $funcType([message.MsgType, sliceType$1], [sliceType$1, $error], false)}, {prop: "handleServerData", name: "handleServerData", pkg: "github.com/supraio/client-daemon/pkg/netclient", typ: $funcType([message.MsgType, sliceType$1], [], false)}];
181607
181583
  ptrType$3.methods = [{prop: "Send", name: "Send", pkg: "", typ: $funcType([message.MsgType, sliceType$1], [$error], false)}];
181608
181584
  ptrType$4.methods = [{prop: "Connect", name: "Connect", pkg: "", typ: $funcType([], [ptrType$1, $error], false)}];
181609
181585
  ptrType$5.methods = [{prop: "Send", name: "Send", pkg: "", typ: $funcType([message.MsgType, sliceType$1], [$error], false)}];
@@ -182552,11 +182528,12 @@ $packages["github.com/nuberu/webgl/extensions"] = (function() {
182552
182528
  return $pkg;
182553
182529
  })();
182554
182530
  $packages["github.com/nuberu/webgl"] = (function() {
182555
- var $pkg = {}, $init, errors, fmt, extensions, types, runtime, js, RenderingContext, funcType, arrayType, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$1, ptrType$7, arrayType$1, arrayType$2, arrayType$3, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, WrapContext, FromCanvas, polyfillOldVersion, TypedArrayOf;
182531
+ var $pkg = {}, $init, errors, fmt, extensions, types, reflect, runtime, js, RenderingContext, funcType, arrayType, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, sliceType$1, ptrType$7, arrayType$1, arrayType$2, arrayType$3, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, sliceType$10, sliceType$11, sliceType$12, sliceType$13, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, sliceType$14, sliceType$15, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, WrapContext, FromCanvas, polyfillOldVersion, sliceToByteSlice, TypedArrayOf;
182556
182532
  errors = $packages["errors"];
182557
182533
  fmt = $packages["fmt"];
182558
182534
  extensions = $packages["github.com/nuberu/webgl/extensions"];
182559
182535
  types = $packages["github.com/nuberu/webgl/types"];
182536
+ reflect = $packages["reflect"];
182560
182537
  runtime = $packages["runtime"];
182561
182538
  js = $packages["syscall/js"];
182562
182539
  RenderingContext = $pkg.RenderingContext = $newType(0, $kindStruct, "webgl.RenderingContext", true, "github.com/nuberu/webgl", true, function(loaded_, js_, version_) {
@@ -182595,15 +182572,27 @@ $packages["github.com/nuberu/webgl"] = (function() {
182595
182572
  sliceType$8 = $sliceType($Int8);
182596
182573
  sliceType$9 = $sliceType($Int16);
182597
182574
  sliceType$10 = $sliceType($Int32);
182598
- sliceType$11 = $sliceType($Float64);
182599
- sliceType$12 = $sliceType($Int);
182600
- sliceType$13 = $sliceType($Uint);
182601
- ptrType$8 = $ptrType(types.VertexArray);
182602
- ptrType$9 = $ptrType(types.ActiveInfo);
182603
- ptrType$10 = $ptrType(extensions.Extension);
182604
- ptrType$11 = $ptrType(extensions.LoseContext);
182605
- ptrType$12 = $ptrType(types.ShaderPrecisionFormat);
182606
- ptrType$13 = $ptrType(types.UniformLocation);
182575
+ sliceType$11 = $sliceType($Int64);
182576
+ sliceType$12 = $sliceType($Uint64);
182577
+ sliceType$13 = $sliceType($Float64);
182578
+ ptrType$8 = $ptrType(reflect.SliceHeader);
182579
+ ptrType$9 = $ptrType(sliceType$8);
182580
+ ptrType$10 = $ptrType(sliceType$9);
182581
+ ptrType$11 = $ptrType(sliceType$10);
182582
+ ptrType$12 = $ptrType(sliceType$11);
182583
+ ptrType$13 = $ptrType(sliceType$5);
182584
+ ptrType$14 = $ptrType(sliceType$6);
182585
+ ptrType$15 = $ptrType(sliceType$12);
182586
+ ptrType$16 = $ptrType(sliceType$7);
182587
+ ptrType$17 = $ptrType(sliceType$13);
182588
+ sliceType$14 = $sliceType($Int);
182589
+ sliceType$15 = $sliceType($Uint);
182590
+ ptrType$18 = $ptrType(types.VertexArray);
182591
+ ptrType$19 = $ptrType(types.ActiveInfo);
182592
+ ptrType$20 = $ptrType(extensions.Extension);
182593
+ ptrType$21 = $ptrType(extensions.LoseContext);
182594
+ ptrType$22 = $ptrType(types.ShaderPrecisionFormat);
182595
+ ptrType$23 = $ptrType(types.UniformLocation);
182607
182596
  WrapContext = function(jsContext) {
182608
182597
  var context, jsContext;
182609
182598
  context = new RenderingContext.ptr(true, $clone(jsContext, js.Value), 0);
@@ -186401,10 +186390,96 @@ $packages["github.com/nuberu/webgl"] = (function() {
186401
186390
  /* */ } return; } var $f = {$blk: RenderingContext.ptr.prototype.Viewport, $c: true, $r, _r, c, height, width, x, y, $s};return $f;
186402
186391
  };
186403
186392
  RenderingContext.prototype.Viewport = function(x, y, width, height) { return this.$val.Viewport(x, y, width, height); };
186393
+ sliceToByteSlice = function(s) {
186394
+ var {_r, _ref, h, h$1, h$2, h$3, h$4, h$5, h$6, h$7, h$8, s, s$1, s$10, s$11, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, $s, $r, $c} = $restore(this, {s});
186395
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186396
+ s$1 = [s$1];
186397
+ s$2 = [s$2];
186398
+ s$3 = [s$3];
186399
+ s$4 = [s$4];
186400
+ s$5 = [s$5];
186401
+ s$6 = [s$6];
186402
+ s$7 = [s$7];
186403
+ s$8 = [s$8];
186404
+ s$9 = [s$9];
186405
+ _ref = s;
186406
+ /* */ if ($assertType(_ref, sliceType$8, true)[1]) { $s = 1; continue; }
186407
+ /* */ if ($assertType(_ref, sliceType$9, true)[1]) { $s = 2; continue; }
186408
+ /* */ if ($assertType(_ref, sliceType$10, true)[1]) { $s = 3; continue; }
186409
+ /* */ if ($assertType(_ref, sliceType$11, true)[1]) { $s = 4; continue; }
186410
+ /* */ if ($assertType(_ref, sliceType$4, true)[1]) { $s = 5; continue; }
186411
+ /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 6; continue; }
186412
+ /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 7; continue; }
186413
+ /* */ if ($assertType(_ref, sliceType$12, true)[1]) { $s = 8; continue; }
186414
+ /* */ if ($assertType(_ref, sliceType$7, true)[1]) { $s = 9; continue; }
186415
+ /* */ if ($assertType(_ref, sliceType$13, true)[1]) { $s = 10; continue; }
186416
+ /* */ $s = 11; continue;
186417
+ /* if ($assertType(_ref, sliceType$8, true)[1]) { */ case 1:
186418
+ s$1[0] = _ref.$val;
186419
+ h = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType$8));
186420
+ $s = -1; return ((h)).$get();
186421
+ /* } else if ($assertType(_ref, sliceType$9, true)[1]) { */ case 2:
186422
+ s$2[0] = _ref.$val;
186423
+ h$1 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$10(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType$8));
186424
+ h$1.Len = $imul(h$1.Len, (2));
186425
+ h$1.Cap = $imul(h$1.Cap, (2));
186426
+ $s = -1; return ((h$1)).$get();
186427
+ /* } else if ($assertType(_ref, sliceType$10, true)[1]) { */ case 3:
186428
+ s$3[0] = _ref.$val;
186429
+ h$2 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$11(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType$8));
186430
+ h$2.Len = $imul(h$2.Len, (4));
186431
+ h$2.Cap = $imul(h$2.Cap, (4));
186432
+ $s = -1; return ((h$2)).$get();
186433
+ /* } else if ($assertType(_ref, sliceType$11, true)[1]) { */ case 4:
186434
+ s$4[0] = _ref.$val;
186435
+ h$3 = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$12(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType$8));
186436
+ h$3.Len = $imul(h$3.Len, (8));
186437
+ h$3.Cap = $imul(h$3.Cap, (8));
186438
+ $s = -1; return ((h$3)).$get();
186439
+ /* } else if ($assertType(_ref, sliceType$4, true)[1]) { */ case 5:
186440
+ s$10 = _ref.$val;
186441
+ $s = -1; return s$10;
186442
+ /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 6:
186443
+ s$5[0] = _ref.$val;
186444
+ h$4 = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$13(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType$8));
186445
+ h$4.Len = $imul(h$4.Len, (2));
186446
+ h$4.Cap = $imul(h$4.Cap, (2));
186447
+ $s = -1; return ((h$4)).$get();
186448
+ /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 7:
186449
+ s$6[0] = _ref.$val;
186450
+ h$5 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$14(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType$8));
186451
+ h$5.Len = $imul(h$5.Len, (4));
186452
+ h$5.Cap = $imul(h$5.Cap, (4));
186453
+ $s = -1; return ((h$5)).$get();
186454
+ /* } else if ($assertType(_ref, sliceType$12, true)[1]) { */ case 8:
186455
+ s$7[0] = _ref.$val;
186456
+ h$6 = ($pointerOfStructConversion(((s$7.$ptr || (s$7.$ptr = new ptrType$15(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$7)))), ptrType$8));
186457
+ h$6.Len = $imul(h$6.Len, (8));
186458
+ h$6.Cap = $imul(h$6.Cap, (8));
186459
+ $s = -1; return ((h$6)).$get();
186460
+ /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 9:
186461
+ s$8[0] = _ref.$val;
186462
+ h$7 = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$16(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType$8));
186463
+ h$7.Len = $imul(h$7.Len, (4));
186464
+ h$7.Cap = $imul(h$7.Cap, (4));
186465
+ $s = -1; return ((h$7)).$get();
186466
+ /* } else if ($assertType(_ref, sliceType$13, true)[1]) { */ case 10:
186467
+ s$9[0] = _ref.$val;
186468
+ h$8 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$17(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType$8));
186469
+ h$8.Len = $imul(h$8.Len, (8));
186470
+ h$8.Cap = $imul(h$8.Cap, (8));
186471
+ $s = -1; return ((h$8)).$get();
186472
+ /* } else { */ case 11:
186473
+ s$11 = _ref;
186474
+ _r = fmt.Sprintf("jsutil: unexpected value at sliceToBytesSlice: %T", new sliceType([s$11])); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186475
+ $panic(new $String(_r));
186476
+ /* } */ case 12:
186477
+ $s = -1; return sliceType$4.nil;
186478
+ /* */ } return; } var $f = {$blk: sliceToByteSlice, $c: true, $r, _r, _ref, h, h$1, h$2, h$3, h$4, h$5, h$6, h$7, h$8, s, s$1, s$10, s$11, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, $s};return $f;
186479
+ };
186404
186480
  TypedArrayOf = function(s) {
186405
- var {_i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, i, i$1, i$2, i$3, i$4, i$5, i$6, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, v, v$1, v$2, v$3, v$4, v$5, v$6, $s, $r, $c} = $restore(this, {s});
186481
+ var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _q, _q$1, _q$2, _q$3, _q$4, _q$5, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, buf, buf$1, buf$2, buf$3, buf$4, buf$5, buf$6, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r, $c} = $restore(this, {s});
186406
186482
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186407
- result = new js.Value.ptr(null, false, arrayType.zero());
186408
186483
  _ref = s;
186409
186484
  /* */ if ($assertType(_ref, sliceType$8, true)[1]) { $s = 1; continue; }
186410
186485
  /* */ if ($assertType(_ref, sliceType$9, true)[1]) { $s = 2; continue; }
@@ -186413,123 +186488,123 @@ $packages["github.com/nuberu/webgl"] = (function() {
186413
186488
  /* */ if ($assertType(_ref, sliceType$5, true)[1]) { $s = 5; continue; }
186414
186489
  /* */ if ($assertType(_ref, sliceType$6, true)[1]) { $s = 6; continue; }
186415
186490
  /* */ if ($assertType(_ref, sliceType$7, true)[1]) { $s = 7; continue; }
186416
- /* */ if ($assertType(_ref, sliceType$11, true)[1]) { $s = 8; continue; }
186491
+ /* */ if ($assertType(_ref, sliceType$13, true)[1]) { $s = 8; continue; }
186417
186492
  /* */ $s = 9; continue;
186418
186493
  /* if ($assertType(_ref, sliceType$8, true)[1]) { */ case 1:
186419
186494
  s$1 = _ref.$val;
186420
- _r = $clone($clone(js.Global(), js.Value).Get("Int8Array"), js.Value).New(new sliceType([new $Int(s$1.$length)])); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186421
- js.Value.copy(result, _r);
186422
- _ref$1 = s$1;
186423
- _i = 0;
186424
- while (true) {
186425
- if (!(_i < _ref$1.$length)) { break; }
186426
- i = _i;
186427
- v = ((_i < 0 || _i >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i]);
186428
- $clone(result, js.Value).SetIndex(i, new $Int8(v));
186429
- _i++;
186430
- }
186431
- $s = 10; continue;
186495
+ _r = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(s$1.$length)])); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186496
+ a = $clone(_r, js.Value);
186497
+ _arg = $clone(a, js.Value);
186498
+ _r$1 = sliceToByteSlice(s$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186499
+ _arg$1 = _r$1;
186500
+ _r$2 = js.CopyBytesToJS(_arg, _arg$1); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186501
+ _r$2;
186502
+ runtime.KeepAlive(s$1);
186503
+ buf = $clone($clone(a, js.Value).Get("buffer"), js.Value);
186504
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("Int8Array"), js.Value).New(new sliceType([new buf.constructor.elem(buf), (x = $clone(a, js.Value).Get("byteOffset"), new x.constructor.elem(x)), (x$1 = $clone(a, js.Value).Get("byteLength"), new x$1.constructor.elem(x$1))])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186505
+ $24r = _r$3;
186506
+ $s = 15; case 15: return $24r;
186432
186507
  /* } else if ($assertType(_ref, sliceType$9, true)[1]) { */ case 2:
186433
186508
  s$2 = _ref.$val;
186434
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Int16Array"), js.Value).New(new sliceType([new $Int(s$2.$length)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186435
- js.Value.copy(result, _r$1);
186436
- _ref$2 = s$2;
186437
- _i$1 = 0;
186438
- while (true) {
186439
- if (!(_i$1 < _ref$2.$length)) { break; }
186440
- i$1 = _i$1;
186441
- v$1 = ((_i$1 < 0 || _i$1 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$1]);
186442
- $clone(result, js.Value).SetIndex(i$1, new $Int16(v$1));
186443
- _i$1++;
186444
- }
186445
- $s = 10; continue;
186509
+ _r$4 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$2.$length, 2)))])); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
186510
+ a$1 = $clone(_r$4, js.Value);
186511
+ _arg$2 = $clone(a$1, js.Value);
186512
+ _r$5 = sliceToByteSlice(s$2); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
186513
+ _arg$3 = _r$5;
186514
+ _r$6 = js.CopyBytesToJS(_arg$2, _arg$3); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
186515
+ _r$6;
186516
+ runtime.KeepAlive(s$2);
186517
+ buf$1 = $clone($clone(a$1, js.Value).Get("buffer"), js.Value);
186518
+ _r$7 = $clone($clone(js.Global(), js.Value).Get("Int16Array"), js.Value).New(new sliceType([new buf$1.constructor.elem(buf$1), (x$2 = $clone(a$1, js.Value).Get("byteOffset"), new x$2.constructor.elem(x$2)), new $Int((_q = $clone($clone(a$1, js.Value).Get("byteLength"), js.Value).Int() / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 19; case 19: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
186519
+ $24r$1 = _r$7;
186520
+ $s = 20; case 20: return $24r$1;
186446
186521
  /* } else if ($assertType(_ref, sliceType$10, true)[1]) { */ case 3:
186447
186522
  s$3 = _ref.$val;
186448
- _r$2 = $clone($clone(js.Global(), js.Value).Get("Int32Array"), js.Value).New(new sliceType([new $Int(s$3.$length)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186449
- js.Value.copy(result, _r$2);
186450
- _ref$3 = s$3;
186451
- _i$2 = 0;
186452
- while (true) {
186453
- if (!(_i$2 < _ref$3.$length)) { break; }
186454
- i$2 = _i$2;
186455
- v$2 = ((_i$2 < 0 || _i$2 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$2]);
186456
- $clone(result, js.Value).SetIndex(i$2, new $Int32(v$2));
186457
- _i$2++;
186458
- }
186459
- $s = 10; continue;
186523
+ _r$8 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$3.$length, 4)))])); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
186524
+ a$2 = $clone(_r$8, js.Value);
186525
+ _arg$4 = $clone(a$2, js.Value);
186526
+ _r$9 = sliceToByteSlice(s$3); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
186527
+ _arg$5 = _r$9;
186528
+ _r$10 = js.CopyBytesToJS(_arg$4, _arg$5); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
186529
+ _r$10;
186530
+ runtime.KeepAlive(s$3);
186531
+ buf$2 = $clone($clone(a$2, js.Value).Get("buffer"), js.Value);
186532
+ _r$11 = $clone($clone(js.Global(), js.Value).Get("Int32Array"), js.Value).New(new sliceType([new buf$2.constructor.elem(buf$2), (x$3 = $clone(a$2, js.Value).Get("byteOffset"), new x$3.constructor.elem(x$3)), new $Int((_q$1 = $clone($clone(a$2, js.Value).Get("byteLength"), js.Value).Int() / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 24; case 24: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
186533
+ $24r$2 = _r$11;
186534
+ $s = 25; case 25: return $24r$2;
186460
186535
  /* } else if ($assertType(_ref, sliceType$4, true)[1]) { */ case 4:
186461
186536
  s$4 = _ref.$val;
186462
- _r$3 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(s$4.$length)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186463
- js.Value.copy(result, _r$3);
186464
- js.CopyBytesToJS($clone(result, js.Value), s$4);
186537
+ _r$12 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(s$4.$length)])); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
186538
+ a$3 = $clone(_r$12, js.Value);
186539
+ js.CopyBytesToJS($clone(a$3, js.Value), s$4);
186465
186540
  runtime.KeepAlive(s$4);
186466
- $s = 10; continue;
186541
+ $s = -1; return a$3;
186467
186542
  /* } else if ($assertType(_ref, sliceType$5, true)[1]) { */ case 5:
186468
186543
  s$5 = _ref.$val;
186469
- _r$4 = $clone($clone(js.Global(), js.Value).Get("Uint16Array"), js.Value).New(new sliceType([new $Int(s$5.$length)])); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
186470
- js.Value.copy(result, _r$4);
186471
- _ref$4 = s$5;
186472
- _i$3 = 0;
186473
- while (true) {
186474
- if (!(_i$3 < _ref$4.$length)) { break; }
186475
- i$3 = _i$3;
186476
- v$3 = ((_i$3 < 0 || _i$3 >= _ref$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4.$array[_ref$4.$offset + _i$3]);
186477
- $clone(result, js.Value).SetIndex(i$3, new $Uint16(v$3));
186478
- _i$3++;
186479
- }
186480
- $s = 10; continue;
186544
+ _r$13 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$5.$length, 2)))])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
186545
+ a$4 = $clone(_r$13, js.Value);
186546
+ _arg$6 = $clone(a$4, js.Value);
186547
+ _r$14 = sliceToByteSlice(s$5); /* */ $s = 28; case 28: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
186548
+ _arg$7 = _r$14;
186549
+ _r$15 = js.CopyBytesToJS(_arg$6, _arg$7); /* */ $s = 29; case 29: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
186550
+ _r$15;
186551
+ runtime.KeepAlive(s$5);
186552
+ buf$3 = $clone($clone(a$4, js.Value).Get("buffer"), js.Value);
186553
+ _r$16 = $clone($clone(js.Global(), js.Value).Get("Uint16Array"), js.Value).New(new sliceType([new buf$3.constructor.elem(buf$3), (x$4 = $clone(a$4, js.Value).Get("byteOffset"), new x$4.constructor.elem(x$4)), new $Int((_q$2 = $clone($clone(a$4, js.Value).Get("byteLength"), js.Value).Int() / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 30; case 30: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; }
186554
+ $24r$3 = _r$16;
186555
+ $s = 31; case 31: return $24r$3;
186481
186556
  /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 6:
186482
186557
  s$6 = _ref.$val;
186483
- _r$5 = $clone($clone(js.Global(), js.Value).Get("Uint32Array"), js.Value).New(new sliceType([new $Int(s$6.$length)])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
186484
- js.Value.copy(result, _r$5);
186485
- _ref$5 = s$6;
186486
- _i$4 = 0;
186487
- while (true) {
186488
- if (!(_i$4 < _ref$5.$length)) { break; }
186489
- i$4 = _i$4;
186490
- v$4 = ((_i$4 < 0 || _i$4 >= _ref$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5.$array[_ref$5.$offset + _i$4]);
186491
- $clone(result, js.Value).SetIndex(i$4, new $Uint32(v$4));
186492
- _i$4++;
186493
- }
186494
- $s = 10; continue;
186558
+ _r$17 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$6.$length, 4)))])); /* */ $s = 32; case 32: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; }
186559
+ a$5 = $clone(_r$17, js.Value);
186560
+ _arg$8 = $clone(a$5, js.Value);
186561
+ _r$18 = sliceToByteSlice(s$6); /* */ $s = 33; case 33: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; }
186562
+ _arg$9 = _r$18;
186563
+ _r$19 = js.CopyBytesToJS(_arg$8, _arg$9); /* */ $s = 34; case 34: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; }
186564
+ _r$19;
186565
+ runtime.KeepAlive(s$6);
186566
+ buf$4 = $clone($clone(a$5, js.Value).Get("buffer"), js.Value);
186567
+ _r$20 = $clone($clone(js.Global(), js.Value).Get("Uint32Array"), js.Value).New(new sliceType([new buf$4.constructor.elem(buf$4), (x$5 = $clone(a$5, js.Value).Get("byteOffset"), new x$5.constructor.elem(x$5)), new $Int((_q$3 = $clone($clone(a$5, js.Value).Get("byteLength"), js.Value).Int() / 4, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 35; case 35: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; }
186568
+ $24r$4 = _r$20;
186569
+ $s = 36; case 36: return $24r$4;
186495
186570
  /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 7:
186496
186571
  s$7 = _ref.$val;
186497
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Float32Array"), js.Value).New(new sliceType([new $Int(s$7.$length)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
186498
- js.Value.copy(result, _r$6);
186499
- _ref$6 = s$7;
186500
- _i$5 = 0;
186501
- while (true) {
186502
- if (!(_i$5 < _ref$6.$length)) { break; }
186503
- i$5 = _i$5;
186504
- v$5 = ((_i$5 < 0 || _i$5 >= _ref$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$6.$array[_ref$6.$offset + _i$5]);
186505
- $clone(result, js.Value).SetIndex(i$5, new $Float32(v$5));
186506
- _i$5++;
186507
- }
186508
- $s = 10; continue;
186509
- /* } else if ($assertType(_ref, sliceType$11, true)[1]) { */ case 8:
186572
+ _r$21 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$7.$length, 4)))])); /* */ $s = 37; case 37: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; }
186573
+ a$6 = $clone(_r$21, js.Value);
186574
+ _arg$10 = $clone(a$6, js.Value);
186575
+ _r$22 = sliceToByteSlice(s$7); /* */ $s = 38; case 38: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; }
186576
+ _arg$11 = _r$22;
186577
+ _r$23 = js.CopyBytesToJS(_arg$10, _arg$11); /* */ $s = 39; case 39: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; }
186578
+ _r$23;
186579
+ runtime.KeepAlive(s$7);
186580
+ buf$5 = $clone($clone(a$6, js.Value).Get("buffer"), js.Value);
186581
+ _r$24 = $clone($clone(js.Global(), js.Value).Get("Float32Array"), js.Value).New(new sliceType([new buf$5.constructor.elem(buf$5), (x$6 = $clone(a$6, js.Value).Get("byteOffset"), new x$6.constructor.elem(x$6)), new $Int((_q$4 = $clone($clone(a$6, js.Value).Get("byteLength"), js.Value).Int() / 4, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 40; case 40: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; }
186582
+ $24r$5 = _r$24;
186583
+ $s = 41; case 41: return $24r$5;
186584
+ /* } else if ($assertType(_ref, sliceType$13, true)[1]) { */ case 8:
186510
186585
  s$8 = _ref.$val;
186511
- _r$7 = $clone($clone(js.Global(), js.Value).Get("Float64Array"), js.Value).New(new sliceType([new $Int(s$8.$length)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
186512
- js.Value.copy(result, _r$7);
186513
- _ref$7 = s$8;
186514
- _i$6 = 0;
186515
- while (true) {
186516
- if (!(_i$6 < _ref$7.$length)) { break; }
186517
- i$6 = _i$6;
186518
- v$6 = ((_i$6 < 0 || _i$6 >= _ref$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$7.$array[_ref$7.$offset + _i$6]);
186519
- $clone(result, js.Value).SetIndex(i$6, new $Float64(v$6));
186520
- _i$6++;
186521
- }
186522
- $s = 10; continue;
186586
+ _r$25 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(($imul(s$8.$length, 8)))])); /* */ $s = 42; case 42: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; }
186587
+ a$7 = $clone(_r$25, js.Value);
186588
+ _arg$12 = $clone(a$7, js.Value);
186589
+ _r$26 = sliceToByteSlice(s$8); /* */ $s = 43; case 43: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; }
186590
+ _arg$13 = _r$26;
186591
+ _r$27 = js.CopyBytesToJS(_arg$12, _arg$13); /* */ $s = 44; case 44: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; }
186592
+ _r$27;
186593
+ runtime.KeepAlive(s$8);
186594
+ buf$6 = $clone($clone(a$7, js.Value).Get("buffer"), js.Value);
186595
+ _r$28 = $clone($clone(js.Global(), js.Value).Get("Float64Array"), js.Value).New(new sliceType([new buf$6.constructor.elem(buf$6), (x$7 = $clone(a$7, js.Value).Get("byteOffset"), new x$7.constructor.elem(x$7)), new $Int((_q$5 = $clone($clone(a$7, js.Value).Get("byteLength"), js.Value).Int() / 8, (_q$5 === _q$5 && _q$5 !== 1/0 && _q$5 !== -1/0) ? _q$5 >> 0 : $throwRuntimeError("integer divide by zero")))])); /* */ $s = 45; case 45: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; }
186596
+ $24r$6 = _r$28;
186597
+ $s = 46; case 46: return $24r$6;
186523
186598
  /* } else { */ case 9:
186524
186599
  s$9 = _ref;
186525
- _r$8 = fmt.Sprintf("jsutil: unexpected value at SliceToTypedArray: %T", new sliceType([s$9])); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
186526
- $panic(new $String(_r$8));
186600
+ _r$29 = fmt.Sprintf("jsutil: unexpected value at SliceToTypedArray: %T", new sliceType([s$9])); /* */ $s = 47; case 47: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; }
186601
+ $panic(new $String(_r$29));
186527
186602
  /* } */ case 10:
186528
- $s = -1; return result;
186529
- /* */ } return; } var $f = {$blk: TypedArrayOf, $c: true, $r, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _i$6, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _ref$6, _ref$7, i, i$1, i$2, i$3, i$4, i$5, i$6, result, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, v, v$1, v$2, v$3, v$4, v$5, v$6, $s};return $f;
186603
+ $s = -1; return new js.Value.ptr(null, false, arrayType.zero());
186604
+ /* */ } return; } var $f = {$blk: TypedArrayOf, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, $24r$5, $24r$6, _arg, _arg$1, _arg$10, _arg$11, _arg$12, _arg$13, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _q, _q$1, _q$2, _q$3, _q$4, _q$5, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, a, a$1, a$2, a$3, a$4, a$5, a$6, a$7, buf, buf$1, buf$2, buf$3, buf$4, buf$5, buf$6, s, s$1, s$2, s$3, s$4, s$5, s$6, s$7, s$8, s$9, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s};return $f;
186530
186605
  };
186531
186606
  $pkg.TypedArrayOf = TypedArrayOf;
186532
- ptrType.methods = [{prop: "GetJs", name: "GetJs", pkg: "", typ: $funcType([], [js.Value], false)}, {prop: "GetDrawingBufferWidth", name: "GetDrawingBufferWidth", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetDrawingBufferHeight", name: "GetDrawingBufferHeight", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetCanvas", name: "GetCanvas", pkg: "", typ: $funcType([], [js.Value], false)}, {prop: "ActiveTexture", name: "ActiveTexture", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AttachShader", name: "AttachShader", pkg: "", typ: $funcType([ptrType$1, ptrType$6], [], false)}, {prop: "BindAttribLocation", name: "BindAttribLocation", pkg: "", typ: $funcType([ptrType$1, $Int, $String], [], false)}, {prop: "BindBuffer", name: "BindBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$2], [], false)}, {prop: "BindFrameBuffer", name: "BindFrameBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$3], [], false)}, {prop: "BindRenderBuffer", name: "BindRenderBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$4], [], false)}, {prop: "BindTexture", name: "BindTexture", pkg: "", typ: $funcType([types.GLEnum, ptrType$5], [], false)}, {prop: "BlendColor", name: "BlendColor", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "BlendEquation", name: "BlendEquation", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "BlendEquationSeparate", name: "BlendEquationSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "BlendFunc", name: "BlendFunc", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "BlendFuncSeparate", name: "BlendFuncSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "BufferDataBySize", name: "BufferDataBySize", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum], [], false)}, {prop: "BufferData", name: "BufferData", pkg: "", typ: $funcType([types.GLEnum, sliceType$7, types.GLEnum], [], false)}, {prop: "BufferDataI", name: "BufferDataI", pkg: "", typ: $funcType([types.GLEnum, sliceType$12, types.GLEnum], [], false)}, {prop: "BufferDataUI", name: "BufferDataUI", pkg: "", typ: $funcType([types.GLEnum, sliceType$6, types.GLEnum], [], false)}, {prop: "BufferDataUI16", name: "BufferDataUI16", pkg: "", typ: $funcType([types.GLEnum, sliceType$5, types.GLEnum], [], false)}, {prop: "BufferDataWithOffset", name: "BufferDataWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$7, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferDataIWithOffset", name: "BufferDataIWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$12, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferDataUIWithOffset", name: "BufferDataUIWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$13, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferSubData", name: "BufferSubData", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$7], [], false)}, {prop: "BufferSubDataI", name: "BufferSubDataI", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$12], [], false)}, {prop: "BufferSubDataUI", name: "BufferSubDataUI", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$13], [], false)}, {prop: "BufferSubDataWithOffset", name: "BufferSubDataWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$7, $Uint, $Uint], [], false)}, {prop: "BufferSubDataIWithOffset", name: "BufferSubDataIWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$12, $Uint, $Uint], [], false)}, {prop: "BufferSubDataUIWithOffset", name: "BufferSubDataUIWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$13, $Uint, $Uint], [], false)}, {prop: "CheckFrameBufferStatus", name: "CheckFrameBufferStatus", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "ClearColor", name: "ClearColor", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "ClearDepth", name: "ClearDepth", pkg: "", typ: $funcType([$Float32], [], false)}, {prop: "ClearStencil", name: "ClearStencil", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "ColorMask", name: "ColorMask", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "Commit", name: "Commit", pkg: "", typ: $funcType([], [], false)}, {prop: "CompileShader", name: "CompileShader", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "CompressedTexImage2D", name: "CompressedTexImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage2DIn", name: "CompressedTexImage2DIn", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, sliceType$7], [], false)}, {prop: "CompressedTexImage2DOffset", name: "CompressedTexImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage2DFromOffset", name: "CompressedTexImage2DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, sliceType$7, $Int, $Int], [], false)}, {prop: "CompressedTexImage3DOffset", name: "CompressedTexImage3DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage3DFromOffset", name: "CompressedTexImage3DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, sliceType$7, $Int, $Int], [], false)}, {prop: "CompressedTexSubImage2D", name: "CompressedTexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum], [], false)}, {prop: "CompressedTexSubImage2DIn", name: "CompressedTexSubImage2DIn", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, sliceType$7], [], false)}, {prop: "CompressedTexSubImage2DFrom", name: "CompressedTexSubImage2DFrom", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, $Int, $Int], [], false)}, {prop: "CompressedTexSubImage2DFromOffset", name: "CompressedTexSubImage2DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, sliceType$7, $Int, $Int], [], false)}, {prop: "CopyTexImage2D", name: "CopyTexImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CopyTexSubImage2D", name: "CopyTexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CreateVertexArray", name: "CreateVertexArray", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "BindVertexArray", name: "BindVertexArray", pkg: "", typ: $funcType([ptrType$8], [], false)}, {prop: "CreateBuffer", name: "CreateBuffer", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "CreateFrameBuffer", name: "CreateFrameBuffer", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "CreateProgram", name: "CreateProgram", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "CreateRenderBuffer", name: "CreateRenderBuffer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "CreateShader", name: "CreateShader", pkg: "", typ: $funcType([types.GLEnum], [ptrType$6], false)}, {prop: "CreateFragmentShader", name: "CreateFragmentShader", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "CreateVertexShader", name: "CreateVertexShader", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "CreateTexture", name: "CreateTexture", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "CullFace", name: "CullFace", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DeleteBuffer", name: "DeleteBuffer", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "DeleteFrameBuffer", name: "DeleteFrameBuffer", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "DeleteProgram", name: "DeleteProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "DeleteRenderBuffer", name: "DeleteRenderBuffer", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "DeleteShader", name: "DeleteShader", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "DeleteTexture", name: "DeleteTexture", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "DepthFunc", name: "DepthFunc", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DepthMask", name: "DepthMask", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "DepthRange", name: "DepthRange", pkg: "", typ: $funcType([$Float32, $Float32], [], false)}, {prop: "DetachShader", name: "DetachShader", pkg: "", typ: $funcType([ptrType$1, ptrType$6], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DisableVertexAttribArray", name: "DisableVertexAttribArray", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "DrawArrays", name: "DrawArrays", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int], [], false)}, {prop: "DrawElements", name: "DrawElements", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int64], [], false)}, {prop: "Enable", name: "Enable", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "EnableVertexAttribArray", name: "EnableVertexAttribArray", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Finnish", name: "Finnish", pkg: "", typ: $funcType([], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}, {prop: "FrameBufferRenderbuffer", name: "FrameBufferRenderbuffer", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, ptrType$4], [], false)}, {prop: "FrameBufferTexture2D", name: "FrameBufferTexture2D", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, ptrType$5, $Int], [], false)}, {prop: "FrontFace", name: "FrontFace", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "GenerateMipmap", name: "GenerateMipmap", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "GetActiveAttrib", name: "GetActiveAttrib", pkg: "", typ: $funcType([ptrType$1, $Uint], [ptrType$9], false)}, {prop: "GetActiveUniform", name: "GetActiveUniform", pkg: "", typ: $funcType([ptrType$1, $Uint], [ptrType$9], false)}, {prop: "GetAttachedShaders", name: "GetAttachedShaders", pkg: "", typ: $funcType([ptrType$1], [sliceType$1], false)}, {prop: "GetAttribLocation", name: "GetAttribLocation", pkg: "", typ: $funcType([ptrType$1, $String], [$Int], false)}, {prop: "GetBufferParameter", name: "GetBufferParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [$Int], false)}, {prop: "GetContextAttributes", name: "GetContextAttributes", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "GetError", name: "GetError", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetExtension", name: "GetExtension", pkg: "", typ: $funcType([$String], [ptrType$10], false)}, {prop: "GetExtensionLoseContext", name: "GetExtensionLoseContext", pkg: "", typ: $funcType([], [ptrType$11], false)}, {prop: "GetFrameBufferAttachmentParameterInt", name: "GetFrameBufferAttachmentParameterInt", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [$Int], false)}, {prop: "GetFrameBufferAttachmentParameterEnum", name: "GetFrameBufferAttachmentParameterEnum", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [types.GLEnum], false)}, {prop: "GetFrameBufferAttachmentParameterRenderBuffer", name: "GetFrameBufferAttachmentParameterRenderBuffer", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [ptrType$4], false)}, {prop: "GetFrameBufferAttachmentParameterTexture", name: "GetFrameBufferAttachmentParameterTexture", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [ptrType$5], false)}, {prop: "GetParameter", name: "GetParameter", pkg: "", typ: $funcType([types.GLEnum], [js.Value], false)}, {prop: "GetParameterActiveTexture", name: "GetParameterActiveTexture", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterAliasedLineWidthRange", name: "GetParameterAliasedLineWidthRange", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterAliasedPointSizeRange", name: "GetParameterAliasedPointSizeRange", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterAlphaBits", name: "GetParameterAlphaBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterArrayBufferBinding", name: "GetParameterArrayBufferBinding", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "GetParameterBlend", name: "GetParameterBlend", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterBlendColor", name: "GetParameterBlendColor", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "GetParameterBlendDstAlpha", name: "GetParameterBlendDstAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendDstRgb", name: "GetParameterBlendDstRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquation", name: "GetParameterBlendEquation", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquationAlpha", name: "GetParameterBlendEquationAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquationRgb", name: "GetParameterBlendEquationRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendSrcAlpha", name: "GetParameterBlendSrcAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendSrcRgb", name: "GetParameterBlendSrcRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlueBits", name: "GetParameterBlueBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterColorClearValue", name: "GetParameterColorClearValue", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "GetParameterColorWritemask", name: "GetParameterColorWritemask", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetParameterCompressedTextureFormats", name: "GetParameterCompressedTextureFormats", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "GetParameterCullFace", name: "GetParameterCullFace", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterCullFaceMode", name: "GetParameterCullFaceMode", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterCurrentProgram", name: "GetParameterCurrentProgram", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "GetParameterDepthBits", name: "GetParameterDepthBits", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterDepthFunc", name: "GetParameterDepthFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterElementArrayBufferBinding", name: "GetParameterElementArrayBufferBinding", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "GetParameterFrameBufferBinding", name: "GetParameterFrameBufferBinding", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "GetParameterFrontFace", name: "GetParameterFrontFace", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterGenerateMipmapHint", name: "GetParameterGenerateMipmapHint", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterGreenBits", name: "GetParameterGreenBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterImplementationColorReadFormat", name: "GetParameterImplementationColorReadFormat", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterImplementationColorReadType", name: "GetParameterImplementationColorReadType", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterLineWidth", name: "GetParameterLineWidth", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterCombinedTextureImageUnits", name: "GetParameterCombinedTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxCubeMapTextureSize", name: "GetParameterMaxCubeMapTextureSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxFragmentUniformVectors", name: "GetParameterMaxFragmentUniformVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxRenderBufferSize", name: "GetParameterMaxRenderBufferSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxTextureImageUnits", name: "GetParameterMaxTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxTextureSize", name: "GetParameterMaxTextureSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVaryingVectors", name: "GetParameterMaxVaryingVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexAttribs", name: "GetParameterMaxVertexAttribs", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexTextureImageUnits", name: "GetParameterMaxVertexTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexUniformVectors", name: "GetParameterMaxVertexUniformVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxViewportDims", name: "GetParameterMaxViewportDims", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterPackAlignment", name: "GetParameterPackAlignment", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterPolygonOffsetFactor", name: "GetParameterPolygonOffsetFactor", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterPolygonOffsetFill", name: "GetParameterPolygonOffsetFill", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterPolygonOffsetUnits", name: "GetParameterPolygonOffsetUnits", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterRedBits", name: "GetParameterRedBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterRenderBufferBinding", name: "GetParameterRenderBufferBinding", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "GetParameterRenderer", name: "GetParameterRenderer", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterSampleBuffers", name: "GetParameterSampleBuffers", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterSampleCoverageInvert", name: "GetParameterSampleCoverageInvert", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterSampleCoverageValue", name: "GetParameterSampleCoverageValue", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterSamples", name: "GetParameterSamples", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterScissorBox", name: "GetParameterScissorBox", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetParameterScissorTest", name: "GetParameterScissorTest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterShadingLanguageVersion", name: "GetParameterShadingLanguageVersion", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterStencilBackFail", name: "GetParameterStencilBackFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackFunc", name: "GetParameterStencilBackFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackPassDepthFail", name: "GetParameterStencilBackPassDepthFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackPassDepthPass", name: "GetParameterStencilBackPassDepthPass", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackRef", name: "GetParameterStencilBackRef", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilBackValueMask", name: "GetParameterStencilBackValueMask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilBackWritemask", name: "GetParameterStencilBackWritemask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilBits", name: "GetParameterStencilBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilClearValue", name: "GetParameterStencilClearValue", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilFail", name: "GetParameterStencilFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilFunc", name: "GetParameterStencilFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilPassDepthFail", name: "GetParameterStencilPassDepthFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilPassDepthPass", name: "GetParameterStencilPassDepthPass", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilRef", name: "GetParameterStencilRef", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilTest", name: "GetParameterStencilTest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterStencilValueMask", name: "GetParameterStencilValueMask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilWritemask", name: "GetParameterStencilWritemask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterSubpixelBits", name: "GetParameterSubpixelBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterTextureBinding2D", name: "GetParameterTextureBinding2D", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "GetParameterTextureBindingCubeMap", name: "GetParameterTextureBindingCubeMap", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "GetParameterUnpackAlignment", name: "GetParameterUnpackAlignment", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterUnpackColorspaceConversionWebGL", name: "GetParameterUnpackColorspaceConversionWebGL", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterUnpackFlipYWebGL", name: "GetParameterUnpackFlipYWebGL", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterUnpackPremultiplyAlphaWebGL", name: "GetParameterUnpackPremultiplyAlphaWebGL", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterVendor", name: "GetParameterVendor", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterVersion", name: "GetParameterVersion", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterViewport", name: "GetParameterViewport", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetProgramInfoLog", name: "GetProgramInfoLog", pkg: "", typ: $funcType([ptrType$1], [$String], false)}, {prop: "GetProgramParameter", name: "GetProgramParameter", pkg: "", typ: $funcType([ptrType$1, types.GLEnum], [js.Value], false)}, {prop: "GetProgramParameterDeleteStatus", name: "GetProgramParameterDeleteStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterLinkStatus", name: "GetProgramParameterLinkStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterValidateStatus", name: "GetProgramParameterValidateStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterAttachedShaders", name: "GetProgramParameterAttachedShaders", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveAttributes", name: "GetProgramParameterActiveAttributes", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveUniforms", name: "GetProgramParameterActiveUniforms", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterTransformFeedbackBufferMode", name: "GetProgramParameterTransformFeedbackBufferMode", pkg: "", typ: $funcType([ptrType$1], [types.GLEnum], false)}, {prop: "GetProgramParameterTransformFeedbackVaryings", name: "GetProgramParameterTransformFeedbackVaryings", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveUniformBlocks", name: "GetProgramParameterActiveUniformBlocks", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetRenderbufferParameter", name: "GetRenderbufferParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [js.Value], false)}, {prop: "GetRenderbufferParameterRenderBufferWidth", name: "GetRenderbufferParameterRenderBufferWidth", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferHeight", name: "GetRenderbufferParameterRenderBufferHeight", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferInternalFormat", name: "GetRenderbufferParameterRenderBufferInternalFormat", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetRenderbufferParameterRenderBufferGreenSize", name: "GetRenderbufferParameterRenderBufferGreenSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferBlueSize", name: "GetRenderbufferParameterRenderBufferBlueSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferRedSize", name: "GetRenderbufferParameterRenderBufferRedSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferAlphaSize", name: "GetRenderbufferParameterRenderBufferAlphaSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferDepthSize", name: "GetRenderbufferParameterRenderBufferDepthSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferStencilSize", name: "GetRenderbufferParameterRenderBufferStencilSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferSamples", name: "GetRenderbufferParameterRenderBufferSamples", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetShaderInfoLog", name: "GetShaderInfoLog", pkg: "", typ: $funcType([ptrType$6], [$String], false)}, {prop: "GetShaderParameter", name: "GetShaderParameter", pkg: "", typ: $funcType([ptrType$6, types.GLEnum], [js.Value], false)}, {prop: "GetShaderParameterDeleteStatus", name: "GetShaderParameterDeleteStatus", pkg: "", typ: $funcType([ptrType$6], [$Bool], false)}, {prop: "GetShaderParameterCompileStatus", name: "GetShaderParameterCompileStatus", pkg: "", typ: $funcType([ptrType$6], [$Bool], false)}, {prop: "GetShaderParameterShaderType", name: "GetShaderParameterShaderType", pkg: "", typ: $funcType([ptrType$6], [types.GLEnum], false)}, {prop: "GetShaderPrecisionFormat", name: "GetShaderPrecisionFormat", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [ptrType$12], false)}, {prop: "GetShaderSource", name: "GetShaderSource", pkg: "", typ: $funcType([ptrType$6], [$String], false)}, {prop: "GetSupportedExtensions", name: "GetSupportedExtensions", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetTexParameter", name: "GetTexParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [js.Value], false)}, {prop: "GetTexParameterMagFilter", name: "GetTexParameterMagFilter", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterMinFilter", name: "GetTexParameterMinFilter", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterWrapS", name: "GetTexParameterWrapS", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterWrapT", name: "GetTexParameterWrapT", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterMaxAnisotropyExt", name: "GetTexParameterMaxAnisotropyExt", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterBaseLevel", name: "GetTexParameterBaseLevel", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetTexParameterCompareFunc", name: "GetTexParameterCompareFunc", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterCompareMode", name: "GetTexParameterCompareMode", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterImmutableFormat", name: "GetTexParameterImmutableFormat", pkg: "", typ: $funcType([types.GLEnum], [$Bool], false)}, {prop: "GetTexParameterImmutableLevels", name: "GetTexParameterImmutableLevels", pkg: "", typ: $funcType([types.GLEnum], [$Uint], false)}, {prop: "GetTexParameterMaxLever", name: "GetTexParameterMaxLever", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetTexParameterMaxLOD", name: "GetTexParameterMaxLOD", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterMinLOD", name: "GetTexParameterMinLOD", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterWrapR", name: "GetTexParameterWrapR", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetUniform", name: "GetUniform", pkg: "", typ: $funcType([ptrType$1, ptrType$13], [js.Value], false)}, {prop: "GetUniformLocation", name: "GetUniformLocation", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$13], false)}, {prop: "GetVertexAttrib", name: "GetVertexAttrib", pkg: "", typ: $funcType([$Int, types.GLEnum], [js.Value], false)}, {prop: "GetVertexAttribArrayBufferBinding", name: "GetVertexAttribArrayBufferBinding", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "GetVertexAttribArrayBufferEnabled", name: "GetVertexAttribArrayBufferEnabled", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribArraySize", name: "GetVertexAttribArraySize", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayStride", name: "GetVertexAttribArrayStride", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayType", name: "GetVertexAttribArrayType", pkg: "", typ: $funcType([$Int], [types.GLEnum], false)}, {prop: "GetVertexAttribArrayNormalized", name: "GetVertexAttribArrayNormalized", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribCurrentVertexAttrib", name: "GetVertexAttribCurrentVertexAttrib", pkg: "", typ: $funcType([$Int], [arrayType$2], false)}, {prop: "GetVertexAttribArrayInteger", name: "GetVertexAttribArrayInteger", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribArrayDivisor", name: "GetVertexAttribArrayDivisor", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayDivisorAngle", name: "GetVertexAttribArrayDivisorAngle", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribOffset", name: "GetVertexAttribOffset", pkg: "", typ: $funcType([$Int, types.GLEnum], [$Int], false)}, {prop: "Hint", name: "Hint", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "IsBuffer", name: "IsBuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsContextLost", name: "IsContextLost", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsEnabled", name: "IsEnabled", pkg: "", typ: $funcType([types.GLEnum], [$Bool], false)}, {prop: "IsFrameBuffer", name: "IsFrameBuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsProgram", name: "IsProgram", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsRenderbuffer", name: "IsRenderbuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsShader", name: "IsShader", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsTexture", name: "IsTexture", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "LineWidth", name: "LineWidth", pkg: "", typ: $funcType([$Float32], [], false)}, {prop: "LinkProgram", name: "LinkProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "PixelStorei", name: "PixelStorei", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "PolygonOffset", name: "PolygonOffset", pkg: "", typ: $funcType([$Float32, $Float32], [], false)}, {prop: "ReadPixels", name: "ReadPixels", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, js.Value], [], false)}, {prop: "ReadPixelsOffset", name: "ReadPixelsOffset", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, js.Value, $Uint], [], false)}, {prop: "ReadPixelsOffsetPointer", name: "ReadPixelsOffsetPointer", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, $Int], [], false)}, {prop: "RenderbufferStorage", name: "RenderbufferStorage", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Int], [], false)}, {prop: "SampleCoverage", name: "SampleCoverage", pkg: "", typ: $funcType([$Float32, $Bool], [], false)}, {prop: "Scissor", name: "Scissor", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int], [], false)}, {prop: "ShaderSource", name: "ShaderSource", pkg: "", typ: $funcType([ptrType$6, $String], [], false)}, {prop: "StencilFunc", name: "StencilFunc", pkg: "", typ: $funcType([types.GLEnum, $Int, $Uint32], [], false)}, {prop: "StencilFuncSeparate", name: "StencilFuncSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Uint32], [], false)}, {prop: "StencilMask", name: "StencilMask", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "StencilMaskSeparate", name: "StencilMaskSeparate", pkg: "", typ: $funcType([types.GLEnum, $Uint32], [], false)}, {prop: "StencilOp", name: "StencilOp", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "StencilOpSeparate", name: "StencilOpSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "TexImage2Db", name: "TexImage2Db", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, sliceType$4], [], false)}, {prop: "TexImage2Dui16", name: "TexImage2Dui16", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$5], [], false)}, {prop: "TexImage2Dui32", name: "TexImage2Dui32", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$6], [], false)}, {prop: "TexImage2Df", name: "TexImage2Df", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, sliceType$7], [], false)}, {prop: "TexImage2DHtmlElement", name: "TexImage2DHtmlElement", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexImage2DOffset", name: "TexImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexImage2DHtmlElement2", name: "TexImage2DHtmlElement2", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexImage2D2", name: "TexImage2D2", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$7, $Int], [], false)}, {prop: "TexParameterf", name: "TexParameterf", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Float32], [], false)}, {prop: "TexParameteri", name: "TexParameteri", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "texParameterEnum", name: "texParameterEnum", pkg: "github.com/nuberu/webgl", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMagFilter", name: "TexParameterMagFilter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMinFilter", name: "TexParameterMinFilter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterWrapS", name: "TexParameterWrapS", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterWrapT", name: "TexParameterWrapT", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMaxAnisotropyExt", name: "TexParameterMaxAnisotropyExt", pkg: "", typ: $funcType([types.GLEnum, $Float32], [], false)}, {prop: "TexParameterBaseLevel", name: "TexParameterBaseLevel", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterCompareFunc", name: "TexParameterCompareFunc", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterCompareMode", name: "TexParameterCompareMode", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMaxLevel", name: "TexParameterMaxLevel", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterMaxLOD", name: "TexParameterMaxLOD", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterMinLOD", name: "TexParameterMinLOD", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterWrapR", name: "TexParameterWrapR", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexSubImage2D", name: "TexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexSubImage2DHtmlElement", name: "TexSubImage2DHtmlElement", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexSubImage2DOffset", name: "TexSubImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexSubImage2DOffset2", name: "TexSubImage2DOffset2", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexSubImage2DHtmlElement2", name: "TexSubImage2DHtmlElement2", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "Uniform1f", name: "Uniform1f", pkg: "", typ: $funcType([ptrType$13, $Float32], [], false)}, {prop: "Uniform1fv", name: "Uniform1fv", pkg: "", typ: $funcType([ptrType$13, sliceType$7], [], false)}, {prop: "Uniform1i", name: "Uniform1i", pkg: "", typ: $funcType([ptrType$13, $Int], [], false)}, {prop: "Uniform1iv", name: "Uniform1iv", pkg: "", typ: $funcType([ptrType$13, sliceType$12], [], false)}, {prop: "Uniform2f", name: "Uniform2f", pkg: "", typ: $funcType([ptrType$13, $Float32, $Float32], [], false)}, {prop: "Uniform2fv", name: "Uniform2fv", pkg: "", typ: $funcType([ptrType$13, sliceType$7], [], false)}, {prop: "Uniform2i", name: "Uniform2i", pkg: "", typ: $funcType([ptrType$13, $Int, $Int], [], false)}, {prop: "Uniform2iv", name: "Uniform2iv", pkg: "", typ: $funcType([ptrType$13, sliceType$12], [], false)}, {prop: "Uniform3f", name: "Uniform3f", pkg: "", typ: $funcType([ptrType$13, $Float32, $Float32, $Float32], [], false)}, {prop: "Uniform3fv", name: "Uniform3fv", pkg: "", typ: $funcType([ptrType$13, sliceType$7], [], false)}, {prop: "Uniform3i", name: "Uniform3i", pkg: "", typ: $funcType([ptrType$13, $Int, $Int, $Int], [], false)}, {prop: "Uniform3iv", name: "Uniform3iv", pkg: "", typ: $funcType([ptrType$13, sliceType$12], [], false)}, {prop: "Uniform4f", name: "Uniform4f", pkg: "", typ: $funcType([ptrType$13, $Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "Uniform4fv", name: "Uniform4fv", pkg: "", typ: $funcType([ptrType$13, sliceType$7], [], false)}, {prop: "Uniform4i", name: "Uniform4i", pkg: "", typ: $funcType([ptrType$13, $Int, $Int, $Int, $Int], [], false)}, {prop: "Uniform4iv", name: "Uniform4iv", pkg: "", typ: $funcType([ptrType$13, sliceType$12], [], false)}, {prop: "UniformMatrix2fv", name: "UniformMatrix2fv", pkg: "", typ: $funcType([ptrType$13, $Bool, sliceType$7], [], false)}, {prop: "UniformMatrix3fv", name: "UniformMatrix3fv", pkg: "", typ: $funcType([ptrType$13, $Bool, sliceType$7], [], false)}, {prop: "UniformMatrix4fv", name: "UniformMatrix4fv", pkg: "", typ: $funcType([ptrType$13, $Bool, sliceType$7], [], false)}, {prop: "UseProgram", name: "UseProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "ValidateProgram", name: "ValidateProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "VertexAttrib1f", name: "VertexAttrib1f", pkg: "", typ: $funcType([$Int, $Float32], [], false)}, {prop: "VertexAttrib2f", name: "VertexAttrib2f", pkg: "", typ: $funcType([$Int, $Float32, $Float32], [], false)}, {prop: "VertexAttrib3f", name: "VertexAttrib3f", pkg: "", typ: $funcType([$Int, $Float32, $Float32, $Float32], [], false)}, {prop: "VertexAttrib4f", name: "VertexAttrib4f", pkg: "", typ: $funcType([$Int, $Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "VertexAttrib1fv", name: "VertexAttrib1fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib2fv", name: "VertexAttrib2fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib3fv", name: "VertexAttrib3fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib4fv", name: "VertexAttrib4fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttribPointer", name: "VertexAttribPointer", pkg: "", typ: $funcType([$Int, $Int, types.GLEnum, $Bool, $Int, $Int], [], false)}, {prop: "Viewport", name: "Viewport", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int], [], false)}];
186607
+ ptrType.methods = [{prop: "GetJs", name: "GetJs", pkg: "", typ: $funcType([], [js.Value], false)}, {prop: "GetDrawingBufferWidth", name: "GetDrawingBufferWidth", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetDrawingBufferHeight", name: "GetDrawingBufferHeight", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetCanvas", name: "GetCanvas", pkg: "", typ: $funcType([], [js.Value], false)}, {prop: "ActiveTexture", name: "ActiveTexture", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "AttachShader", name: "AttachShader", pkg: "", typ: $funcType([ptrType$1, ptrType$6], [], false)}, {prop: "BindAttribLocation", name: "BindAttribLocation", pkg: "", typ: $funcType([ptrType$1, $Int, $String], [], false)}, {prop: "BindBuffer", name: "BindBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$2], [], false)}, {prop: "BindFrameBuffer", name: "BindFrameBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$3], [], false)}, {prop: "BindRenderBuffer", name: "BindRenderBuffer", pkg: "", typ: $funcType([types.GLEnum, ptrType$4], [], false)}, {prop: "BindTexture", name: "BindTexture", pkg: "", typ: $funcType([types.GLEnum, ptrType$5], [], false)}, {prop: "BlendColor", name: "BlendColor", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "BlendEquation", name: "BlendEquation", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "BlendEquationSeparate", name: "BlendEquationSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "BlendFunc", name: "BlendFunc", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "BlendFuncSeparate", name: "BlendFuncSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "BufferDataBySize", name: "BufferDataBySize", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum], [], false)}, {prop: "BufferData", name: "BufferData", pkg: "", typ: $funcType([types.GLEnum, sliceType$7, types.GLEnum], [], false)}, {prop: "BufferDataI", name: "BufferDataI", pkg: "", typ: $funcType([types.GLEnum, sliceType$14, types.GLEnum], [], false)}, {prop: "BufferDataUI", name: "BufferDataUI", pkg: "", typ: $funcType([types.GLEnum, sliceType$6, types.GLEnum], [], false)}, {prop: "BufferDataUI16", name: "BufferDataUI16", pkg: "", typ: $funcType([types.GLEnum, sliceType$5, types.GLEnum], [], false)}, {prop: "BufferDataWithOffset", name: "BufferDataWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$7, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferDataIWithOffset", name: "BufferDataIWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$14, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferDataUIWithOffset", name: "BufferDataUIWithOffset", pkg: "", typ: $funcType([types.GLEnum, sliceType$15, types.GLEnum, $Uint, $Uint], [], false)}, {prop: "BufferSubData", name: "BufferSubData", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$7], [], false)}, {prop: "BufferSubDataI", name: "BufferSubDataI", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$14], [], false)}, {prop: "BufferSubDataUI", name: "BufferSubDataUI", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$15], [], false)}, {prop: "BufferSubDataWithOffset", name: "BufferSubDataWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$7, $Uint, $Uint], [], false)}, {prop: "BufferSubDataIWithOffset", name: "BufferSubDataIWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$14, $Uint, $Uint], [], false)}, {prop: "BufferSubDataUIWithOffset", name: "BufferSubDataUIWithOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, sliceType$15, $Uint, $Uint], [], false)}, {prop: "CheckFrameBufferStatus", name: "CheckFrameBufferStatus", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "ClearColor", name: "ClearColor", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "ClearDepth", name: "ClearDepth", pkg: "", typ: $funcType([$Float32], [], false)}, {prop: "ClearStencil", name: "ClearStencil", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "ColorMask", name: "ColorMask", pkg: "", typ: $funcType([$Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "Commit", name: "Commit", pkg: "", typ: $funcType([], [], false)}, {prop: "CompileShader", name: "CompileShader", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "CompressedTexImage2D", name: "CompressedTexImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage2DIn", name: "CompressedTexImage2DIn", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, sliceType$7], [], false)}, {prop: "CompressedTexImage2DOffset", name: "CompressedTexImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage2DFromOffset", name: "CompressedTexImage2DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, sliceType$7, $Int, $Int], [], false)}, {prop: "CompressedTexImage3DOffset", name: "CompressedTexImage3DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CompressedTexImage3DFromOffset", name: "CompressedTexImage3DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, sliceType$7, $Int, $Int], [], false)}, {prop: "CompressedTexSubImage2D", name: "CompressedTexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum], [], false)}, {prop: "CompressedTexSubImage2DIn", name: "CompressedTexSubImage2DIn", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, sliceType$7], [], false)}, {prop: "CompressedTexSubImage2DFrom", name: "CompressedTexSubImage2DFrom", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, $Int, $Int], [], false)}, {prop: "CompressedTexSubImage2DFromOffset", name: "CompressedTexSubImage2DFromOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, sliceType$7, $Int, $Int], [], false)}, {prop: "CopyTexImage2D", name: "CopyTexImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CopyTexSubImage2D", name: "CopyTexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, $Int, $Int], [], false)}, {prop: "CreateVertexArray", name: "CreateVertexArray", pkg: "", typ: $funcType([], [ptrType$18], false)}, {prop: "BindVertexArray", name: "BindVertexArray", pkg: "", typ: $funcType([ptrType$18], [], false)}, {prop: "CreateBuffer", name: "CreateBuffer", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "CreateFrameBuffer", name: "CreateFrameBuffer", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "CreateProgram", name: "CreateProgram", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "CreateRenderBuffer", name: "CreateRenderBuffer", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "CreateShader", name: "CreateShader", pkg: "", typ: $funcType([types.GLEnum], [ptrType$6], false)}, {prop: "CreateFragmentShader", name: "CreateFragmentShader", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "CreateVertexShader", name: "CreateVertexShader", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "CreateTexture", name: "CreateTexture", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "CullFace", name: "CullFace", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DeleteBuffer", name: "DeleteBuffer", pkg: "", typ: $funcType([ptrType$2], [], false)}, {prop: "DeleteFrameBuffer", name: "DeleteFrameBuffer", pkg: "", typ: $funcType([ptrType$3], [], false)}, {prop: "DeleteProgram", name: "DeleteProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "DeleteRenderBuffer", name: "DeleteRenderBuffer", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "DeleteShader", name: "DeleteShader", pkg: "", typ: $funcType([ptrType$6], [], false)}, {prop: "DeleteTexture", name: "DeleteTexture", pkg: "", typ: $funcType([ptrType$5], [], false)}, {prop: "DepthFunc", name: "DepthFunc", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DepthMask", name: "DepthMask", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "DepthRange", name: "DepthRange", pkg: "", typ: $funcType([$Float32, $Float32], [], false)}, {prop: "DetachShader", name: "DetachShader", pkg: "", typ: $funcType([ptrType$1, ptrType$6], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "DisableVertexAttribArray", name: "DisableVertexAttribArray", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "DrawArrays", name: "DrawArrays", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int], [], false)}, {prop: "DrawElements", name: "DrawElements", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int64], [], false)}, {prop: "Enable", name: "Enable", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "EnableVertexAttribArray", name: "EnableVertexAttribArray", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Finnish", name: "Finnish", pkg: "", typ: $funcType([], [], false)}, {prop: "Flush", name: "Flush", pkg: "", typ: $funcType([], [], false)}, {prop: "FrameBufferRenderbuffer", name: "FrameBufferRenderbuffer", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, ptrType$4], [], false)}, {prop: "FrameBufferTexture2D", name: "FrameBufferTexture2D", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, ptrType$5, $Int], [], false)}, {prop: "FrontFace", name: "FrontFace", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "GenerateMipmap", name: "GenerateMipmap", pkg: "", typ: $funcType([types.GLEnum], [], false)}, {prop: "GetActiveAttrib", name: "GetActiveAttrib", pkg: "", typ: $funcType([ptrType$1, $Uint], [ptrType$19], false)}, {prop: "GetActiveUniform", name: "GetActiveUniform", pkg: "", typ: $funcType([ptrType$1, $Uint], [ptrType$19], false)}, {prop: "GetAttachedShaders", name: "GetAttachedShaders", pkg: "", typ: $funcType([ptrType$1], [sliceType$1], false)}, {prop: "GetAttribLocation", name: "GetAttribLocation", pkg: "", typ: $funcType([ptrType$1, $String], [$Int], false)}, {prop: "GetBufferParameter", name: "GetBufferParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [$Int], false)}, {prop: "GetContextAttributes", name: "GetContextAttributes", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "GetError", name: "GetError", pkg: "", typ: $funcType([], [$error], false)}, {prop: "GetExtension", name: "GetExtension", pkg: "", typ: $funcType([$String], [ptrType$20], false)}, {prop: "GetExtensionLoseContext", name: "GetExtensionLoseContext", pkg: "", typ: $funcType([], [ptrType$21], false)}, {prop: "GetFrameBufferAttachmentParameterInt", name: "GetFrameBufferAttachmentParameterInt", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [$Int], false)}, {prop: "GetFrameBufferAttachmentParameterEnum", name: "GetFrameBufferAttachmentParameterEnum", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [types.GLEnum], false)}, {prop: "GetFrameBufferAttachmentParameterRenderBuffer", name: "GetFrameBufferAttachmentParameterRenderBuffer", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [ptrType$4], false)}, {prop: "GetFrameBufferAttachmentParameterTexture", name: "GetFrameBufferAttachmentParameterTexture", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [ptrType$5], false)}, {prop: "GetParameter", name: "GetParameter", pkg: "", typ: $funcType([types.GLEnum], [js.Value], false)}, {prop: "GetParameterActiveTexture", name: "GetParameterActiveTexture", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterAliasedLineWidthRange", name: "GetParameterAliasedLineWidthRange", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterAliasedPointSizeRange", name: "GetParameterAliasedPointSizeRange", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterAlphaBits", name: "GetParameterAlphaBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterArrayBufferBinding", name: "GetParameterArrayBufferBinding", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "GetParameterBlend", name: "GetParameterBlend", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterBlendColor", name: "GetParameterBlendColor", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "GetParameterBlendDstAlpha", name: "GetParameterBlendDstAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendDstRgb", name: "GetParameterBlendDstRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquation", name: "GetParameterBlendEquation", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquationAlpha", name: "GetParameterBlendEquationAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendEquationRgb", name: "GetParameterBlendEquationRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendSrcAlpha", name: "GetParameterBlendSrcAlpha", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlendSrcRgb", name: "GetParameterBlendSrcRgb", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterBlueBits", name: "GetParameterBlueBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterColorClearValue", name: "GetParameterColorClearValue", pkg: "", typ: $funcType([], [arrayType$2], false)}, {prop: "GetParameterColorWritemask", name: "GetParameterColorWritemask", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetParameterCompressedTextureFormats", name: "GetParameterCompressedTextureFormats", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "GetParameterCullFace", name: "GetParameterCullFace", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterCullFaceMode", name: "GetParameterCullFaceMode", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterCurrentProgram", name: "GetParameterCurrentProgram", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "GetParameterDepthBits", name: "GetParameterDepthBits", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterDepthFunc", name: "GetParameterDepthFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterElementArrayBufferBinding", name: "GetParameterElementArrayBufferBinding", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "GetParameterFrameBufferBinding", name: "GetParameterFrameBufferBinding", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "GetParameterFrontFace", name: "GetParameterFrontFace", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterGenerateMipmapHint", name: "GetParameterGenerateMipmapHint", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterGreenBits", name: "GetParameterGreenBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterImplementationColorReadFormat", name: "GetParameterImplementationColorReadFormat", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterImplementationColorReadType", name: "GetParameterImplementationColorReadType", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterLineWidth", name: "GetParameterLineWidth", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterCombinedTextureImageUnits", name: "GetParameterCombinedTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxCubeMapTextureSize", name: "GetParameterMaxCubeMapTextureSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxFragmentUniformVectors", name: "GetParameterMaxFragmentUniformVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxRenderBufferSize", name: "GetParameterMaxRenderBufferSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxTextureImageUnits", name: "GetParameterMaxTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxTextureSize", name: "GetParameterMaxTextureSize", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVaryingVectors", name: "GetParameterMaxVaryingVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexAttribs", name: "GetParameterMaxVertexAttribs", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexTextureImageUnits", name: "GetParameterMaxVertexTextureImageUnits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxVertexUniformVectors", name: "GetParameterMaxVertexUniformVectors", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterMaxViewportDims", name: "GetParameterMaxViewportDims", pkg: "", typ: $funcType([], [arrayType$1], false)}, {prop: "GetParameterPackAlignment", name: "GetParameterPackAlignment", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterPolygonOffsetFactor", name: "GetParameterPolygonOffsetFactor", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterPolygonOffsetFill", name: "GetParameterPolygonOffsetFill", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterPolygonOffsetUnits", name: "GetParameterPolygonOffsetUnits", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterRedBits", name: "GetParameterRedBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterRenderBufferBinding", name: "GetParameterRenderBufferBinding", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "GetParameterRenderer", name: "GetParameterRenderer", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterSampleBuffers", name: "GetParameterSampleBuffers", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterSampleCoverageInvert", name: "GetParameterSampleCoverageInvert", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterSampleCoverageValue", name: "GetParameterSampleCoverageValue", pkg: "", typ: $funcType([], [$Float32], false)}, {prop: "GetParameterSamples", name: "GetParameterSamples", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterScissorBox", name: "GetParameterScissorBox", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetParameterScissorTest", name: "GetParameterScissorTest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterShadingLanguageVersion", name: "GetParameterShadingLanguageVersion", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterStencilBackFail", name: "GetParameterStencilBackFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackFunc", name: "GetParameterStencilBackFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackPassDepthFail", name: "GetParameterStencilBackPassDepthFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackPassDepthPass", name: "GetParameterStencilBackPassDepthPass", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilBackRef", name: "GetParameterStencilBackRef", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilBackValueMask", name: "GetParameterStencilBackValueMask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilBackWritemask", name: "GetParameterStencilBackWritemask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilBits", name: "GetParameterStencilBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilClearValue", name: "GetParameterStencilClearValue", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilFail", name: "GetParameterStencilFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilFunc", name: "GetParameterStencilFunc", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilPassDepthFail", name: "GetParameterStencilPassDepthFail", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilPassDepthPass", name: "GetParameterStencilPassDepthPass", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterStencilRef", name: "GetParameterStencilRef", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterStencilTest", name: "GetParameterStencilTest", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterStencilValueMask", name: "GetParameterStencilValueMask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterStencilWritemask", name: "GetParameterStencilWritemask", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "GetParameterSubpixelBits", name: "GetParameterSubpixelBits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterTextureBinding2D", name: "GetParameterTextureBinding2D", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "GetParameterTextureBindingCubeMap", name: "GetParameterTextureBindingCubeMap", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "GetParameterUnpackAlignment", name: "GetParameterUnpackAlignment", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "GetParameterUnpackColorspaceConversionWebGL", name: "GetParameterUnpackColorspaceConversionWebGL", pkg: "", typ: $funcType([], [types.GLEnum], false)}, {prop: "GetParameterUnpackFlipYWebGL", name: "GetParameterUnpackFlipYWebGL", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterUnpackPremultiplyAlphaWebGL", name: "GetParameterUnpackPremultiplyAlphaWebGL", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetParameterVendor", name: "GetParameterVendor", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterVersion", name: "GetParameterVersion", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GetParameterViewport", name: "GetParameterViewport", pkg: "", typ: $funcType([], [arrayType$3], false)}, {prop: "GetProgramInfoLog", name: "GetProgramInfoLog", pkg: "", typ: $funcType([ptrType$1], [$String], false)}, {prop: "GetProgramParameter", name: "GetProgramParameter", pkg: "", typ: $funcType([ptrType$1, types.GLEnum], [js.Value], false)}, {prop: "GetProgramParameterDeleteStatus", name: "GetProgramParameterDeleteStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterLinkStatus", name: "GetProgramParameterLinkStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterValidateStatus", name: "GetProgramParameterValidateStatus", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetProgramParameterAttachedShaders", name: "GetProgramParameterAttachedShaders", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveAttributes", name: "GetProgramParameterActiveAttributes", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveUniforms", name: "GetProgramParameterActiveUniforms", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterTransformFeedbackBufferMode", name: "GetProgramParameterTransformFeedbackBufferMode", pkg: "", typ: $funcType([ptrType$1], [types.GLEnum], false)}, {prop: "GetProgramParameterTransformFeedbackVaryings", name: "GetProgramParameterTransformFeedbackVaryings", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetProgramParameterActiveUniformBlocks", name: "GetProgramParameterActiveUniformBlocks", pkg: "", typ: $funcType([ptrType$1], [$Int], false)}, {prop: "GetRenderbufferParameter", name: "GetRenderbufferParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [js.Value], false)}, {prop: "GetRenderbufferParameterRenderBufferWidth", name: "GetRenderbufferParameterRenderBufferWidth", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferHeight", name: "GetRenderbufferParameterRenderBufferHeight", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferInternalFormat", name: "GetRenderbufferParameterRenderBufferInternalFormat", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetRenderbufferParameterRenderBufferGreenSize", name: "GetRenderbufferParameterRenderBufferGreenSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferBlueSize", name: "GetRenderbufferParameterRenderBufferBlueSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferRedSize", name: "GetRenderbufferParameterRenderBufferRedSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferAlphaSize", name: "GetRenderbufferParameterRenderBufferAlphaSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferDepthSize", name: "GetRenderbufferParameterRenderBufferDepthSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferStencilSize", name: "GetRenderbufferParameterRenderBufferStencilSize", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetRenderbufferParameterRenderBufferSamples", name: "GetRenderbufferParameterRenderBufferSamples", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetShaderInfoLog", name: "GetShaderInfoLog", pkg: "", typ: $funcType([ptrType$6], [$String], false)}, {prop: "GetShaderParameter", name: "GetShaderParameter", pkg: "", typ: $funcType([ptrType$6, types.GLEnum], [js.Value], false)}, {prop: "GetShaderParameterDeleteStatus", name: "GetShaderParameterDeleteStatus", pkg: "", typ: $funcType([ptrType$6], [$Bool], false)}, {prop: "GetShaderParameterCompileStatus", name: "GetShaderParameterCompileStatus", pkg: "", typ: $funcType([ptrType$6], [$Bool], false)}, {prop: "GetShaderParameterShaderType", name: "GetShaderParameterShaderType", pkg: "", typ: $funcType([ptrType$6], [types.GLEnum], false)}, {prop: "GetShaderPrecisionFormat", name: "GetShaderPrecisionFormat", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [ptrType$22], false)}, {prop: "GetShaderSource", name: "GetShaderSource", pkg: "", typ: $funcType([ptrType$6], [$String], false)}, {prop: "GetSupportedExtensions", name: "GetSupportedExtensions", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "GetTexParameter", name: "GetTexParameter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [js.Value], false)}, {prop: "GetTexParameterMagFilter", name: "GetTexParameterMagFilter", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterMinFilter", name: "GetTexParameterMinFilter", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterWrapS", name: "GetTexParameterWrapS", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterWrapT", name: "GetTexParameterWrapT", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterMaxAnisotropyExt", name: "GetTexParameterMaxAnisotropyExt", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterBaseLevel", name: "GetTexParameterBaseLevel", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetTexParameterCompareFunc", name: "GetTexParameterCompareFunc", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterCompareMode", name: "GetTexParameterCompareMode", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetTexParameterImmutableFormat", name: "GetTexParameterImmutableFormat", pkg: "", typ: $funcType([types.GLEnum], [$Bool], false)}, {prop: "GetTexParameterImmutableLevels", name: "GetTexParameterImmutableLevels", pkg: "", typ: $funcType([types.GLEnum], [$Uint], false)}, {prop: "GetTexParameterMaxLever", name: "GetTexParameterMaxLever", pkg: "", typ: $funcType([types.GLEnum], [$Int], false)}, {prop: "GetTexParameterMaxLOD", name: "GetTexParameterMaxLOD", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterMinLOD", name: "GetTexParameterMinLOD", pkg: "", typ: $funcType([types.GLEnum], [$Float32], false)}, {prop: "GetTexParameterWrapR", name: "GetTexParameterWrapR", pkg: "", typ: $funcType([types.GLEnum], [types.GLEnum], false)}, {prop: "GetUniform", name: "GetUniform", pkg: "", typ: $funcType([ptrType$1, ptrType$23], [js.Value], false)}, {prop: "GetUniformLocation", name: "GetUniformLocation", pkg: "", typ: $funcType([ptrType$1, $String], [ptrType$23], false)}, {prop: "GetVertexAttrib", name: "GetVertexAttrib", pkg: "", typ: $funcType([$Int, types.GLEnum], [js.Value], false)}, {prop: "GetVertexAttribArrayBufferBinding", name: "GetVertexAttribArrayBufferBinding", pkg: "", typ: $funcType([$Int], [ptrType$2], false)}, {prop: "GetVertexAttribArrayBufferEnabled", name: "GetVertexAttribArrayBufferEnabled", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribArraySize", name: "GetVertexAttribArraySize", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayStride", name: "GetVertexAttribArrayStride", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayType", name: "GetVertexAttribArrayType", pkg: "", typ: $funcType([$Int], [types.GLEnum], false)}, {prop: "GetVertexAttribArrayNormalized", name: "GetVertexAttribArrayNormalized", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribCurrentVertexAttrib", name: "GetVertexAttribCurrentVertexAttrib", pkg: "", typ: $funcType([$Int], [arrayType$2], false)}, {prop: "GetVertexAttribArrayInteger", name: "GetVertexAttribArrayInteger", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "GetVertexAttribArrayDivisor", name: "GetVertexAttribArrayDivisor", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribArrayDivisorAngle", name: "GetVertexAttribArrayDivisorAngle", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "GetVertexAttribOffset", name: "GetVertexAttribOffset", pkg: "", typ: $funcType([$Int, types.GLEnum], [$Int], false)}, {prop: "Hint", name: "Hint", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "IsBuffer", name: "IsBuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsContextLost", name: "IsContextLost", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsEnabled", name: "IsEnabled", pkg: "", typ: $funcType([types.GLEnum], [$Bool], false)}, {prop: "IsFrameBuffer", name: "IsFrameBuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsProgram", name: "IsProgram", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsRenderbuffer", name: "IsRenderbuffer", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsShader", name: "IsShader", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "IsTexture", name: "IsTexture", pkg: "", typ: $funcType([js.Value], [$Bool], false)}, {prop: "LineWidth", name: "LineWidth", pkg: "", typ: $funcType([$Float32], [], false)}, {prop: "LinkProgram", name: "LinkProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "PixelStorei", name: "PixelStorei", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "PolygonOffset", name: "PolygonOffset", pkg: "", typ: $funcType([$Float32, $Float32], [], false)}, {prop: "ReadPixels", name: "ReadPixels", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, js.Value], [], false)}, {prop: "ReadPixelsOffset", name: "ReadPixelsOffset", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, js.Value, $Uint], [], false)}, {prop: "ReadPixelsOffsetPointer", name: "ReadPixelsOffsetPointer", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int, types.GLEnum, $Int], [], false)}, {prop: "RenderbufferStorage", name: "RenderbufferStorage", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Int], [], false)}, {prop: "SampleCoverage", name: "SampleCoverage", pkg: "", typ: $funcType([$Float32, $Bool], [], false)}, {prop: "Scissor", name: "Scissor", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int], [], false)}, {prop: "ShaderSource", name: "ShaderSource", pkg: "", typ: $funcType([ptrType$6, $String], [], false)}, {prop: "StencilFunc", name: "StencilFunc", pkg: "", typ: $funcType([types.GLEnum, $Int, $Uint32], [], false)}, {prop: "StencilFuncSeparate", name: "StencilFuncSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Uint32], [], false)}, {prop: "StencilMask", name: "StencilMask", pkg: "", typ: $funcType([$Uint32], [], false)}, {prop: "StencilMaskSeparate", name: "StencilMaskSeparate", pkg: "", typ: $funcType([types.GLEnum, $Uint32], [], false)}, {prop: "StencilOp", name: "StencilOp", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "StencilOpSeparate", name: "StencilOpSeparate", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "TexImage2Db", name: "TexImage2Db", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, sliceType$4], [], false)}, {prop: "TexImage2Dui16", name: "TexImage2Dui16", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$5], [], false)}, {prop: "TexImage2Dui32", name: "TexImage2Dui32", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$6], [], false)}, {prop: "TexImage2Df", name: "TexImage2Df", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, sliceType$7], [], false)}, {prop: "TexImage2DHtmlElement", name: "TexImage2DHtmlElement", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexImage2DOffset", name: "TexImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexImage2DHtmlElement2", name: "TexImage2DHtmlElement2", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexImage2D2", name: "TexImage2D2", pkg: "", typ: $funcType([types.GLEnum, $Int, types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, sliceType$7, $Int], [], false)}, {prop: "TexParameterf", name: "TexParameterf", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Float32], [], false)}, {prop: "TexParameteri", name: "TexParameteri", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "texParameterEnum", name: "texParameterEnum", pkg: "github.com/nuberu/webgl", typ: $funcType([types.GLEnum, types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMagFilter", name: "TexParameterMagFilter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMinFilter", name: "TexParameterMinFilter", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterWrapS", name: "TexParameterWrapS", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterWrapT", name: "TexParameterWrapT", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMaxAnisotropyExt", name: "TexParameterMaxAnisotropyExt", pkg: "", typ: $funcType([types.GLEnum, $Float32], [], false)}, {prop: "TexParameterBaseLevel", name: "TexParameterBaseLevel", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterCompareFunc", name: "TexParameterCompareFunc", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterCompareMode", name: "TexParameterCompareMode", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexParameterMaxLevel", name: "TexParameterMaxLevel", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterMaxLOD", name: "TexParameterMaxLOD", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterMinLOD", name: "TexParameterMinLOD", pkg: "", typ: $funcType([types.GLEnum, $Int], [], false)}, {prop: "TexParameterWrapR", name: "TexParameterWrapR", pkg: "", typ: $funcType([types.GLEnum, types.GLEnum], [], false)}, {prop: "TexSubImage2D", name: "TexSubImage2D", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexSubImage2DHtmlElement", name: "TexSubImage2DHtmlElement", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "TexSubImage2DOffset", name: "TexSubImage2DOffset", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexSubImage2DOffset2", name: "TexSubImage2DOffset2", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, $Int], [], false)}, {prop: "TexSubImage2DHtmlElement2", name: "TexSubImage2DHtmlElement2", pkg: "", typ: $funcType([types.GLEnum, $Int, $Int, $Int, $Int, $Int, types.GLEnum, types.GLEnum, js.Value], [], false)}, {prop: "Uniform1f", name: "Uniform1f", pkg: "", typ: $funcType([ptrType$23, $Float32], [], false)}, {prop: "Uniform1fv", name: "Uniform1fv", pkg: "", typ: $funcType([ptrType$23, sliceType$7], [], false)}, {prop: "Uniform1i", name: "Uniform1i", pkg: "", typ: $funcType([ptrType$23, $Int], [], false)}, {prop: "Uniform1iv", name: "Uniform1iv", pkg: "", typ: $funcType([ptrType$23, sliceType$14], [], false)}, {prop: "Uniform2f", name: "Uniform2f", pkg: "", typ: $funcType([ptrType$23, $Float32, $Float32], [], false)}, {prop: "Uniform2fv", name: "Uniform2fv", pkg: "", typ: $funcType([ptrType$23, sliceType$7], [], false)}, {prop: "Uniform2i", name: "Uniform2i", pkg: "", typ: $funcType([ptrType$23, $Int, $Int], [], false)}, {prop: "Uniform2iv", name: "Uniform2iv", pkg: "", typ: $funcType([ptrType$23, sliceType$14], [], false)}, {prop: "Uniform3f", name: "Uniform3f", pkg: "", typ: $funcType([ptrType$23, $Float32, $Float32, $Float32], [], false)}, {prop: "Uniform3fv", name: "Uniform3fv", pkg: "", typ: $funcType([ptrType$23, sliceType$7], [], false)}, {prop: "Uniform3i", name: "Uniform3i", pkg: "", typ: $funcType([ptrType$23, $Int, $Int, $Int], [], false)}, {prop: "Uniform3iv", name: "Uniform3iv", pkg: "", typ: $funcType([ptrType$23, sliceType$14], [], false)}, {prop: "Uniform4f", name: "Uniform4f", pkg: "", typ: $funcType([ptrType$23, $Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "Uniform4fv", name: "Uniform4fv", pkg: "", typ: $funcType([ptrType$23, sliceType$7], [], false)}, {prop: "Uniform4i", name: "Uniform4i", pkg: "", typ: $funcType([ptrType$23, $Int, $Int, $Int, $Int], [], false)}, {prop: "Uniform4iv", name: "Uniform4iv", pkg: "", typ: $funcType([ptrType$23, sliceType$14], [], false)}, {prop: "UniformMatrix2fv", name: "UniformMatrix2fv", pkg: "", typ: $funcType([ptrType$23, $Bool, sliceType$7], [], false)}, {prop: "UniformMatrix3fv", name: "UniformMatrix3fv", pkg: "", typ: $funcType([ptrType$23, $Bool, sliceType$7], [], false)}, {prop: "UniformMatrix4fv", name: "UniformMatrix4fv", pkg: "", typ: $funcType([ptrType$23, $Bool, sliceType$7], [], false)}, {prop: "UseProgram", name: "UseProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "ValidateProgram", name: "ValidateProgram", pkg: "", typ: $funcType([ptrType$1], [], false)}, {prop: "VertexAttrib1f", name: "VertexAttrib1f", pkg: "", typ: $funcType([$Int, $Float32], [], false)}, {prop: "VertexAttrib2f", name: "VertexAttrib2f", pkg: "", typ: $funcType([$Int, $Float32, $Float32], [], false)}, {prop: "VertexAttrib3f", name: "VertexAttrib3f", pkg: "", typ: $funcType([$Int, $Float32, $Float32, $Float32], [], false)}, {prop: "VertexAttrib4f", name: "VertexAttrib4f", pkg: "", typ: $funcType([$Int, $Float32, $Float32, $Float32, $Float32], [], false)}, {prop: "VertexAttrib1fv", name: "VertexAttrib1fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib2fv", name: "VertexAttrib2fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib3fv", name: "VertexAttrib3fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttrib4fv", name: "VertexAttrib4fv", pkg: "", typ: $funcType([$Int, sliceType$7], [], false)}, {prop: "VertexAttribPointer", name: "VertexAttribPointer", pkg: "", typ: $funcType([$Int, $Int, types.GLEnum, $Bool, $Int, $Int], [], false)}, {prop: "Viewport", name: "Viewport", pkg: "", typ: $funcType([$Int, $Int, $Int, $Int], [], false)}];
186533
186608
  RenderingContext.init("github.com/nuberu/webgl", [{prop: "loaded", name: "loaded", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "js", name: "js", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "version", name: "version", embedded: false, exported: false, typ: $Uint, tag: ""}]);
186534
186609
  $init = function() {
186535
186610
  $pkg.$init = function() {};
@@ -186538,8 +186613,469 @@ $packages["github.com/nuberu/webgl"] = (function() {
186538
186613
  $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186539
186614
  $r = extensions.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186540
186615
  $r = types.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186541
- $r = runtime.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186542
- $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186616
+ $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186617
+ $r = runtime.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186618
+ $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186619
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186620
+ };
186621
+ $pkg.$init = $init;
186622
+ return $pkg;
186623
+ })();
186624
+ $packages["golang.org/x/exp/shiny/driver/internal/dom"] = (function() {
186625
+ var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, GetBrowserZoomRatio, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
186626
+ focus = $packages["golang.org/x/mobile/event/focus"];
186627
+ key = $packages["golang.org/x/mobile/event/key"];
186628
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
186629
+ size = $packages["golang.org/x/mobile/event/size"];
186630
+ geom = $packages["golang.org/x/mobile/geom"];
186631
+ math = $packages["math"];
186632
+ strings = $packages["strings"];
186633
+ js = $packages["syscall/js"];
186634
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/internal/dom", true, function(eventChan_, releases_) {
186635
+ this.$val = this;
186636
+ if (arguments.length === 0) {
186637
+ this.eventChan = $chanNil;
186638
+ this.releases = sliceType$1.nil;
186639
+ return;
186640
+ }
186641
+ this.eventChan = eventChan_;
186642
+ this.releases = releases_;
186643
+ });
186644
+ sliceType = $sliceType($emptyInterface);
186645
+ funcType = $funcType([], [], false);
186646
+ sliceType$1 = $sliceType(funcType);
186647
+ sliceType$2 = $sliceType($Int32);
186648
+ chanType = $chanType($emptyInterface, false, false);
186649
+ ptrType = $ptrType(DomEvents);
186650
+ GetDocWidth = function() {
186651
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
186652
+ };
186653
+ $pkg.GetDocWidth = GetDocWidth;
186654
+ GetDocHeight = function() {
186655
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
186656
+ };
186657
+ $pkg.GetDocHeight = GetDocHeight;
186658
+ GetScreenWidth = function() {
186659
+ return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
186660
+ };
186661
+ $pkg.GetScreenWidth = GetScreenWidth;
186662
+ GetScreenHeight = function() {
186663
+ return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
186664
+ };
186665
+ $pkg.GetScreenHeight = GetScreenHeight;
186666
+ GetBrowserZoomRatio = function() {
186667
+ var chromeZoom1, chromeZoom2, chromeZoom3, docElClientWidth, scrollerWidthInNoZoom, scrollerWidthInZoom1, scrollerWidthInZoom2, windowInnerWidth, windowOuterWidth;
186668
+ windowInnerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Float();
186669
+ windowOuterWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Float();
186670
+ docElClientWidth = $clone($clone($clone($clone(js.Global(), js.Value).Get("document"), js.Value).Get("documentElement"), js.Value).Get("clientWidth"), js.Value).Float();
186671
+ scrollerWidthInNoZoom = windowInnerWidth - docElClientWidth;
186672
+ chromeZoom1 = (windowOuterWidth - scrollerWidthInNoZoom) / windowInnerWidth;
186673
+ scrollerWidthInZoom1 = math.Round(scrollerWidthInNoZoom * chromeZoom1);
186674
+ chromeZoom2 = (windowOuterWidth - scrollerWidthInZoom1) / windowInnerWidth;
186675
+ scrollerWidthInZoom2 = math.Round(scrollerWidthInNoZoom * chromeZoom2);
186676
+ chromeZoom3 = (windowOuterWidth - scrollerWidthInZoom2) / windowInnerWidth;
186677
+ return chromeZoom3;
186678
+ };
186679
+ $pkg.GetBrowserZoomRatio = GetBrowserZoomRatio;
186680
+ SetWindowWidth = function(newInnerWidth) {
186681
+ var {_r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s, $r, $c} = $restore(this, {newInnerWidth});
186682
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186683
+ innerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
186684
+ outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
186685
+ outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
186686
+ newOuterWidth = newInnerWidth + ((outerWidth - innerWidth >> 0)) >> 0;
186687
+ screenWidth = GetScreenWidth();
186688
+ if (newOuterWidth > screenWidth) {
186689
+ newOuterWidth = screenWidth;
186690
+ }
186691
+ _r = $clone(js.Global(), js.Value).Call("resizeTo", new sliceType([new $Int(newOuterWidth), new $Int(outerHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186692
+ _r;
186693
+ $s = -1; return;
186694
+ /* */ } return; } var $f = {$blk: SetWindowWidth, $c: true, $r, _r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s};return $f;
186695
+ };
186696
+ $pkg.SetWindowWidth = SetWindowWidth;
186697
+ SetWindowHeight = function(newInnerHeight) {
186698
+ var {_r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s, $r, $c} = $restore(this, {newInnerHeight});
186699
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186700
+ innerHeight = $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
186701
+ outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
186702
+ outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
186703
+ newOuterHeight = newInnerHeight + ((outerHeight - innerHeight >> 0)) >> 0;
186704
+ screenHeight = GetScreenHeight();
186705
+ if (newOuterHeight > screenHeight) {
186706
+ newOuterHeight = screenHeight;
186707
+ }
186708
+ _r = $clone(js.Global(), js.Value).Call("resizeTo", new sliceType([new $Int(outerWidth), new $Int(newOuterHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186709
+ _r;
186710
+ $s = -1; return;
186711
+ /* */ } return; } var $f = {$blk: SetWindowHeight, $c: true, $r, _r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s};return $f;
186712
+ };
186713
+ $pkg.SetWindowHeight = SetWindowHeight;
186714
+ GetOrientation = function() {
186715
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
186716
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
186717
+ orientation = [orientation];
186718
+ orientation[0] = 0;
186719
+ $deferred.push([(function(orientation) { return function() {
186720
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
186721
+ orientation[0] = 0;
186722
+ }
186723
+ }; })(orientation), []]);
186724
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
186725
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
186726
+ /* */ $s = 2; continue;
186727
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
186728
+ orientation[0] = 2;
186729
+ $24r = orientation[0];
186730
+ $s = 3; case 3: return $24r;
186731
+ /* } */ case 2:
186732
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
186733
+ /* */ $s = 5; continue;
186734
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
186735
+ orientation[0] = 2;
186736
+ $24r$1 = orientation[0];
186737
+ $s = 6; case 6: return $24r$1;
186738
+ /* } */ case 5:
186739
+ orientation[0] = 0;
186740
+ $24r$2 = orientation[0];
186741
+ $s = 7; case 7: return $24r$2;
186742
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
186743
+ };
186744
+ $pkg.GetOrientation = GetOrientation;
186745
+ NewDomEvents = function() {
186746
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
186747
+ };
186748
+ $pkg.NewDomEvents = NewDomEvents;
186749
+ DomEvents.ptr.prototype.GetEventChan = function() {
186750
+ var d;
186751
+ d = this;
186752
+ return d.eventChan;
186753
+ };
186754
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
186755
+ DomEvents.ptr.prototype.Release = function() {
186756
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
186757
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186758
+ d = this;
186759
+ _ref = d.releases;
186760
+ _i = 0;
186761
+ /* while (true) { */ case 1:
186762
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
186763
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
186764
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186765
+ _i++;
186766
+ $s = 1; continue;
186767
+ case 2:
186768
+ $s = -1; return;
186769
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
186770
+ };
186771
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
186772
+ DomEvents.ptr.prototype.BindEvents = function() {
186773
+ var {d, $s, $r, $c} = $restore(this, {});
186774
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186775
+ d = this;
186776
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186777
+ $go($methodVal(d, "emitSizeEvent"), []);
186778
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186779
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186780
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186781
+ $s = -1; return;
186782
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
186783
+ };
186784
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
186785
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
186786
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
186787
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186788
+ d = [d];
186789
+ onResize = [onResize];
186790
+ d[0] = this;
186791
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
186792
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
186793
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186794
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186795
+ $s = -1; return $ifaceNil;
186796
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
186797
+ }; })(d, onResize)), js.Func);
186798
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186799
+ _r;
186800
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
186801
+ var {_r$1, $s, $r, $c} = $restore(this, {});
186802
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186803
+ _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186804
+ _r$1;
186805
+ $clone(onResize[0], js.Func).Release();
186806
+ $s = -1; return;
186807
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
186808
+ }; })(d, onResize));
186809
+ $s = -1; return;
186810
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
186811
+ };
186812
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
186813
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
186814
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
186815
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186816
+ d = this;
186817
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186818
+ orientation = _r;
186819
+ pixelsPerPt = 1;
186820
+ width = GetDocWidth();
186821
+ height = GetDocHeight();
186822
+ $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186823
+ $s = -1; return;
186824
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
186825
+ };
186826
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
186827
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
186828
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
186829
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186830
+ d = [d];
186831
+ onClick = [onClick];
186832
+ onMove = [onMove];
186833
+ onWheel = [onWheel];
186834
+ d[0] = this;
186835
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186836
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186837
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186838
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186839
+ _r;
186840
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186841
+ $s = -1; return $ifaceNil;
186842
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
186843
+ }; })(d, onClick, onMove, onWheel)), js.Func);
186844
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186845
+ _r;
186846
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186847
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186848
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186849
+ _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186850
+ _r$1;
186851
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186852
+ $s = -1; return $ifaceNil;
186853
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
186854
+ }; })(d, onClick, onMove, onWheel)), js.Func);
186855
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186856
+ _r$1;
186857
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186858
+ _r$2;
186859
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186860
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186861
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186862
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186863
+ $s = -1; return $ifaceNil;
186864
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
186865
+ }; })(d, onClick, onMove, onWheel)), js.Func);
186866
+ _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186867
+ _r$3;
186868
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
186869
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
186870
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186871
+ _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
186872
+ _r$4;
186873
+ _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
186874
+ _r$5;
186875
+ _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
186876
+ _r$6;
186877
+ _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
186878
+ _r$7;
186879
+ $clone(onMove[0], js.Func).Release();
186880
+ $clone(onClick[0], js.Func).Release();
186881
+ $clone(onWheel[0], js.Func).Release();
186882
+ $s = -1; return;
186883
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
186884
+ }; })(d, onClick, onMove, onWheel));
186885
+ $s = -1; return;
186886
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
186887
+ };
186888
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
186889
+ getMouseDirection = function(ev) {
186890
+ var dir, ev;
186891
+ dir = 0;
186892
+ dir = 0;
186893
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
186894
+ dir = 1;
186895
+ }
186896
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
186897
+ dir = 2;
186898
+ }
186899
+ return dir;
186900
+ };
186901
+ getWheelButton = function(ev) {
186902
+ var deltaX, deltaY, ev;
186903
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
186904
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
186905
+ if (deltaY > 0) {
186906
+ return -2;
186907
+ }
186908
+ if (deltaY < 0) {
186909
+ return -1;
186910
+ }
186911
+ if (deltaX > 0) {
186912
+ return -4;
186913
+ }
186914
+ if (deltaX < 0) {
186915
+ return -3;
186916
+ }
186917
+ return 0;
186918
+ };
186919
+ getMouseButton = function(ev) {
186920
+ var _1, ev;
186921
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
186922
+ if (_1 === (0)) {
186923
+ return 1;
186924
+ } else if (_1 === (1)) {
186925
+ return 2;
186926
+ } else if (_1 === (2)) {
186927
+ return 3;
186928
+ } else if (_1 === (3)) {
186929
+ return 8;
186930
+ } else if (_1 === (4)) {
186931
+ return 9;
186932
+ } else {
186933
+ return 0;
186934
+ }
186935
+ };
186936
+ getEventModifiers = function(ev) {
186937
+ var ev, mod;
186938
+ mod = 0;
186939
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
186940
+ mod = (mod | (4)) >>> 0;
186941
+ }
186942
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
186943
+ mod = (mod | (2)) >>> 0;
186944
+ }
186945
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
186946
+ mod = (mod | (1)) >>> 0;
186947
+ }
186948
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
186949
+ mod = (mod | (8)) >>> 0;
186950
+ }
186951
+ return mod;
186952
+ };
186953
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
186954
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
186955
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186956
+ d = [d];
186957
+ onFocus = [onFocus];
186958
+ d[0] = this;
186959
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
186960
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186961
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186962
+ $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186963
+ $s = -1; return $ifaceNil;
186964
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
186965
+ }; })(d, onFocus)), js.Func);
186966
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186967
+ _r;
186968
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
186969
+ _r$1;
186970
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
186971
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
186972
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186973
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
186974
+ _r$2;
186975
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
186976
+ _r$3;
186977
+ $clone(onFocus[0], js.Func).Release();
186978
+ $s = -1; return;
186979
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
186980
+ }; })(d, onFocus));
186981
+ $s = -1; return;
186982
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
186983
+ };
186984
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
186985
+ isFocusIn = function(ev) {
186986
+ var ev;
186987
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
186988
+ return true;
186989
+ }
186990
+ return false;
186991
+ };
186992
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
186993
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
186994
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186995
+ d = [d];
186996
+ onKey = [onKey];
186997
+ d[0] = this;
186998
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
186999
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
187000
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
187001
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
187002
+ _r;
187003
+ $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187004
+ $s = -1; return $ifaceNil;
187005
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
187006
+ }; })(d, onKey)), js.Func);
187007
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
187008
+ _r;
187009
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
187010
+ _r$1;
187011
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
187012
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
187013
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
187014
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
187015
+ _r$2;
187016
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
187017
+ _r$3;
187018
+ $clone(onKey[0], js.Func).Release();
187019
+ $s = -1; return;
187020
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
187021
+ }; })(d, onKey));
187022
+ $s = -1; return;
187023
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
187024
+ };
187025
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
187026
+ getKeyRune = function(ev) {
187027
+ var ev, key$1;
187028
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
187029
+ if (key$1.$length === 1) {
187030
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
187031
+ }
187032
+ return -1;
187033
+ };
187034
+ getKeyDirection = function(ev) {
187035
+ var dir, ev;
187036
+ dir = 0;
187037
+ dir = 0;
187038
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
187039
+ dir = 1;
187040
+ }
187041
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
187042
+ dir = 2;
187043
+ }
187044
+ return dir;
187045
+ };
187046
+ getKeyCode = function(ev) {
187047
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
187048
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
187049
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
187050
+ code = _tuple[0];
187051
+ exists = _tuple[1];
187052
+ if (exists) {
187053
+ return code;
187054
+ }
187055
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
187056
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
187057
+ code$1 = _tuple$1[0];
187058
+ exists$1 = _tuple$1[1];
187059
+ if (exists$1) {
187060
+ return code$1;
187061
+ }
187062
+ return 0;
187063
+ };
187064
+ ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}];
187065
+ DomEvents.init("golang.org/x/exp/shiny/driver/internal/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
187066
+ $init = function() {
187067
+ $pkg.$init = function() {};
187068
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
187069
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187070
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187071
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187072
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187073
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187074
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187075
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187076
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187077
+ keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
187078
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
186543
187079
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
186544
187080
  };
186545
187081
  $pkg.$init = $init;
@@ -188662,466 +189198,6 @@ $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
188662
189198
  $pkg.$init = $init;
188663
189199
  return $pkg;
188664
189200
  })();
188665
- $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
188666
- var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, GetBrowserZoomRatio, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
188667
- focus = $packages["golang.org/x/mobile/event/focus"];
188668
- key = $packages["golang.org/x/mobile/event/key"];
188669
- mouse = $packages["golang.org/x/mobile/event/mouse"];
188670
- size = $packages["golang.org/x/mobile/event/size"];
188671
- geom = $packages["golang.org/x/mobile/geom"];
188672
- math = $packages["math"];
188673
- strings = $packages["strings"];
188674
- js = $packages["syscall/js"];
188675
- DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/util/dom", true, function(eventChan_, releases_) {
188676
- this.$val = this;
188677
- if (arguments.length === 0) {
188678
- this.eventChan = $chanNil;
188679
- this.releases = sliceType$1.nil;
188680
- return;
188681
- }
188682
- this.eventChan = eventChan_;
188683
- this.releases = releases_;
188684
- });
188685
- sliceType = $sliceType($emptyInterface);
188686
- funcType = $funcType([], [], false);
188687
- sliceType$1 = $sliceType(funcType);
188688
- sliceType$2 = $sliceType($Int32);
188689
- chanType = $chanType($emptyInterface, false, false);
188690
- ptrType = $ptrType(DomEvents);
188691
- GetDocWidth = function() {
188692
- return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
188693
- };
188694
- $pkg.GetDocWidth = GetDocWidth;
188695
- GetDocHeight = function() {
188696
- return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
188697
- };
188698
- $pkg.GetDocHeight = GetDocHeight;
188699
- GetScreenWidth = function() {
188700
- return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
188701
- };
188702
- $pkg.GetScreenWidth = GetScreenWidth;
188703
- GetScreenHeight = function() {
188704
- return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
188705
- };
188706
- $pkg.GetScreenHeight = GetScreenHeight;
188707
- GetBrowserZoomRatio = function() {
188708
- var chromeZoom1, chromeZoom2, chromeZoom3, docElClientWidth, scrollerWidthInNoZoom, scrollerWidthInZoom1, scrollerWidthInZoom2, windowInnerWidth, windowOuterWidth;
188709
- windowInnerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Float();
188710
- windowOuterWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Float();
188711
- docElClientWidth = $clone($clone($clone($clone(js.Global(), js.Value).Get("document"), js.Value).Get("documentElement"), js.Value).Get("clientWidth"), js.Value).Float();
188712
- scrollerWidthInNoZoom = windowInnerWidth - docElClientWidth;
188713
- chromeZoom1 = (windowOuterWidth - scrollerWidthInNoZoom) / windowInnerWidth;
188714
- scrollerWidthInZoom1 = math.Round(scrollerWidthInNoZoom * chromeZoom1);
188715
- chromeZoom2 = (windowOuterWidth - scrollerWidthInZoom1) / windowInnerWidth;
188716
- scrollerWidthInZoom2 = math.Round(scrollerWidthInNoZoom * chromeZoom2);
188717
- chromeZoom3 = (windowOuterWidth - scrollerWidthInZoom2) / windowInnerWidth;
188718
- return chromeZoom3;
188719
- };
188720
- $pkg.GetBrowserZoomRatio = GetBrowserZoomRatio;
188721
- SetWindowWidth = function(newInnerWidth) {
188722
- var {_r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s, $r, $c} = $restore(this, {newInnerWidth});
188723
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188724
- innerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
188725
- outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
188726
- outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
188727
- newOuterWidth = newInnerWidth + ((outerWidth - innerWidth >> 0)) >> 0;
188728
- screenWidth = GetScreenWidth();
188729
- if (newOuterWidth > screenWidth) {
188730
- newOuterWidth = screenWidth;
188731
- }
188732
- _r = $clone(js.Global(), js.Value).Call("resizeTo", new sliceType([new $Int(newOuterWidth), new $Int(outerHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188733
- _r;
188734
- $s = -1; return;
188735
- /* */ } return; } var $f = {$blk: SetWindowWidth, $c: true, $r, _r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s};return $f;
188736
- };
188737
- $pkg.SetWindowWidth = SetWindowWidth;
188738
- SetWindowHeight = function(newInnerHeight) {
188739
- var {_r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s, $r, $c} = $restore(this, {newInnerHeight});
188740
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188741
- innerHeight = $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
188742
- outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
188743
- outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
188744
- newOuterHeight = newInnerHeight + ((outerHeight - innerHeight >> 0)) >> 0;
188745
- screenHeight = GetScreenHeight();
188746
- if (newOuterHeight > screenHeight) {
188747
- newOuterHeight = screenHeight;
188748
- }
188749
- _r = $clone(js.Global(), js.Value).Call("resizeTo", new sliceType([new $Int(outerWidth), new $Int(newOuterHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188750
- _r;
188751
- $s = -1; return;
188752
- /* */ } return; } var $f = {$blk: SetWindowHeight, $c: true, $r, _r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s};return $f;
188753
- };
188754
- $pkg.SetWindowHeight = SetWindowHeight;
188755
- GetOrientation = function() {
188756
- var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
188757
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
188758
- orientation = [orientation];
188759
- orientation[0] = 0;
188760
- $deferred.push([(function(orientation) { return function() {
188761
- if (!($interfaceIsEqual($recover(), $ifaceNil))) {
188762
- orientation[0] = 0;
188763
- }
188764
- }; })(orientation), []]);
188765
- orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
188766
- /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
188767
- /* */ $s = 2; continue;
188768
- /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
188769
- orientation[0] = 2;
188770
- $24r = orientation[0];
188771
- $s = 3; case 3: return $24r;
188772
- /* } */ case 2:
188773
- /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
188774
- /* */ $s = 5; continue;
188775
- /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
188776
- orientation[0] = 2;
188777
- $24r$1 = orientation[0];
188778
- $s = 6; case 6: return $24r$1;
188779
- /* } */ case 5:
188780
- orientation[0] = 0;
188781
- $24r$2 = orientation[0];
188782
- $s = 7; case 7: return $24r$2;
188783
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
188784
- };
188785
- $pkg.GetOrientation = GetOrientation;
188786
- NewDomEvents = function() {
188787
- return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
188788
- };
188789
- $pkg.NewDomEvents = NewDomEvents;
188790
- DomEvents.ptr.prototype.GetEventChan = function() {
188791
- var d;
188792
- d = this;
188793
- return d.eventChan;
188794
- };
188795
- DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
188796
- DomEvents.ptr.prototype.Release = function() {
188797
- var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
188798
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188799
- d = this;
188800
- _ref = d.releases;
188801
- _i = 0;
188802
- /* while (true) { */ case 1:
188803
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
188804
- release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
188805
- $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188806
- _i++;
188807
- $s = 1; continue;
188808
- case 2:
188809
- $s = -1; return;
188810
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
188811
- };
188812
- DomEvents.prototype.Release = function() { return this.$val.Release(); };
188813
- DomEvents.ptr.prototype.BindEvents = function() {
188814
- var {d, $s, $r, $c} = $restore(this, {});
188815
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188816
- d = this;
188817
- $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188818
- $go($methodVal(d, "emitSizeEvent"), []);
188819
- $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188820
- $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188821
- $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188822
- $s = -1; return;
188823
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
188824
- };
188825
- DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
188826
- DomEvents.ptr.prototype.bindSizeEvents = function() {
188827
- var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
188828
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188829
- d = [d];
188830
- onResize = [onResize];
188831
- d[0] = this;
188832
- onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
188833
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
188834
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188835
- $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188836
- $s = -1; return $ifaceNil;
188837
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
188838
- }; })(d, onResize)), js.Func);
188839
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188840
- _r;
188841
- d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
188842
- var {_r$1, $s, $r, $c} = $restore(this, {});
188843
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188844
- _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188845
- _r$1;
188846
- $clone(onResize[0], js.Func).Release();
188847
- $s = -1; return;
188848
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
188849
- }; })(d, onResize));
188850
- $s = -1; return;
188851
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
188852
- };
188853
- DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
188854
- DomEvents.ptr.prototype.emitSizeEvent = function() {
188855
- var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
188856
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188857
- d = this;
188858
- _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188859
- orientation = _r;
188860
- pixelsPerPt = 1;
188861
- width = GetDocWidth();
188862
- height = GetDocHeight();
188863
- $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188864
- $s = -1; return;
188865
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
188866
- };
188867
- DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
188868
- DomEvents.ptr.prototype.bindMouseEvents = function() {
188869
- var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
188870
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188871
- d = [d];
188872
- onClick = [onClick];
188873
- onMove = [onMove];
188874
- onWheel = [onWheel];
188875
- d[0] = this;
188876
- onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188877
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188878
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188879
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188880
- _r;
188881
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188882
- $s = -1; return $ifaceNil;
188883
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
188884
- }; })(d, onClick, onMove, onWheel)), js.Func);
188885
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188886
- _r;
188887
- onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188888
- var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188889
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188890
- _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188891
- _r$1;
188892
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188893
- $s = -1; return $ifaceNil;
188894
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
188895
- }; })(d, onClick, onMove, onWheel)), js.Func);
188896
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
188897
- _r$1;
188898
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
188899
- _r$2;
188900
- onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188901
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188902
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188903
- $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188904
- $s = -1; return $ifaceNil;
188905
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
188906
- }; })(d, onClick, onMove, onWheel)), js.Func);
188907
- _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
188908
- _r$3;
188909
- d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
188910
- var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
188911
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188912
- _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
188913
- _r$4;
188914
- _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
188915
- _r$5;
188916
- _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
188917
- _r$6;
188918
- _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
188919
- _r$7;
188920
- $clone(onMove[0], js.Func).Release();
188921
- $clone(onClick[0], js.Func).Release();
188922
- $clone(onWheel[0], js.Func).Release();
188923
- $s = -1; return;
188924
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
188925
- }; })(d, onClick, onMove, onWheel));
188926
- $s = -1; return;
188927
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
188928
- };
188929
- DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
188930
- getMouseDirection = function(ev) {
188931
- var dir, ev;
188932
- dir = 0;
188933
- dir = 0;
188934
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
188935
- dir = 1;
188936
- }
188937
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
188938
- dir = 2;
188939
- }
188940
- return dir;
188941
- };
188942
- getWheelButton = function(ev) {
188943
- var deltaX, deltaY, ev;
188944
- deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
188945
- deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
188946
- if (deltaY > 0) {
188947
- return -2;
188948
- }
188949
- if (deltaY < 0) {
188950
- return -1;
188951
- }
188952
- if (deltaX > 0) {
188953
- return -4;
188954
- }
188955
- if (deltaX < 0) {
188956
- return -3;
188957
- }
188958
- return 0;
188959
- };
188960
- getMouseButton = function(ev) {
188961
- var _1, ev;
188962
- _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
188963
- if (_1 === (0)) {
188964
- return 1;
188965
- } else if (_1 === (1)) {
188966
- return 2;
188967
- } else if (_1 === (2)) {
188968
- return 3;
188969
- } else if (_1 === (3)) {
188970
- return 8;
188971
- } else if (_1 === (4)) {
188972
- return 9;
188973
- } else {
188974
- return 0;
188975
- }
188976
- };
188977
- getEventModifiers = function(ev) {
188978
- var ev, mod;
188979
- mod = 0;
188980
- if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
188981
- mod = (mod | (4)) >>> 0;
188982
- }
188983
- if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
188984
- mod = (mod | (2)) >>> 0;
188985
- }
188986
- if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
188987
- mod = (mod | (1)) >>> 0;
188988
- }
188989
- if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
188990
- mod = (mod | (8)) >>> 0;
188991
- }
188992
- return mod;
188993
- };
188994
- DomEvents.ptr.prototype.bindFocusEvents = function() {
188995
- var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
188996
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188997
- d = [d];
188998
- onFocus = [onFocus];
188999
- d[0] = this;
189000
- onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
189001
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
189002
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189003
- $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189004
- $s = -1; return $ifaceNil;
189005
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
189006
- }; })(d, onFocus)), js.Func);
189007
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189008
- _r;
189009
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189010
- _r$1;
189011
- d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
189012
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
189013
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189014
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189015
- _r$2;
189016
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189017
- _r$3;
189018
- $clone(onFocus[0], js.Func).Release();
189019
- $s = -1; return;
189020
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
189021
- }; })(d, onFocus));
189022
- $s = -1; return;
189023
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
189024
- };
189025
- DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
189026
- isFocusIn = function(ev) {
189027
- var ev;
189028
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
189029
- return true;
189030
- }
189031
- return false;
189032
- };
189033
- DomEvents.ptr.prototype.bindKeyEvents = function() {
189034
- var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
189035
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189036
- d = [d];
189037
- onKey = [onKey];
189038
- d[0] = this;
189039
- onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
189040
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
189041
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189042
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189043
- _r;
189044
- $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189045
- $s = -1; return $ifaceNil;
189046
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
189047
- }; })(d, onKey)), js.Func);
189048
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189049
- _r;
189050
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189051
- _r$1;
189052
- d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
189053
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
189054
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189055
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189056
- _r$2;
189057
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189058
- _r$3;
189059
- $clone(onKey[0], js.Func).Release();
189060
- $s = -1; return;
189061
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
189062
- }; })(d, onKey));
189063
- $s = -1; return;
189064
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
189065
- };
189066
- DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
189067
- getKeyRune = function(ev) {
189068
- var ev, key$1;
189069
- key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
189070
- if (key$1.$length === 1) {
189071
- return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
189072
- }
189073
- return -1;
189074
- };
189075
- getKeyDirection = function(ev) {
189076
- var dir, ev;
189077
- dir = 0;
189078
- dir = 0;
189079
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
189080
- dir = 1;
189081
- }
189082
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
189083
- dir = 2;
189084
- }
189085
- return dir;
189086
- };
189087
- getKeyCode = function(ev) {
189088
- var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
189089
- domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
189090
- _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
189091
- code = _tuple[0];
189092
- exists = _tuple[1];
189093
- if (exists) {
189094
- return code;
189095
- }
189096
- domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
189097
- _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
189098
- code$1 = _tuple$1[0];
189099
- exists$1 = _tuple$1[1];
189100
- if (exists$1) {
189101
- return code$1;
189102
- }
189103
- return 0;
189104
- };
189105
- ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}];
189106
- DomEvents.init("golang.org/x/exp/shiny/driver/util/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
189107
- $init = function() {
189108
- $pkg.$init = function() {};
189109
- /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
189110
- $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189111
- $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189112
- $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189113
- $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189114
- $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189115
- $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189116
- $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189117
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189118
- keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
189119
- keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
189120
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189121
- };
189122
- $pkg.$init = $init;
189123
- return $pkg;
189124
- })();
189125
189201
  $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
189126
189202
  var $pkg = {}, $init, screen, image, draw, ConvertYCbCrToRGBA;
189127
189203
  screen = $packages["golang.org/x/exp/shiny/screen"];
@@ -189156,12 +189232,12 @@ $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
189156
189232
  return $pkg;
189157
189233
  })();
189158
189234
  $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
189159
- var $pkg = {}, $init, fmt, webgl, types, errscreen, dom, imageutil, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, ArrayBufferSlice, YCbCrJS, BufferImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, Main, main, newScreenImpl, newBuffer;
189235
+ var $pkg = {}, $init, fmt, webgl, types, dom, errscreen, imageutil, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, ArrayBufferSlice, YCbCrJS, BufferImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, Main, main, newScreenImpl, newBuffer;
189160
189236
  fmt = $packages["fmt"];
189161
189237
  webgl = $packages["github.com/nuberu/webgl"];
189162
189238
  types = $packages["github.com/nuberu/webgl/types"];
189239
+ dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
189163
189240
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
189164
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
189165
189241
  imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
189166
189242
  screen = $packages["golang.org/x/exp/shiny/screen"];
189167
189243
  f64 = $packages["golang.org/x/image/math/f64"];
@@ -189959,8 +190035,8 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
189959
190035
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189960
190036
  $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189961
190037
  $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189962
- $r = errscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189963
- $r = dom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190038
+ $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190039
+ $r = errscreen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189964
190040
  $r = imageutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189965
190041
  $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189966
190042
  $r = f64.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -189977,7 +190053,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
189977
190053
  return $pkg;
189978
190054
  })();
189979
190055
  $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function() {
189980
- var $pkg = {}, $init, errs, general, webgldriver, image, js, H264Decoder, sliceType, ptrType, funcType, arrayType, sliceType$1, ptrType$1, IsAvailable, NewDecoder;
190056
+ var $pkg = {}, $init, errs, general, webgldriver, image, js, H264Decoder, sliceType, ptrType, funcType, arrayType, sliceType$1, ptrType$1, NewDecoder;
189981
190057
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
189982
190058
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
189983
190059
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
@@ -189997,10 +190073,6 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
189997
190073
  arrayType = $arrayType(funcType, 0);
189998
190074
  sliceType$1 = $sliceType($Uint8);
189999
190075
  ptrType$1 = $ptrType(H264Decoder);
190000
- IsAvailable = function() {
190001
- return !$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined();
190002
- };
190003
- $pkg.IsAvailable = IsAvailable;
190004
190076
  NewDecoder = function(header) {
190005
190077
  var decoder, header;
190006
190078
  decoder = $clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value);
@@ -190078,257 +190150,927 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
190078
190150
  $pkg.$init = $init;
190079
190151
  return $pkg;
190080
190152
  })();
190081
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"] = (function() {
190082
- var $pkg = {}, $init, js, ptrType, sliceType, initiateReset, jsNaClDecoder, ResetBeforeNextDecode, ShouldResetOnNextDecode, MarkResetDone, IsAvailable, CreateJsNaClDecoder, GetJsNaClDecoder, RemoveJsNaClDecoder;
190153
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
190154
+ var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
190155
+ focus = $packages["golang.org/x/mobile/event/focus"];
190156
+ key = $packages["golang.org/x/mobile/event/key"];
190157
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
190158
+ size = $packages["golang.org/x/mobile/event/size"];
190159
+ geom = $packages["golang.org/x/mobile/geom"];
190160
+ math = $packages["math"];
190161
+ strings = $packages["strings"];
190083
190162
  js = $packages["syscall/js"];
190084
- ptrType = $ptrType(js.Value);
190163
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
190164
+ this.$val = this;
190165
+ if (arguments.length === 0) {
190166
+ this.eventChan = $chanNil;
190167
+ this.releases = sliceType$1.nil;
190168
+ return;
190169
+ }
190170
+ this.eventChan = eventChan_;
190171
+ this.releases = releases_;
190172
+ });
190085
190173
  sliceType = $sliceType($emptyInterface);
190086
- ResetBeforeNextDecode = function() {
190087
- initiateReset = true;
190174
+ funcType = $funcType([], [], false);
190175
+ sliceType$1 = $sliceType(funcType);
190176
+ sliceType$2 = $sliceType($Int32);
190177
+ chanType = $chanType($emptyInterface, false, false);
190178
+ ptrType = $ptrType(DomEvents);
190179
+ GetDocWidth = function() {
190180
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
190088
190181
  };
190089
- $pkg.ResetBeforeNextDecode = ResetBeforeNextDecode;
190090
- ShouldResetOnNextDecode = function() {
190091
- return initiateReset;
190182
+ $pkg.GetDocWidth = GetDocWidth;
190183
+ GetDocHeight = function() {
190184
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
190092
190185
  };
190093
- $pkg.ShouldResetOnNextDecode = ShouldResetOnNextDecode;
190094
- MarkResetDone = function() {
190095
- initiateReset = false;
190186
+ $pkg.GetDocHeight = GetDocHeight;
190187
+ GetOrientation = function() {
190188
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
190189
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190190
+ orientation = [orientation];
190191
+ orientation[0] = 0;
190192
+ $deferred.push([(function(orientation) { return function() {
190193
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
190194
+ orientation[0] = 0;
190195
+ }
190196
+ }; })(orientation), []]);
190197
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
190198
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
190199
+ /* */ $s = 2; continue;
190200
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
190201
+ orientation[0] = 2;
190202
+ $24r = orientation[0];
190203
+ $s = 3; case 3: return $24r;
190204
+ /* } */ case 2:
190205
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
190206
+ /* */ $s = 5; continue;
190207
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
190208
+ orientation[0] = 2;
190209
+ $24r$1 = orientation[0];
190210
+ $s = 6; case 6: return $24r$1;
190211
+ /* } */ case 5:
190212
+ orientation[0] = 0;
190213
+ $24r$2 = orientation[0];
190214
+ $s = 7; case 7: return $24r$2;
190215
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
190216
+ };
190217
+ $pkg.GetOrientation = GetOrientation;
190218
+ NewDomEvents = function() {
190219
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
190220
+ };
190221
+ $pkg.NewDomEvents = NewDomEvents;
190222
+ DomEvents.ptr.prototype.GetEventChan = function() {
190223
+ var d;
190224
+ d = this;
190225
+ return d.eventChan;
190226
+ };
190227
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
190228
+ DomEvents.ptr.prototype.Release = function() {
190229
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
190230
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190231
+ d = this;
190232
+ _ref = d.releases;
190233
+ _i = 0;
190234
+ /* while (true) { */ case 1:
190235
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190236
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
190237
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190238
+ _i++;
190239
+ $s = 1; continue;
190240
+ case 2:
190241
+ $s = -1; return;
190242
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
190243
+ };
190244
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
190245
+ DomEvents.ptr.prototype.BindEvents = function() {
190246
+ var {d, $s, $r, $c} = $restore(this, {});
190247
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190248
+ d = this;
190249
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190250
+ $go($methodVal(d, "emitSizeEvent"), []);
190251
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190252
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190253
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190254
+ $s = -1; return;
190255
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
190256
+ };
190257
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
190258
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
190259
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
190260
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190261
+ d = [d];
190262
+ onResize = [onResize];
190263
+ d[0] = this;
190264
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
190265
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190266
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190267
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190268
+ $s = -1; return $ifaceNil;
190269
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190270
+ }; })(d, onResize)), js.Func);
190271
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190272
+ _r;
190273
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
190274
+ var {_r$1, $s, $r, $c} = $restore(this, {});
190275
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190276
+ _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190277
+ _r$1;
190278
+ $clone(onResize[0], js.Func).Release();
190279
+ $s = -1; return;
190280
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
190281
+ }; })(d, onResize));
190282
+ $s = -1; return;
190283
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
190096
190284
  };
190097
- $pkg.MarkResetDone = MarkResetDone;
190098
- IsAvailable = function() {
190099
- return !$clone($clone(js.Global(), js.Value).Get("createNaClDecoder"), js.Value).IsUndefined();
190285
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
190286
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
190287
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
190288
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190289
+ d = this;
190290
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190291
+ orientation = _r;
190292
+ pixelsPerPt = 1;
190293
+ width = GetDocWidth();
190294
+ height = GetDocHeight();
190295
+ $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190296
+ $s = -1; return;
190297
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
190100
190298
  };
190101
- $pkg.IsAvailable = IsAvailable;
190102
- CreateJsNaClDecoder = function() {
190103
- var {_r, createdJsNaClDecoder, $s, $r, $c} = $restore(this, {});
190299
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
190300
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
190301
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
190104
190302
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190105
- createdJsNaClDecoder = [createdJsNaClDecoder];
190106
- if (!(jsNaClDecoder === ptrType.nil)) {
190107
- $panic(new $String("JsNaClDecoder already created"));
190303
+ d = [d];
190304
+ onClick = [onClick];
190305
+ onMove = [onMove];
190306
+ onWheel = [onWheel];
190307
+ d[0] = this;
190308
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190309
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190310
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190311
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190312
+ _r;
190313
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190314
+ $s = -1; return $ifaceNil;
190315
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190316
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190317
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190318
+ _r;
190319
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190320
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190321
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190322
+ _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190323
+ _r$1;
190324
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190325
+ $s = -1; return $ifaceNil;
190326
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
190327
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190328
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190329
+ _r$1;
190330
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190331
+ _r$2;
190332
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190333
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190334
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190335
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190336
+ $s = -1; return $ifaceNil;
190337
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190338
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190339
+ _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190340
+ _r$3;
190341
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
190342
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
190343
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190344
+ _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190345
+ _r$4;
190346
+ _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190347
+ _r$5;
190348
+ _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190349
+ _r$6;
190350
+ _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190351
+ _r$7;
190352
+ $clone(onMove[0], js.Func).Release();
190353
+ $clone(onClick[0], js.Func).Release();
190354
+ $clone(onWheel[0], js.Func).Release();
190355
+ $s = -1; return;
190356
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
190357
+ }; })(d, onClick, onMove, onWheel));
190358
+ $s = -1; return;
190359
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
190360
+ };
190361
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
190362
+ getMouseDirection = function(ev) {
190363
+ var dir, ev;
190364
+ dir = 0;
190365
+ dir = 0;
190366
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
190367
+ dir = 1;
190368
+ }
190369
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
190370
+ dir = 2;
190108
190371
  }
190109
- _r = $clone(js.Global(), js.Value).Call("createNaClDecoder", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190110
- createdJsNaClDecoder[0] = $clone(_r, js.Value);
190111
- jsNaClDecoder = createdJsNaClDecoder[0];
190112
- $s = -1; return jsNaClDecoder;
190113
- /* */ } return; } var $f = {$blk: CreateJsNaClDecoder, $c: true, $r, _r, createdJsNaClDecoder, $s};return $f;
190372
+ return dir;
190114
190373
  };
190115
- $pkg.CreateJsNaClDecoder = CreateJsNaClDecoder;
190116
- GetJsNaClDecoder = function() {
190117
- return jsNaClDecoder;
190374
+ getWheelButton = function(ev) {
190375
+ var deltaX, deltaY, ev;
190376
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
190377
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
190378
+ if (deltaY > 0) {
190379
+ return -2;
190380
+ }
190381
+ if (deltaY < 0) {
190382
+ return -1;
190383
+ }
190384
+ if (deltaX > 0) {
190385
+ return -4;
190386
+ }
190387
+ if (deltaX < 0) {
190388
+ return -3;
190389
+ }
190390
+ return 0;
190118
190391
  };
190119
- $pkg.GetJsNaClDecoder = GetJsNaClDecoder;
190120
- RemoveJsNaClDecoder = function() {
190121
- jsNaClDecoder = ptrType.nil;
190392
+ getMouseButton = function(ev) {
190393
+ var _1, ev;
190394
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
190395
+ if (_1 === (0)) {
190396
+ return 1;
190397
+ } else if (_1 === (1)) {
190398
+ return 2;
190399
+ } else if (_1 === (2)) {
190400
+ return 3;
190401
+ } else if (_1 === (3)) {
190402
+ return 8;
190403
+ } else if (_1 === (4)) {
190404
+ return 9;
190405
+ } else {
190406
+ return 0;
190407
+ }
190122
190408
  };
190123
- $pkg.RemoveJsNaClDecoder = RemoveJsNaClDecoder;
190409
+ getEventModifiers = function(ev) {
190410
+ var ev, mod;
190411
+ mod = 0;
190412
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
190413
+ mod = (mod | (4)) >>> 0;
190414
+ }
190415
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
190416
+ mod = (mod | (2)) >>> 0;
190417
+ }
190418
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
190419
+ mod = (mod | (1)) >>> 0;
190420
+ }
190421
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
190422
+ mod = (mod | (8)) >>> 0;
190423
+ }
190424
+ return mod;
190425
+ };
190426
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
190427
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
190428
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190429
+ d = [d];
190430
+ onFocus = [onFocus];
190431
+ d[0] = this;
190432
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
190433
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190434
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190435
+ $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190436
+ $s = -1; return $ifaceNil;
190437
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190438
+ }; })(d, onFocus)), js.Func);
190439
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190440
+ _r;
190441
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190442
+ _r$1;
190443
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
190444
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190445
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190446
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190447
+ _r$2;
190448
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190449
+ _r$3;
190450
+ $clone(onFocus[0], js.Func).Release();
190451
+ $s = -1; return;
190452
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190453
+ }; })(d, onFocus));
190454
+ $s = -1; return;
190455
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
190456
+ };
190457
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
190458
+ isFocusIn = function(ev) {
190459
+ var ev;
190460
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
190461
+ return true;
190462
+ }
190463
+ return false;
190464
+ };
190465
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
190466
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
190467
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190468
+ d = [d];
190469
+ onKey = [onKey];
190470
+ d[0] = this;
190471
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
190472
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190473
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190474
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190475
+ _r;
190476
+ $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190477
+ $s = -1; return $ifaceNil;
190478
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190479
+ }; })(d, onKey)), js.Func);
190480
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190481
+ _r;
190482
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190483
+ _r$1;
190484
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
190485
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190486
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190487
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190488
+ _r$2;
190489
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190490
+ _r$3;
190491
+ $clone(onKey[0], js.Func).Release();
190492
+ $s = -1; return;
190493
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190494
+ }; })(d, onKey));
190495
+ $s = -1; return;
190496
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
190497
+ };
190498
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
190499
+ getKeyRune = function(ev) {
190500
+ var ev, key$1;
190501
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
190502
+ if (key$1.$length === 1) {
190503
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
190504
+ }
190505
+ return -1;
190506
+ };
190507
+ getKeyDirection = function(ev) {
190508
+ var dir, ev;
190509
+ dir = 0;
190510
+ dir = 0;
190511
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
190512
+ dir = 1;
190513
+ }
190514
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
190515
+ dir = 2;
190516
+ }
190517
+ return dir;
190518
+ };
190519
+ getKeyCode = function(ev) {
190520
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
190521
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
190522
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
190523
+ code = _tuple[0];
190524
+ exists = _tuple[1];
190525
+ if (exists) {
190526
+ return code;
190527
+ }
190528
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
190529
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
190530
+ code$1 = _tuple$1[0];
190531
+ exists$1 = _tuple$1[1];
190532
+ if (exists$1) {
190533
+ return code$1;
190534
+ }
190535
+ return 0;
190536
+ };
190537
+ ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}];
190538
+ DomEvents.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
190124
190539
  $init = function() {
190125
190540
  $pkg.$init = function() {};
190126
190541
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190127
- $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190128
- jsNaClDecoder = ptrType.nil;
190129
- initiateReset = false;
190542
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190543
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190544
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190545
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190546
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190547
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190548
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190549
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190550
+ keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
190551
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
190552
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190553
+ };
190554
+ $pkg.$init = $init;
190555
+ return $pkg;
190556
+ })();
190557
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
190558
+ var $pkg = {}, $init, fmt, errs, jshelper, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, sliceType$1, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
190559
+ fmt = $packages["fmt"];
190560
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190561
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190562
+ dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
190563
+ screen = $packages["golang.org/x/exp/shiny/screen"];
190564
+ f64 = $packages["golang.org/x/image/math/f64"];
190565
+ image = $packages["image"];
190566
+ color = $packages["image/color"];
190567
+ draw = $packages["image/draw"];
190568
+ sync = $packages["sync"];
190569
+ js = $packages["syscall/js"];
190570
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, jsNaClDecoder_, domEvents_, released_) {
190571
+ this.$val = this;
190572
+ if (arguments.length === 0) {
190573
+ this.screen = ptrType.nil;
190574
+ this.mutex = ptrType$1.nil;
190575
+ this.jsNaClDecoder = new js.Value.ptr(null, false, arrayType.zero());
190576
+ this.domEvents = ptrType$2.nil;
190577
+ this.released = false;
190578
+ return;
190579
+ }
190580
+ this.screen = screen_;
190581
+ this.mutex = mutex_;
190582
+ this.jsNaClDecoder = jsNaClDecoder_;
190583
+ this.domEvents = domEvents_;
190584
+ this.released = released_;
190585
+ });
190586
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
190587
+ this.$val = this;
190588
+ if (arguments.length === 0) {
190589
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
190590
+ return;
190591
+ }
190592
+ this.doc = doc_;
190593
+ });
190594
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(pictureResult_, screen_, size_) {
190595
+ this.$val = this;
190596
+ if (arguments.length === 0) {
190597
+ this.pictureResult = ptrType$4.nil;
190598
+ this.screen = ptrType.nil;
190599
+ this.size = new image.Point.ptr(0, 0);
190600
+ return;
190601
+ }
190602
+ this.pictureResult = pictureResult_;
190603
+ this.screen = screen_;
190604
+ this.size = size_;
190605
+ });
190606
+ sliceType = $sliceType($emptyInterface);
190607
+ ptrType = $ptrType(screenImpl);
190608
+ ptrType$1 = $ptrType(sync.Mutex);
190609
+ funcType = $funcType([], [], false);
190610
+ arrayType = $arrayType(funcType, 0);
190611
+ ptrType$2 = $ptrType(dom.DomEvents);
190612
+ ptrType$3 = $ptrType(BufferImpl);
190613
+ ptrType$4 = $ptrType(js.Value);
190614
+ ptrType$5 = $ptrType(image.RGBA);
190615
+ sliceType$1 = $sliceType($Uint8);
190616
+ ptrType$6 = $ptrType(screen.DrawOptions);
190617
+ ptrType$7 = $ptrType(windowImpl);
190618
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
190619
+ ptrType$9 = $ptrType(image.YCbCr);
190620
+ newWindow = function(screen$1, opts) {
190621
+ var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190622
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190623
+ /* */ if (!(opts.Title === "")) { $s = 1; continue; }
190624
+ /* */ $s = 2; continue;
190625
+ /* if (!(opts.Title === "")) { */ case 1:
190626
+ _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190627
+ _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190628
+ $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190629
+ /* } */ case 2:
190630
+ jsNaClDecoder = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190631
+ /* */ if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { $s = 6; continue; }
190632
+ /* */ $s = 7; continue;
190633
+ /* if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { */ case 6:
190634
+ _r$2 = fmt.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190635
+ $panic(_r$2);
190636
+ /* } */ case 7:
190637
+ domEvents = dom.NewDomEvents();
190638
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), $clone(jsNaClDecoder, js.Value), domEvents, false);
190639
+ $s = -1; return w;
190640
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
190641
+ };
190642
+ windowImpl.ptr.prototype.Release = function() {
190643
+ var {w, $s, $deferred, $r, $c} = $restore(this, {});
190644
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190645
+ w = this;
190646
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190647
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190648
+ /* */ if (w.released) { $s = 2; continue; }
190649
+ /* */ $s = 3; continue;
190650
+ /* if (w.released) { */ case 2:
190651
+ $s = 4; case 4: return;
190652
+ /* } */ case 3:
190653
+ $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190654
+ w.released = true;
190655
+ $s = -1; return;
190656
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
190657
+ };
190658
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
190659
+ windowImpl.ptr.prototype.Publish = function() {
190660
+ var w;
190661
+ w = this;
190662
+ if (w.released) {
190663
+ return new screen.PublishResult.ptr(false);
190664
+ }
190665
+ return new screen.PublishResult.ptr(false);
190666
+ };
190667
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190668
+ windowImpl.ptr.prototype.Send = function(event) {
190669
+ var event, w;
190670
+ w = this;
190671
+ if (w.released) {
190672
+ return;
190673
+ }
190674
+ $panic(new $String("Not implemented"));
190675
+ };
190676
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190677
+ windowImpl.ptr.prototype.SendFirst = function(event) {
190678
+ var event, w;
190679
+ w = this;
190680
+ if (w.released) {
190681
+ return;
190682
+ }
190683
+ $panic(new $String("Not implemented"));
190684
+ };
190685
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190686
+ windowImpl.ptr.prototype.NextEvent = function() {
190687
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190688
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190689
+ w = this;
190690
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190691
+ ev = _r[0];
190692
+ $s = -1; return ev;
190693
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190694
+ };
190695
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190696
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190697
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190698
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190699
+ w = this;
190700
+ if (w.released) {
190701
+ $s = -1; return;
190702
+ }
190703
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190704
+ $panic(_r);
190705
+ $s = -1; return;
190706
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190707
+ };
190708
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190709
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190710
+ var {_arg, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, dp, err, jsSrc, jsSrc$1, renderPromise, sr, src, w, x, x$1, $s, $deferred, $r, $c} = $restore(this, {dp, src, sr});
190711
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190712
+ w = this;
190713
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190714
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190715
+ /* */ if (w.released) { $s = 2; continue; }
190716
+ /* */ $s = 3; continue;
190717
+ /* if (w.released) { */ case 2:
190718
+ $s = 4; case 4: return;
190719
+ /* } */ case 3:
190720
+ _ref = src;
190721
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 5; continue; }
190722
+ /* */ $s = 6; continue;
190723
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 5:
190724
+ jsSrc = _ref.$val;
190725
+ _r = $clone(w.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = jsSrc.pictureResult, new x.constructor.elem(x))])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190726
+ renderPromise = $clone(_r, js.Value);
190727
+ _r$1 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190728
+ _tuple = _r$1;
190729
+ err = _tuple[1];
190730
+ /* */ if (!(err === ptrType$4.nil)) { $s = 10; continue; }
190731
+ /* */ $s = 11; continue;
190732
+ /* if (!(err === ptrType$4.nil)) { */ case 10:
190733
+ _r$2 = errs.Errorf("%v", new sliceType([err])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190734
+ _arg = _r$2;
190735
+ $r = errs.Print("Failed to render picture", _arg); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190736
+ /* } */ case 11:
190737
+ _r$3 = $clone(w.jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x$1 = jsSrc.pictureResult, new x$1.constructor.elem(x$1))])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190738
+ _r$3;
190739
+ $s = 7; continue;
190740
+ /* } else { */ case 6:
190741
+ jsSrc$1 = _ref;
190742
+ _r$4 = fmt.Errorf("Not implemented, use nacldriver.BufferImpl instead", sliceType.nil); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190743
+ $panic(_r$4);
190744
+ /* } */ case 7:
190745
+ $s = -1; return;
190746
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, dp, err, jsSrc, jsSrc$1, renderPromise, sr, src, w, x, x$1, $s, $deferred};return $f; } }
190747
+ };
190748
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190749
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190750
+ var dr, op, src, w;
190751
+ w = this;
190752
+ if (w.released) {
190753
+ return;
190754
+ }
190755
+ $panic(new $String("Not implemented"));
190756
+ };
190757
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190758
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190759
+ var op, opts, sr, src, src2dst, w;
190760
+ w = this;
190761
+ if (w.released) {
190762
+ return;
190763
+ }
190764
+ $panic(new $String("Not implemented"));
190765
+ };
190766
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190767
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190768
+ var op, opts, sr, src, src2dst, w;
190769
+ w = this;
190770
+ if (w.released) {
190771
+ return;
190772
+ }
190773
+ $panic(new $String("Not implemented"));
190774
+ };
190775
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190776
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190777
+ var dp, op, opts, sr, src, w;
190778
+ w = this;
190779
+ if (w.released) {
190780
+ return;
190781
+ }
190782
+ $panic(new $String("Not implemented"));
190783
+ };
190784
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190785
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190786
+ var dr, op, opts, sr, src, w;
190787
+ w = this;
190788
+ if (w.released) {
190789
+ return;
190790
+ }
190791
+ $panic(new $String("Not implemented"));
190792
+ };
190793
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190794
+ newScreenImpl = function() {
190795
+ var s;
190796
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190797
+ return [s, $ifaceNil];
190798
+ };
190799
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
190800
+ var buffer, s, size;
190801
+ s = this;
190802
+ buffer = newBuffer(s, $clone(size, image.Point));
190803
+ return [buffer, $ifaceNil];
190804
+ };
190805
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190806
+ screenImpl.ptr.prototype.NewTexture = function(size) {
190807
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190808
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190809
+ s = this;
190810
+ _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190811
+ $24r = [$ifaceNil, _r];
190812
+ $s = 2; case 2: return $24r;
190813
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190814
+ };
190815
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190816
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
190817
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190818
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190819
+ s = this;
190820
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190821
+ window = _r;
190822
+ $s = -1; return [window, $ifaceNil];
190823
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190824
+ };
190825
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190826
+ Main = function(f) {
190827
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
190828
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190829
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190830
+ err = _r;
190831
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190832
+ $panic(err);
190833
+ }
190834
+ $s = -1; return;
190835
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190836
+ };
190837
+ $pkg.Main = Main;
190838
+ main = function(f) {
190839
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190840
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190841
+ retErr = $ifaceNil;
190842
+ _tuple = newScreenImpl();
190843
+ s = _tuple[0];
190844
+ err = _tuple[1];
190845
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190846
+ retErr = err;
190847
+ $s = -1; return retErr;
190848
+ }
190849
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190850
+ retErr = $ifaceNil;
190851
+ $s = -1; return retErr;
190852
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190853
+ };
190854
+ newBuffer = function(screen$1, size) {
190855
+ var b, screen$1, size;
190856
+ b = new BufferImpl.ptr(ptrType$4.nil, screen$1, $clone(size, image.Point));
190857
+ return b;
190858
+ };
190859
+ BufferImpl.ptr.prototype.Size = function() {
190860
+ var b;
190861
+ b = this;
190862
+ return b.size;
190863
+ };
190864
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190865
+ BufferImpl.ptr.prototype.Bounds = function() {
190866
+ var b;
190867
+ b = this;
190868
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190869
+ };
190870
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190871
+ BufferImpl.ptr.prototype.RGBA = function() {
190872
+ var {_r, b, $s, $r, $c} = $restore(this, {});
190873
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190874
+ b = this;
190875
+ _r = fmt.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190876
+ $panic(_r);
190877
+ $s = -1; return ptrType$5.nil;
190878
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
190879
+ };
190880
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190881
+ BufferImpl.ptr.prototype.YCbCr = function() {
190882
+ var b;
190883
+ b = this;
190884
+ return new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, $clone(b.Bounds(), image.Rectangle));
190885
+ };
190886
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190887
+ BufferImpl.ptr.prototype.GetPictureResult = function() {
190888
+ var b;
190889
+ b = this;
190890
+ return b.pictureResult;
190891
+ };
190892
+ BufferImpl.prototype.GetPictureResult = function() { return this.$val.GetPictureResult(); };
190893
+ BufferImpl.ptr.prototype.SetPictureResult = function(pictureResult) {
190894
+ var b, pictureResult;
190895
+ b = this;
190896
+ b.pictureResult = pictureResult;
190897
+ };
190898
+ BufferImpl.prototype.SetPictureResult = function(pictureResult) { return this.$val.SetPictureResult(pictureResult); };
190899
+ BufferImpl.ptr.prototype.Release = function() {
190900
+ var b;
190901
+ b = this;
190902
+ };
190903
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190904
+ ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
190905
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
190906
+ ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "GetPictureResult", name: "GetPictureResult", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "SetPictureResult", name: "SetPictureResult", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190907
+ windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
190908
+ screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190909
+ BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "pictureResult", name: "pictureResult", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
190910
+ $init = function() {
190911
+ $pkg.$init = function() {};
190912
+ /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190913
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190914
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190915
+ $r = jshelper.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190916
+ $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190917
+ $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190918
+ $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190919
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190920
+ $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190921
+ $r = draw.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190922
+ $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190923
+ $r = js.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190130
190924
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190131
190925
  };
190132
190926
  $pkg.$init = $init;
190133
190927
  return $pkg;
190134
190928
  })();
190135
190929
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
190136
- var $pkg = {}, $init, errs, jshelper, general, jsdecoder, js, NaClDecoder, sliceType, ptrType, sliceType$1, ptrType$1, IsAvailable, NewDecoder;
190930
+ var $pkg = {}, $init, errs, jshelper, general, nacldriver, js, NaClDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, NewDecoder;
190137
190931
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190138
190932
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190139
190933
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190140
- jsdecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"];
190934
+ nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
190141
190935
  js = $packages["syscall/js"];
190142
- NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(initialized_) {
190936
+ NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(jsNaClDecoder_) {
190143
190937
  this.$val = this;
190144
190938
  if (arguments.length === 0) {
190145
- this.initialized = false;
190939
+ this.jsNaClDecoder = ptrType.nil;
190146
190940
  return;
190147
190941
  }
190148
- this.initialized = initialized_;
190942
+ this.jsNaClDecoder = jsNaClDecoder_;
190149
190943
  });
190150
- sliceType = $sliceType($emptyInterface);
190151
190944
  ptrType = $ptrType(js.Value);
190945
+ sliceType = $sliceType($emptyInterface);
190946
+ ptrType$1 = $ptrType(nacldriver.BufferImpl);
190152
190947
  sliceType$1 = $sliceType($Uint8);
190153
- ptrType$1 = $ptrType(NaClDecoder);
190154
- IsAvailable = function() {
190155
- return jsdecoder.IsAvailable();
190156
- };
190157
- $pkg.IsAvailable = IsAvailable;
190948
+ ptrType$2 = $ptrType(NaClDecoder);
190158
190949
  NewDecoder = function(header) {
190159
190950
  var header;
190160
- return new NaClDecoder.ptr(false);
190951
+ return new NaClDecoder.ptr(ptrType.nil);
190161
190952
  };
190162
190953
  $pkg.NewDecoder = NewDecoder;
190163
190954
  NaClDecoder.ptr.prototype.initialize = function(param) {
190164
- var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, config, err, graphics3DContext, initPromise, initResult, m, param, $s, $r, $c} = $restore(this, {param});
190955
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s, $r, $c} = $restore(this, {param});
190165
190956
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190957
+ jsNaClDecoder = [jsNaClDecoder];
190166
190958
  m = this;
190959
+ jsNaClDecoder[0] = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190167
190960
  _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190168
190961
  config = $clone(_r, js.Value);
190169
190962
  _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190170
- graphics3DContext = $clone(_r$1, js.Value);
190171
- $clone(config, js.Value).Set("graphics3DContext", new graphics3DContext.constructor.elem(graphics3DContext));
190963
+ _arg = (x = _r$1, new x.constructor.elem(x));
190964
+ $r = $clone(config, js.Value).Set("graphics3DContext", _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190172
190965
  $clone(config, js.Value).Set("profile", new $Int(0));
190173
190966
  $clone(config, js.Value).Set("acceleration", new $Int(2));
190174
190967
  $clone(config, js.Value).Set("minPictureCount", new $Int(0));
190175
- _r$2 = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190968
+ _r$2 = $clone(jsNaClDecoder[0], js.Value).Call("initialize", new sliceType([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190176
190969
  initPromise = $clone(_r$2, js.Value);
190177
- _r$3 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190970
+ _r$3 = jshelper.Await($clone(initPromise, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190178
190971
  _tuple = _r$3;
190179
190972
  initResult = _tuple[0];
190180
190973
  err = _tuple[1];
190181
- /* */ if (!(err === ptrType.nil)) { $s = 5; continue; }
190182
- /* */ $s = 6; continue;
190183
- /* if (!(err === ptrType.nil)) { */ case 5:
190184
- _r$4 = jshelper.GetError(err); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190185
- _r$5 = _r$4.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190186
- _arg = new $String(_r$5);
190187
- _r$6 = errs.Errorf("Failed to initialize NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190188
- $24r = _r$6;
190189
- $s = 10; case 10: return $24r;
190190
- /* } */ case 6:
190191
- /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 11; continue; }
190192
- /* */ $s = 12; continue;
190193
- /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 11:
190194
- _r$7 = errs.Errorf("Failed to initialize NaCl Decoder: %f", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190195
- $24r$1 = _r$7;
190196
- $s = 14; case 14: return $24r$1;
190197
- /* } */ case 12:
190198
- $s = -1; return $ifaceNil;
190199
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, config, err, graphics3DContext, initPromise, initResult, m, param, $s};return $f;
190200
- };
190201
- NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190202
- NaClDecoder.ptr.prototype.reset = function() {
190203
- var {$24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, m, resetPromise, resetResult, $s, $r, $c} = $restore(this, {});
190204
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190205
- m = this;
190206
- _r = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("reset", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190207
- resetPromise = $clone(_r, js.Value);
190208
- _r$1 = jshelper.Await($clone(resetPromise, js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190209
- _tuple = _r$1;
190210
- resetResult = _tuple[0];
190211
- err = _tuple[1];
190212
- /* */ if (!(err === ptrType.nil)) { $s = 3; continue; }
190213
- /* */ $s = 4; continue;
190214
- /* if (!(err === ptrType.nil)) { */ case 3:
190215
- _r$2 = jshelper.GetError(err); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190216
- _r$3 = _r$2.Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190217
- _arg = new $String(_r$3);
190218
- _r$4 = errs.Errorf("Failed to reset NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190974
+ /* */ if (!(err === ptrType.nil)) { $s = 6; continue; }
190975
+ /* */ $s = 7; continue;
190976
+ /* if (!(err === ptrType.nil)) { */ case 6:
190977
+ _r$4 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([err])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190219
190978
  $24r = _r$4;
190220
- $s = 8; case 8: return $24r;
190221
- /* } */ case 4:
190222
- /* */ if (!(($clone(resetResult, js.Value).Float() === 0))) { $s = 9; continue; }
190223
- /* */ $s = 10; continue;
190224
- /* if (!(($clone(resetResult, js.Value).Float() === 0))) { */ case 9:
190225
- _r$5 = errs.Errorf("Failed to reset NaCl Decoder with code: %f", new sliceType([new $Float64($clone(resetResult, js.Value).Float())])); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190979
+ $s = 9; case 9: return $24r;
190980
+ /* } */ case 7:
190981
+ /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 10; continue; }
190982
+ /* */ $s = 11; continue;
190983
+ /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 10:
190984
+ _r$5 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190226
190985
  $24r$1 = _r$5;
190227
- $s = 12; case 12: return $24r$1;
190228
- /* } */ case 10:
190229
- $s = -1; return $ifaceNil;
190230
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.reset, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, err, m, resetPromise, resetResult, $s};return $f;
190231
- };
190232
- NaClDecoder.prototype.reset = function() { return this.$val.reset(); };
190233
- NaClDecoder.ptr.prototype.destroy = function() {
190234
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, destroyPromise, err, m, $s, $r, $c} = $restore(this, {});
190235
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190236
- m = this;
190237
- _r = $clone(jsdecoder.GetJsNaClDecoder(), js.Value).Call("destroy", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190238
- destroyPromise = $clone(_r, js.Value);
190239
- _r$1 = jshelper.Await($clone(destroyPromise, js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190240
- _tuple = _r$1;
190241
- err = _tuple[1];
190242
- /* */ if (!(err === ptrType.nil)) { $s = 3; continue; }
190243
- /* */ $s = 4; continue;
190244
- /* if (!(err === ptrType.nil)) { */ case 3:
190245
- _r$2 = jshelper.GetError(err); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190246
- _r$3 = _r$2.Error(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190247
- _arg = new $String(_r$3);
190248
- _r$4 = errs.Errorf("Failed to destroy NaCl Decoder: %s", new sliceType([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190249
- $24r = _r$4;
190250
- $s = 8; case 8: return $24r;
190251
- /* } */ case 4:
190986
+ $s = 13; case 13: return $24r$1;
190987
+ /* } */ case 11:
190988
+ m.jsNaClDecoder = jsNaClDecoder[0];
190252
190989
  $s = -1; return $ifaceNil;
190253
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.destroy, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, destroyPromise, err, m, $s};return $f;
190990
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.initialize, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, config, err, initPromise, initResult, jsNaClDecoder, m, param, x, $s};return $f;
190254
190991
  };
190255
- NaClDecoder.prototype.destroy = function() { return this.$val.destroy(); };
190992
+ NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190256
190993
  NaClDecoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190257
- var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190994
+ var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190258
190995
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190259
190996
  m = this;
190260
- /* */ if (jsdecoder.ShouldResetOnNextDecode()) { $s = 1; continue; }
190997
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
190261
190998
  /* */ $s = 2; continue;
190262
- /* if (jsdecoder.ShouldResetOnNextDecode()) { */ case 1:
190263
- _r = m.reset(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190264
- err = _r;
190265
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
190266
- /* */ $s = 5; continue;
190267
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
190268
- $r = errs.Print("Failed to reset NaCl Decoder", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190269
- _r$1 = m.destroy(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190270
- err = _r$1;
190271
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
190272
- /* */ $s = 9; continue;
190273
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
190274
- $r = errs.Print("Failed to destroy NaCl Decoder", err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190275
- /* } */ case 9:
190276
- jsdecoder.RemoveJsNaClDecoder();
190277
- /* } */ case 5:
190278
- m.initialized = false;
190279
- jsdecoder.MarkResetDone();
190999
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
191000
+ /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 3; continue; }
191001
+ /* */ $s = 4; continue;
191002
+ /* if (m.jsNaClDecoder === ptrType.nil) { */ case 3:
191003
+ _r = m.initialize(nal); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191004
+ err = _r;
191005
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
191006
+ $s = -1; return err;
191007
+ }
191008
+ /* } */ case 4:
190280
191009
  /* } */ case 2:
190281
- jsNaClDecoder = jsdecoder.GetJsNaClDecoder();
190282
- /* */ if (jsNaClDecoder === ptrType.nil) { $s = 11; continue; }
190283
- /* */ $s = 12; continue;
190284
- /* if (jsNaClDecoder === ptrType.nil) { */ case 11:
190285
- _r$2 = jsdecoder.CreateJsNaClDecoder(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190286
- jsNaClDecoder = _r$2;
190287
- /* } */ case 12:
190288
- /* */ if (!m.initialized) { $s = 14; continue; }
190289
- /* */ $s = 15; continue;
190290
- /* if (!m.initialized) { */ case 14:
190291
- _r$3 = m.initialize(nal); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190292
- err$1 = _r$3;
190293
- if (!($interfaceIsEqual(err$1, $ifaceNil))) {
190294
- $s = -1; return err$1;
190295
- }
190296
- m.initialized = true;
190297
- /* } */ case 15:
190298
- _r$4 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190299
- pictureBuffer = $clone(_r$4, js.Value);
190300
- _r$5 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190301
- pictureUint8Array = $clone(_r$5, js.Value);
191010
+ /* */ if (m.jsNaClDecoder === ptrType.nil) { $s = 6; continue; }
191011
+ /* */ $s = 7; continue;
191012
+ /* if (m.jsNaClDecoder === ptrType.nil) { */ case 6:
191013
+ _r$1 = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191014
+ $24r = _r$1;
191015
+ $s = 9; case 9: return $24r;
191016
+ /* } */ case 7:
191017
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(new sliceType([new $Int(nal.$length)])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191018
+ pictureBuffer = $clone(_r$2, js.Value);
191019
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new pictureBuffer.constructor.elem(pictureBuffer)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191020
+ pictureUint8Array = $clone(_r$3, js.Value);
190302
191021
  js.CopyBytesToJS($clone(pictureUint8Array, js.Value), nal);
190303
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190304
- decodeArgs = $clone(_r$6, js.Value);
191022
+ _r$4 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191023
+ decodeArgs = $clone(_r$4, js.Value);
190305
191024
  $clone(decodeArgs, js.Value).Set("decodeId", new $Int(0));
190306
191025
  $clone(decodeArgs, js.Value).Set("data", new pictureBuffer.constructor.elem(pictureBuffer));
190307
- _r$7 = $clone(jsNaClDecoder, js.Value).Call("decode", new sliceType([new decodeArgs.constructor.elem(decodeArgs)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190308
- decodePromise = $clone(_r$7, js.Value);
190309
- _r$8 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190310
- _tuple = _r$8;
191026
+ _r$5 = $clone(m.jsNaClDecoder, js.Value).Call("decode", new sliceType([new decodeArgs.constructor.elem(decodeArgs)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191027
+ decodePromise = $clone(_r$5, js.Value);
191028
+ _r$6 = jshelper.Await($clone(decodePromise, js.Value)); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191029
+ _tuple = _r$6;
190311
191030
  decodeResult = _tuple[0];
190312
- err$2 = _tuple[1];
190313
- /* */ if (!(err$2 === ptrType.nil)) { $s = 22; continue; }
190314
- /* */ $s = 23; continue;
190315
- /* if (!(err$2 === ptrType.nil)) { */ case 22:
190316
- _r$9 = jshelper.GetError(err$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190317
- _r$10 = _r$9.Error(); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
190318
- _arg = new $String(_r$10);
190319
- _r$11 = errs.Errorf("Failed to decode frame: %s", new sliceType([_arg])); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
190320
- $24r = _r$11;
190321
- $s = 27; case 27: return $24r;
190322
- /* } */ case 23:
190323
- /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 28; continue; }
190324
- /* */ $s = 29; continue;
190325
- /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 28:
190326
- _r$12 = errs.Errorf("Failed to decode frame with code: %f", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 30; case 30: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
190327
- $24r$1 = _r$12;
190328
- $s = 31; case 31: return $24r$1;
190329
- /* } */ case 29:
191031
+ err$1 = _tuple[1];
191032
+ /* */ if (!(err$1 === ptrType.nil)) { $s = 15; continue; }
191033
+ /* */ $s = 16; continue;
191034
+ /* if (!(err$1 === ptrType.nil)) { */ case 15:
191035
+ _r$7 = errs.Errorf("Failed to decode frame: %v", new sliceType([err$1])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
191036
+ $24r$1 = _r$7;
191037
+ $s = 18; case 18: return $24r$1;
191038
+ /* } */ case 16:
191039
+ /* */ if (!(($clone(decodeResult, js.Value).Float() === 0))) { $s = 19; continue; }
191040
+ /* */ $s = 20; continue;
191041
+ /* if (!(($clone(decodeResult, js.Value).Float() === 0))) { */ case 19:
191042
+ _r$8 = errs.Errorf("Failed to decode frame with code: %v", new sliceType([new $Float64($clone(decodeResult, js.Value).Float())])); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
191043
+ $24r$2 = _r$8;
191044
+ $s = 22; case 22: return $24r$2;
191045
+ /* } */ case 20:
191046
+ _r$9 = $clone(m.jsNaClDecoder, js.Value).Call("getPicture", sliceType.nil); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
191047
+ picturePromise = $clone(_r$9, js.Value);
191048
+ _r$10 = jshelper.Await($clone(picturePromise, js.Value)); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
191049
+ _tuple$1 = _r$10;
191050
+ pictureResult = _tuple$1[0];
191051
+ err$1 = _tuple$1[1];
191052
+ /* */ if (!(err$1 === ptrType.nil)) { $s = 25; continue; }
191053
+ /* */ $s = 26; continue;
191054
+ /* if (!(err$1 === ptrType.nil)) { */ case 25:
191055
+ _r$11 = errs.Errorf("Failed to get picture: %v", new sliceType([err$1])); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
191056
+ $24r$3 = _r$11;
191057
+ $s = 28; case 28: return $24r$3;
191058
+ /* } */ case 26:
191059
+ _ref = outputBuffer;
191060
+ /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 29; continue; }
191061
+ /* */ $s = 30; continue;
191062
+ /* if ($assertType(_ref, ptrType$1, true)[1]) { */ case 29:
191063
+ currentOutputBuffer = _ref.$val;
191064
+ currentOutputBuffer.SetPictureResult(pictureResult);
191065
+ $s = 31; continue;
191066
+ /* } else { */ case 30:
191067
+ currentOutputBuffer$1 = _ref;
191068
+ _r$12 = errs.Errorf("Unsupported output buffer type: %T", new sliceType([outputBuffer])); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
191069
+ $24r$4 = _r$12;
191070
+ $s = 33; case 33: return $24r$4;
191071
+ /* } */ case 31:
190330
191072
  $s = -1; return $ifaceNil;
190331
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, decodeArgs, decodePromise, decodeResult, err, err$1, err$2, jsNaClDecoder, m, nal, outputBuffer, pictureBuffer, pictureUint8Array, $s};return $f;
191073
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _r, _r$1, _r$10, _r$11, _r$12, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, _tuple$1, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, $s};return $f;
190332
191074
  };
190333
191075
  NaClDecoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190334
191076
  NaClDecoder.ptr.prototype.Release = function(outputBuffer) {
@@ -190336,15 +191078,15 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190336
191078
  m = this;
190337
191079
  };
190338
191080
  NaClDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190339
- ptrType$1.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "reset", name: "reset", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
190340
- NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "initialized", name: "initialized", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191081
+ ptrType$2.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191082
+ NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
190341
191083
  $init = function() {
190342
191084
  $pkg.$init = function() {};
190343
191085
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190344
191086
  $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190345
191087
  $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190346
191088
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190347
- $r = jsdecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191089
+ $r = nacldriver.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190348
191090
  $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190349
191091
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190350
191092
  };
@@ -190352,10 +191094,10 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190352
191094
  return $pkg;
190353
191095
  })();
190354
191096
  $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190355
- var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
191097
+ var $pkg = {}, $init, fmt, dom, errscreen, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, Main, main, newScreenImpl, newBuffer;
190356
191098
  fmt = $packages["fmt"];
191099
+ dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
190357
191100
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
190358
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
190359
191101
  screen = $packages["golang.org/x/exp/shiny/screen"];
190360
191102
  f64 = $packages["golang.org/x/image/math/f64"];
190361
191103
  image = $packages["image"];
@@ -190763,8 +191505,8 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190763
191505
  $pkg.$init = function() {};
190764
191506
  /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
190765
191507
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190766
- $r = errscreen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190767
- $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191508
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191509
+ $r = errscreen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190768
191510
  $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190769
191511
  $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190770
191512
  $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -190778,7 +191520,7 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190778
191520
  return $pkg;
190779
191521
  })();
190780
191522
  $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190781
- var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, image, js, Decoder, sliceType, funcType, arrayType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, IsAvailable, NewDecoder;
191523
+ var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, image, js, Decoder, sliceType, funcType, arrayType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, NewDecoder;
190782
191524
  hex = $packages["encoding/hex"];
190783
191525
  webgl = $packages["github.com/nuberu/webgl"];
190784
191526
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -190809,10 +191551,6 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190809
191551
  ptrType$1 = $ptrType(canvasdriver.BufferImpl);
190810
191552
  sliceType$2 = $sliceType($Uint8);
190811
191553
  ptrType$2 = $ptrType(Decoder);
190812
- IsAvailable = function() {
190813
- return !$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined();
190814
- };
190815
- $pkg.IsAvailable = IsAvailable;
190816
191554
  NewDecoder = function(header) {
190817
191555
  var header, rejects, resolves;
190818
191556
  resolves = new sliceType([]);
@@ -190896,7 +191634,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190896
191634
  };
190897
191635
  Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
190898
191636
  Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190899
- var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191637
+ var {$24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190900
191638
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190901
191639
  d = [d];
190902
191640
  d[0] = this;
@@ -190972,7 +191710,13 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190972
191710
  /* */ if (!(err === ptrType.nil)) { $s = 24; continue; }
190973
191711
  /* */ $s = 25; continue;
190974
191712
  /* if (!(err === ptrType.nil)) { */ case 24:
190975
- _r$10 = jshelper.GetError(err); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
191713
+ errMessage = "";
191714
+ if ($clone(err, js.Value).Type() === 4) {
191715
+ errMessage = $clone(err, js.Value).String();
191716
+ } else {
191717
+ errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
191718
+ }
191719
+ _r$10 = errs.Errorf(errMessage, sliceType$1.nil); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
190976
191720
  $24r$1 = _r$10;
190977
191721
  $s = 27; case 27: return $24r$1;
190978
191722
  /* } */ case 25:
@@ -190985,7 +191729,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190985
191729
  image.Rectangle.copy(ycbcrImg.Rect, image.Rect(0, 0, displayWidth, displayHeight));
190986
191730
  ycbcrImg.SubsampleRatio = 2;
190987
191731
  $s = -1; return $ifaceNil;
190988
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s};return $f;
191732
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, _arg, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, displayHeight, displayWidth, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrImg, ycbcrJSImg, $s};return $f;
190989
191733
  };
190990
191734
  Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190991
191735
  Decoder.ptr.prototype.Release = function(outputBuffer) {
@@ -191049,12 +191793,13 @@ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
191049
191793
  return $pkg;
191050
191794
  })();
191051
191795
  $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
191052
- var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
191796
+ var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, js, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
191053
191797
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191054
191798
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
191055
191799
  h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
191056
191800
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
191057
191801
  webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
191802
+ js = $packages["syscall/js"];
191058
191803
  Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
191059
191804
  H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
191060
191805
  this.$val = this;
@@ -191071,19 +191816,19 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
191071
191816
  var {$24r, _r, decoder, header, $s, $r, $c} = $restore(this, {header});
191072
191817
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191073
191818
  decoder = $ifaceNil;
191074
- /* */ if (nacldecoder.IsAvailable()) { $s = 1; continue; }
191075
- /* */ if (webcodecs.IsAvailable()) { $s = 2; continue; }
191076
- /* */ if (h264_decoder.IsAvailable()) { $s = 3; continue; }
191819
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191820
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
191821
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 3; continue; }
191077
191822
  /* */ $s = 4; continue;
191078
- /* if (nacldecoder.IsAvailable()) { */ case 1:
191823
+ /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
191079
191824
  decoder = nacldecoder.NewDecoder(header);
191080
191825
  $s = 5; continue;
191081
- /* } else if (webcodecs.IsAvailable()) { */ case 2:
191082
- decoder = webcodecs.NewDecoder(header);
191083
- $s = 5; continue;
191084
- /* } else if (h264_decoder.IsAvailable()) { */ case 3:
191826
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
191085
191827
  decoder = h264_decoder.NewDecoder(header);
191086
191828
  $s = 5; continue;
191829
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 3:
191830
+ decoder = webcodecs.NewDecoder(header);
191831
+ $s = 5; continue;
191087
191832
  /* } else { */ case 4:
191088
191833
  _r = errs.Errorf("Not available any h264 decoder adapter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191089
191834
  $24r = [ptrType.nil, _r];
@@ -191123,388 +191868,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
191123
191868
  $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191124
191869
  $r = nacldecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191125
191870
  $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191126
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191127
- };
191128
- $pkg.$init = $init;
191129
- return $pkg;
191130
- })();
191131
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
191132
- var $pkg = {}, $init, errs, jshelper, jsdecoder, dom, screen, f64, image, color, draw, log, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, funcType, arrayType, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
191133
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191134
- jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
191135
- jsdecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/jsdecoder"];
191136
- dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
191137
- screen = $packages["golang.org/x/exp/shiny/screen"];
191138
- f64 = $packages["golang.org/x/image/math/f64"];
191139
- image = $packages["image"];
191140
- color = $packages["image/color"];
191141
- draw = $packages["image/draw"];
191142
- log = $packages["log"];
191143
- sync = $packages["sync"];
191144
- js = $packages["syscall/js"];
191145
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, renderingInProgress_, domEvents_, released_) {
191146
- this.$val = this;
191147
- if (arguments.length === 0) {
191148
- this.screen = ptrType.nil;
191149
- this.mutex = ptrType$1.nil;
191150
- this.renderingInProgress = false;
191151
- this.domEvents = ptrType$2.nil;
191152
- this.released = false;
191153
- return;
191154
- }
191155
- this.screen = screen_;
191156
- this.mutex = mutex_;
191157
- this.renderingInProgress = renderingInProgress_;
191158
- this.domEvents = domEvents_;
191159
- this.released = released_;
191160
- });
191161
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
191162
- this.$val = this;
191163
- if (arguments.length === 0) {
191164
- this.doc = new js.Value.ptr(null, false, arrayType.zero());
191165
- return;
191166
- }
191167
- this.doc = doc_;
191168
- });
191169
- BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(screen_, size_) {
191170
- this.$val = this;
191171
- if (arguments.length === 0) {
191172
- this.screen = ptrType.nil;
191173
- this.size = new image.Point.ptr(0, 0);
191174
- return;
191175
- }
191176
- this.screen = screen_;
191177
- this.size = size_;
191178
- });
191179
- sliceType = $sliceType($emptyInterface);
191180
- ptrType = $ptrType(screenImpl);
191181
- ptrType$1 = $ptrType(sync.Mutex);
191182
- ptrType$2 = $ptrType(dom.DomEvents);
191183
- ptrType$3 = $ptrType(js.Value);
191184
- funcType = $funcType([], [], false);
191185
- arrayType = $arrayType(funcType, 0);
191186
- ptrType$4 = $ptrType(image.RGBA);
191187
- sliceType$1 = $sliceType($Uint8);
191188
- ptrType$5 = $ptrType(screen.DrawOptions);
191189
- ptrType$6 = $ptrType(windowImpl);
191190
- ptrType$7 = $ptrType(screen.NewWindowOptions);
191191
- ptrType$8 = $ptrType(image.YCbCr);
191192
- ptrType$9 = $ptrType(BufferImpl);
191193
- newWindow = function(screen$1, opts) {
191194
- var {_r, _r$1, domEvents, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
191195
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191196
- /* */ if (!(opts.Title === "")) { $s = 1; continue; }
191197
- /* */ $s = 2; continue;
191198
- /* if (!(opts.Title === "")) { */ case 1:
191199
- _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191200
- _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191201
- $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191202
- /* } */ case 2:
191203
- domEvents = dom.NewDomEvents();
191204
- w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), false, domEvents, false);
191205
- $s = -1; return w;
191206
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, domEvents, opts, screen$1, w, $s};return $f;
191207
- };
191208
- windowImpl.ptr.prototype.Release = function() {
191209
- var {w, $s, $deferred, $r, $c} = $restore(this, {});
191210
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191211
- w = this;
191212
- $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191213
- $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
191214
- /* */ if (w.released) { $s = 2; continue; }
191215
- /* */ $s = 3; continue;
191216
- /* if (w.released) { */ case 2:
191217
- $s = 4; case 4: return;
191218
- /* } */ case 3:
191219
- $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191220
- w.released = true;
191221
- $s = -1; return;
191222
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
191223
- };
191224
- windowImpl.prototype.Release = function() { return this.$val.Release(); };
191225
- windowImpl.ptr.prototype.Publish = function() {
191226
- var w;
191227
- w = this;
191228
- if (w.released) {
191229
- return new screen.PublishResult.ptr(false);
191230
- }
191231
- return new screen.PublishResult.ptr(false);
191232
- };
191233
- windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
191234
- windowImpl.ptr.prototype.Send = function(event) {
191235
- var event, w;
191236
- w = this;
191237
- if (w.released) {
191238
- return;
191239
- }
191240
- $panic(new $String("Not implemented"));
191241
- };
191242
- windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
191243
- windowImpl.ptr.prototype.SendFirst = function(event) {
191244
- var event, w;
191245
- w = this;
191246
- if (w.released) {
191247
- return;
191248
- }
191249
- $panic(new $String("Not implemented"));
191250
- };
191251
- windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
191252
- windowImpl.ptr.prototype.NextEvent = function() {
191253
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
191254
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191255
- w = this;
191256
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191257
- ev = _r[0];
191258
- $s = -1; return ev;
191259
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
191260
- };
191261
- windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
191262
- windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
191263
- var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
191264
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191265
- w = this;
191266
- if (w.released) {
191267
- $s = -1; return;
191268
- }
191269
- _r = errs.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191270
- $panic(_r);
191271
- $s = -1; return;
191272
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
191273
- };
191274
- windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
191275
- windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
191276
- var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, jsNaClDecoder, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s, $r, $c} = $restore(this, {dp, src, sr});
191277
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191278
- w = this;
191279
- if (w.released) {
191280
- $s = -1; return;
191281
- }
191282
- /* */ if (jsdecoder.ShouldResetOnNextDecode()) { $s = 1; continue; }
191283
- /* */ $s = 2; continue;
191284
- /* if (jsdecoder.ShouldResetOnNextDecode()) { */ case 1:
191285
- $r = log.Println(new sliceType([new $String("NaClDecoder is resetting, skipping frame rendering")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191286
- $s = -1; return;
191287
- /* } */ case 2:
191288
- jsNaClDecoder = jsdecoder.GetJsNaClDecoder();
191289
- /* */ if (jsNaClDecoder === ptrType$3.nil) { $s = 4; continue; }
191290
- /* */ $s = 5; continue;
191291
- /* if (jsNaClDecoder === ptrType$3.nil) { */ case 4:
191292
- $r = log.Println(new sliceType([new $String("JsNaClDecoder is not created, skipping frame rendering")])); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191293
- $s = -1; return;
191294
- /* } */ case 5:
191295
- $r = w.mutex.Lock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191296
- _r = $clone(jsNaClDecoder, js.Value).Call("getPicture", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191297
- picturePromise = $clone(_r, js.Value);
191298
- _r$1 = jshelper.Await($clone(picturePromise, js.Value)); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191299
- _tuple = _r$1;
191300
- picture = _tuple[0];
191301
- err = _tuple[1];
191302
- $r = w.mutex.Unlock(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191303
- /* */ if (!(err === ptrType$3.nil)) { $s = 11; continue; }
191304
- /* */ $s = 12; continue;
191305
- /* if (!(err === ptrType$3.nil)) { */ case 11:
191306
- jsdecoder.ResetBeforeNextDecode();
191307
- _r$2 = jshelper.GetError(err); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
191308
- _arg = _r$2;
191309
- $r = errs.Print("Failed to get picture: %s", _arg); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191310
- $s = -1; return;
191311
- /* } */ case 12:
191312
- /* */ if (!jsdecoder.ShouldResetOnNextDecode() && !w.renderingInProgress) { $s = 15; continue; }
191313
- /* */ $s = 16; continue;
191314
- /* if (!jsdecoder.ShouldResetOnNextDecode() && !w.renderingInProgress) { */ case 15:
191315
- w.renderingInProgress = true;
191316
- _r$3 = $clone(jsNaClDecoder, js.Value).Call("render", new sliceType([(x = picture, new x.constructor.elem(x))])); /* */ $s = 17; case 17: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191317
- renderPromise = $clone(_r$3, js.Value);
191318
- _r$4 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
191319
- _tuple$1 = _r$4;
191320
- renderResult = _tuple$1[0];
191321
- err$1 = _tuple$1[1];
191322
- w.renderingInProgress = false;
191323
- /* */ if (!(err$1 === ptrType$3.nil)) { $s = 19; continue; }
191324
- /* */ $s = 20; continue;
191325
- /* if (!(err$1 === ptrType$3.nil)) { */ case 19:
191326
- _r$5 = jshelper.GetError(err$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
191327
- _arg$1 = _r$5;
191328
- $r = errs.Print("Failed to render frame: %s", _arg$1); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191329
- $s = -1; return;
191330
- /* } */ case 20:
191331
- /* */ if (!(($clone(renderResult, js.Value).Float() === 0))) { $s = 23; continue; }
191332
- /* */ $s = 24; continue;
191333
- /* if (!(($clone(renderResult, js.Value).Float() === 0))) { */ case 23:
191334
- $r = log.Printf("Failed to render frame with code: %f\n", new sliceType([new $Float64($clone(renderResult, js.Value).Float())])); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191335
- $s = -1; return;
191336
- /* } */ case 24:
191337
- /* } */ case 16:
191338
- _r$6 = $clone(jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x$1 = picture, new x$1.constructor.elem(x$1))])); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
191339
- _r$6;
191340
- $s = -1; return;
191341
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, dp, err, err$1, jsNaClDecoder, picture, picturePromise, renderPromise, renderResult, sr, src, w, x, x$1, $s};return $f;
191342
- };
191343
- windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
191344
- windowImpl.ptr.prototype.Fill = function(dr, src, op) {
191345
- var dr, op, src, w;
191346
- w = this;
191347
- if (w.released) {
191348
- return;
191349
- }
191350
- $panic(new $String("Not implemented"));
191351
- };
191352
- windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
191353
- windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
191354
- var op, opts, sr, src, src2dst, w;
191355
- w = this;
191356
- if (w.released) {
191357
- return;
191358
- }
191359
- $panic(new $String("Not implemented"));
191360
- };
191361
- windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
191362
- windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
191363
- var op, opts, sr, src, src2dst, w;
191364
- w = this;
191365
- if (w.released) {
191366
- return;
191367
- }
191368
- $panic(new $String("Not implemented"));
191369
- };
191370
- windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
191371
- windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
191372
- var dp, op, opts, sr, src, w;
191373
- w = this;
191374
- if (w.released) {
191375
- return;
191376
- }
191377
- $panic(new $String("Not implemented"));
191378
- };
191379
- windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
191380
- windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
191381
- var dr, op, opts, sr, src, w;
191382
- w = this;
191383
- if (w.released) {
191384
- return;
191385
- }
191386
- $panic(new $String("Not implemented"));
191387
- };
191388
- windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
191389
- newScreenImpl = function() {
191390
- var s;
191391
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
191392
- return [s, $ifaceNil];
191393
- };
191394
- screenImpl.ptr.prototype.NewBuffer = function(size) {
191395
- var buffer, s, size;
191396
- s = this;
191397
- buffer = newBuffer(s, $clone(size, image.Point));
191398
- return [buffer, $ifaceNil];
191399
- };
191400
- screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
191401
- screenImpl.ptr.prototype.NewTexture = function(size) {
191402
- var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
191403
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191404
- s = this;
191405
- _r = errs.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191406
- $24r = [$ifaceNil, _r];
191407
- $s = 2; case 2: return $24r;
191408
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
191409
- };
191410
- screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
191411
- screenImpl.ptr.prototype.NewWindow = function(opts) {
191412
- var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
191413
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191414
- s = this;
191415
- _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191416
- window = _r;
191417
- $s = -1; return [window, $ifaceNil];
191418
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
191419
- };
191420
- screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
191421
- Main = function(f) {
191422
- var {_r, err, f, $s, $r, $c} = $restore(this, {f});
191423
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191424
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191425
- err = _r;
191426
- if (!($interfaceIsEqual(err, $ifaceNil))) {
191427
- $panic(err);
191428
- }
191429
- $s = -1; return;
191430
- /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
191431
- };
191432
- $pkg.Main = Main;
191433
- main = function(f) {
191434
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
191435
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191436
- retErr = $ifaceNil;
191437
- _tuple = newScreenImpl();
191438
- s = _tuple[0];
191439
- err = _tuple[1];
191440
- if (!($interfaceIsEqual(err, $ifaceNil))) {
191441
- retErr = err;
191442
- $s = -1; return retErr;
191443
- }
191444
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191445
- retErr = $ifaceNil;
191446
- $s = -1; return retErr;
191447
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
191448
- };
191449
- newBuffer = function(screen$1, size) {
191450
- var b, screen$1, size;
191451
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point));
191452
- return b;
191453
- };
191454
- BufferImpl.ptr.prototype.Size = function() {
191455
- var b;
191456
- b = this;
191457
- return b.size;
191458
- };
191459
- BufferImpl.prototype.Size = function() { return this.$val.Size(); };
191460
- BufferImpl.ptr.prototype.Bounds = function() {
191461
- var b;
191462
- b = this;
191463
- return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
191464
- };
191465
- BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
191466
- BufferImpl.ptr.prototype.RGBA = function() {
191467
- var {_r, b, $s, $r, $c} = $restore(this, {});
191468
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191469
- b = this;
191470
- _r = errs.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191471
- $panic(_r);
191472
- $s = -1; return ptrType$4.nil;
191473
- /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
191474
- };
191475
- BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
191476
- BufferImpl.ptr.prototype.YCbCr = function() {
191477
- var b;
191478
- b = this;
191479
- return new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, $clone(b.Bounds(), image.Rectangle));
191480
- };
191481
- BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
191482
- BufferImpl.ptr.prototype.Release = function() {
191483
- var b;
191484
- b = this;
191485
- };
191486
- BufferImpl.prototype.Release = function() { return this.$val.Release(); };
191487
- ptrType$6.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$5], [], false)}];
191488
- ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$7], [screen.Window, $error], false)}];
191489
- ptrType$9.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191490
- windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
191491
- screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191492
- BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
191493
- $init = function() {
191494
- $pkg.$init = function() {};
191495
- /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
191496
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191497
- $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191498
- $r = jsdecoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191499
- $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191500
- $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191501
- $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191502
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191503
- $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191504
- $r = draw.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191505
- $r = log.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191506
- $r = sync.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191507
- $r = js.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191871
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191508
191872
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191509
191873
  };
191510
191874
  $pkg.$init = $init;
@@ -191603,14 +191967,13 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
191603
191967
  return $pkg;
191604
191968
  })();
191605
191969
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191606
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, errs, helper, input, message, netclient, netpacket, netstream, stats, window, x264, nacldecoder, nacldriver, webcodecs, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, X264FrameRenderer, ScreenWindow, ProcessInfo, ProcessInfoManager, FrameCollector, FrameMapItem, Frame, FrameType, ptrType, ptrType$1, ptrType$2, funcType, sliceType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$1, sliceType$2, structType, sliceType$3, ptrType$10, ptrType$11, funcType$1, ptrType$12, ptrType$13, chanType, chanType$1, chanType$2, chanType$3, chanType$4, mapType, NewX264FrameRenderer, NewScreenWindow, MainDriver, NewProcessInfoManager, NewFrameCollector;
191970
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, errs, input, message, netclient, netpacket, netstream, stats, window, x264, nacldriver, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, X264FrameRenderer, ScreenWindow, ProcessInfo, ProcessInfoManager, FrameCollector, FrameMapItem, Frame, FrameType, ptrType, ptrType$1, ptrType$2, funcType, sliceType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$1, sliceType$2, structType, sliceType$3, ptrType$11, ptrType$12, funcType$1, ptrType$13, chanType, chanType$1, chanType$2, chanType$3, chanType$4, mapType, NewX264FrameRenderer, NewScreenWindow, MainDriver, NewProcessInfoManager, NewFrameCollector;
191607
191971
  binary = $packages["encoding/binary"];
191608
191972
  json = $packages["encoding/json"];
191609
191973
  query = $packages["github.com/google/go-querystring/query"];
191610
191974
  clientscreen = $packages["github.com/supraio/client-daemon/pkg/clientscreen"];
191611
191975
  clipboard = $packages["github.com/supraio/client-daemon/pkg/clipboard"];
191612
191976
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191613
- helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
191614
191977
  input = $packages["github.com/supraio/client-daemon/pkg/input"];
191615
191978
  message = $packages["github.com/supraio/client-daemon/pkg/message"];
191616
191979
  netclient = $packages["github.com/supraio/client-daemon/pkg/netclient"];
@@ -191619,9 +191982,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191619
191982
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
191620
191983
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
191621
191984
  x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
191622
- nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
191623
191985
  nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
191624
- webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
191625
191986
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
191626
191987
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
191627
191988
  screen = $packages["golang.org/x/exp/shiny/screen"];
@@ -191654,7 +192015,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191654
192015
  this.stats = stats_;
191655
192016
  this.dec = dec_;
191656
192017
  });
191657
- ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, screenSize_, renderMutex_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, screenReconnecting_, metadataServer_, frameCollector_, x264Renderer_, sizeHandler_, keyHandler_, mouseHandler_, healthchecker_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, winCloseChannel_) {
192018
+ ScreenWindow = $pkg.ScreenWindow = $newType(0, $kindStruct, "render.ScreenWindow", true, "github.com/supraio/client-daemon/pkg/render", true, function(processInfoManager_, screenDriver_, screenHost_, metadataDriver_, metadataHost_, clientID_, clientSecret_, screenID_, secure_, screenSize_, renderMutex_, timeoutDuration_, closed_, stats_, onClose_, window_, screen_, screenConn_, screenReconnecting_, metadataServer_, frameCollector_, x264Renderer_, screenSender_, metadataSender_, metadataResponsiveSender_, sizeHandler_, keyHandler_, mouseHandler_, healthchecker_, keyEventChan_, mouseEventChan_, sizeEventChan_, focusEventChan_, winCloseChannel_) {
191658
192019
  this.$val = this;
191659
192020
  if (arguments.length === 0) {
191660
192021
  this.processInfoManager = ptrType$2.nil;
@@ -191679,10 +192040,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191679
192040
  this.metadataServer = ptrType$3.nil;
191680
192041
  this.frameCollector = ptrType$4.nil;
191681
192042
  this.x264Renderer = ptrType$5.nil;
191682
- this.sizeHandler = ptrType$6.nil;
191683
- this.keyHandler = ptrType$7.nil;
191684
- this.mouseHandler = ptrType$8.nil;
191685
- this.healthchecker = ptrType$9.nil;
192043
+ this.screenSender = $ifaceNil;
192044
+ this.metadataSender = $ifaceNil;
192045
+ this.metadataResponsiveSender = ptrType$6.nil;
192046
+ this.sizeHandler = ptrType$7.nil;
192047
+ this.keyHandler = ptrType$8.nil;
192048
+ this.mouseHandler = ptrType$9.nil;
192049
+ this.healthchecker = ptrType$10.nil;
191686
192050
  this.keyEventChan = $chanNil;
191687
192051
  this.mouseEventChan = $chanNil;
191688
192052
  this.sizeEventChan = $chanNil;
@@ -191712,6 +192076,9 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191712
192076
  this.metadataServer = metadataServer_;
191713
192077
  this.frameCollector = frameCollector_;
191714
192078
  this.x264Renderer = x264Renderer_;
192079
+ this.screenSender = screenSender_;
192080
+ this.metadataSender = metadataSender_;
192081
+ this.metadataResponsiveSender = metadataResponsiveSender_;
191715
192082
  this.sizeHandler = sizeHandler_;
191716
192083
  this.keyHandler = keyHandler_;
191717
192084
  this.mouseHandler = mouseHandler_;
@@ -191797,33 +192164,33 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191797
192164
  ptrType$3 = $ptrType(netclient.MetadataServer);
191798
192165
  ptrType$4 = $ptrType(FrameCollector);
191799
192166
  ptrType$5 = $ptrType(X264FrameRenderer);
191800
- ptrType$6 = $ptrType(window.SizeHandler);
191801
- ptrType$7 = $ptrType(input.KeyHandler);
191802
- ptrType$8 = $ptrType(input.MouseHandler);
191803
- ptrType$9 = $ptrType(netclient.Healthchecker);
192167
+ ptrType$6 = $ptrType(netclient.MetadataResponsiveSender);
192168
+ ptrType$7 = $ptrType(window.SizeHandler);
192169
+ ptrType$8 = $ptrType(input.KeyHandler);
192170
+ ptrType$9 = $ptrType(input.MouseHandler);
192171
+ ptrType$10 = $ptrType(netclient.Healthchecker);
191804
192172
  sliceType$1 = $sliceType($emptyInterface);
191805
192173
  sliceType$2 = $sliceType($Uint8);
191806
192174
  structType = $structType("", []);
191807
192175
  sliceType$3 = $sliceType($String);
191808
- ptrType$10 = $ptrType(Frame);
191809
- ptrType$11 = $ptrType(FrameMapItem);
192176
+ ptrType$11 = $ptrType(Frame);
192177
+ ptrType$12 = $ptrType(FrameMapItem);
191810
192178
  funcType$1 = $funcType([], [$error], false);
191811
- ptrType$12 = $ptrType(netclient.MetadataResponsiveSender);
191812
192179
  ptrType$13 = $ptrType(ScreenWindow);
191813
192180
  chanType = $chanType(key.Event, false, false);
191814
192181
  chanType$1 = $chanType(mouse.Event, false, false);
191815
192182
  chanType$2 = $chanType(size.Event, false, false);
191816
192183
  chanType$3 = $chanType(focus.Event, false, false);
191817
192184
  chanType$4 = $chanType($emptyInterface, false, false);
191818
- mapType = $mapType($Uint16, ptrType$11);
192185
+ mapType = $mapType($Uint16, ptrType$12);
191819
192186
  NewX264FrameRenderer = function(screenBuffer, window$1, stats$1) {
191820
192187
  var screenBuffer, stats$1, window$1;
191821
192188
  return new X264FrameRenderer.ptr(screenBuffer, window$1, stats$1, ptrType$1.nil);
191822
192189
  };
191823
192190
  $pkg.NewX264FrameRenderer = NewX264FrameRenderer;
191824
192191
  X264FrameRenderer.ptr.prototype.Render = function(frame) {
191825
- var {_r, _r$1, _tuple, err, frame, r, $s, $r, $c} = $restore(this, {frame});
191826
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192192
+ var {_r, _r$1, _tuple, err, frame, r, $s, $deferred, $r, $c} = $restore(this, {frame});
192193
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191827
192194
  r = [r];
191828
192195
  r[0] = this;
191829
192196
  err = $ifaceNil;
@@ -191838,19 +192205,19 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191838
192205
  /* */ $s = 5; continue;
191839
192206
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
191840
192207
  $r = errs.Print("Decoder cannot be created", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191841
- $s = -1; return;
192208
+ $s = 7; case 7: return;
191842
192209
  /* } */ case 5:
191843
192210
  /* } */ case 2:
191844
- $r = r[0].stats.NotifyFrameDecodeStarted(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191845
- _r$1 = r[0].dec.Decode(frame.buffer, r[0].screenBuffer); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192211
+ $r = r[0].stats.NotifyFrameDecodeStarted(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192212
+ _r$1 = r[0].dec.Decode(frame.buffer, r[0].screenBuffer); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191846
192213
  err = _r$1;
191847
- $r = r[0].stats.NotifyFrameDecodeEnded(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191848
- $r = r[0].dec.Release(r[0].screenBuffer); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192214
+ $r = r[0].stats.NotifyFrameDecodeEnded(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192215
+ $deferred.push([$methodVal(r[0].dec, "Release"), [r[0].screenBuffer]]);
191849
192216
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 11; continue; }
191850
192217
  /* */ $s = 12; continue;
191851
192218
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 11:
191852
192219
  $r = errs.Print("Frame cannot be decoded", err); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191853
- $s = -1; return;
192220
+ $s = 14; case 14: return;
191854
192221
  /* } */ case 12:
191855
192222
  $go((function(r) { return function $b() {
191856
192223
  var {_arg, _arg$1, _arg$2, _r$2, _r$3, $s, $r, $c} = $restore(this, {});
@@ -191868,14 +192235,14 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191868
192235
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _arg$1, _arg$2, _r$2, _r$3, $s};return $f;
191869
192236
  }; })(r), []);
191870
192237
  $s = -1; return;
191871
- /* */ } return; } var $f = {$blk: X264FrameRenderer.ptr.prototype.Render, $c: true, $r, _r, _r$1, _tuple, err, frame, r, $s};return $f;
192238
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: X264FrameRenderer.ptr.prototype.Render, $c: true, $r, _r, _r$1, _tuple, err, frame, r, $s, $deferred};return $f; } }
191872
192239
  };
191873
192240
  X264FrameRenderer.prototype.Render = function(frame) { return this.$val.Render(frame); };
191874
192241
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
191875
192242
  var {$24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s, $r, $c} = $restore(this, {processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration});
191876
192243
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191877
192244
  _r = stats.NewStats(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191878
- $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex), timeoutDuration, true, _r, sliceType.nil, $ifaceNil, $ifaceNil, $ifaceNil, false, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, new $Chan(key.Event, 0), new $Chan(mouse.Event, 0), new $Chan(size.Event, 0), new $Chan(focus.Event, 0), new $Chan($emptyInterface, 0));
192245
+ $24r = new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex), timeoutDuration, true, _r, sliceType.nil, $ifaceNil, $ifaceNil, $ifaceNil, false, ptrType$3.nil, ptrType$4.nil, ptrType$5.nil, $ifaceNil, $ifaceNil, ptrType$6.nil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, new $Chan(key.Event, 0), new $Chan(mouse.Event, 0), new $Chan(size.Event, 0), new $Chan(focus.Event, 0), new $Chan($emptyInterface, 0));
191879
192246
  $s = 2; case 2: return $24r;
191880
192247
  /* */ } return; } var $f = {$blk: NewScreenWindow, $c: true, $r, $24r, _r, clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration, $s};return $f;
191881
192248
  };
@@ -191935,17 +192302,22 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191935
192302
  $s = -1; return;
191936
192303
  }
191937
192304
  w.closed = true;
191938
- if (!(w.healthchecker === ptrType$9.nil)) {
191939
- w.healthchecker.Close();
191940
- w.healthchecker = ptrType$9.nil;
191941
- }
191942
- _r = w.createScreenSender().Send(3, new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192305
+ w.healthchecker.Close();
192306
+ w.healthchecker = ptrType$10.nil;
192307
+ w.keyHandler.Close();
192308
+ w.keyHandler = ptrType$8.nil;
192309
+ w.mouseHandler.Close();
192310
+ w.mouseHandler = ptrType$9.nil;
192311
+ w.sizeHandler.Close();
192312
+ w.sizeHandler = ptrType$7.nil;
192313
+ _r = w.screenSender.Send(3, new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191943
192314
  err = _r;
191944
192315
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
191945
192316
  /* */ $s = 3; continue;
191946
192317
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
191947
192318
  $r = errs.Print("Cannot close screen stream", err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191948
192319
  /* } */ case 3:
192320
+ w.screenSender = $ifaceNil;
191949
192321
  _r$1 = w.metadataServer.Close(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
191950
192322
  err = _r$1;
191951
192323
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; }
@@ -192138,7 +192510,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192138
192510
  $r = errs.Print("Cannot encode clipboard info", err$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192139
192511
  /* continue; */ $s = 1; continue;
192140
192512
  /* } */ case 9:
192141
- _r$3 = w[0].createMetadataSender().Send(47, data); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192513
+ _r$3 = w[0].metadataSender.Send(47, data); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192142
192514
  err$1 = _r$3;
192143
192515
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 12; continue; }
192144
192516
  /* */ $s = 13; continue;
@@ -192180,7 +192552,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192180
192552
  };
192181
192553
  ScreenWindow.prototype.retriableOpen = function(retries, open) { return this.$val.retriableOpen(retries, open); };
192182
192554
  ScreenWindow.ptr.prototype.openMetadata = function() {
192183
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, conn, connect, err, metadataClient, metadataSender, metadataServerErr, netStreamErr, w, $s, $r, $c} = $restore(this, {});
192555
+ var {_r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, conn, connect, err, metadataClient, w, $s, $r, $c} = $restore(this, {});
192184
192556
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192185
192557
  w = [w];
192186
192558
  w[0] = this;
@@ -192204,87 +192576,44 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192204
192576
  _tuple$2 = _r$2;
192205
192577
  w[0].metadataServer = _tuple$2[0];
192206
192578
  err = _tuple$2[1];
192207
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
192208
- /* */ $s = 5; continue;
192209
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
192210
- _r$3 = conn.Close(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192211
- netStreamErr = _r$3;
192212
- /* */ if (!($interfaceIsEqual(netStreamErr, $ifaceNil))) { $s = 7; continue; }
192213
- /* */ $s = 8; continue;
192214
- /* if (!($interfaceIsEqual(netStreamErr, $ifaceNil))) { */ case 7:
192215
- $r = errs.Print("Cannot close metadata connection", netStreamErr); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192216
- /* } */ case 8:
192217
- $s = -1; return err;
192218
- /* } */ case 5:
192219
- _r$4 = w[0].sendStats(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
192220
- err = _r$4;
192221
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 11; continue; }
192222
- /* */ $s = 12; continue;
192223
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 11:
192224
- _r$5 = w[0].metadataServer.Close(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
192225
- metadataServerErr = _r$5;
192226
- /* */ if (!($interfaceIsEqual(metadataServerErr, $ifaceNil))) { $s = 14; continue; }
192227
- /* */ $s = 15; continue;
192228
- /* if (!($interfaceIsEqual(metadataServerErr, $ifaceNil))) { */ case 14:
192229
- $r = errs.Print("Cannot close metadata connection", metadataServerErr); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192230
- /* } */ case 15:
192579
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
192231
192580
  $s = -1; return err;
192232
- /* } */ case 12:
192233
- metadataSender = w[0].createMetadataSender();
192234
- w[0].keyHandler = input.NewKeyHandler(w[0].keyEventChan, w[0].focusEventChan, metadataSender);
192235
- _r$6 = w[0].keyHandler.Start(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
192236
- err = _r$6;
192581
+ }
192582
+ w[0].metadataSender = netclient.NewMetadataMessageSender(w[0].metadataServer);
192583
+ w[0].metadataResponsiveSender = netclient.NewMetadataResponsiveSender(w[0].metadataServer, w[0].timeoutDuration);
192584
+ w[0].metadataResponsiveSender.Listen();
192585
+ w[0].keyHandler = input.NewKeyHandler(w[0].keyEventChan, w[0].focusEventChan, w[0].metadataSender);
192586
+ _r$3 = w[0].keyHandler.Start(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192587
+ err = _r$3;
192237
192588
  if (!($interfaceIsEqual(err, $ifaceNil))) {
192238
192589
  $s = -1; return err;
192239
192590
  }
192240
- w[0].mouseHandler = input.NewMouseHandler(w[0].mouseEventChan, metadataSender);
192591
+ w[0].mouseHandler = input.NewMouseHandler(w[0].mouseEventChan, w[0].metadataSender);
192241
192592
  w[0].mouseHandler.Start();
192242
- w[0].sizeHandler = window.NewSizeHandler(w[0].sizeEventChan, metadataSender);
192593
+ w[0].sizeHandler = window.NewSizeHandler(w[0].sizeEventChan, w[0].metadataSender);
192243
192594
  w[0].sizeHandler.Start();
192244
192595
  $go($methodVal(w[0], "startTimestampSyncing"), []);
192245
192596
  $go($methodVal(w[0], "startStatsSyncing"), []);
192246
192597
  w[0].metadataServer.OnClose((function(w) { return function $b() {
192247
- var {_r$7, err$1, $s, $r, $c} = $restore(this, {});
192598
+ var {_r$4, err$1, $s, $r, $c} = $restore(this, {});
192248
192599
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192249
- w[0].metadataServer = ptrType$3.nil;
192250
192600
  w[0].keyHandler.Close();
192251
- w[0].keyHandler = ptrType$7.nil;
192252
192601
  w[0].mouseHandler.Close();
192253
- w[0].mouseHandler = ptrType$8.nil;
192254
192602
  w[0].sizeHandler.Close();
192255
- w[0].sizeHandler = ptrType$6.nil;
192256
- _r$7 = w[0].retriableOpen(-1, $methodVal(w[0], "openMetadata")); /* */ $s = 1; case 1: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
192257
- err$1 = _r$7;
192603
+ _r$4 = w[0].retriableOpen(-1, $methodVal(w[0], "openMetadata")); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
192604
+ err$1 = _r$4;
192258
192605
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 2; continue; }
192259
192606
  /* */ $s = 3; continue;
192260
192607
  /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 2:
192261
192608
  $r = errs.Print("Reconnecting metadata", err$1); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192262
192609
  /* } */ case 3:
192263
192610
  $s = -1; return;
192264
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$7, err$1, $s};return $f;
192611
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, err$1, $s};return $f;
192265
192612
  }; })(w));
192266
192613
  $s = -1; return $ifaceNil;
192267
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openMetadata, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, conn, connect, err, metadataClient, metadataSender, metadataServerErr, netStreamErr, w, $s};return $f;
192614
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openMetadata, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, _tuple$1, _tuple$2, conn, connect, err, metadataClient, w, $s};return $f;
192268
192615
  };
192269
192616
  ScreenWindow.prototype.openMetadata = function() { return this.$val.openMetadata(); };
192270
- ScreenWindow.ptr.prototype.createMetadataResponsiveSender = function() {
192271
- var w;
192272
- w = this;
192273
- return netclient.NewMetadataResponsiveSender(w.metadataServer, w.timeoutDuration);
192274
- };
192275
- ScreenWindow.prototype.createMetadataResponsiveSender = function() { return this.$val.createMetadataResponsiveSender(); };
192276
- ScreenWindow.ptr.prototype.createMetadataSender = function() {
192277
- var w;
192278
- w = this;
192279
- return netclient.NewMetadataMessageSender(w.metadataServer);
192280
- };
192281
- ScreenWindow.prototype.createMetadataSender = function() { return this.$val.createMetadataSender(); };
192282
- ScreenWindow.ptr.prototype.createScreenSender = function() {
192283
- var w;
192284
- w = this;
192285
- return netclient.NewMessageSender(w.screenConn);
192286
- };
192287
- ScreenWindow.prototype.createScreenSender = function() { return this.$val.createScreenSender(); };
192288
192617
  ScreenWindow.ptr.prototype.startTimestampSyncing = function() {
192289
192618
  var {_r, _r$1, _r$2, _tuple, err, latencyEnd, latencyNano, latencyStart, serverTimestamp, serverTimestampAhead, serverTimestampData, w, x, x$1, x$2, $s, $r, $c} = $restore(this, {});
192290
192619
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -192292,33 +192621,27 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192292
192621
  $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192293
192622
  /* while (true) { */ case 2:
192294
192623
  /* if (!(!w.closed)) { break; } */ if(!(!w.closed)) { $s = 3; continue; }
192295
- /* */ if (w.metadataServer === ptrType$3.nil) { $s = 4; continue; }
192296
- /* */ $s = 5; continue;
192297
- /* if (w.metadataServer === ptrType$3.nil) { */ case 4:
192298
- $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192299
- /* continue; */ $s = 2; continue;
192300
- /* } */ case 5:
192301
- _r = time.Now(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192624
+ _r = time.Now(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192302
192625
  latencyStart = $clone(_r, time.Time);
192303
- _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(46, new sliceType$2([])); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192626
+ _r$1 = w.metadataResponsiveSender.SendServerWaitResponse(46, new sliceType$2([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192304
192627
  _tuple = _r$1;
192305
192628
  serverTimestampData = _tuple[0];
192306
192629
  err = _tuple[1];
192307
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; }
192308
- /* */ $s = 10; continue;
192309
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9:
192310
- $r = errs.Print("Timestamp sync", err); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192311
- $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192630
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; }
192631
+ /* */ $s = 7; continue;
192632
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6:
192633
+ $r = errs.Print("Timestamp sync", err); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192634
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192312
192635
  /* continue; */ $s = 2; continue;
192313
- /* } */ case 10:
192636
+ /* } */ case 7:
192314
192637
  serverTimestamp = $clone(binary.BigEndian, binary.bigEndian).Uint64(serverTimestampData);
192315
- _r$2 = time.Now(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192638
+ _r$2 = time.Now(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192316
192639
  latencyEnd = $clone(_r$2, time.Time);
192317
192640
  latencyNano = $div64($clone(latencyEnd, time.Time).Sub($clone(latencyStart, time.Time)).Nanoseconds(), new $Int64(0, 2), false);
192318
192641
  serverTimestampAhead = (x = (x$1 = (new $Int64(serverTimestamp.$high, serverTimestamp.$low)), new $Int64(x$1.$high + latencyNano.$high, x$1.$low + latencyNano.$low)), x$2 = $clone(latencyEnd, time.Time).UnixNano(), new $Int64(x.$high - x$2.$high, x.$low - x$2.$low));
192319
192642
  w.stats.SetLatency(latencyNano);
192320
192643
  w.stats.SetServerTimestampAhead(serverTimestampAhead);
192321
- $r = time.Sleep(new time.Duration(6, 4230196224)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192644
+ $r = time.Sleep(new time.Duration(6, 4230196224)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192322
192645
  $s = 2; continue;
192323
192646
  case 3:
192324
192647
  $s = -1; return;
@@ -192326,87 +192649,60 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192326
192649
  };
192327
192650
  ScreenWindow.prototype.startTimestampSyncing = function() { return this.$val.startTimestampSyncing(); };
192328
192651
  ScreenWindow.ptr.prototype.startStatsSyncing = function() {
192329
- var {_r, err, w, $s, $r, $c} = $restore(this, {});
192652
+ var {_r, _r$1, _tuple, _tuple$1, clientStats, data, err, w, $s, $r, $c} = $restore(this, {});
192330
192653
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192331
192654
  w = this;
192332
192655
  $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192333
192656
  /* while (true) { */ case 2:
192334
192657
  /* if (!(!w.closed)) { break; } */ if(!(!w.closed)) { $s = 3; continue; }
192335
- /* */ if (w.metadataServer === ptrType$3.nil) { $s = 4; continue; }
192336
- /* */ $s = 5; continue;
192337
- /* if (w.metadataServer === ptrType$3.nil) { */ case 4:
192338
- $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192658
+ clientStats = w.stats.GetClientStats();
192659
+ _r = json.Marshal(clientStats); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192660
+ _tuple = _r;
192661
+ data = _tuple[0];
192662
+ err = _tuple[1];
192663
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
192664
+ /* */ $s = 6; continue;
192665
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
192666
+ $r = errs.Print("Stats serialize", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192667
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192339
192668
  /* continue; */ $s = 2; continue;
192340
- /* } */ case 5:
192341
- _r = w.sendStats(); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192342
- err = _r;
192343
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
192344
- /* */ $s = 9; continue;
192345
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
192346
- $r = errs.Print("Stats sync", err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192347
- $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192669
+ /* } */ case 6:
192670
+ _r$1 = w.metadataResponsiveSender.SendServerWaitResponse(48, data); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192671
+ _tuple$1 = _r$1;
192672
+ err = _tuple$1[1];
192673
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 10; continue; }
192674
+ /* */ $s = 11; continue;
192675
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10:
192676
+ $r = errs.Print("Stats sync", err); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192677
+ $r = time.Sleep(new time.Duration(1, 705032704)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192348
192678
  /* continue; */ $s = 2; continue;
192349
- /* } */ case 9:
192350
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192679
+ /* } */ case 11:
192680
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192351
192681
  $s = 2; continue;
192352
192682
  case 3:
192353
192683
  $s = -1; return;
192354
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startStatsSyncing, $c: true, $r, _r, err, w, $s};return $f;
192684
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.startStatsSyncing, $c: true, $r, _r, _r$1, _tuple, _tuple$1, clientStats, data, err, w, $s};return $f;
192355
192685
  };
192356
192686
  ScreenWindow.prototype.startStatsSyncing = function() { return this.$val.startStatsSyncing(); };
192357
- ScreenWindow.ptr.prototype.sendStats = function() {
192358
- var {_r, _r$1, _tuple, _tuple$1, clientStats, data, err, w, $s, $r, $c} = $restore(this, {});
192359
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192360
- w = this;
192361
- clientStats = w.stats.GetClientStats();
192362
- _r = json.Marshal(clientStats); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192363
- _tuple = _r;
192364
- data = _tuple[0];
192365
- err = _tuple[1];
192366
- if (!($interfaceIsEqual(err, $ifaceNil))) {
192367
- $s = -1; return err;
192368
- }
192369
- _r$1 = w.createMetadataResponsiveSender().SendServerWaitResponse(48, data); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192370
- _tuple$1 = _r$1;
192371
- err = _tuple$1[1];
192372
- $s = -1; return err;
192373
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.sendStats, $c: true, $r, _r, _r$1, _tuple, _tuple$1, clientStats, data, err, w, $s};return $f;
192374
- };
192375
- ScreenWindow.prototype.sendStats = function() { return this.$val.sendStats(); };
192376
- ScreenWindow.ptr.prototype.getHealthcheckTimeout = function() {
192377
- var clampedTimeoutMs, frameDurationMs, framerate, timeoutMs, w;
192378
- w = this;
192379
- framerate = w.stats.GetFrameRate();
192380
- if (framerate === 0) {
192381
- return new time.Duration(2, 1410065408);
192382
- }
192383
- frameDurationMs = $div64(new $Int64(0, 1), (new $Int64(0, framerate)), false);
192384
- timeoutMs = $mul64(frameDurationMs, new $Int64(0, 60));
192385
- clampedTimeoutMs = helper.ClampedInt64(timeoutMs, new $Int64(0, 1000), new $Int64(0, 10000));
192386
- return $mul64((new time.Duration(clampedTimeoutMs.$high, clampedTimeoutMs.$low)), new time.Duration(0, 1000000));
192387
- };
192388
- ScreenWindow.prototype.getHealthcheckTimeout = function() { return this.$val.getHealthcheckTimeout(); };
192389
192687
  ScreenWindow.ptr.prototype.openScreen = function() {
192390
- var {_r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, maxPacketSize, msgData, screenSender, w, $s, $r, $c} = $restore(this, {});
192688
+ var {_r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, maxPacketSize, msgData, w, $s, $r, $c} = $restore(this, {});
192391
192689
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192392
- err = [err];
192393
- screenSender = [screenSender];
192394
192690
  w = [w];
192395
192691
  w[0] = this;
192396
- err[0] = $ifaceNil;
192692
+ err = $ifaceNil;
192397
192693
  _r = netpacket.Create(w[0].screenDriver); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192398
192694
  _tuple = _r;
192399
192695
  connect = _tuple[0];
192400
- err[0] = _tuple[1];
192401
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
192402
- $s = -1; return err[0];
192696
+ err = _tuple[1];
192697
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
192698
+ $s = -1; return err;
192403
192699
  }
192404
192700
  _r$1 = connect(w[0].screenHost, new time.Duration(0, 1000000000), w[0].secure); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192405
192701
  _tuple$1 = _r$1;
192406
192702
  conn = _tuple$1[0];
192407
- err[0] = _tuple$1[1];
192408
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
192409
- $s = -1; return err[0];
192703
+ err = _tuple$1[1];
192704
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
192705
+ $s = -1; return err;
192410
192706
  }
192411
192707
  w[0].screenConn = conn;
192412
192708
  lastFrameID = 65535;
@@ -192415,62 +192711,62 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192415
192711
  }
192416
192712
  maxPacketSize = netpacket.GetMaxPacketSize(w[0].screenDriver);
192417
192713
  w[0].frameCollector = NewFrameCollector(conn, w[0].stats, lastFrameID, maxPacketSize);
192418
- screenSender[0] = w[0].createScreenSender();
192714
+ w[0].screenSender = netclient.NewMessageSender(conn);
192419
192715
  msgData = (new sliceType$2($stringToBytes(w[0].clientID + w[0].clientSecret + w[0].screenID)));
192420
- _r$2 = screenSender[0].Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192421
- err[0] = _r$2;
192422
- if (!($interfaceIsEqual(err[0], $ifaceNil))) {
192423
- $s = -1; return err[0];
192716
+ _r$2 = w[0].screenSender.Send(1, msgData); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192717
+ err = _r$2;
192718
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
192719
+ $s = -1; return err;
192424
192720
  }
192425
- w[0].healthchecker = netclient.NewHealthchecker(screenSender[0]);
192721
+ w[0].healthchecker = netclient.NewHealthchecker(w[0].screenSender);
192426
192722
  w[0].healthchecker.Start();
192427
- w[0].screenReconnecting = false;
192428
- $go((function(err, screenSender, w) { return function $b() {
192429
- var {_r$3, _r$4, _r$5, _r$6, _r$7, err$1, $s, $r, $c} = $restore(this, {});
192723
+ $go((function(w) { return function $b() {
192724
+ var {_r$3, _r$4, _r$5, _r$6, _r$7, err$1, originalHealthchecker, originalScreenConn, originalScreenSender, $s, $r, $c} = $restore(this, {});
192430
192725
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192431
192726
  /* while (true) { */ case 1:
192432
192727
  /* if (!(!w[0].closed)) { break; } */ if(!(!w[0].closed)) { $s = 2; continue; }
192433
192728
  $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192434
192729
  _r$3 = time.Now(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192435
- _r$4 = $clone($clone(w[0].stats.GetLastFrameAt(), time.Time).Add(w[0].getHealthcheckTimeout()), time.Time).Before($clone(_r$3, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
192730
+ _r$4 = $clone($clone(w[0].stats.GetLastFrameAt(), time.Time).Add(new time.Duration(0, 1000000000)), time.Time).Before($clone(_r$3, time.Time)); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
192436
192731
  /* */ if (_r$4) { $s = 4; continue; }
192437
192732
  /* */ $s = 5; continue;
192438
192733
  /* if (_r$4) { */ case 4:
192439
192734
  w[0].screenReconnecting = true;
192440
- if (!(w[0].healthchecker === ptrType$9.nil)) {
192441
- w[0].healthchecker.Close();
192442
- w[0].healthchecker = ptrType$9.nil;
192443
- }
192444
- _r$5 = screenSender[0].Send(3, new sliceType$2([])); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
192445
- err[0] = _r$5;
192446
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 9; continue; }
192735
+ originalHealthchecker = w[0].healthchecker;
192736
+ originalScreenConn = w[0].screenConn;
192737
+ originalScreenSender = w[0].screenSender;
192738
+ _r$5 = w[0].retriableOpen(-1, $methodVal(w[0], "openScreen")); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
192739
+ err$1 = _r$5;
192740
+ /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
192447
192741
  /* */ $s = 10; continue;
192448
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 9:
192449
- $r = errs.Print("Could not send disconnect msg to screen", err[0]); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192742
+ /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
192743
+ $r = errs.Print("Reconnecting screen", err$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192450
192744
  /* } */ case 10:
192451
- _r$6 = w[0].screenConn.Close(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
192452
- err[0] = _r$6;
192453
- /* */ if (!($interfaceIsEqual(err[0], $ifaceNil))) { $s = 13; continue; }
192745
+ originalHealthchecker.Close();
192746
+ _r$6 = originalScreenSender.Send(3, new sliceType$2([])); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
192747
+ err$1 = _r$6;
192748
+ /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 13; continue; }
192454
192749
  /* */ $s = 14; continue;
192455
- /* if (!($interfaceIsEqual(err[0], $ifaceNil))) { */ case 13:
192456
- $r = errs.Print("Could disconnect screen", err[0]); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192750
+ /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 13:
192751
+ $r = errs.Print("Could not send disconnect msg to screen", err$1); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192457
192752
  /* } */ case 14:
192458
- _r$7 = w[0].retriableOpen(-1, $methodVal(w[0], "openScreen")); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
192753
+ _r$7 = originalScreenConn.Close(); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
192459
192754
  err$1 = _r$7;
192460
192755
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 17; continue; }
192461
192756
  /* */ $s = 18; continue;
192462
192757
  /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 17:
192463
- $r = errs.Print("Reconnecting screen", err$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192758
+ $r = errs.Print("Could disconnect screen", err$1); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192464
192759
  /* } */ case 18:
192760
+ w[0].screenReconnecting = false;
192465
192761
  /* break; */ $s = 2; continue;
192466
192762
  /* } */ case 5:
192467
192763
  $s = 1; continue;
192468
192764
  case 2:
192469
192765
  $s = -1; return;
192470
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, err$1, $s};return $f;
192471
- }; })(err, screenSender, w), []);
192766
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, _r$4, _r$5, _r$6, _r$7, err$1, originalHealthchecker, originalScreenConn, originalScreenSender, $s};return $f;
192767
+ }; })(w), []);
192472
192768
  $s = -1; return $ifaceNil;
192473
- /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, maxPacketSize, msgData, screenSender, w, $s};return $f;
192769
+ /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.openScreen, $c: true, $r, _r, _r$1, _r$2, _tuple, _tuple$1, conn, connect, err, lastFrameID, maxPacketSize, msgData, w, $s};return $f;
192474
192770
  };
192475
192771
  ScreenWindow.prototype.openScreen = function() { return this.$val.openScreen(); };
192476
192772
  ScreenWindow.ptr.prototype.startStream = function() {
@@ -192505,16 +192801,16 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192505
192801
  /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 4; continue; }
192506
192802
  /* */ $s = 5; continue;
192507
192803
  /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 4:
192508
- $r = time.Sleep(new time.Duration(0, 100000000)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192509
- /* */ if (w[0].screenReconnecting) { $s = 7; continue; }
192510
- /* */ if (!w[0].closed) { $s = 8; continue; }
192511
- /* */ $s = 9; continue;
192512
- /* if (w[0].screenReconnecting) { */ case 7:
192513
- $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192514
- $s = 9; continue;
192515
- /* } else if (!w[0].closed) { */ case 8:
192516
- $r = errs.Print("Frame error, skipping", err$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192517
- /* } */ case 9:
192804
+ /* */ if (!w[0].closed) { $s = 6; continue; }
192805
+ /* */ $s = 7; continue;
192806
+ /* if (!w[0].closed) { */ case 6:
192807
+ $r = errs.Print("Frame error, skipping", err$1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192808
+ /* } */ case 7:
192809
+ /* */ if (w[0].screenReconnecting) { $s = 9; continue; }
192810
+ /* */ $s = 10; continue;
192811
+ /* if (w[0].screenReconnecting) { */ case 9:
192812
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192813
+ /* } */ case 10:
192518
192814
  /* continue; */ $s = 1; continue;
192519
192815
  /* } */ case 5:
192520
192816
  $go($methodVal(w[0], "renderFrame"), [frame]);
@@ -192554,13 +192850,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192554
192850
  MainDriver = function(f) {
192555
192851
  var {f, $s, $r, $c} = $restore(this, {f});
192556
192852
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192557
- /* */ if (nacldecoder.IsAvailable()) { $s = 1; continue; }
192558
- /* */ if (webcodecs.IsAvailable()) { $s = 2; continue; }
192853
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
192854
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 2; continue; }
192559
192855
  /* */ $s = 3; continue;
192560
- /* if (nacldecoder.IsAvailable()) { */ case 1:
192856
+ /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
192561
192857
  $r = nacldriver.Main(f); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192562
192858
  $s = 4; continue;
192563
- /* } else if (webcodecs.IsAvailable()) { */ case 2:
192859
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 2:
192564
192860
  $r = canvasdriver.Main(f); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192565
192861
  $s = 4; continue;
192566
192862
  /* } else { */ case 3:
@@ -192756,13 +193052,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192756
193052
  bufferLength = _tuple[0];
192757
193053
  err = _tuple[1];
192758
193054
  if (!($interfaceIsEqual(err, $ifaceNil))) {
192759
- $s = -1; return [ptrType$10.nil, err];
193055
+ $s = -1; return [ptrType$11.nil, err];
192760
193056
  }
192761
193057
  headerSize = 6;
192762
193058
  frameID = $clone(binary.BigEndian, binary.bigEndian).Uint16($subslice(packetBuffer, 0, 2));
192763
193059
  seq = $clone(binary.BigEndian, binary.bigEndian).Uint16($subslice(packetBuffer, 2, 4));
192764
193060
  total = $clone(binary.BigEndian, binary.bigEndian).Uint16($subslice(packetBuffer, 4, 6));
192765
- _tuple$1 = (_entry = $mapIndex(c.framesMap,$Uint16.keyFor(frameID)), _entry !== undefined ? [_entry.v, true] : [ptrType$11.nil, false]);
193061
+ _tuple$1 = (_entry = $mapIndex(c.framesMap,$Uint16.keyFor(frameID)), _entry !== undefined ? [_entry.v, true] : [ptrType$12.nil, false]);
192766
193062
  frameMapItem = _tuple$1[0];
192767
193063
  frameExists = _tuple$1[1];
192768
193064
  /* */ if (!frameExists || (seq === 0) || !((total === frameMapItem.total))) { $s = 4; continue; }
@@ -192806,7 +193102,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192806
193102
  /* } */ case 8:
192807
193103
  $s = 1; continue;
192808
193104
  case 2:
192809
- $s = -1; return [ptrType$10.nil, $ifaceNil];
193105
+ $s = -1; return [ptrType$11.nil, $ifaceNil];
192810
193106
  /* */ } return; } var $f = {$blk: FrameCollector.ptr.prototype.CollectFrame, $c: true, $r, _entry, _key, _r, _tuple, _tuple$1, buffer, bufferLength, bufferSize, c, dataEndsAt, dataPartSize, dataStartsAt, err, frameExists, frameID, frameMapItem, headerSize, packetBuffer, received, seq, total, $s};return $f;
192811
193107
  };
192812
193108
  FrameCollector.prototype.CollectFrame = function() { return this.$val.CollectFrame(); };
@@ -192816,13 +193112,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192816
193112
  return f.timestamp;
192817
193113
  };
192818
193114
  Frame.prototype.GetTimestmap = function() { return this.$val.GetTimestmap(); };
192819
- ptrType$5.methods = [{prop: "Render", name: "Render", pkg: "", typ: $funcType([ptrType$10], [], false)}];
192820
- ptrType$13.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "createMetadataResponsiveSender", name: "createMetadataResponsiveSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [ptrType$12], false)}, {prop: "createMetadataSender", name: "createMetadataSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "createScreenSender", name: "createScreenSender", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [message.Sender], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "sendStats", name: "sendStats", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "getHealthcheckTimeout", name: "getHealthcheckTimeout", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [time.Duration], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startStream", name: "startStream", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "renderFrame", name: "renderFrame", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([ptrType$10], [], false)}];
193115
+ ptrType$5.methods = [{prop: "Render", name: "Render", pkg: "", typ: $funcType([ptrType$11], [], false)}];
193116
+ ptrType$13.methods = [{prop: "Start", name: "Start", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "startWindow", name: "startWindow", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startClipboard", name: "startClipboard", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "retriableOpen", name: "retriableOpen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([$Int, funcType$1], [$error], false)}, {prop: "openMetadata", name: "openMetadata", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startTimestampSyncing", name: "startTimestampSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "startStatsSyncing", name: "startStatsSyncing", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [], false)}, {prop: "openScreen", name: "openScreen", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "startStream", name: "startStream", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$error], false)}, {prop: "renderFrame", name: "renderFrame", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([ptrType$11], [], false)}];
192821
193117
  ptrType$2.methods = [{prop: "CreateProcessInfo", name: "CreateProcessInfo", pkg: "", typ: $funcType([$String, $Int], [$error], false)}, {prop: "RemoveProcessInfo", name: "RemoveProcessInfo", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "WaitProcess", name: "WaitProcess", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "GetProcessInfo", name: "GetProcessInfo", pkg: "", typ: $funcType([$String], [ProcessInfo, $error], false)}, {prop: "ListScreenIDs", name: "ListScreenIDs", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "getUserProcessDirPath", name: "getUserProcessDirPath", pkg: "github.com/supraio/client-daemon/pkg/render", typ: $funcType([], [$String], false)}];
192822
- ptrType$4.methods = [{prop: "CollectFrame", name: "CollectFrame", pkg: "", typ: $funcType([], [ptrType$10, $error], false)}];
192823
- ptrType$10.methods = [{prop: "GetTimestmap", name: "GetTimestmap", pkg: "", typ: $funcType([], [$Uint64], false)}];
193118
+ ptrType$4.methods = [{prop: "CollectFrame", name: "CollectFrame", pkg: "", typ: $funcType([], [ptrType$11, $error], false)}];
193119
+ ptrType$11.methods = [{prop: "GetTimestmap", name: "GetTimestmap", pkg: "", typ: $funcType([], [$Uint64], false)}];
192824
193120
  X264FrameRenderer.init("github.com/supraio/client-daemon/pkg/render", [{prop: "screenBuffer", name: "screenBuffer", embedded: false, exported: false, typ: screen.Buffer, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "dec", name: "dec", embedded: false, exported: false, typ: ptrType$1, tag: ""}]);
192825
- ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "renderMutex", name: "renderMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "screenReconnecting", name: "screenReconnecting", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "frameCollector", name: "frameCollector", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "x264Renderer", name: "x264Renderer", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "healthchecker", name: "healthchecker", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
193121
+ ScreenWindow.init("github.com/supraio/client-daemon/pkg/render", [{prop: "processInfoManager", name: "processInfoManager", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "screenDriver", name: "screenDriver", embedded: false, exported: false, typ: netpacket.Driver, tag: ""}, {prop: "screenHost", name: "screenHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "metadataDriver", name: "metadataDriver", embedded: false, exported: false, typ: netstream.Driver, tag: ""}, {prop: "metadataHost", name: "metadataHost", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientID", name: "clientID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "clientSecret", name: "clientSecret", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "screenID", name: "screenID", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "secure", name: "secure", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "screenSize", name: "screenSize", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "renderMutex", name: "renderMutex", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "timeoutDuration", name: "timeoutDuration", embedded: false, exported: false, typ: time.Duration, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "onClose", name: "onClose", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "window", name: "window", embedded: false, exported: false, typ: screen.Window, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: screen.Screen, tag: ""}, {prop: "screenConn", name: "screenConn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "screenReconnecting", name: "screenReconnecting", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "metadataServer", name: "metadataServer", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "frameCollector", name: "frameCollector", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "x264Renderer", name: "x264Renderer", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "screenSender", name: "screenSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataSender", name: "metadataSender", embedded: false, exported: false, typ: message.Sender, tag: ""}, {prop: "metadataResponsiveSender", name: "metadataResponsiveSender", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "sizeHandler", name: "sizeHandler", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "keyHandler", name: "keyHandler", embedded: false, exported: false, typ: ptrType$8, tag: ""}, {prop: "mouseHandler", name: "mouseHandler", embedded: false, exported: false, typ: ptrType$9, tag: ""}, {prop: "healthchecker", name: "healthchecker", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "keyEventChan", name: "keyEventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "mouseEventChan", name: "mouseEventChan", embedded: false, exported: false, typ: chanType$1, tag: ""}, {prop: "sizeEventChan", name: "sizeEventChan", embedded: false, exported: false, typ: chanType$2, tag: ""}, {prop: "focusEventChan", name: "focusEventChan", embedded: false, exported: false, typ: chanType$3, tag: ""}, {prop: "winCloseChannel", name: "winCloseChannel", embedded: false, exported: false, typ: chanType$4, tag: ""}]);
192826
193122
  ProcessInfo.init("", [{prop: "ScreenID", name: "ScreenID", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Int, tag: ""}]);
192827
193123
  ProcessInfoManager.init("github.com/supraio/client-daemon/pkg/render", [{prop: "username", name: "username", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "processDir", name: "processDir", embedded: false, exported: false, typ: $String, tag: ""}]);
192828
193124
  FrameCollector.init("github.com/supraio/client-daemon/pkg/render", [{prop: "conn", name: "conn", embedded: false, exported: false, typ: netpacket.ReaderWriterCloser, tag: ""}, {prop: "stats", name: "stats", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "framesMap", name: "framesMap", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "lastFullFrameID", name: "lastFullFrameID", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "maxPacketSize", name: "maxPacketSize", embedded: false, exported: false, typ: $Int, tag: ""}]);
@@ -192837,36 +193133,33 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192837
193133
  $r = clientscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192838
193134
  $r = clipboard.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192839
193135
  $r = errs.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192840
- $r = helper.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192841
- $r = input.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192842
- $r = message.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192843
- $r = netclient.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192844
- $r = netpacket.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192845
- $r = netstream.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192846
- $r = stats.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192847
- $r = window.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192848
- $r = x264.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192849
- $r = nacldecoder.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192850
- $r = nacldriver.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192851
- $r = webcodecs.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192852
- $r = canvasdriver.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192853
- $r = webgldriver.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192854
- $r = screen.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192855
- $r = focus.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192856
- $r = key.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192857
- $r = lifecycle.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192858
- $r = mouse.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192859
- $r = size.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192860
- $r = image.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192861
- $r = io.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192862
- $r = ioutil.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192863
- $r = log.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192864
- $r = os.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192865
- $r = path.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192866
- $r = strings.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192867
- $r = sync.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192868
- $r = js.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192869
- $r = time.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193136
+ $r = input.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193137
+ $r = message.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193138
+ $r = netclient.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193139
+ $r = netpacket.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193140
+ $r = netstream.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193141
+ $r = stats.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193142
+ $r = window.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193143
+ $r = x264.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193144
+ $r = nacldriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193145
+ $r = canvasdriver.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193146
+ $r = webgldriver.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193147
+ $r = screen.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193148
+ $r = focus.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193149
+ $r = key.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193150
+ $r = lifecycle.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193151
+ $r = mouse.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193152
+ $r = size.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193153
+ $r = image.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193154
+ $r = io.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193155
+ $r = ioutil.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193156
+ $r = log.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193157
+ $r = os.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193158
+ $r = path.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193159
+ $r = strings.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193160
+ $r = sync.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193161
+ $r = js.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193162
+ $r = time.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192870
193163
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192871
193164
  };
192872
193165
  $pkg.$init = $init;