@supraio/client-daemon-js 0.0.0-mznacl.262 → 0.0.0-mznacl.267

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.
@@ -186627,466 +186627,6 @@ $packages["github.com/nuberu/webgl"] = (function() {
186627
186627
  $pkg.$init = $init;
186628
186628
  return $pkg;
186629
186629
  })();
186630
- $packages["golang.org/x/exp/shiny/driver/internal/dom"] = (function() {
186631
- 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;
186632
- focus = $packages["golang.org/x/mobile/event/focus"];
186633
- key = $packages["golang.org/x/mobile/event/key"];
186634
- mouse = $packages["golang.org/x/mobile/event/mouse"];
186635
- size = $packages["golang.org/x/mobile/event/size"];
186636
- geom = $packages["golang.org/x/mobile/geom"];
186637
- math = $packages["math"];
186638
- strings = $packages["strings"];
186639
- js = $packages["syscall/js"];
186640
- DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/internal/dom", true, function(eventChan_, releases_) {
186641
- this.$val = this;
186642
- if (arguments.length === 0) {
186643
- this.eventChan = $chanNil;
186644
- this.releases = sliceType$1.nil;
186645
- return;
186646
- }
186647
- this.eventChan = eventChan_;
186648
- this.releases = releases_;
186649
- });
186650
- sliceType = $sliceType($emptyInterface);
186651
- funcType = $funcType([], [], false);
186652
- sliceType$1 = $sliceType(funcType);
186653
- sliceType$2 = $sliceType($Int32);
186654
- chanType = $chanType($emptyInterface, false, false);
186655
- ptrType = $ptrType(DomEvents);
186656
- GetDocWidth = function() {
186657
- return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
186658
- };
186659
- $pkg.GetDocWidth = GetDocWidth;
186660
- GetDocHeight = function() {
186661
- return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
186662
- };
186663
- $pkg.GetDocHeight = GetDocHeight;
186664
- GetScreenWidth = function() {
186665
- return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
186666
- };
186667
- $pkg.GetScreenWidth = GetScreenWidth;
186668
- GetScreenHeight = function() {
186669
- return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
186670
- };
186671
- $pkg.GetScreenHeight = GetScreenHeight;
186672
- GetBrowserZoomRatio = function() {
186673
- var chromeZoom1, chromeZoom2, chromeZoom3, docElClientWidth, scrollerWidthInNoZoom, scrollerWidthInZoom1, scrollerWidthInZoom2, windowInnerWidth, windowOuterWidth;
186674
- windowInnerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Float();
186675
- windowOuterWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Float();
186676
- docElClientWidth = $clone($clone($clone($clone(js.Global(), js.Value).Get("document"), js.Value).Get("documentElement"), js.Value).Get("clientWidth"), js.Value).Float();
186677
- scrollerWidthInNoZoom = windowInnerWidth - docElClientWidth;
186678
- chromeZoom1 = (windowOuterWidth - scrollerWidthInNoZoom) / windowInnerWidth;
186679
- scrollerWidthInZoom1 = math.Round(scrollerWidthInNoZoom * chromeZoom1);
186680
- chromeZoom2 = (windowOuterWidth - scrollerWidthInZoom1) / windowInnerWidth;
186681
- scrollerWidthInZoom2 = math.Round(scrollerWidthInNoZoom * chromeZoom2);
186682
- chromeZoom3 = (windowOuterWidth - scrollerWidthInZoom2) / windowInnerWidth;
186683
- return chromeZoom3;
186684
- };
186685
- $pkg.GetBrowserZoomRatio = GetBrowserZoomRatio;
186686
- SetWindowWidth = function(newInnerWidth) {
186687
- var {_r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s, $r, $c} = $restore(this, {newInnerWidth});
186688
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186689
- innerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
186690
- outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
186691
- outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
186692
- newOuterWidth = newInnerWidth + ((outerWidth - innerWidth >> 0)) >> 0;
186693
- screenWidth = GetScreenWidth();
186694
- if (newOuterWidth > screenWidth) {
186695
- newOuterWidth = screenWidth;
186696
- }
186697
- _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; }
186698
- _r;
186699
- $s = -1; return;
186700
- /* */ } return; } var $f = {$blk: SetWindowWidth, $c: true, $r, _r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s};return $f;
186701
- };
186702
- $pkg.SetWindowWidth = SetWindowWidth;
186703
- SetWindowHeight = function(newInnerHeight) {
186704
- var {_r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s, $r, $c} = $restore(this, {newInnerHeight});
186705
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186706
- innerHeight = $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
186707
- outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
186708
- outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
186709
- newOuterHeight = newInnerHeight + ((outerHeight - innerHeight >> 0)) >> 0;
186710
- screenHeight = GetScreenHeight();
186711
- if (newOuterHeight > screenHeight) {
186712
- newOuterHeight = screenHeight;
186713
- }
186714
- _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; }
186715
- _r;
186716
- $s = -1; return;
186717
- /* */ } return; } var $f = {$blk: SetWindowHeight, $c: true, $r, _r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s};return $f;
186718
- };
186719
- $pkg.SetWindowHeight = SetWindowHeight;
186720
- GetOrientation = function() {
186721
- var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
186722
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
186723
- orientation = [orientation];
186724
- orientation[0] = 0;
186725
- $deferred.push([(function(orientation) { return function() {
186726
- if (!($interfaceIsEqual($recover(), $ifaceNil))) {
186727
- orientation[0] = 0;
186728
- }
186729
- }; })(orientation), []]);
186730
- orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
186731
- /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
186732
- /* */ $s = 2; continue;
186733
- /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
186734
- orientation[0] = 2;
186735
- $24r = orientation[0];
186736
- $s = 3; case 3: return $24r;
186737
- /* } */ case 2:
186738
- /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
186739
- /* */ $s = 5; continue;
186740
- /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
186741
- orientation[0] = 2;
186742
- $24r$1 = orientation[0];
186743
- $s = 6; case 6: return $24r$1;
186744
- /* } */ case 5:
186745
- orientation[0] = 0;
186746
- $24r$2 = orientation[0];
186747
- $s = 7; case 7: return $24r$2;
186748
- /* */ } 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; } }
186749
- };
186750
- $pkg.GetOrientation = GetOrientation;
186751
- NewDomEvents = function() {
186752
- return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
186753
- };
186754
- $pkg.NewDomEvents = NewDomEvents;
186755
- DomEvents.ptr.prototype.GetEventChan = function() {
186756
- var d;
186757
- d = this;
186758
- return d.eventChan;
186759
- };
186760
- DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
186761
- DomEvents.ptr.prototype.Release = function() {
186762
- var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
186763
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186764
- d = this;
186765
- _ref = d.releases;
186766
- _i = 0;
186767
- /* while (true) { */ case 1:
186768
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
186769
- release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
186770
- $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186771
- _i++;
186772
- $s = 1; continue;
186773
- case 2:
186774
- $s = -1; return;
186775
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
186776
- };
186777
- DomEvents.prototype.Release = function() { return this.$val.Release(); };
186778
- DomEvents.ptr.prototype.BindEvents = function() {
186779
- var {d, $s, $r, $c} = $restore(this, {});
186780
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186781
- d = this;
186782
- $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186783
- $go($methodVal(d, "emitSizeEvent"), []);
186784
- $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186785
- $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186786
- $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186787
- $s = -1; return;
186788
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
186789
- };
186790
- DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
186791
- DomEvents.ptr.prototype.bindSizeEvents = function() {
186792
- var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
186793
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186794
- d = [d];
186795
- onResize = [onResize];
186796
- d[0] = this;
186797
- onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
186798
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
186799
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186800
- $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
186801
- $s = -1; return $ifaceNil;
186802
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
186803
- }; })(d, onResize)), js.Func);
186804
- _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; }
186805
- _r;
186806
- d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
186807
- var {_r$1, $s, $r, $c} = $restore(this, {});
186808
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186809
- _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; }
186810
- _r$1;
186811
- $clone(onResize[0], js.Func).Release();
186812
- $s = -1; return;
186813
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
186814
- }; })(d, onResize));
186815
- $s = -1; return;
186816
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
186817
- };
186818
- DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
186819
- DomEvents.ptr.prototype.emitSizeEvent = function() {
186820
- var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
186821
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186822
- d = this;
186823
- _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
186824
- orientation = _r;
186825
- pixelsPerPt = 1;
186826
- width = GetDocWidth();
186827
- height = GetDocHeight();
186828
- $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; }
186829
- $s = -1; return;
186830
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
186831
- };
186832
- DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
186833
- DomEvents.ptr.prototype.bindMouseEvents = function() {
186834
- var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
186835
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186836
- d = [d];
186837
- onClick = [onClick];
186838
- onMove = [onMove];
186839
- onWheel = [onWheel];
186840
- d[0] = this;
186841
- onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186842
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186843
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186844
- _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; }
186845
- _r;
186846
- $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; }
186847
- $s = -1; return $ifaceNil;
186848
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
186849
- }; })(d, onClick, onMove, onWheel)), js.Func);
186850
- _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; }
186851
- _r;
186852
- onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186853
- var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186854
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186855
- _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; }
186856
- _r$1;
186857
- $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; }
186858
- $s = -1; return $ifaceNil;
186859
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
186860
- }; })(d, onClick, onMove, onWheel)), js.Func);
186861
- _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; }
186862
- _r$1;
186863
- _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; }
186864
- _r$2;
186865
- onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
186866
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186867
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186868
- $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; }
186869
- $s = -1; return $ifaceNil;
186870
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
186871
- }; })(d, onClick, onMove, onWheel)), js.Func);
186872
- _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; }
186873
- _r$3;
186874
- d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
186875
- var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
186876
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186877
- _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; }
186878
- _r$4;
186879
- _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; }
186880
- _r$5;
186881
- _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; }
186882
- _r$6;
186883
- _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; }
186884
- _r$7;
186885
- $clone(onMove[0], js.Func).Release();
186886
- $clone(onClick[0], js.Func).Release();
186887
- $clone(onWheel[0], js.Func).Release();
186888
- $s = -1; return;
186889
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
186890
- }; })(d, onClick, onMove, onWheel));
186891
- $s = -1; return;
186892
- /* */ } 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;
186893
- };
186894
- DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
186895
- getMouseDirection = function(ev) {
186896
- var dir, ev;
186897
- dir = 0;
186898
- dir = 0;
186899
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
186900
- dir = 1;
186901
- }
186902
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
186903
- dir = 2;
186904
- }
186905
- return dir;
186906
- };
186907
- getWheelButton = function(ev) {
186908
- var deltaX, deltaY, ev;
186909
- deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
186910
- deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
186911
- if (deltaY > 0) {
186912
- return -2;
186913
- }
186914
- if (deltaY < 0) {
186915
- return -1;
186916
- }
186917
- if (deltaX > 0) {
186918
- return -4;
186919
- }
186920
- if (deltaX < 0) {
186921
- return -3;
186922
- }
186923
- return 0;
186924
- };
186925
- getMouseButton = function(ev) {
186926
- var _1, ev;
186927
- _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
186928
- if (_1 === (0)) {
186929
- return 1;
186930
- } else if (_1 === (1)) {
186931
- return 2;
186932
- } else if (_1 === (2)) {
186933
- return 3;
186934
- } else if (_1 === (3)) {
186935
- return 8;
186936
- } else if (_1 === (4)) {
186937
- return 9;
186938
- } else {
186939
- return 0;
186940
- }
186941
- };
186942
- getEventModifiers = function(ev) {
186943
- var ev, mod;
186944
- mod = 0;
186945
- if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
186946
- mod = (mod | (4)) >>> 0;
186947
- }
186948
- if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
186949
- mod = (mod | (2)) >>> 0;
186950
- }
186951
- if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
186952
- mod = (mod | (1)) >>> 0;
186953
- }
186954
- if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
186955
- mod = (mod | (8)) >>> 0;
186956
- }
186957
- return mod;
186958
- };
186959
- DomEvents.ptr.prototype.bindFocusEvents = function() {
186960
- var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
186961
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186962
- d = [d];
186963
- onFocus = [onFocus];
186964
- d[0] = this;
186965
- onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
186966
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
186967
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186968
- $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; }
186969
- $s = -1; return $ifaceNil;
186970
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
186971
- }; })(d, onFocus)), js.Func);
186972
- _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; }
186973
- _r;
186974
- _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; }
186975
- _r$1;
186976
- d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
186977
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
186978
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
186979
- _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; }
186980
- _r$2;
186981
- _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; }
186982
- _r$3;
186983
- $clone(onFocus[0], js.Func).Release();
186984
- $s = -1; return;
186985
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
186986
- }; })(d, onFocus));
186987
- $s = -1; return;
186988
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
186989
- };
186990
- DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
186991
- isFocusIn = function(ev) {
186992
- var ev;
186993
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
186994
- return true;
186995
- }
186996
- return false;
186997
- };
186998
- DomEvents.ptr.prototype.bindKeyEvents = function() {
186999
- var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
187000
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
187001
- d = [d];
187002
- onKey = [onKey];
187003
- d[0] = this;
187004
- onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
187005
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
187006
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
187007
- _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; }
187008
- _r;
187009
- $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; }
187010
- $s = -1; return $ifaceNil;
187011
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
187012
- }; })(d, onKey)), js.Func);
187013
- _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; }
187014
- _r;
187015
- _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; }
187016
- _r$1;
187017
- d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
187018
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
187019
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
187020
- _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; }
187021
- _r$2;
187022
- _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; }
187023
- _r$3;
187024
- $clone(onKey[0], js.Func).Release();
187025
- $s = -1; return;
187026
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
187027
- }; })(d, onKey));
187028
- $s = -1; return;
187029
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
187030
- };
187031
- DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
187032
- getKeyRune = function(ev) {
187033
- var ev, key$1;
187034
- key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
187035
- if (key$1.$length === 1) {
187036
- return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
187037
- }
187038
- return -1;
187039
- };
187040
- getKeyDirection = function(ev) {
187041
- var dir, ev;
187042
- dir = 0;
187043
- dir = 0;
187044
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
187045
- dir = 1;
187046
- }
187047
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
187048
- dir = 2;
187049
- }
187050
- return dir;
187051
- };
187052
- getKeyCode = function(ev) {
187053
- var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
187054
- domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
187055
- _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
187056
- code = _tuple[0];
187057
- exists = _tuple[1];
187058
- if (exists) {
187059
- return code;
187060
- }
187061
- domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
187062
- _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
187063
- code$1 = _tuple$1[0];
187064
- exists$1 = _tuple$1[1];
187065
- if (exists$1) {
187066
- return code$1;
187067
- }
187068
- return 0;
187069
- };
187070
- 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)}];
187071
- 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: ""}]);
187072
- $init = function() {
187073
- $pkg.$init = function() {};
187074
- /* */ 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:
187075
- $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187076
- $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187077
- $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187078
- $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187079
- $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187080
- $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187081
- $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187082
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
187083
- 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 }]);
187084
- keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
187085
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
187086
- };
187087
- $pkg.$init = $init;
187088
- return $pkg;
187089
- })();
187090
186630
  $packages["golang.org/x/image/math/f64"] = (function() {
187091
186631
  var $pkg = {}, $init, Aff3;
187092
186632
  Aff3 = $pkg.Aff3 = $newType(48, $kindArray, "f64.Aff3", true, "golang.org/x/image/math/f64", true, null);
@@ -189047,158 +188587,618 @@ $packages["image/draw"] = (function() {
189047
188587
  _i$2++;
189048
188588
  }
189049
188589
  }
189050
- y = y + (1) >> 0;
189051
- $s = 10; continue;
189052
- case 11:
188590
+ y = y + (1) >> 0;
188591
+ $s = 10; continue;
188592
+ case 11:
188593
+ $s = -1; return;
188594
+ /* */ } return; } var $f = {$blk: drawPaletted, $c: true, $r, _i, _i$1, _i$2, _index, _index$1, _index$10, _index$11, _index$12, _index$13, _index$14, _index$15, _index$2, _index$3, _index$4, _index$5, _index$6, _index$7, _index$8, _index$9, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, a, b, bestIndex, bestSum, col, dst, ea, eb, eg, er, floydSteinberg$1, g, i, i$1, index, ok, out, p, p$1, palette, pix, pxRGBA, quantErrorCurr, quantErrorNext, r, r$1, sa, sb, sg, sp, sr, src, src0, src0$1, src0$2, stride, sum, x$1, x$2, x$3, x$4, x$5, x$6, y, $s};return $f;
188595
+ };
188596
+ Op.methods = [{prop: "Draw", name: "Draw", pkg: "", typ: $funcType([Image, image.Rectangle, image.Image, image.Point], [], false)}];
188597
+ Image.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}]);
188598
+ RGBA64Image.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "RGBA64At", name: "RGBA64At", pkg: "", typ: $funcType([$Int, $Int], [color.RGBA64], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetRGBA64", name: "SetRGBA64", pkg: "", typ: $funcType([$Int, $Int, color.RGBA64], [], false)}]);
188599
+ $init = function() {
188600
+ $pkg.$init = function() {};
188601
+ /* */ 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:
188602
+ $r = image.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188603
+ $r = color.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188604
+ $r = imageutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188605
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
188606
+ };
188607
+ $pkg.$init = $init;
188608
+ return $pkg;
188609
+ })();
188610
+ $packages["golang.org/x/exp/shiny/screen"] = (function() {
188611
+ var $pkg = {}, $init, f64, image, color, draw, utf8, Screen, Buffer, Texture, Window, PublishResult, NewWindowOptions, DrawOptions, ptrType, ptrType$1, ptrType$2, ptrType$3, sanitizeUTF8;
188612
+ f64 = $packages["golang.org/x/image/math/f64"];
188613
+ image = $packages["image"];
188614
+ color = $packages["image/color"];
188615
+ draw = $packages["image/draw"];
188616
+ utf8 = $packages["unicode/utf8"];
188617
+ Screen = $pkg.Screen = $newType(8, $kindInterface, "screen.Screen", true, "golang.org/x/exp/shiny/screen", true, null);
188618
+ Buffer = $pkg.Buffer = $newType(8, $kindInterface, "screen.Buffer", true, "golang.org/x/exp/shiny/screen", true, null);
188619
+ Texture = $pkg.Texture = $newType(8, $kindInterface, "screen.Texture", true, "golang.org/x/exp/shiny/screen", true, null);
188620
+ Window = $pkg.Window = $newType(8, $kindInterface, "screen.Window", true, "golang.org/x/exp/shiny/screen", true, null);
188621
+ PublishResult = $pkg.PublishResult = $newType(0, $kindStruct, "screen.PublishResult", true, "golang.org/x/exp/shiny/screen", true, function(BackBufferPreserved_) {
188622
+ this.$val = this;
188623
+ if (arguments.length === 0) {
188624
+ this.BackBufferPreserved = false;
188625
+ return;
188626
+ }
188627
+ this.BackBufferPreserved = BackBufferPreserved_;
188628
+ });
188629
+ NewWindowOptions = $pkg.NewWindowOptions = $newType(0, $kindStruct, "screen.NewWindowOptions", true, "golang.org/x/exp/shiny/screen", true, function(Width_, Height_, Title_) {
188630
+ this.$val = this;
188631
+ if (arguments.length === 0) {
188632
+ this.Width = 0;
188633
+ this.Height = 0;
188634
+ this.Title = "";
188635
+ return;
188636
+ }
188637
+ this.Width = Width_;
188638
+ this.Height = Height_;
188639
+ this.Title = Title_;
188640
+ });
188641
+ DrawOptions = $pkg.DrawOptions = $newType(0, $kindStruct, "screen.DrawOptions", true, "golang.org/x/exp/shiny/screen", true, function() {
188642
+ this.$val = this;
188643
+ if (arguments.length === 0) {
188644
+ return;
188645
+ }
188646
+ });
188647
+ ptrType = $ptrType(NewWindowOptions);
188648
+ ptrType$1 = $ptrType(image.RGBA);
188649
+ ptrType$2 = $ptrType(image.YCbCr);
188650
+ ptrType$3 = $ptrType(DrawOptions);
188651
+ NewWindowOptions.ptr.prototype.GetTitle = function() {
188652
+ var o;
188653
+ o = this;
188654
+ if (o === ptrType.nil) {
188655
+ return "";
188656
+ }
188657
+ return sanitizeUTF8(o.Title, 4096);
188658
+ };
188659
+ NewWindowOptions.prototype.GetTitle = function() { return this.$val.GetTitle(); };
188660
+ sanitizeUTF8 = function(s, n) {
188661
+ var _tuple, i, n, n$1, r, s;
188662
+ if (n < s.length) {
188663
+ s = $substring(s, 0, n);
188664
+ }
188665
+ i = 0;
188666
+ while (true) {
188667
+ if (!(i < s.length)) { break; }
188668
+ _tuple = utf8.DecodeRuneInString($substring(s, i));
188669
+ r = _tuple[0];
188670
+ n$1 = _tuple[1];
188671
+ if ((r === 0) || ((r === 65533) && (n$1 === 1))) {
188672
+ break;
188673
+ }
188674
+ i = i + (n$1) >> 0;
188675
+ }
188676
+ return $substring(s, 0, i);
188677
+ };
188678
+ ptrType.methods = [{prop: "GetTitle", name: "GetTitle", pkg: "", typ: $funcType([], [$String], false)}];
188679
+ Screen.init([{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType], [Window, $error], false)}]);
188680
+ Buffer.init([{prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$2], false)}]);
188681
+ Texture.init([{prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}]);
188682
+ Window.init([{prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [PublishResult], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}]);
188683
+ PublishResult.init("", [{prop: "BackBufferPreserved", name: "BackBufferPreserved", embedded: false, exported: true, typ: $Bool, tag: ""}]);
188684
+ NewWindowOptions.init("", [{prop: "Width", name: "Width", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Height", name: "Height", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Title", name: "Title", embedded: false, exported: true, typ: $String, tag: ""}]);
188685
+ DrawOptions.init("", []);
188686
+ $init = function() {
188687
+ $pkg.$init = function() {};
188688
+ /* */ 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:
188689
+ $r = f64.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188690
+ $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188691
+ $r = color.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188692
+ $r = draw.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188693
+ $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188694
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
188695
+ };
188696
+ $pkg.$init = $init;
188697
+ return $pkg;
188698
+ })();
188699
+ $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
188700
+ var $pkg = {}, $init, screen, image, stub, ptrType, Stub;
188701
+ screen = $packages["golang.org/x/exp/shiny/screen"];
188702
+ image = $packages["image"];
188703
+ stub = $pkg.stub = $newType(0, $kindStruct, "errscreen.stub", true, "golang.org/x/exp/shiny/driver/internal/errscreen", false, function(err_) {
188704
+ this.$val = this;
188705
+ if (arguments.length === 0) {
188706
+ this.err = $ifaceNil;
188707
+ return;
188708
+ }
188709
+ this.err = err_;
188710
+ });
188711
+ ptrType = $ptrType(screen.NewWindowOptions);
188712
+ Stub = function(err) {
188713
+ var err, x;
188714
+ return (x = new stub.ptr(err), new x.constructor.elem(x));
188715
+ };
188716
+ $pkg.Stub = Stub;
188717
+ stub.ptr.prototype.NewBuffer = function(size) {
188718
+ var s, size;
188719
+ s = this;
188720
+ return [$ifaceNil, s.err];
188721
+ };
188722
+ stub.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
188723
+ stub.ptr.prototype.NewTexture = function(size) {
188724
+ var s, size;
188725
+ s = this;
188726
+ return [$ifaceNil, s.err];
188727
+ };
188728
+ stub.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
188729
+ stub.ptr.prototype.NewWindow = function(opts) {
188730
+ var opts, s;
188731
+ s = this;
188732
+ return [$ifaceNil, s.err];
188733
+ };
188734
+ stub.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
188735
+ stub.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], [screen.Window, $error], false)}];
188736
+ stub.init("golang.org/x/exp/shiny/driver/internal/errscreen", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
188737
+ $init = function() {
188738
+ $pkg.$init = function() {};
188739
+ /* */ 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:
188740
+ $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188741
+ $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188742
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
188743
+ };
188744
+ $pkg.$init = $init;
188745
+ return $pkg;
188746
+ })();
188747
+ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
188748
+ 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;
188749
+ focus = $packages["golang.org/x/mobile/event/focus"];
188750
+ key = $packages["golang.org/x/mobile/event/key"];
188751
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
188752
+ size = $packages["golang.org/x/mobile/event/size"];
188753
+ geom = $packages["golang.org/x/mobile/geom"];
188754
+ math = $packages["math"];
188755
+ strings = $packages["strings"];
188756
+ js = $packages["syscall/js"];
188757
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/util/dom", true, function(eventChan_, releases_) {
188758
+ this.$val = this;
188759
+ if (arguments.length === 0) {
188760
+ this.eventChan = $chanNil;
188761
+ this.releases = sliceType$1.nil;
188762
+ return;
188763
+ }
188764
+ this.eventChan = eventChan_;
188765
+ this.releases = releases_;
188766
+ });
188767
+ sliceType = $sliceType($emptyInterface);
188768
+ funcType = $funcType([], [], false);
188769
+ sliceType$1 = $sliceType(funcType);
188770
+ sliceType$2 = $sliceType($Int32);
188771
+ chanType = $chanType($emptyInterface, false, false);
188772
+ ptrType = $ptrType(DomEvents);
188773
+ GetDocWidth = function() {
188774
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
188775
+ };
188776
+ $pkg.GetDocWidth = GetDocWidth;
188777
+ GetDocHeight = function() {
188778
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
188779
+ };
188780
+ $pkg.GetDocHeight = GetDocHeight;
188781
+ GetScreenWidth = function() {
188782
+ return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("width"), js.Value).Int();
188783
+ };
188784
+ $pkg.GetScreenWidth = GetScreenWidth;
188785
+ GetScreenHeight = function() {
188786
+ return $clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("height"), js.Value).Int();
188787
+ };
188788
+ $pkg.GetScreenHeight = GetScreenHeight;
188789
+ GetBrowserZoomRatio = function() {
188790
+ var chromeZoom1, chromeZoom2, chromeZoom3, docElClientWidth, scrollerWidthInNoZoom, scrollerWidthInZoom1, scrollerWidthInZoom2, windowInnerWidth, windowOuterWidth;
188791
+ windowInnerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Float();
188792
+ windowOuterWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Float();
188793
+ docElClientWidth = $clone($clone($clone($clone(js.Global(), js.Value).Get("document"), js.Value).Get("documentElement"), js.Value).Get("clientWidth"), js.Value).Float();
188794
+ scrollerWidthInNoZoom = windowInnerWidth - docElClientWidth;
188795
+ chromeZoom1 = (windowOuterWidth - scrollerWidthInNoZoom) / windowInnerWidth;
188796
+ scrollerWidthInZoom1 = math.Round(scrollerWidthInNoZoom * chromeZoom1);
188797
+ chromeZoom2 = (windowOuterWidth - scrollerWidthInZoom1) / windowInnerWidth;
188798
+ scrollerWidthInZoom2 = math.Round(scrollerWidthInNoZoom * chromeZoom2);
188799
+ chromeZoom3 = (windowOuterWidth - scrollerWidthInZoom2) / windowInnerWidth;
188800
+ return chromeZoom3;
188801
+ };
188802
+ $pkg.GetBrowserZoomRatio = GetBrowserZoomRatio;
188803
+ SetWindowWidth = function(newInnerWidth) {
188804
+ var {_r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s, $r, $c} = $restore(this, {newInnerWidth});
188805
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188806
+ innerWidth = $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
188807
+ outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
188808
+ outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
188809
+ newOuterWidth = newInnerWidth + ((outerWidth - innerWidth >> 0)) >> 0;
188810
+ screenWidth = GetScreenWidth();
188811
+ if (newOuterWidth > screenWidth) {
188812
+ newOuterWidth = screenWidth;
188813
+ }
188814
+ _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; }
188815
+ _r;
188816
+ $s = -1; return;
188817
+ /* */ } return; } var $f = {$blk: SetWindowWidth, $c: true, $r, _r, innerWidth, newInnerWidth, newOuterWidth, outerHeight, outerWidth, screenWidth, $s};return $f;
188818
+ };
188819
+ $pkg.SetWindowWidth = SetWindowWidth;
188820
+ SetWindowHeight = function(newInnerHeight) {
188821
+ var {_r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s, $r, $c} = $restore(this, {newInnerHeight});
188822
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188823
+ innerHeight = $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
188824
+ outerHeight = $clone($clone(js.Global(), js.Value).Get("outerHeight"), js.Value).Int();
188825
+ outerWidth = $clone($clone(js.Global(), js.Value).Get("outerWidth"), js.Value).Int();
188826
+ newOuterHeight = newInnerHeight + ((outerHeight - innerHeight >> 0)) >> 0;
188827
+ screenHeight = GetScreenHeight();
188828
+ if (newOuterHeight > screenHeight) {
188829
+ newOuterHeight = screenHeight;
188830
+ }
188831
+ _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; }
188832
+ _r;
188833
+ $s = -1; return;
188834
+ /* */ } return; } var $f = {$blk: SetWindowHeight, $c: true, $r, _r, innerHeight, newInnerHeight, newOuterHeight, outerHeight, outerWidth, screenHeight, $s};return $f;
188835
+ };
188836
+ $pkg.SetWindowHeight = SetWindowHeight;
188837
+ GetOrientation = function() {
188838
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
188839
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
188840
+ orientation = [orientation];
188841
+ orientation[0] = 0;
188842
+ $deferred.push([(function(orientation) { return function() {
188843
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
188844
+ orientation[0] = 0;
188845
+ }
188846
+ }; })(orientation), []]);
188847
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
188848
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
188849
+ /* */ $s = 2; continue;
188850
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
188851
+ orientation[0] = 2;
188852
+ $24r = orientation[0];
188853
+ $s = 3; case 3: return $24r;
188854
+ /* } */ case 2:
188855
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
188856
+ /* */ $s = 5; continue;
188857
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
188858
+ orientation[0] = 2;
188859
+ $24r$1 = orientation[0];
188860
+ $s = 6; case 6: return $24r$1;
188861
+ /* } */ case 5:
188862
+ orientation[0] = 0;
188863
+ $24r$2 = orientation[0];
188864
+ $s = 7; case 7: return $24r$2;
188865
+ /* */ } 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; } }
188866
+ };
188867
+ $pkg.GetOrientation = GetOrientation;
188868
+ NewDomEvents = function() {
188869
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
188870
+ };
188871
+ $pkg.NewDomEvents = NewDomEvents;
188872
+ DomEvents.ptr.prototype.GetEventChan = function() {
188873
+ var d;
188874
+ d = this;
188875
+ return d.eventChan;
188876
+ };
188877
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
188878
+ DomEvents.ptr.prototype.Release = function() {
188879
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
188880
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188881
+ d = this;
188882
+ _ref = d.releases;
188883
+ _i = 0;
188884
+ /* while (true) { */ case 1:
188885
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
188886
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
188887
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188888
+ _i++;
188889
+ $s = 1; continue;
188890
+ case 2:
189053
188891
  $s = -1; return;
189054
- /* */ } return; } var $f = {$blk: drawPaletted, $c: true, $r, _i, _i$1, _i$2, _index, _index$1, _index$10, _index$11, _index$12, _index$13, _index$14, _index$15, _index$2, _index$3, _index$4, _index$5, _index$6, _index$7, _index$8, _index$9, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _ref, _ref$1, _ref$2, _ref$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, a, b, bestIndex, bestSum, col, dst, ea, eb, eg, er, floydSteinberg$1, g, i, i$1, index, ok, out, p, p$1, palette, pix, pxRGBA, quantErrorCurr, quantErrorNext, r, r$1, sa, sb, sg, sp, sr, src, src0, src0$1, src0$2, stride, sum, x$1, x$2, x$3, x$4, x$5, x$6, y, $s};return $f;
188892
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
189055
188893
  };
189056
- Op.methods = [{prop: "Draw", name: "Draw", pkg: "", typ: $funcType([Image, image.Rectangle, image.Image, image.Point], [], false)}];
189057
- Image.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}]);
189058
- RGBA64Image.init([{prop: "At", name: "At", pkg: "", typ: $funcType([$Int, $Int], [color.Color], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "ColorModel", name: "ColorModel", pkg: "", typ: $funcType([], [color.Model], false)}, {prop: "RGBA64At", name: "RGBA64At", pkg: "", typ: $funcType([$Int, $Int], [color.RGBA64], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$Int, $Int, color.Color], [], false)}, {prop: "SetRGBA64", name: "SetRGBA64", pkg: "", typ: $funcType([$Int, $Int, color.RGBA64], [], false)}]);
189059
- $init = function() {
189060
- $pkg.$init = function() {};
189061
- /* */ 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:
189062
- $r = image.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189063
- $r = color.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189064
- $r = imageutil.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189065
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
188894
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
188895
+ DomEvents.ptr.prototype.BindEvents = function() {
188896
+ var {d, $s, $r, $c} = $restore(this, {});
188897
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188898
+ d = this;
188899
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188900
+ $go($methodVal(d, "emitSizeEvent"), []);
188901
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188902
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188903
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188904
+ $s = -1; return;
188905
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
189066
188906
  };
189067
- $pkg.$init = $init;
189068
- return $pkg;
189069
- })();
189070
- $packages["golang.org/x/exp/shiny/screen"] = (function() {
189071
- var $pkg = {}, $init, f64, image, color, draw, utf8, Screen, Buffer, Texture, Window, PublishResult, NewWindowOptions, DrawOptions, ptrType, ptrType$1, ptrType$2, ptrType$3, sanitizeUTF8;
189072
- f64 = $packages["golang.org/x/image/math/f64"];
189073
- image = $packages["image"];
189074
- color = $packages["image/color"];
189075
- draw = $packages["image/draw"];
189076
- utf8 = $packages["unicode/utf8"];
189077
- Screen = $pkg.Screen = $newType(8, $kindInterface, "screen.Screen", true, "golang.org/x/exp/shiny/screen", true, null);
189078
- Buffer = $pkg.Buffer = $newType(8, $kindInterface, "screen.Buffer", true, "golang.org/x/exp/shiny/screen", true, null);
189079
- Texture = $pkg.Texture = $newType(8, $kindInterface, "screen.Texture", true, "golang.org/x/exp/shiny/screen", true, null);
189080
- Window = $pkg.Window = $newType(8, $kindInterface, "screen.Window", true, "golang.org/x/exp/shiny/screen", true, null);
189081
- PublishResult = $pkg.PublishResult = $newType(0, $kindStruct, "screen.PublishResult", true, "golang.org/x/exp/shiny/screen", true, function(BackBufferPreserved_) {
189082
- this.$val = this;
189083
- if (arguments.length === 0) {
189084
- this.BackBufferPreserved = false;
189085
- return;
188907
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
188908
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
188909
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
188910
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188911
+ d = [d];
188912
+ onResize = [onResize];
188913
+ d[0] = this;
188914
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
188915
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
188916
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188917
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
188918
+ $s = -1; return $ifaceNil;
188919
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
188920
+ }; })(d, onResize)), js.Func);
188921
+ _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; }
188922
+ _r;
188923
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
188924
+ var {_r$1, $s, $r, $c} = $restore(this, {});
188925
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188926
+ _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; }
188927
+ _r$1;
188928
+ $clone(onResize[0], js.Func).Release();
188929
+ $s = -1; return;
188930
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
188931
+ }; })(d, onResize));
188932
+ $s = -1; return;
188933
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
188934
+ };
188935
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
188936
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
188937
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
188938
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188939
+ d = this;
188940
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
188941
+ orientation = _r;
188942
+ pixelsPerPt = 1;
188943
+ width = GetDocWidth();
188944
+ height = GetDocHeight();
188945
+ $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; }
188946
+ $s = -1; return;
188947
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
188948
+ };
188949
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
188950
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
188951
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
188952
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188953
+ d = [d];
188954
+ onClick = [onClick];
188955
+ onMove = [onMove];
188956
+ onWheel = [onWheel];
188957
+ d[0] = this;
188958
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188959
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188960
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188961
+ _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; }
188962
+ _r;
188963
+ $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; }
188964
+ $s = -1; return $ifaceNil;
188965
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
188966
+ }; })(d, onClick, onMove, onWheel)), js.Func);
188967
+ _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; }
188968
+ _r;
188969
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188970
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188971
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188972
+ _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; }
188973
+ _r$1;
188974
+ $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; }
188975
+ $s = -1; return $ifaceNil;
188976
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
188977
+ }; })(d, onClick, onMove, onWheel)), js.Func);
188978
+ _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; }
188979
+ _r$1;
188980
+ _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; }
188981
+ _r$2;
188982
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
188983
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
188984
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188985
+ $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; }
188986
+ $s = -1; return $ifaceNil;
188987
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
188988
+ }; })(d, onClick, onMove, onWheel)), js.Func);
188989
+ _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; }
188990
+ _r$3;
188991
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
188992
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
188993
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
188994
+ _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; }
188995
+ _r$4;
188996
+ _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; }
188997
+ _r$5;
188998
+ _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; }
188999
+ _r$6;
189000
+ _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; }
189001
+ _r$7;
189002
+ $clone(onMove[0], js.Func).Release();
189003
+ $clone(onClick[0], js.Func).Release();
189004
+ $clone(onWheel[0], js.Func).Release();
189005
+ $s = -1; return;
189006
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
189007
+ }; })(d, onClick, onMove, onWheel));
189008
+ $s = -1; return;
189009
+ /* */ } 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;
189010
+ };
189011
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
189012
+ getMouseDirection = function(ev) {
189013
+ var dir, ev;
189014
+ dir = 0;
189015
+ dir = 0;
189016
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
189017
+ dir = 1;
189086
189018
  }
189087
- this.BackBufferPreserved = BackBufferPreserved_;
189088
- });
189089
- NewWindowOptions = $pkg.NewWindowOptions = $newType(0, $kindStruct, "screen.NewWindowOptions", true, "golang.org/x/exp/shiny/screen", true, function(Width_, Height_, Title_) {
189090
- this.$val = this;
189091
- if (arguments.length === 0) {
189092
- this.Width = 0;
189093
- this.Height = 0;
189094
- this.Title = "";
189095
- return;
189019
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
189020
+ dir = 2;
189096
189021
  }
189097
- this.Width = Width_;
189098
- this.Height = Height_;
189099
- this.Title = Title_;
189100
- });
189101
- DrawOptions = $pkg.DrawOptions = $newType(0, $kindStruct, "screen.DrawOptions", true, "golang.org/x/exp/shiny/screen", true, function() {
189102
- this.$val = this;
189103
- if (arguments.length === 0) {
189104
- return;
189022
+ return dir;
189023
+ };
189024
+ getWheelButton = function(ev) {
189025
+ var deltaX, deltaY, ev;
189026
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
189027
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
189028
+ if (deltaY > 0) {
189029
+ return -2;
189105
189030
  }
189106
- });
189107
- ptrType = $ptrType(NewWindowOptions);
189108
- ptrType$1 = $ptrType(image.RGBA);
189109
- ptrType$2 = $ptrType(image.YCbCr);
189110
- ptrType$3 = $ptrType(DrawOptions);
189111
- NewWindowOptions.ptr.prototype.GetTitle = function() {
189112
- var o;
189113
- o = this;
189114
- if (o === ptrType.nil) {
189115
- return "";
189031
+ if (deltaY < 0) {
189032
+ return -1;
189116
189033
  }
189117
- return sanitizeUTF8(o.Title, 4096);
189034
+ if (deltaX > 0) {
189035
+ return -4;
189036
+ }
189037
+ if (deltaX < 0) {
189038
+ return -3;
189039
+ }
189040
+ return 0;
189118
189041
  };
189119
- NewWindowOptions.prototype.GetTitle = function() { return this.$val.GetTitle(); };
189120
- sanitizeUTF8 = function(s, n) {
189121
- var _tuple, i, n, n$1, r, s;
189122
- if (n < s.length) {
189123
- s = $substring(s, 0, n);
189042
+ getMouseButton = function(ev) {
189043
+ var _1, ev;
189044
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
189045
+ if (_1 === (0)) {
189046
+ return 1;
189047
+ } else if (_1 === (1)) {
189048
+ return 2;
189049
+ } else if (_1 === (2)) {
189050
+ return 3;
189051
+ } else if (_1 === (3)) {
189052
+ return 8;
189053
+ } else if (_1 === (4)) {
189054
+ return 9;
189055
+ } else {
189056
+ return 0;
189124
189057
  }
189125
- i = 0;
189126
- while (true) {
189127
- if (!(i < s.length)) { break; }
189128
- _tuple = utf8.DecodeRuneInString($substring(s, i));
189129
- r = _tuple[0];
189130
- n$1 = _tuple[1];
189131
- if ((r === 0) || ((r === 65533) && (n$1 === 1))) {
189132
- break;
189133
- }
189134
- i = i + (n$1) >> 0;
189058
+ };
189059
+ getEventModifiers = function(ev) {
189060
+ var ev, mod;
189061
+ mod = 0;
189062
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
189063
+ mod = (mod | (4)) >>> 0;
189135
189064
  }
189136
- return $substring(s, 0, i);
189065
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
189066
+ mod = (mod | (2)) >>> 0;
189067
+ }
189068
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
189069
+ mod = (mod | (1)) >>> 0;
189070
+ }
189071
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
189072
+ mod = (mod | (8)) >>> 0;
189073
+ }
189074
+ return mod;
189137
189075
  };
189138
- ptrType.methods = [{prop: "GetTitle", name: "GetTitle", pkg: "", typ: $funcType([], [$String], false)}];
189139
- Screen.init([{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType], [Window, $error], false)}]);
189140
- Buffer.init([{prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$2], false)}]);
189141
- Texture.init([{prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}]);
189142
- Window.init([{prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [PublishResult], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, Texture, image.Rectangle, draw.Op, ptrType$3], [], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, Buffer, image.Rectangle], [], false)}]);
189143
- PublishResult.init("", [{prop: "BackBufferPreserved", name: "BackBufferPreserved", embedded: false, exported: true, typ: $Bool, tag: ""}]);
189144
- NewWindowOptions.init("", [{prop: "Width", name: "Width", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Height", name: "Height", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Title", name: "Title", embedded: false, exported: true, typ: $String, tag: ""}]);
189145
- DrawOptions.init("", []);
189146
- $init = function() {
189147
- $pkg.$init = function() {};
189148
- /* */ 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:
189149
- $r = f64.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189150
- $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189151
- $r = color.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189152
- $r = draw.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189153
- $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189154
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189076
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
189077
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
189078
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189079
+ d = [d];
189080
+ onFocus = [onFocus];
189081
+ d[0] = this;
189082
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
189083
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
189084
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189085
+ $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; }
189086
+ $s = -1; return $ifaceNil;
189087
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
189088
+ }; })(d, onFocus)), js.Func);
189089
+ _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; }
189090
+ _r;
189091
+ _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; }
189092
+ _r$1;
189093
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
189094
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
189095
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189096
+ _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; }
189097
+ _r$2;
189098
+ _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; }
189099
+ _r$3;
189100
+ $clone(onFocus[0], js.Func).Release();
189101
+ $s = -1; return;
189102
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
189103
+ }; })(d, onFocus));
189104
+ $s = -1; return;
189105
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
189155
189106
  };
189156
- $pkg.$init = $init;
189157
- return $pkg;
189158
- })();
189159
- $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
189160
- var $pkg = {}, $init, screen, image, stub, ptrType, Stub;
189161
- screen = $packages["golang.org/x/exp/shiny/screen"];
189162
- image = $packages["image"];
189163
- stub = $pkg.stub = $newType(0, $kindStruct, "errscreen.stub", true, "golang.org/x/exp/shiny/driver/internal/errscreen", false, function(err_) {
189164
- this.$val = this;
189165
- if (arguments.length === 0) {
189166
- this.err = $ifaceNil;
189167
- return;
189107
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
189108
+ isFocusIn = function(ev) {
189109
+ var ev;
189110
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
189111
+ return true;
189168
189112
  }
189169
- this.err = err_;
189170
- });
189171
- ptrType = $ptrType(screen.NewWindowOptions);
189172
- Stub = function(err) {
189173
- var err, x;
189174
- return (x = new stub.ptr(err), new x.constructor.elem(x));
189113
+ return false;
189175
189114
  };
189176
- $pkg.Stub = Stub;
189177
- stub.ptr.prototype.NewBuffer = function(size) {
189178
- var s, size;
189179
- s = this;
189180
- return [$ifaceNil, s.err];
189115
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
189116
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
189117
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189118
+ d = [d];
189119
+ onKey = [onKey];
189120
+ d[0] = this;
189121
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
189122
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
189123
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189124
+ _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; }
189125
+ _r;
189126
+ $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; }
189127
+ $s = -1; return $ifaceNil;
189128
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
189129
+ }; })(d, onKey)), js.Func);
189130
+ _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; }
189131
+ _r;
189132
+ _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; }
189133
+ _r$1;
189134
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
189135
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
189136
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189137
+ _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; }
189138
+ _r$2;
189139
+ _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; }
189140
+ _r$3;
189141
+ $clone(onKey[0], js.Func).Release();
189142
+ $s = -1; return;
189143
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
189144
+ }; })(d, onKey));
189145
+ $s = -1; return;
189146
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
189181
189147
  };
189182
- stub.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
189183
- stub.ptr.prototype.NewTexture = function(size) {
189184
- var s, size;
189185
- s = this;
189186
- return [$ifaceNil, s.err];
189148
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
189149
+ getKeyRune = function(ev) {
189150
+ var ev, key$1;
189151
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
189152
+ if (key$1.$length === 1) {
189153
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
189154
+ }
189155
+ return -1;
189187
189156
  };
189188
- stub.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
189189
- stub.ptr.prototype.NewWindow = function(opts) {
189190
- var opts, s;
189191
- s = this;
189192
- return [$ifaceNil, s.err];
189157
+ getKeyDirection = function(ev) {
189158
+ var dir, ev;
189159
+ dir = 0;
189160
+ dir = 0;
189161
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
189162
+ dir = 1;
189163
+ }
189164
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
189165
+ dir = 2;
189166
+ }
189167
+ return dir;
189193
189168
  };
189194
- stub.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
189195
- stub.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], [screen.Window, $error], false)}];
189196
- stub.init("golang.org/x/exp/shiny/driver/internal/errscreen", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]);
189169
+ getKeyCode = function(ev) {
189170
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
189171
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
189172
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
189173
+ code = _tuple[0];
189174
+ exists = _tuple[1];
189175
+ if (exists) {
189176
+ return code;
189177
+ }
189178
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
189179
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
189180
+ code$1 = _tuple$1[0];
189181
+ exists$1 = _tuple$1[1];
189182
+ if (exists$1) {
189183
+ return code$1;
189184
+ }
189185
+ return 0;
189186
+ };
189187
+ 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)}];
189188
+ 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: ""}]);
189197
189189
  $init = function() {
189198
189190
  $pkg.$init = function() {};
189199
189191
  /* */ 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:
189200
- $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189201
- $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189192
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189193
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189194
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189195
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189196
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189197
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189198
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189199
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189200
+ 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 }]);
189201
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
189202
189202
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189203
189203
  };
189204
189204
  $pkg.$init = $init;
@@ -189238,12 +189238,12 @@ $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
189238
189238
  return $pkg;
189239
189239
  })();
189240
189240
  $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
189241
- 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;
189241
+ 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;
189242
189242
  fmt = $packages["fmt"];
189243
189243
  webgl = $packages["github.com/nuberu/webgl"];
189244
189244
  types = $packages["github.com/nuberu/webgl/types"];
189245
- dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
189246
189245
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
189246
+ dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
189247
189247
  imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
189248
189248
  screen = $packages["golang.org/x/exp/shiny/screen"];
189249
189249
  f64 = $packages["golang.org/x/image/math/f64"];
@@ -190041,8 +190041,8 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190041
190041
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190042
190042
  $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190043
190043
  $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190044
- $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190045
- $r = errscreen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190044
+ $r = errscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190045
+ $r = dom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190046
190046
  $r = imageutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190047
190047
  $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190048
190048
  $r = f64.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -190283,10 +190283,10 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190283
190283
  return $pkg;
190284
190284
  })();
190285
190285
  $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190286
- 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;
190286
+ 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;
190287
190287
  fmt = $packages["fmt"];
190288
- dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
190289
190288
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
190289
+ dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
190290
190290
  screen = $packages["golang.org/x/exp/shiny/screen"];
190291
190291
  f64 = $packages["golang.org/x/image/math/f64"];
190292
190292
  image = $packages["image"];
@@ -190432,1036 +190432,632 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190432
190432
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190433
190433
  w = this;
190434
190434
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190435
- $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190436
- /* */ if (w.released) { $s = 2; continue; }
190437
- /* */ $s = 3; continue;
190438
- /* if (w.released) { */ case 2:
190439
- $s = 4; case 4: return;
190440
- /* } */ case 3:
190441
- _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190442
- _r;
190443
- $clone(w.resizeCallback, js.Func).Release();
190444
- _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190445
- _r$1;
190446
- $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190447
- w.released = true;
190448
- $s = -1; return;
190449
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
190450
- };
190451
- windowImpl.prototype.Release = function() { return this.$val.Release(); };
190452
- windowImpl.ptr.prototype.Publish = function() {
190453
- var w;
190454
- w = this;
190455
- if (w.released) {
190456
- return new screen.PublishResult.ptr(false);
190457
- }
190458
- return new screen.PublishResult.ptr(false);
190459
- };
190460
- windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190461
- windowImpl.ptr.prototype.Send = function(event) {
190462
- var event, w;
190463
- w = this;
190464
- if (w.released) {
190465
- return;
190466
- }
190467
- $panic(new $String("Not implemented"));
190468
- };
190469
- windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190470
- windowImpl.ptr.prototype.SendFirst = function(event) {
190471
- var event, w;
190472
- w = this;
190473
- if (w.released) {
190474
- return;
190475
- }
190476
- $panic(new $String("Not implemented"));
190477
- };
190478
- windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190479
- windowImpl.ptr.prototype.NextEvent = function() {
190480
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190481
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190482
- w = this;
190483
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190484
- ev = _r[0];
190485
- $s = -1; return ev;
190486
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190487
- };
190488
- windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190489
- windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190490
- var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190491
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190492
- w = this;
190493
- if (w.released) {
190494
- $s = -1; return;
190495
- }
190496
- _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; }
190497
- $panic(_r);
190498
- $s = -1; return;
190499
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190500
- };
190501
- windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190502
- windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190503
- var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190504
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190505
- w = this;
190506
- if (w.released) {
190507
- $s = -1; return;
190508
- }
190509
- _ref = src;
190510
- /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190511
- /* */ $s = 2; continue;
190512
- /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190513
- jsSrc = _ref.$val;
190514
- _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190515
- _r;
190516
- $s = -1; return;
190517
- /* } */ case 2:
190518
- _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190519
- $panic(_r$1);
190520
- $s = -1; return;
190521
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
190522
- };
190523
- windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190524
- windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190525
- var dr, op, src, w;
190526
- w = this;
190527
- if (w.released) {
190528
- return;
190529
- }
190530
- $panic(new $String("Not implemented"));
190531
- };
190532
- windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190533
- windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190534
- var op, opts, sr, src, src2dst, w;
190535
- w = this;
190536
- if (w.released) {
190537
- return;
190538
- }
190539
- $panic(new $String("Not implemented"));
190540
- };
190541
- windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190542
- windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190543
- var op, opts, sr, src, src2dst, w;
190544
- w = this;
190545
- if (w.released) {
190546
- return;
190547
- }
190548
- $panic(new $String("Not implemented"));
190549
- };
190550
- windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190551
- windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190552
- var dp, op, opts, sr, src, w;
190553
- w = this;
190554
- if (w.released) {
190555
- return;
190556
- }
190557
- $panic(new $String("Not implemented"));
190558
- };
190559
- windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190560
- windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190561
- var dr, op, opts, sr, src, w;
190562
- w = this;
190563
- if (w.released) {
190564
- return;
190565
- }
190566
- $panic(new $String("Not implemented"));
190567
- };
190568
- windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190569
- Main = function(f) {
190570
- var {_r, err, f, $s, $r, $c} = $restore(this, {f});
190571
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190572
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190573
- err = _r;
190574
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
190575
- /* */ $s = 3; continue;
190576
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
190577
- $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190578
- /* } */ case 3:
190579
- $s = -1; return;
190580
- /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190581
- };
190582
- $pkg.Main = Main;
190583
- main = function(f) {
190584
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190585
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190586
- retErr = $ifaceNil;
190587
- _tuple = newScreenImpl();
190588
- s = _tuple[0];
190589
- err = _tuple[1];
190590
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190591
- retErr = err;
190592
- $s = -1; return retErr;
190593
- }
190594
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190595
- retErr = $ifaceNil;
190596
- $s = -1; return retErr;
190597
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190598
- };
190599
- newScreenImpl = function() {
190600
- var s;
190601
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190602
- return [s, $ifaceNil];
190603
- };
190604
- screenImpl.ptr.prototype.NewBuffer = function(size) {
190605
- var buffer, s, size;
190606
- s = this;
190607
- buffer = newBuffer(s, $clone(size, image.Point));
190608
- return [buffer, $ifaceNil];
190609
- };
190610
- screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190611
- screenImpl.ptr.prototype.NewTexture = function(size) {
190612
- var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190613
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190614
- s = this;
190615
- _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; }
190616
- $24r = [$ifaceNil, _r];
190617
- $s = 2; case 2: return $24r;
190618
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190619
- };
190620
- screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190621
- screenImpl.ptr.prototype.NewWindow = function(opts) {
190622
- var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190623
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190624
- s = this;
190625
- _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190626
- window = _r;
190627
- $s = -1; return [window, $ifaceNil];
190628
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190629
- };
190630
- screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190631
- newBuffer = function(screen$1, size) {
190632
- var _q, _q$1, _q$2, b, rect, screen$1, size;
190633
- rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
190634
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
190635
- return b;
190636
- };
190637
- BufferImpl.ptr.prototype.Size = function() {
190638
- var b;
190639
- b = this;
190640
- return b.size;
190641
- };
190642
- BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190643
- BufferImpl.ptr.prototype.Bounds = function() {
190644
- var b;
190645
- b = this;
190646
- return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190647
- };
190648
- BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190649
- BufferImpl.ptr.prototype.RGBA = function() {
190650
- var b;
190651
- b = this;
190652
- return b.rgba;
190653
- };
190654
- BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190655
- BufferImpl.ptr.prototype.YCbCr = function() {
190656
- var b;
190657
- b = this;
190658
- return b.ycbcr;
190659
- };
190660
- BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190661
- BufferImpl.ptr.prototype.YCbCrJS = function() {
190662
- var b;
190663
- b = this;
190664
- if (b.ycbcrJS === ptrType$4.nil) {
190665
- b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
190666
- }
190667
- return b.ycbcrJS;
190668
- };
190669
- BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190670
- BufferImpl.ptr.prototype.Release = function() {
190671
- var {b, $s, $deferred, $r, $c} = $restore(this, {});
190672
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190673
- b = this;
190674
- $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190675
- $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
190676
- /* */ if (b.released) { $s = 2; continue; }
190435
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190436
+ /* */ if (w.released) { $s = 2; continue; }
190677
190437
  /* */ $s = 3; continue;
190678
- /* if (b.released) { */ case 2:
190438
+ /* if (w.released) { */ case 2:
190679
190439
  $s = 4; case 4: return;
190680
190440
  /* } */ case 3:
190681
- b.released = true;
190441
+ _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190442
+ _r;
190443
+ $clone(w.resizeCallback, js.Func).Release();
190444
+ _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190445
+ _r$1;
190446
+ $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190447
+ w.released = true;
190682
190448
  $s = -1; return;
190683
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
190684
- };
190685
- BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190686
- 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)}];
190687
- 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)}];
190688
- 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$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190689
- windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
190690
- screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190691
- YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
190692
- BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
190693
- $init = function() {
190694
- $pkg.$init = function() {};
190695
- /* */ 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:
190696
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190697
- $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190698
- $r = errscreen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190699
- $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190700
- $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190701
- $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190702
- $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190703
- $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190704
- $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190705
- $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190706
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190449
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
190707
190450
  };
190708
- $pkg.$init = $init;
190709
- return $pkg;
190710
- })();
190711
- $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190712
- 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;
190713
- hex = $packages["encoding/hex"];
190714
- webgl = $packages["github.com/nuberu/webgl"];
190715
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190716
- jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190717
- general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190718
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190719
- image = $packages["image"];
190720
- js = $packages["syscall/js"];
190721
- Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
190722
- this.$val = this;
190723
- if (arguments.length === 0) {
190724
- this.jsVideoDecoder = ptrType.nil;
190725
- this.resolves = sliceType.nil;
190726
- this.rejects = sliceType.nil;
190727
- this.releaseVideoDecoder = $throwNilPointerError;
190728
- return;
190451
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
190452
+ windowImpl.ptr.prototype.Publish = function() {
190453
+ var w;
190454
+ w = this;
190455
+ if (w.released) {
190456
+ return new screen.PublishResult.ptr(false);
190729
190457
  }
190730
- this.jsVideoDecoder = jsVideoDecoder_;
190731
- this.resolves = resolves_;
190732
- this.rejects = rejects_;
190733
- this.releaseVideoDecoder = releaseVideoDecoder_;
190734
- });
190735
- sliceType = $sliceType(js.Value);
190736
- funcType = $funcType([], [], false);
190737
- arrayType = $arrayType(funcType, 0);
190738
- ptrType = $ptrType(js.Value);
190739
- sliceType$1 = $sliceType($emptyInterface);
190740
- ptrType$1 = $ptrType(canvasdriver.BufferImpl);
190741
- sliceType$2 = $sliceType($Uint8);
190742
- ptrType$2 = $ptrType(Decoder);
190743
- NewDecoder = function(header) {
190744
- var header, rejects, resolves;
190745
- resolves = new sliceType([]);
190746
- rejects = new sliceType([]);
190747
- return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
190748
- };
190749
- $pkg.NewDecoder = NewDecoder;
190750
- Decoder.ptr.prototype.configure = function(nal) {
190751
- var {_r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r, $c} = $restore(this, {nal});
190752
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190753
- d = [d];
190754
- errorCallback = [errorCallback];
190755
- jsVideoDecoder = [jsVideoDecoder];
190756
- outputCallback = [outputCallback];
190757
- d[0] = this;
190758
- _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190759
- init = $clone(_r, js.Value);
190760
- outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190761
- var {_i, _r$1, _ref, args, resolve, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190762
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190763
- _ref = d[0].resolves;
190764
- _i = 0;
190765
- /* while (true) { */ case 1:
190766
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190767
- resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190768
- _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190769
- _r$1;
190770
- _i++;
190771
- $s = 1; continue;
190772
- case 2:
190773
- d[0].resolves = new sliceType([]);
190774
- d[0].rejects = new sliceType([]);
190775
- $s = -1; return $ifaceNil;
190776
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, resolve, this$1, x, $s};return $f;
190777
- }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190778
- errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190779
- var {_i, _r$1, _ref, args, reject, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190780
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190781
- _ref = d[0].rejects;
190782
- _i = 0;
190783
- /* while (true) { */ case 1:
190784
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190785
- reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190786
- _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190787
- _r$1;
190788
- _i++;
190789
- $s = 1; continue;
190790
- case 2:
190791
- d[0].resolves = new sliceType([]);
190792
- d[0].rejects = new sliceType([]);
190793
- $s = -1; return $ifaceNil;
190794
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, reject, this$1, x, $s};return $f;
190795
- }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190796
- $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
190797
- $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
190798
- _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190799
- jsVideoDecoder[0] = $clone(_r$1, js.Value);
190800
- h264CodecName = d[0].detectCodecName(nal);
190801
- _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190802
- config = $clone(_r$2, js.Value);
190803
- $clone(config, js.Value).Set("codec", new $String(h264CodecName));
190804
- $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
190805
- _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190806
- _r$3;
190807
- d[0].jsVideoDecoder = jsVideoDecoder[0];
190808
- d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
190809
- d[0].jsVideoDecoder = ptrType.nil;
190810
- d[0].releaseVideoDecoder = $throwNilPointerError;
190811
- $clone(outputCallback[0], js.Func).Release();
190812
- $clone(errorCallback[0], js.Func).Release();
190813
- }; })(d, errorCallback, jsVideoDecoder, outputCallback);
190814
- $s = -1; return;
190815
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s};return $f;
190816
- };
190817
- Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
190818
- Decoder.ptr.prototype.detectCodecName = function(nal) {
190819
- var codecName, d, nal;
190820
- d = this;
190821
- codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
190822
- return codecName;
190458
+ return new screen.PublishResult.ptr(false);
190823
190459
  };
190824
- Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
190825
- Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190826
- 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});
190827
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190828
- d = [d];
190829
- d[0] = this;
190830
- frameType = "delta";
190831
- /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
190832
- /* */ $s = 2; continue;
190833
- /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
190834
- frameType = "key";
190835
- /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
190836
- /* */ $s = 4; continue;
190837
- /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
190838
- $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190839
- /* } */ case 4:
190840
- /* } */ case 2:
190841
- /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
190842
- /* */ $s = 7; continue;
190843
- /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
190844
- _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190845
- $24r = _r;
190846
- $s = 9; case 9: return $24r;
190847
- /* } */ case 7:
190848
- _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190849
- chunkOpts = $clone(_r$1, js.Value);
190850
- _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190851
- frameData = $clone(_r$2, js.Value);
190852
- $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
190853
- $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
190854
- $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
190855
- _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190856
- chunk = $clone(_r$3, js.Value);
190857
- _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190858
- errDec = _r$4;
190859
- /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
190860
- /* */ $s = 15; continue;
190861
- /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
190862
- /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
190863
- /* */ $s = 17; continue;
190864
- /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
190865
- $r = d[0].releaseVideoDecoder(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190866
- /* } */ case 17:
190867
- $s = -1; return errDec;
190868
- /* } */ case 15:
190869
- framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
190870
- var args, this$1;
190871
- d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
190872
- d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
190873
- return $ifaceNil;
190874
- }; })(d)), js.Func);
190875
- _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190876
- framePromise = $clone(_r$5, js.Value);
190877
- timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
190878
- var {_arg, _r$6, _r$7, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190879
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190880
- _r$6 = $clone((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), js.Value).Call("bind", new sliceType$1([$ifaceNil, new $String("Timeout")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190881
- _arg = (x = _r$6, new x.constructor.elem(x));
190882
- _r$7 = $clone(js.Global(), js.Value).Call("setTimeout", new sliceType$1([_arg, new $Int(500)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190883
- _r$7;
190884
- $s = -1; return $ifaceNil;
190885
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$6, _r$7, args, this$1, x, $s};return $f;
190886
- }; })(d)), js.Func);
190887
- _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190888
- timeoutPromise = $clone(_r$6, js.Value);
190889
- _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190890
- _arg = (x = _r$7, new x.constructor.elem(x));
190891
- _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190892
- racePromise = $clone(_r$8, js.Value);
190893
- _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190894
- _tuple = _r$9;
190895
- frame = _tuple[0];
190896
- err = _tuple[1];
190897
- $clone(framePromiseCb, js.Func).Release();
190898
- $clone(timeoutPromiseCb, js.Func).Release();
190899
- /* */ if (!(err === ptrType.nil)) { $s = 24; continue; }
190900
- /* */ $s = 25; continue;
190901
- /* if (!(err === ptrType.nil)) { */ case 24:
190902
- errMessage = "";
190903
- if ($clone(err, js.Value).Type() === 4) {
190904
- errMessage = $clone(err, js.Value).String();
190905
- } else {
190906
- errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
190907
- }
190908
- _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; }
190909
- $24r$1 = _r$10;
190910
- $s = 27; case 27: return $24r$1;
190911
- /* } */ case 25:
190912
- ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190913
- ycbcrJSImg.CanvasImageSource = frame;
190914
- displayWidth = $clone($clone(frame, js.Value).Get("displayWidth"), js.Value).Int();
190915
- displayHeight = $clone($clone(frame, js.Value).Get("displayHeight"), js.Value).Int();
190916
- _r$11 = outputBuffer.YCbCr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
190917
- ycbcrImg = _r$11;
190918
- image.Rectangle.copy(ycbcrImg.Rect, image.Rect(0, 0, displayWidth, displayHeight));
190919
- ycbcrImg.SubsampleRatio = 2;
190920
- $s = -1; return $ifaceNil;
190921
- /* */ } 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;
190460
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190461
+ windowImpl.ptr.prototype.Send = function(event) {
190462
+ var event, w;
190463
+ w = this;
190464
+ if (w.released) {
190465
+ return;
190466
+ }
190467
+ $panic(new $String("Not implemented"));
190922
190468
  };
190923
- Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190924
- Decoder.ptr.prototype.Release = function(outputBuffer) {
190925
- var {_r, m, outputBuffer, ycbcrJSImg, $s, $r, $c} = $restore(this, {outputBuffer});
190469
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190470
+ windowImpl.ptr.prototype.SendFirst = function(event) {
190471
+ var event, w;
190472
+ w = this;
190473
+ if (w.released) {
190474
+ return;
190475
+ }
190476
+ $panic(new $String("Not implemented"));
190477
+ };
190478
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190479
+ windowImpl.ptr.prototype.NextEvent = function() {
190480
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190926
190481
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190927
- m = this;
190928
- ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190929
- /* */ if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { $s = 1; continue; }
190482
+ w = this;
190483
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190484
+ ev = _r[0];
190485
+ $s = -1; return ev;
190486
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190487
+ };
190488
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190489
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190490
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190491
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190492
+ w = this;
190493
+ if (w.released) {
190494
+ $s = -1; return;
190495
+ }
190496
+ _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; }
190497
+ $panic(_r);
190498
+ $s = -1; return;
190499
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190500
+ };
190501
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190502
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190503
+ var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190504
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190505
+ w = this;
190506
+ if (w.released) {
190507
+ $s = -1; return;
190508
+ }
190509
+ _ref = src;
190510
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190930
190511
  /* */ $s = 2; continue;
190931
- /* if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { */ case 1:
190932
- _r = $clone(ycbcrJSImg.CanvasImageSource, js.Value).Call("close", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190512
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190513
+ jsSrc = _ref.$val;
190514
+ _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190933
190515
  _r;
190516
+ $s = -1; return;
190934
190517
  /* } */ case 2:
190518
+ _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190519
+ $panic(_r$1);
190935
190520
  $s = -1; return;
190936
- /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Release, $c: true, $r, _r, m, outputBuffer, ycbcrJSImg, $s};return $f;
190521
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
190937
190522
  };
190938
- Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190939
- Decoder.ptr.prototype.jsSafeDecode = function(chunk) {
190940
- var {$24r, _r, chunk, d, err, $s, $deferred, $r, $c} = $restore(this, {chunk});
190941
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190942
- err = [err];
190943
- err[0] = $ifaceNil;
190944
- d = this;
190945
- $deferred.push([(function(err) { return function $b() {
190946
- var {_r, recoverErr, $s, $r, $c} = $restore(this, {});
190947
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190948
- recoverErr = $recover();
190949
- /* */ if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { $s = 1; continue; }
190950
- /* */ $s = 2; continue;
190951
- /* if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { */ case 1:
190952
- _r = errs.Errorf("Cannot decode %s", new sliceType$1([recoverErr])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190953
- err[0] = _r;
190954
- /* } */ case 2:
190955
- $s = -1; return;
190956
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, recoverErr, $s};return $f;
190957
- }; })(err), []]);
190958
- _r = $clone(d.jsVideoDecoder, js.Value).Call("decode", new sliceType$1([new chunk.constructor.elem(chunk)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190959
- _r;
190960
- err[0] = err[0];
190961
- $24r = err[0];
190962
- $s = 2; case 2: return $24r;
190963
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: Decoder.ptr.prototype.jsSafeDecode, $c: true, $r, $24r, _r, chunk, d, err, $s, $deferred};return $f; } }
190523
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190524
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190525
+ var dr, op, src, w;
190526
+ w = this;
190527
+ if (w.released) {
190528
+ return;
190529
+ }
190530
+ $panic(new $String("Not implemented"));
190964
190531
  };
190965
- Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
190966
- ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
190967
- Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
190968
- $init = function() {
190969
- $pkg.$init = function() {};
190970
- /* */ 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:
190971
- $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190972
- $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190973
- $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190974
- $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190975
- $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190976
- $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190977
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190978
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190532
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190533
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190534
+ var op, opts, sr, src, src2dst, w;
190535
+ w = this;
190536
+ if (w.released) {
190537
+ return;
190538
+ }
190539
+ $panic(new $String("Not implemented"));
190980
190540
  };
190981
- $pkg.$init = $init;
190982
- return $pkg;
190983
- })();
190984
- $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190985
- var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, js, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
190986
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190987
- general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190988
- h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
190989
- nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
190990
- webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
190991
- js = $packages["syscall/js"];
190992
- Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
190993
- H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
190994
- this.$val = this;
190995
- if (arguments.length === 0) {
190996
- this.decoder = $ifaceNil;
190541
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190542
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190543
+ var op, opts, sr, src, src2dst, w;
190544
+ w = this;
190545
+ if (w.released) {
190997
190546
  return;
190998
190547
  }
190999
- this.decoder = decoder_;
191000
- });
191001
- ptrType = $ptrType(H264Decoder);
191002
- sliceType = $sliceType($emptyInterface);
191003
- sliceType$1 = $sliceType($Uint8);
191004
- NewH264Decoder = function(header) {
191005
- var {$24r, _r, decoder, header, $s, $r, $c} = $restore(this, {header});
190548
+ $panic(new $String("Not implemented"));
190549
+ };
190550
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190551
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190552
+ var dp, op, opts, sr, src, w;
190553
+ w = this;
190554
+ if (w.released) {
190555
+ return;
190556
+ }
190557
+ $panic(new $String("Not implemented"));
190558
+ };
190559
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190560
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190561
+ var dr, op, opts, sr, src, w;
190562
+ w = this;
190563
+ if (w.released) {
190564
+ return;
190565
+ }
190566
+ $panic(new $String("Not implemented"));
190567
+ };
190568
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190569
+ Main = function(f) {
190570
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
191006
190571
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191007
- decoder = $ifaceNil;
191008
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191009
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
191010
- /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 3; continue; }
191011
- /* */ $s = 4; continue;
191012
- /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
191013
- decoder = nacldecoder.NewDecoder(header);
191014
- $s = 5; continue;
191015
- /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
191016
- decoder = h264_decoder.NewDecoder(header);
191017
- $s = 5; continue;
191018
- /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 3:
191019
- decoder = webcodecs.NewDecoder(header);
191020
- $s = 5; continue;
191021
- /* } else { */ case 4:
191022
- _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; }
191023
- $24r = [ptrType.nil, _r];
191024
- $s = 7; case 7: return $24r;
191025
- /* } */ case 5:
191026
- $s = -1; return [new H264Decoder.ptr(decoder), $ifaceNil];
191027
- /* */ } return; } var $f = {$blk: NewH264Decoder, $c: true, $r, $24r, _r, decoder, header, $s};return $f;
190572
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190573
+ err = _r;
190574
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
190575
+ /* */ $s = 3; continue;
190576
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
190577
+ $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190578
+ /* } */ case 3:
190579
+ $s = -1; return;
190580
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190581
+ };
190582
+ $pkg.Main = Main;
190583
+ main = function(f) {
190584
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190585
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190586
+ retErr = $ifaceNil;
190587
+ _tuple = newScreenImpl();
190588
+ s = _tuple[0];
190589
+ err = _tuple[1];
190590
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190591
+ retErr = err;
190592
+ $s = -1; return retErr;
190593
+ }
190594
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190595
+ retErr = $ifaceNil;
190596
+ $s = -1; return retErr;
190597
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190598
+ };
190599
+ newScreenImpl = function() {
190600
+ var s;
190601
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190602
+ return [s, $ifaceNil];
190603
+ };
190604
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
190605
+ var buffer, s, size;
190606
+ s = this;
190607
+ buffer = newBuffer(s, $clone(size, image.Point));
190608
+ return [buffer, $ifaceNil];
190609
+ };
190610
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190611
+ screenImpl.ptr.prototype.NewTexture = function(size) {
190612
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190613
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190614
+ s = this;
190615
+ _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; }
190616
+ $24r = [$ifaceNil, _r];
190617
+ $s = 2; case 2: return $24r;
190618
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190619
+ };
190620
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190621
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
190622
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190623
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190624
+ s = this;
190625
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190626
+ window = _r;
190627
+ $s = -1; return [window, $ifaceNil];
190628
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190629
+ };
190630
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190631
+ newBuffer = function(screen$1, size) {
190632
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
190633
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
190634
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
190635
+ return b;
191028
190636
  };
191029
- $pkg.NewH264Decoder = NewH264Decoder;
191030
- H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
191031
- var {$24r, _r, m, nal, outputBuffer, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191032
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191033
- m = this;
191034
- _r = m.decoder.Decode(nal, outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191035
- $24r = _r;
191036
- $s = 2; case 2: return $24r;
191037
- /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Decode, $c: true, $r, $24r, _r, m, nal, outputBuffer, $s};return $f;
190637
+ BufferImpl.ptr.prototype.Size = function() {
190638
+ var b;
190639
+ b = this;
190640
+ return b.size;
191038
190641
  };
191039
- H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191040
- H264Decoder.ptr.prototype.Release = function(outputBuffer) {
191041
- var {m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
191042
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191043
- m = this;
191044
- $r = m.decoder.Release(outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190642
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190643
+ BufferImpl.ptr.prototype.Bounds = function() {
190644
+ var b;
190645
+ b = this;
190646
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190647
+ };
190648
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190649
+ BufferImpl.ptr.prototype.RGBA = function() {
190650
+ var b;
190651
+ b = this;
190652
+ return b.rgba;
190653
+ };
190654
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190655
+ BufferImpl.ptr.prototype.YCbCr = function() {
190656
+ var b;
190657
+ b = this;
190658
+ return b.ycbcr;
190659
+ };
190660
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190661
+ BufferImpl.ptr.prototype.YCbCrJS = function() {
190662
+ var b;
190663
+ b = this;
190664
+ if (b.ycbcrJS === ptrType$4.nil) {
190665
+ b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
190666
+ }
190667
+ return b.ycbcrJS;
190668
+ };
190669
+ BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190670
+ BufferImpl.ptr.prototype.Release = function() {
190671
+ var {b, $s, $deferred, $r, $c} = $restore(this, {});
190672
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190673
+ b = this;
190674
+ $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190675
+ $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
190676
+ /* */ if (b.released) { $s = 2; continue; }
190677
+ /* */ $s = 3; continue;
190678
+ /* if (b.released) { */ case 2:
190679
+ $s = 4; case 4: return;
190680
+ /* } */ case 3:
190681
+ b.released = true;
191045
190682
  $s = -1; return;
191046
- /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Release, $c: true, $r, m, outputBuffer, $s};return $f;
190683
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
191047
190684
  };
191048
- H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191049
- ptrType.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191050
- Decoder.init([{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}]);
191051
- H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: Decoder, tag: ""}]);
190685
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190686
+ 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)}];
190687
+ 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)}];
190688
+ 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$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190689
+ windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
190690
+ screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190691
+ YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
190692
+ BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
191052
190693
  $init = function() {
191053
190694
  $pkg.$init = function() {};
191054
190695
  /* */ 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:
191055
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191056
- $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191057
- $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191058
- $r = nacldecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191059
- $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191060
- $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190696
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190697
+ $r = errscreen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190698
+ $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190699
+ $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190700
+ $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190701
+ $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190702
+ $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190703
+ $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190704
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190705
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191061
190706
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191062
190707
  };
191063
190708
  $pkg.$init = $init;
191064
190709
  return $pkg;
191065
190710
  })();
191066
- $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
191067
- 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;
191068
- focus = $packages["golang.org/x/mobile/event/focus"];
191069
- key = $packages["golang.org/x/mobile/event/key"];
191070
- mouse = $packages["golang.org/x/mobile/event/mouse"];
191071
- size = $packages["golang.org/x/mobile/event/size"];
191072
- geom = $packages["golang.org/x/mobile/geom"];
191073
- math = $packages["math"];
191074
- strings = $packages["strings"];
190711
+ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
190712
+ 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;
190713
+ hex = $packages["encoding/hex"];
190714
+ webgl = $packages["github.com/nuberu/webgl"];
190715
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190716
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190717
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190718
+ canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190719
+ image = $packages["image"];
191075
190720
  js = $packages["syscall/js"];
191076
- DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
190721
+ Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
191077
190722
  this.$val = this;
191078
190723
  if (arguments.length === 0) {
191079
- this.eventChan = $chanNil;
191080
- this.releases = sliceType$1.nil;
190724
+ this.jsVideoDecoder = ptrType.nil;
190725
+ this.resolves = sliceType.nil;
190726
+ this.rejects = sliceType.nil;
190727
+ this.releaseVideoDecoder = $throwNilPointerError;
191081
190728
  return;
191082
190729
  }
191083
- this.eventChan = eventChan_;
191084
- this.releases = releases_;
190730
+ this.jsVideoDecoder = jsVideoDecoder_;
190731
+ this.resolves = resolves_;
190732
+ this.rejects = rejects_;
190733
+ this.releaseVideoDecoder = releaseVideoDecoder_;
191085
190734
  });
191086
- sliceType = $sliceType($emptyInterface);
190735
+ sliceType = $sliceType(js.Value);
191087
190736
  funcType = $funcType([], [], false);
191088
- sliceType$1 = $sliceType(funcType);
191089
- sliceType$2 = $sliceType($Int32);
191090
- chanType = $chanType($emptyInterface, false, false);
191091
- ptrType = $ptrType(DomEvents);
191092
- GetDocWidth = function() {
191093
- return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
191094
- };
191095
- $pkg.GetDocWidth = GetDocWidth;
191096
- GetDocHeight = function() {
191097
- return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
191098
- };
191099
- $pkg.GetDocHeight = GetDocHeight;
191100
- GetOrientation = function() {
191101
- var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
191102
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191103
- orientation = [orientation];
191104
- orientation[0] = 0;
191105
- $deferred.push([(function(orientation) { return function() {
191106
- if (!($interfaceIsEqual($recover(), $ifaceNil))) {
191107
- orientation[0] = 0;
191108
- }
191109
- }; })(orientation), []]);
191110
- orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
191111
- /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
191112
- /* */ $s = 2; continue;
191113
- /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
191114
- orientation[0] = 2;
191115
- $24r = orientation[0];
191116
- $s = 3; case 3: return $24r;
191117
- /* } */ case 2:
191118
- /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
191119
- /* */ $s = 5; continue;
191120
- /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
191121
- orientation[0] = 2;
191122
- $24r$1 = orientation[0];
191123
- $s = 6; case 6: return $24r$1;
191124
- /* } */ case 5:
191125
- orientation[0] = 0;
191126
- $24r$2 = orientation[0];
191127
- $s = 7; case 7: return $24r$2;
191128
- /* */ } 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; } }
191129
- };
191130
- $pkg.GetOrientation = GetOrientation;
191131
- NewDomEvents = function() {
191132
- return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
191133
- };
191134
- $pkg.NewDomEvents = NewDomEvents;
191135
- DomEvents.ptr.prototype.GetEventChan = function() {
191136
- var d;
191137
- d = this;
191138
- return d.eventChan;
191139
- };
191140
- DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
191141
- DomEvents.ptr.prototype.Release = function() {
191142
- var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
191143
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191144
- d = this;
191145
- _ref = d.releases;
191146
- _i = 0;
191147
- /* while (true) { */ case 1:
191148
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
191149
- release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
191150
- $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191151
- _i++;
191152
- $s = 1; continue;
191153
- case 2:
191154
- $s = -1; return;
191155
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
191156
- };
191157
- DomEvents.prototype.Release = function() { return this.$val.Release(); };
191158
- DomEvents.ptr.prototype.BindEvents = function() {
191159
- var {d, $s, $r, $c} = $restore(this, {});
191160
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191161
- d = this;
191162
- $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191163
- $go($methodVal(d, "emitSizeEvent"), []);
191164
- $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191165
- $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191166
- $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191167
- $s = -1; return;
191168
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
191169
- };
191170
- DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
191171
- DomEvents.ptr.prototype.bindSizeEvents = function() {
191172
- var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
191173
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191174
- d = [d];
191175
- onResize = [onResize];
191176
- d[0] = this;
191177
- onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
191178
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
191179
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191180
- $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191181
- $s = -1; return $ifaceNil;
191182
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
191183
- }; })(d, onResize)), js.Func);
191184
- _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; }
191185
- _r;
191186
- d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
191187
- var {_r$1, $s, $r, $c} = $restore(this, {});
191188
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191189
- _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; }
191190
- _r$1;
191191
- $clone(onResize[0], js.Func).Release();
191192
- $s = -1; return;
191193
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
191194
- }; })(d, onResize));
191195
- $s = -1; return;
191196
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
191197
- };
191198
- DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
191199
- DomEvents.ptr.prototype.emitSizeEvent = function() {
191200
- var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
191201
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191202
- d = this;
191203
- _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191204
- orientation = _r;
191205
- pixelsPerPt = 1;
191206
- width = GetDocWidth();
191207
- height = GetDocHeight();
191208
- $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; }
191209
- $s = -1; return;
191210
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
191211
- };
191212
- DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
191213
- DomEvents.ptr.prototype.bindMouseEvents = function() {
191214
- var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
190737
+ arrayType = $arrayType(funcType, 0);
190738
+ ptrType = $ptrType(js.Value);
190739
+ sliceType$1 = $sliceType($emptyInterface);
190740
+ ptrType$1 = $ptrType(canvasdriver.BufferImpl);
190741
+ sliceType$2 = $sliceType($Uint8);
190742
+ ptrType$2 = $ptrType(Decoder);
190743
+ NewDecoder = function(header) {
190744
+ var header, rejects, resolves;
190745
+ resolves = new sliceType([]);
190746
+ rejects = new sliceType([]);
190747
+ return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
190748
+ };
190749
+ $pkg.NewDecoder = NewDecoder;
190750
+ Decoder.ptr.prototype.configure = function(nal) {
190751
+ var {_r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r, $c} = $restore(this, {nal});
191215
190752
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191216
190753
  d = [d];
191217
- onClick = [onClick];
191218
- onMove = [onMove];
191219
- onWheel = [onWheel];
190754
+ errorCallback = [errorCallback];
190755
+ jsVideoDecoder = [jsVideoDecoder];
190756
+ outputCallback = [outputCallback];
191220
190757
  d[0] = this;
191221
- onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191222
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191223
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191224
- _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; }
191225
- _r;
191226
- $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; }
191227
- $s = -1; return $ifaceNil;
191228
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
191229
- }; })(d, onClick, onMove, onWheel)), js.Func);
191230
- _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; }
191231
- _r;
191232
- onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191233
- var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190758
+ _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190759
+ init = $clone(_r, js.Value);
190760
+ outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190761
+ var {_i, _r$1, _ref, args, resolve, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191234
190762
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191235
- _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; }
191236
- _r$1;
191237
- $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; }
190763
+ _ref = d[0].resolves;
190764
+ _i = 0;
190765
+ /* while (true) { */ case 1:
190766
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190767
+ resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190768
+ _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190769
+ _r$1;
190770
+ _i++;
190771
+ $s = 1; continue;
190772
+ case 2:
190773
+ d[0].resolves = new sliceType([]);
190774
+ d[0].rejects = new sliceType([]);
191238
190775
  $s = -1; return $ifaceNil;
191239
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
191240
- }; })(d, onClick, onMove, onWheel)), js.Func);
191241
- _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; }
191242
- _r$1;
191243
- _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; }
191244
- _r$2;
191245
- onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
191246
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190776
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, resolve, this$1, x, $s};return $f;
190777
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190778
+ errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
190779
+ var {_i, _r$1, _ref, args, reject, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191247
190780
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191248
- $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; }
190781
+ _ref = d[0].rejects;
190782
+ _i = 0;
190783
+ /* while (true) { */ case 1:
190784
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190785
+ reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
190786
+ _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190787
+ _r$1;
190788
+ _i++;
190789
+ $s = 1; continue;
190790
+ case 2:
190791
+ d[0].resolves = new sliceType([]);
190792
+ d[0].rejects = new sliceType([]);
191249
190793
  $s = -1; return $ifaceNil;
191250
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
191251
- }; })(d, onClick, onMove, onWheel)), js.Func);
191252
- _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; }
190794
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _i, _r$1, _ref, args, reject, this$1, x, $s};return $f;
190795
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
190796
+ $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0]));
190797
+ $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0]));
190798
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190799
+ jsVideoDecoder[0] = $clone(_r$1, js.Value);
190800
+ h264CodecName = d[0].detectCodecName(nal);
190801
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190802
+ config = $clone(_r$2, js.Value);
190803
+ $clone(config, js.Value).Set("codec", new $String(h264CodecName));
190804
+ $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true));
190805
+ _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191253
190806
  _r$3;
191254
- d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
191255
- var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
191256
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191257
- _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; }
191258
- _r$4;
191259
- _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; }
191260
- _r$5;
191261
- _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; }
191262
- _r$6;
191263
- _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; }
191264
- _r$7;
191265
- $clone(onMove[0], js.Func).Release();
191266
- $clone(onClick[0], js.Func).Release();
191267
- $clone(onWheel[0], js.Func).Release();
191268
- $s = -1; return;
191269
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
191270
- }; })(d, onClick, onMove, onWheel));
190807
+ d[0].jsVideoDecoder = jsVideoDecoder[0];
190808
+ d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
190809
+ d[0].jsVideoDecoder = ptrType.nil;
190810
+ d[0].releaseVideoDecoder = $throwNilPointerError;
190811
+ $clone(outputCallback[0], js.Func).Release();
190812
+ $clone(errorCallback[0], js.Func).Release();
190813
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback);
191271
190814
  $s = -1; return;
191272
- /* */ } 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;
191273
- };
191274
- DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
191275
- getMouseDirection = function(ev) {
191276
- var dir, ev;
191277
- dir = 0;
191278
- dir = 0;
191279
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
191280
- dir = 1;
191281
- }
191282
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
191283
- dir = 2;
191284
- }
191285
- return dir;
191286
- };
191287
- getWheelButton = function(ev) {
191288
- var deltaX, deltaY, ev;
191289
- deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
191290
- deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
191291
- if (deltaY > 0) {
191292
- return -2;
191293
- }
191294
- if (deltaY < 0) {
191295
- return -1;
191296
- }
191297
- if (deltaX > 0) {
191298
- return -4;
191299
- }
191300
- if (deltaX < 0) {
191301
- return -3;
191302
- }
191303
- return 0;
190815
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.configure, $c: true, $r, _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s};return $f;
191304
190816
  };
191305
- getMouseButton = function(ev) {
191306
- var _1, ev;
191307
- _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
191308
- if (_1 === (0)) {
191309
- return 1;
191310
- } else if (_1 === (1)) {
191311
- return 2;
191312
- } else if (_1 === (2)) {
191313
- return 3;
191314
- } else if (_1 === (3)) {
191315
- return 8;
191316
- } else if (_1 === (4)) {
191317
- return 9;
191318
- } else {
191319
- return 0;
191320
- }
190817
+ Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
190818
+ Decoder.ptr.prototype.detectCodecName = function(nal) {
190819
+ var codecName, d, nal;
190820
+ d = this;
190821
+ codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
190822
+ return codecName;
191321
190823
  };
191322
- getEventModifiers = function(ev) {
191323
- var ev, mod;
191324
- mod = 0;
191325
- if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
191326
- mod = (mod | (4)) >>> 0;
191327
- }
191328
- if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
191329
- mod = (mod | (2)) >>> 0;
191330
- }
191331
- if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
191332
- mod = (mod | (1)) >>> 0;
191333
- }
191334
- if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
191335
- mod = (mod | (8)) >>> 0;
191336
- }
191337
- return mod;
190824
+ Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
190825
+ Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190826
+ 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});
190827
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190828
+ d = [d];
190829
+ d[0] = this;
190830
+ frameType = "delta";
190831
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
190832
+ /* */ $s = 2; continue;
190833
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
190834
+ frameType = "key";
190835
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
190836
+ /* */ $s = 4; continue;
190837
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
190838
+ $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190839
+ /* } */ case 4:
190840
+ /* } */ case 2:
190841
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
190842
+ /* */ $s = 7; continue;
190843
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
190844
+ _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", sliceType$1.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190845
+ $24r = _r;
190846
+ $s = 9; case 9: return $24r;
190847
+ /* } */ case 7:
190848
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType$1.nil); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190849
+ chunkOpts = $clone(_r$1, js.Value);
190850
+ _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190851
+ frameData = $clone(_r$2, js.Value);
190852
+ $clone(chunkOpts, js.Value).Set("type", new $String(frameType));
190853
+ $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData));
190854
+ $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0));
190855
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190856
+ chunk = $clone(_r$3, js.Value);
190857
+ _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190858
+ errDec = _r$4;
190859
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 14; continue; }
190860
+ /* */ $s = 15; continue;
190861
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 14:
190862
+ /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 16; continue; }
190863
+ /* */ $s = 17; continue;
190864
+ /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 16:
190865
+ $r = d[0].releaseVideoDecoder(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190866
+ /* } */ case 17:
190867
+ $s = -1; return errDec;
190868
+ /* } */ case 15:
190869
+ framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
190870
+ var args, this$1;
190871
+ d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
190872
+ d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
190873
+ return $ifaceNil;
190874
+ }; })(d)), js.Func);
190875
+ _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190876
+ framePromise = $clone(_r$5, js.Value);
190877
+ timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
190878
+ var {_arg, _r$6, _r$7, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190879
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190880
+ _r$6 = $clone((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), js.Value).Call("bind", new sliceType$1([$ifaceNil, new $String("Timeout")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190881
+ _arg = (x = _r$6, new x.constructor.elem(x));
190882
+ _r$7 = $clone(js.Global(), js.Value).Call("setTimeout", new sliceType$1([_arg, new $Int(500)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190883
+ _r$7;
190884
+ $s = -1; return $ifaceNil;
190885
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _arg, _r$6, _r$7, args, this$1, x, $s};return $f;
190886
+ }; })(d)), js.Func);
190887
+ _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 20; case 20: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190888
+ timeoutPromise = $clone(_r$6, js.Value);
190889
+ _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190890
+ _arg = (x = _r$7, new x.constructor.elem(x));
190891
+ _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 22; case 22: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190892
+ racePromise = $clone(_r$8, js.Value);
190893
+ _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
190894
+ _tuple = _r$9;
190895
+ frame = _tuple[0];
190896
+ err = _tuple[1];
190897
+ $clone(framePromiseCb, js.Func).Release();
190898
+ $clone(timeoutPromiseCb, js.Func).Release();
190899
+ /* */ if (!(err === ptrType.nil)) { $s = 24; continue; }
190900
+ /* */ $s = 25; continue;
190901
+ /* if (!(err === ptrType.nil)) { */ case 24:
190902
+ errMessage = "";
190903
+ if ($clone(err, js.Value).Type() === 4) {
190904
+ errMessage = $clone(err, js.Value).String();
190905
+ } else {
190906
+ errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
190907
+ }
190908
+ _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; }
190909
+ $24r$1 = _r$10;
190910
+ $s = 27; case 27: return $24r$1;
190911
+ /* } */ case 25:
190912
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190913
+ ycbcrJSImg.CanvasImageSource = frame;
190914
+ displayWidth = $clone($clone(frame, js.Value).Get("displayWidth"), js.Value).Int();
190915
+ displayHeight = $clone($clone(frame, js.Value).Get("displayHeight"), js.Value).Int();
190916
+ _r$11 = outputBuffer.YCbCr(); /* */ $s = 28; case 28: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; }
190917
+ ycbcrImg = _r$11;
190918
+ image.Rectangle.copy(ycbcrImg.Rect, image.Rect(0, 0, displayWidth, displayHeight));
190919
+ ycbcrImg.SubsampleRatio = 2;
190920
+ $s = -1; return $ifaceNil;
190921
+ /* */ } 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;
191338
190922
  };
191339
- DomEvents.ptr.prototype.bindFocusEvents = function() {
191340
- var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
190923
+ Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190924
+ Decoder.ptr.prototype.Release = function(outputBuffer) {
190925
+ var {_r, m, outputBuffer, ycbcrJSImg, $s, $r, $c} = $restore(this, {outputBuffer});
191341
190926
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191342
- d = [d];
191343
- onFocus = [onFocus];
191344
- d[0] = this;
191345
- onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
191346
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191347
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191348
- $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; }
191349
- $s = -1; return $ifaceNil;
191350
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
191351
- }; })(d, onFocus)), js.Func);
191352
- _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; }
191353
- _r;
191354
- _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; }
191355
- _r$1;
191356
- d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
191357
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
191358
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191359
- _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; }
191360
- _r$2;
191361
- _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; }
191362
- _r$3;
191363
- $clone(onFocus[0], js.Func).Release();
191364
- $s = -1; return;
191365
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
191366
- }; })(d, onFocus));
190927
+ m = this;
190928
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
190929
+ /* */ if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { $s = 1; continue; }
190930
+ /* */ $s = 2; continue;
190931
+ /* if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { */ case 1:
190932
+ _r = $clone(ycbcrJSImg.CanvasImageSource, js.Value).Call("close", sliceType$1.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190933
+ _r;
190934
+ /* } */ case 2:
191367
190935
  $s = -1; return;
191368
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
191369
- };
191370
- DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
191371
- isFocusIn = function(ev) {
191372
- var ev;
191373
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
191374
- return true;
191375
- }
191376
- return false;
190936
+ /* */ } return; } var $f = {$blk: Decoder.ptr.prototype.Release, $c: true, $r, _r, m, outputBuffer, ycbcrJSImg, $s};return $f;
191377
190937
  };
191378
- DomEvents.ptr.prototype.bindKeyEvents = function() {
191379
- var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
191380
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191381
- d = [d];
191382
- onKey = [onKey];
191383
- d[0] = this;
191384
- onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
191385
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
191386
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191387
- _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; }
191388
- _r;
191389
- $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; }
191390
- $s = -1; return $ifaceNil;
191391
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
191392
- }; })(d, onKey)), js.Func);
191393
- _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; }
191394
- _r;
191395
- _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; }
191396
- _r$1;
191397
- d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
191398
- var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190938
+ Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190939
+ Decoder.ptr.prototype.jsSafeDecode = function(chunk) {
190940
+ var {$24r, _r, chunk, d, err, $s, $deferred, $r, $c} = $restore(this, {chunk});
190941
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190942
+ err = [err];
190943
+ err[0] = $ifaceNil;
190944
+ d = this;
190945
+ $deferred.push([(function(err) { return function $b() {
190946
+ var {_r, recoverErr, $s, $r, $c} = $restore(this, {});
191399
190947
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191400
- _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; }
191401
- _r$2;
191402
- _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; }
191403
- _r$3;
191404
- $clone(onKey[0], js.Func).Release();
190948
+ recoverErr = $recover();
190949
+ /* */ if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { $s = 1; continue; }
190950
+ /* */ $s = 2; continue;
190951
+ /* if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { */ case 1:
190952
+ _r = errs.Errorf("Cannot decode %s", new sliceType$1([recoverErr])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190953
+ err[0] = _r;
190954
+ /* } */ case 2:
191405
190955
  $s = -1; return;
191406
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
191407
- }; })(d, onKey));
191408
- $s = -1; return;
191409
- /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
190956
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, recoverErr, $s};return $f;
190957
+ }; })(err), []]);
190958
+ _r = $clone(d.jsVideoDecoder, js.Value).Call("decode", new sliceType$1([new chunk.constructor.elem(chunk)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190959
+ _r;
190960
+ err[0] = err[0];
190961
+ $24r = err[0];
190962
+ $s = 2; case 2: return $24r;
190963
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: Decoder.ptr.prototype.jsSafeDecode, $c: true, $r, $24r, _r, chunk, d, err, $s, $deferred};return $f; } }
191410
190964
  };
191411
- DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
191412
- getKeyRune = function(ev) {
191413
- var ev, key$1;
191414
- key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
191415
- if (key$1.$length === 1) {
191416
- return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
191417
- }
191418
- return -1;
190965
+ Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
190966
+ ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
190967
+ Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
190968
+ $init = function() {
190969
+ $pkg.$init = function() {};
190970
+ /* */ 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:
190971
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190972
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190973
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190974
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190975
+ $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190976
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190977
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190978
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191419
190980
  };
191420
- getKeyDirection = function(ev) {
191421
- var dir, ev;
191422
- dir = 0;
191423
- dir = 0;
191424
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
191425
- dir = 1;
191426
- }
191427
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
191428
- dir = 2;
190981
+ $pkg.$init = $init;
190982
+ return $pkg;
190983
+ })();
190984
+ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190985
+ var $pkg = {}, $init, errs, general, h264_decoder, nacldecoder, webcodecs, js, Decoder, H264Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
190986
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190987
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190988
+ h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
190989
+ nacldecoder = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"];
190990
+ webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
190991
+ js = $packages["syscall/js"];
190992
+ Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
190993
+ H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
190994
+ this.$val = this;
190995
+ if (arguments.length === 0) {
190996
+ this.decoder = $ifaceNil;
190997
+ return;
191429
190998
  }
191430
- return dir;
190999
+ this.decoder = decoder_;
191000
+ });
191001
+ ptrType = $ptrType(H264Decoder);
191002
+ sliceType = $sliceType($emptyInterface);
191003
+ sliceType$1 = $sliceType($Uint8);
191004
+ NewH264Decoder = function(header) {
191005
+ var {$24r, _r, decoder, header, $s, $r, $c} = $restore(this, {header});
191006
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191007
+ decoder = $ifaceNil;
191008
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191009
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
191010
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 3; continue; }
191011
+ /* */ $s = 4; continue;
191012
+ /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
191013
+ decoder = nacldecoder.NewDecoder(header);
191014
+ $s = 5; continue;
191015
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
191016
+ decoder = h264_decoder.NewDecoder(header);
191017
+ $s = 5; continue;
191018
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 3:
191019
+ decoder = webcodecs.NewDecoder(header);
191020
+ $s = 5; continue;
191021
+ /* } else { */ case 4:
191022
+ _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; }
191023
+ $24r = [ptrType.nil, _r];
191024
+ $s = 7; case 7: return $24r;
191025
+ /* } */ case 5:
191026
+ $s = -1; return [new H264Decoder.ptr(decoder), $ifaceNil];
191027
+ /* */ } return; } var $f = {$blk: NewH264Decoder, $c: true, $r, $24r, _r, decoder, header, $s};return $f;
191431
191028
  };
191432
- getKeyCode = function(ev) {
191433
- var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
191434
- domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
191435
- _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
191436
- code = _tuple[0];
191437
- exists = _tuple[1];
191438
- if (exists) {
191439
- return code;
191440
- }
191441
- domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
191442
- _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
191443
- code$1 = _tuple$1[0];
191444
- exists$1 = _tuple$1[1];
191445
- if (exists$1) {
191446
- return code$1;
191447
- }
191448
- return 0;
191029
+ $pkg.NewH264Decoder = NewH264Decoder;
191030
+ H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
191031
+ var {$24r, _r, m, nal, outputBuffer, $s, $r, $c} = $restore(this, {nal, outputBuffer});
191032
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191033
+ m = this;
191034
+ _r = m.decoder.Decode(nal, outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191035
+ $24r = _r;
191036
+ $s = 2; case 2: return $24r;
191037
+ /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Decode, $c: true, $r, $24r, _r, m, nal, outputBuffer, $s};return $f;
191038
+ };
191039
+ H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
191040
+ H264Decoder.ptr.prototype.Release = function(outputBuffer) {
191041
+ var {m, outputBuffer, $s, $r, $c} = $restore(this, {outputBuffer});
191042
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191043
+ m = this;
191044
+ $r = m.decoder.Release(outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191045
+ $s = -1; return;
191046
+ /* */ } return; } var $f = {$blk: H264Decoder.ptr.prototype.Release, $c: true, $r, m, outputBuffer, $s};return $f;
191449
191047
  };
191450
- 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)}];
191451
- 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: ""}]);
191048
+ H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
191049
+ ptrType.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191050
+ Decoder.init([{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}]);
191051
+ H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: Decoder, tag: ""}]);
191452
191052
  $init = function() {
191453
191053
  $pkg.$init = function() {};
191454
191054
  /* */ 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:
191455
- $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191456
- $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191457
- $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191458
- $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191459
- $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191460
- $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191461
- $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191462
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191463
- 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 }]);
191464
- keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
191055
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191056
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191057
+ $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191058
+ $r = nacldecoder.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191059
+ $r = webcodecs.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191060
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191465
191061
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191466
191062
  };
191467
191063
  $pkg.$init = $init;
@@ -191470,7 +191066,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"
191470
191066
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
191471
191067
  var $pkg = {}, $init, fmt, 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, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
191472
191068
  fmt = $packages["fmt"];
191473
- dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
191069
+ dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
191474
191070
  screen = $packages["golang.org/x/exp/shiny/screen"];
191475
191071
  f64 = $packages["golang.org/x/image/math/f64"];
191476
191072
  image = $packages["image"];