@supraio/client-daemon-js 1.0.0-tsfixstreamgeometrypanic.475 → 1.0.0-tsfixstreamgeometrypanic.476

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.
@@ -181944,7 +181944,7 @@ $packages["golang.org/x/mobile/event/touch"] = (function() {
181944
181944
  return $pkg;
181945
181945
  })();
181946
181946
  $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
181947
- var $pkg = {}, $init, focus, key, mouse, size, touch, geom, math, strings, js, DomEvents, sliceType, funcType, arrayType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEvents, NewDomEventsForTarget, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
181947
+ var $pkg = {}, $init, focus, key, mouse, size, touch, geom, math, strings, js, DomEvents, sliceType, funcType, arrayType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetScreenWidth, GetScreenHeight, SetWindowWidth, SetWindowHeight, GetOrientation, NewDomEventsForTarget, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
181948
181948
  focus = $packages["golang.org/x/mobile/event/focus"];
181949
181949
  key = $packages["golang.org/x/mobile/event/key"];
181950
181950
  mouse = $packages["golang.org/x/mobile/event/mouse"];
@@ -182054,10 +182054,6 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182054
182054
  /* */ } 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; } }
182055
182055
  };
182056
182056
  $pkg.GetOrientation = GetOrientation;
182057
- NewDomEvents = function() {
182058
- return NewDomEventsForTarget($clone(js.Global(), js.Value));
182059
- };
182060
- $pkg.NewDomEvents = NewDomEvents;
182061
182057
  NewDomEventsForTarget = function(inputTarget) {
182062
182058
  var inputTarget;
182063
182059
  return new DomEvents.ptr(new $Chan($emptyInterface, 256), $clone(inputTarget, js.Value), $makeSlice(sliceType$1, 0));
@@ -182142,6 +182138,22 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182142
182138
  /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
182143
182139
  };
182144
182140
  DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
182141
+ DomEvents.ptr.prototype.inputPosition = function(ev) {
182142
+ var {_r, d, ev, getBoundingClientRect, rect, $s, $r, $c} = $restore(this, {ev});
182143
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182144
+ d = this;
182145
+ getBoundingClientRect = $clone($clone(d.inputTarget, js.Value).Get("getBoundingClientRect"), js.Value);
182146
+ /* */ if ($clone(getBoundingClientRect, js.Value).Type() === 7) { $s = 1; continue; }
182147
+ /* */ $s = 2; continue;
182148
+ /* if ($clone(getBoundingClientRect, js.Value).Type() === 7) { */ case 1:
182149
+ _r = $clone(d.inputTarget, js.Value).Call("getBoundingClientRect", sliceType.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182150
+ rect = $clone(_r, js.Value);
182151
+ $s = -1; return [($fround($clone($clone(ev, js.Value).Get("clientX"), js.Value).Float() - $clone($clone(rect, js.Value).Get("left"), js.Value).Float())), ($fround($clone($clone(ev, js.Value).Get("clientY"), js.Value).Float() - $clone($clone(rect, js.Value).Get("top"), js.Value).Float()))];
182152
+ /* } */ case 2:
182153
+ $s = -1; return [($fround($clone($clone(ev, js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone(ev, js.Value).Get("offsetY"), js.Value).Float()))];
182154
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.inputPosition, $c: true, $r, _r, d, ev, getBoundingClientRect, rect, $s};return $f;
182155
+ };
182156
+ DomEvents.prototype.inputPosition = function(ev) { return this.$val.inputPosition(ev); };
182145
182157
  DomEvents.ptr.prototype.bindMouseEvents = function() {
182146
182158
  var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
182147
182159
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -182151,35 +182163,47 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182151
182163
  onWheel = [onWheel];
182152
182164
  d[0] = this;
182153
182165
  onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
182154
- var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
182166
+ var {_r, _r$1, _tuple, args, this$1, x, x$1, y, $s, $r, $c} = $restore(this, {this$1, args});
182155
182167
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182156
182168
  _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; }
182157
182169
  _r;
182158
- $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; }
182170
+ _r$1 = d[0].inputPosition($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
182171
+ _tuple = _r$1;
182172
+ x = _tuple[0];
182173
+ y = _tuple[1];
182174
+ $r = $send(d[0].eventChan, (x$1 = new mouse.Event.ptr(x, y, 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x$1.constructor.elem(x$1))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182159
182175
  $s = -1; return $ifaceNil;
182160
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
182176
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, args, this$1, x, x$1, y, $s};return $f;
182161
182177
  }; })(d, onClick, onMove, onWheel)), js.Func);
182162
182178
  _r = $clone(d[0].inputTarget, 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; }
182163
182179
  _r;
182164
182180
  onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
182165
- var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
182181
+ var {_r$1, _r$2, _tuple, args, this$1, x, x$1, y, $s, $r, $c} = $restore(this, {this$1, args});
182166
182182
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182167
182183
  _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; }
182168
182184
  _r$1;
182169
- $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; }
182185
+ _r$2 = d[0].inputPosition($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
182186
+ _tuple = _r$2;
182187
+ x = _tuple[0];
182188
+ y = _tuple[1];
182189
+ $r = $send(d[0].eventChan, (x$1 = new mouse.Event.ptr(x, y, 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$1.constructor.elem(x$1))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182170
182190
  $s = -1; return $ifaceNil;
182171
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
182191
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, _tuple, args, this$1, x, x$1, y, $s};return $f;
182172
182192
  }; })(d, onClick, onMove, onWheel)), js.Func);
182173
182193
  _r$1 = $clone(d[0].inputTarget, 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; }
182174
182194
  _r$1;
182175
182195
  _r$2 = $clone(d[0].inputTarget, 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; }
182176
182196
  _r$2;
182177
182197
  onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
182178
- var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
182198
+ var {_r$3, _tuple, args, this$1, x, x$1, y, $s, $r, $c} = $restore(this, {this$1, args});
182179
182199
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182180
- $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; }
182200
+ _r$3 = d[0].inputPosition($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
182201
+ _tuple = _r$3;
182202
+ x = _tuple[0];
182203
+ y = _tuple[1];
182204
+ $r = $send(d[0].eventChan, (x$1 = new mouse.Event.ptr(x, y, 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$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
182181
182205
  $s = -1; return $ifaceNil;
182182
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
182206
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$3, _tuple, args, this$1, x, x$1, y, $s};return $f;
182183
182207
  }; })(d, onClick, onMove, onWheel)), js.Func);
182184
182208
  _r$3 = $clone(d[0].inputTarget, 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; }
182185
182209
  _r$3;
@@ -182389,7 +182413,7 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182389
182413
  opts = [opts];
182390
182414
  d[0] = this;
182391
182415
  handler[0] = $clone(js.FuncOf((function(d, eventName, eventType, handler, opts) { return function $b(this$1, args) {
182392
- var {_r, args, changedTouches, ev, t, this$1, $s, $r, $c} = $restore(this, {this$1, args});
182416
+ var {_r, _r$1, _tuple, args, changedTouches, ev, t, this$1, x, y, $s, $r, $c} = $restore(this, {this$1, args});
182393
182417
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
182394
182418
  if (args.$length === 0) {
182395
182419
  $s = -1; return $ifaceNil;
@@ -182402,9 +182426,13 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182402
182426
  $s = -1; return $ifaceNil;
182403
182427
  }
182404
182428
  t = $clone($clone(changedTouches, js.Value).Index(0), js.Value);
182405
- d[0].emitTouchEvent($clone(new touch.Event.ptr(($fround($clone($clone(t, js.Value).Get("clientX"), js.Value).Float())), ($fround($clone($clone(t, js.Value).Get("clientY"), js.Value).Float())), (new touch.Sequence(0, $clone($clone(t, js.Value).Get("identifier"), js.Value).Int())), eventType[0]), touch.Event));
182429
+ _r$1 = d[0].inputPosition($clone(t, js.Value)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
182430
+ _tuple = _r$1;
182431
+ x = _tuple[0];
182432
+ y = _tuple[1];
182433
+ d[0].emitTouchEvent($clone(new touch.Event.ptr(x, y, (new touch.Sequence(0, $clone($clone(t, js.Value).Get("identifier"), js.Value).Int())), eventType[0]), touch.Event));
182406
182434
  $s = -1; return $ifaceNil;
182407
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, changedTouches, ev, t, this$1, $s};return $f;
182435
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, args, changedTouches, ev, t, this$1, x, y, $s};return $f;
182408
182436
  }; })(d, eventName, eventType, handler, opts)), js.Func);
182409
182437
  _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
182410
182438
  opts[0] = $clone(_r, js.Value);
@@ -182456,7 +182484,7 @@ $packages["golang.org/x/exp/shiny/driver/util/dom"] = (function() {
182456
182484
  /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindTouchEvents, $c: true, $r, d, $s};return $f;
182457
182485
  };
182458
182486
  DomEvents.prototype.bindTouchEvents = function() { return this.$val.bindTouchEvents(); };
182459
- 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)}, {prop: "addTouchListener", name: "addTouchListener", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([$String, touch.Type], [], false)}, {prop: "emitTouchEvent", name: "emitTouchEvent", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([touch.Event], [], false)}, {prop: "bindTouchEvents", name: "bindTouchEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}];
182487
+ 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: "inputPosition", name: "inputPosition", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([js.Value], [$Float32, $Float32], 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)}, {prop: "addTouchListener", name: "addTouchListener", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([$String, touch.Type], [], false)}, {prop: "emitTouchEvent", name: "emitTouchEvent", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([touch.Event], [], false)}, {prop: "bindTouchEvents", name: "bindTouchEvents", pkg: "golang.org/x/exp/shiny/driver/util/dom", typ: $funcType([], [], false)}];
182460
182488
  DomEvents.init("golang.org/x/exp/shiny/driver/util/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "inputTarget", name: "inputTarget", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
182461
182489
  $init = function() {
182462
182490
  $pkg.$init = function() {};
@@ -184617,7 +184645,7 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"]
184617
184645
  ptrType$8 = $ptrType(screen.NewWindowOptions);
184618
184646
  ptrType$9 = $ptrType(image.YCbCr);
184619
184647
  newWindow = function(screen$1, opts) {
184620
- var {_r, _r$1, domEvents, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
184648
+ var {_r, _r$1, _r$2, domEvents, inputTarget, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
184621
184649
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
184622
184650
  /* */ if (!(opts.Title === "")) { $s = 1; continue; }
184623
184651
  /* */ $s = 2; continue;
@@ -184626,11 +184654,17 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"]
184626
184654
  _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
184627
184655
  $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
184628
184656
  /* } */ case 2:
184629
- domEvents = dom.NewDomEvents();
184657
+ _r$2 = $clone(screen$1.doc, js.Value).Call("getElementById", new sliceType([new $String("nacl_module")])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
184658
+ inputTarget = $clone(_r$2, js.Value);
184659
+ if ($clone(inputTarget, js.Value).IsNull() || $clone(inputTarget, js.Value).IsUndefined()) {
184660
+ $panic(new $String("NaCl renderer input target not found"));
184661
+ }
184662
+ $clone($clone(inputTarget, js.Value).Get("style"), js.Value).Set("touchAction", new $String("none"));
184663
+ domEvents = dom.NewDomEventsForTarget($clone(inputTarget, js.Value));
184630
184664
  w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), domEvents, false, new $Chan(structType, 0));
184631
- $r = domEvents.BindEvents(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
184665
+ $r = domEvents.BindEvents(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
184632
184666
  $s = -1; return w;
184633
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, domEvents, opts, screen$1, w, $s};return $f;
184667
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, inputTarget, opts, screen$1, w, $s};return $f;
184634
184668
  };
184635
184669
  windowImpl.ptr.prototype.Release = function() {
184636
184670
  var {w, $s, $r, $c} = $restore(this, {});
@@ -186017,7 +186051,7 @@ $packages["github.com/supraio/client-daemon/pkg/render/netframe/samsungwasmtcp"]
186017
186051
  return $pkg;
186018
186052
  })();
186019
186053
  $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"] = (function() {
186020
- var $pkg = {}, $init, general, jsdecoder, errs, jshelper, frame, samsungwasmtcp, sync, js, SamsungWasmDecoder, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, IsAvailable, NewDecoder;
186054
+ var $pkg = {}, $init, general, jsdecoder, errs, jshelper, frame, samsungwasmtcp, sync, js, SamsungWasmDecoder, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, IsAvailable, GetVideoElement, NewDecoder;
186021
186055
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
186022
186056
  jsdecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder/jsdecoder"];
186023
186057
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
@@ -186046,6 +186080,10 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/samsungwasmdecoder"] = (
186046
186080
  return jsdecoder.IsAvailable();
186047
186081
  };
186048
186082
  $pkg.IsAvailable = IsAvailable;
186083
+ GetVideoElement = function() {
186084
+ return $clone($clone(js.Global(), js.Value).Get("samsungWasmDecoder"), js.Value).Get("videoElement");
186085
+ };
186086
+ $pkg.GetVideoElement = GetVideoElement;
186049
186087
  NewDecoder = function(header) {
186050
186088
  var header;
186051
186089
  return [new SamsungWasmDecoder.ptr($clone(new sync.Mutex.ptr(0, 0), sync.Mutex), $clone(new sync.Mutex.ptr(0, 0), sync.Mutex)), $ifaceNil];
@@ -190586,7 +190624,7 @@ $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
190586
190624
  return $pkg;
190587
190625
  })();
190588
190626
  $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190589
- var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, newScreenImpl, Main, main, newBuffer;
190627
+ var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, structType, ptrType$4, sliceType$1, ptrType$5, ptrType$6, ptrType$7, ptrType$8, chanType, ptrType$9, ptrType$10, newWindow, newScreenImpl, Main, main, newBuffer;
190590
190628
  fmt = $packages["fmt"];
190591
190629
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
190592
190630
  dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
@@ -190597,7 +190635,7 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190597
190635
  draw = $packages["image/draw"];
190598
190636
  sync = $packages["sync"];
190599
190637
  js = $packages["syscall/js"];
190600
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
190638
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_, frontEvents_, backEvents_, eventWake_) {
190601
190639
  this.$val = this;
190602
190640
  if (arguments.length === 0) {
190603
190641
  this.screen = ptrType$1.nil;
@@ -190607,6 +190645,9 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190607
190645
  this.released = false;
190608
190646
  this.domEvents = ptrType$3.nil;
190609
190647
  this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
190648
+ this.frontEvents = sliceType.nil;
190649
+ this.backEvents = sliceType.nil;
190650
+ this.eventWake = $chanNil;
190610
190651
  return;
190611
190652
  }
190612
190653
  this.screen = screen_;
@@ -190616,6 +190657,9 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190616
190657
  this.released = released_;
190617
190658
  this.domEvents = domEvents_;
190618
190659
  this.resizeCallback = resizeCallback_;
190660
+ this.frontEvents = frontEvents_;
190661
+ this.backEvents = backEvents_;
190662
+ this.eventWake = eventWake_;
190619
190663
  });
190620
190664
  screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
190621
190665
  this.$val = this;
@@ -190660,12 +190704,14 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190660
190704
  funcType = $funcType([], [], false);
190661
190705
  arrayType = $arrayType(funcType, 0);
190662
190706
  ptrType$3 = $ptrType(dom.DomEvents);
190707
+ structType = $structType("", []);
190663
190708
  ptrType$4 = $ptrType(BufferImpl);
190664
190709
  sliceType$1 = $sliceType($Uint8);
190665
190710
  ptrType$5 = $ptrType(YCbCrJS);
190666
190711
  ptrType$6 = $ptrType(js.Value);
190667
190712
  ptrType$7 = $ptrType(screen.DrawOptions);
190668
190713
  ptrType$8 = $ptrType(windowImpl);
190714
+ chanType = $chanType(structType, false, false);
190669
190715
  ptrType$9 = $ptrType(image.RGBA);
190670
190716
  ptrType$10 = $ptrType(image.YCbCr);
190671
190717
  newWindow = function(screen$1, opts) {
@@ -190743,7 +190789,7 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190743
190789
  $panic(_r$8);
190744
190790
  /* } */ case 24:
190745
190791
  domEvents = dom.NewDomEventsForTarget($clone(canvasEl[0], js.Value));
190746
- w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
190792
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func), sliceType.nil, sliceType.nil, new $Chan(structType, 1));
190747
190793
  $r = domEvents.BindEvents(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190748
190794
  $s = -1; return w;
190749
190795
  /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, adaptCanvas, canvasEl, ctx2d, domEvents, hasGeometry, opts, resizeCallback, screen$1, style, w, $s};return $f;
@@ -190780,33 +190826,126 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190780
190826
  };
190781
190827
  windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190782
190828
  windowImpl.ptr.prototype.Send = function(event) {
190783
- var event, w;
190829
+ var {event, eventChan, w, $s, $r, $c} = $restore(this, {event});
190830
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190784
190831
  w = this;
190785
- if (w.released) {
190786
- return;
190787
- }
190788
- $panic(new $String("Not implemented"));
190832
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190833
+ /* */ if (w.released) { $s = 2; continue; }
190834
+ /* */ $s = 3; continue;
190835
+ /* if (w.released) { */ case 2:
190836
+ $r = w.mutex.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190837
+ $s = -1; return;
190838
+ /* } */ case 3:
190839
+ eventChan = w.domEvents.GetEventChan();
190840
+ $r = w.mutex.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190841
+ $r = $send(eventChan, event); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190842
+ $s = -1; return;
190843
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Send, $c: true, $r, event, eventChan, w, $s};return $f;
190789
190844
  };
190790
190845
  windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190846
+ windowImpl.ptr.prototype.SendNonBlocking = function(event) {
190847
+ var {$24r, $24r$1, $24r$2, _selection, event, w, $s, $deferred, $r, $c} = $restore(this, {event});
190848
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190849
+ w = this;
190850
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190851
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190852
+ /* */ if (w.released) { $s = 2; continue; }
190853
+ /* */ $s = 3; continue;
190854
+ /* if (w.released) { */ case 2:
190855
+ $24r = false;
190856
+ $s = 4; case 4: return $24r;
190857
+ /* } */ case 3:
190858
+ _selection = $select([[w.domEvents.GetEventChan(), event], []]);
190859
+ /* */ if (_selection[0] === 0) { $s = 5; continue; }
190860
+ /* */ if (_selection[0] === 1) { $s = 6; continue; }
190861
+ /* */ $s = 7; continue;
190862
+ /* if (_selection[0] === 0) { */ case 5:
190863
+ $24r$1 = true;
190864
+ $s = 8; case 8: return $24r$1;
190865
+ /* } else if (_selection[0] === 1) { */ case 6:
190866
+ $24r$2 = false;
190867
+ $s = 9; case 9: return $24r$2;
190868
+ /* } */ case 7:
190869
+ $s = -1; return false;
190870
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.SendNonBlocking, $c: true, $r, $24r, $24r$1, $24r$2, _selection, event, w, $s, $deferred};return $f; } }
190871
+ };
190872
+ windowImpl.prototype.SendNonBlocking = function(event) { return this.$val.SendNonBlocking(event); };
190791
190873
  windowImpl.ptr.prototype.SendFirst = function(event) {
190792
- var event, w;
190874
+ var {_selection, event, w, $s, $deferred, $r, $c} = $restore(this, {event});
190875
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190793
190876
  w = this;
190794
- if (w.released) {
190795
- return;
190877
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190878
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190879
+ /* */ if (w.released) { $s = 2; continue; }
190880
+ /* */ $s = 3; continue;
190881
+ /* if (w.released) { */ case 2:
190882
+ $s = 4; case 4: return;
190883
+ /* } */ case 3:
190884
+ w.frontEvents = $append(w.frontEvents, event);
190885
+ _selection = $select([[w.eventWake, $clone(new structType.ptr(), structType)], []]);
190886
+ if (_selection[0] === 0) {
190887
+ } else if (_selection[0] === 1) {
190796
190888
  }
190797
- $panic(new $String("Not implemented"));
190889
+ $s = -1; return;
190890
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.SendFirst, $c: true, $r, _selection, event, w, $s, $deferred};return $f; } }
190798
190891
  };
190799
190892
  windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190800
190893
  windowImpl.ptr.prototype.NextEvent = function() {
190801
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190894
+ var {_r, _selection, _tuple, event, event$1, ok, w, x, $s, $r, $c} = $restore(this, {});
190802
190895
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190803
190896
  w = this;
190804
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190805
- ev = _r[0];
190806
- $s = -1; return ev;
190807
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190897
+ /* while (true) { */ case 1:
190898
+ $r = w.mutex.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190899
+ _tuple = w.nextQueuedEvent();
190900
+ event = _tuple[0];
190901
+ ok = _tuple[1];
190902
+ /* */ if (ok) { $s = 4; continue; }
190903
+ /* */ $s = 5; continue;
190904
+ /* if (ok) { */ case 4:
190905
+ $r = w.mutex.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190906
+ $s = -1; return event;
190907
+ /* } */ case 5:
190908
+ $r = w.mutex.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190909
+ _r = $select([[w.domEvents.GetEventChan()], [w.eventWake]]); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190910
+ _selection = _r;
190911
+ /* */ if (_selection[0] === 0) { $s = 9; continue; }
190912
+ /* */ if (_selection[0] === 1) { $s = 10; continue; }
190913
+ /* */ $s = 11; continue;
190914
+ /* if (_selection[0] === 0) { */ case 9:
190915
+ event$1 = _selection[1][0];
190916
+ $r = w.mutex.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190917
+ w.backEvents = $append(w.backEvents, $ifaceNil);
190918
+ $copySlice($subslice(w.backEvents, 1), $subslice(w.backEvents, 0, (w.backEvents.$length - 1 >> 0)));
190919
+ (x = w.backEvents, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = event$1));
190920
+ $r = w.mutex.Unlock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190921
+ $s = 11; continue;
190922
+ /* } else if (_selection[0] === 1) { */ case 10:
190923
+ /* } */ case 11:
190924
+ $s = 1; continue;
190925
+ case 2:
190926
+ $s = -1; return $ifaceNil;
190927
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, _selection, _tuple, event, event$1, ok, w, x, $s};return $f;
190808
190928
  };
190809
190929
  windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190930
+ windowImpl.ptr.prototype.nextQueuedEvent = function() {
190931
+ var event, event$1, last, w, x, x$1, x$2, x$3;
190932
+ w = this;
190933
+ last = w.frontEvents.$length - 1 >> 0;
190934
+ if (last >= 0) {
190935
+ event = (x = w.frontEvents, ((last < 0 || last >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + last]));
190936
+ (x$1 = w.frontEvents, ((last < 0 || last >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + last] = $ifaceNil));
190937
+ w.frontEvents = $subslice(w.frontEvents, 0, last);
190938
+ return [event, true];
190939
+ }
190940
+ if (w.backEvents.$length > 0) {
190941
+ event$1 = (x$2 = w.backEvents, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]));
190942
+ (x$3 = w.backEvents, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = $ifaceNil));
190943
+ w.backEvents = $subslice(w.backEvents, 1);
190944
+ return [event$1, true];
190945
+ }
190946
+ return [$ifaceNil, false];
190947
+ };
190948
+ windowImpl.prototype.nextQueuedEvent = function() { return this.$val.nextQueuedEvent(); };
190810
190949
  windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190811
190950
  var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190812
190951
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -191004,10 +191143,10 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
191004
191143
  /* */ } 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; } }
191005
191144
  };
191006
191145
  BufferImpl.prototype.Release = function() { return this.$val.Release(); };
191007
- ptrType$8.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$7], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}];
191146
+ ptrType$8.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: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "nextQueuedEvent", name: "nextQueuedEvent", pkg: "golang.org/x/exp/shiny/driver/canvasdriver", typ: $funcType([], [$emptyInterface, $Bool], 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$7], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}];
191008
191147
  ptrType$1.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)}];
191009
191148
  ptrType$4.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$5], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191010
- windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$2, 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$3, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
191149
+ windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$2, 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$3, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}, {prop: "frontEvents", name: "frontEvents", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "backEvents", name: "backEvents", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "eventWake", name: "eventWake", embedded: false, exported: false, typ: chanType, tag: ""}]);
191011
191150
  screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191012
191151
  YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$6, tag: ""}]);
191013
191152
  BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$2, 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$5, tag: ""}]);
@@ -193200,7 +193339,7 @@ $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
193200
193339
  return $pkg;
193201
193340
  })();
193202
193341
  $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193203
- 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, ptrType$2, funcType, arrayType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$3, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, Main, main, newScreenImpl, newBuffer;
193342
+ 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, ptrType$2, funcType, arrayType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, structType, ptrType$8, sliceType$3, ptrType$9, ptrType$10, ptrType$11, chanType, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, Main, main, newScreenImpl, newBuffer;
193204
193343
  fmt = $packages["fmt"];
193205
193344
  webgl = $packages["github.com/nuberu/webgl"];
193206
193345
  types = $packages["github.com/nuberu/webgl/types"];
@@ -193214,7 +193353,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193214
193353
  draw = $packages["image/draw"];
193215
193354
  sync = $packages["sync"];
193216
193355
  js = $packages["syscall/js"];
193217
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, domEvents_, width_, height_) {
193356
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, domEvents_, frontEvents_, backEvents_, eventWake_, width_, height_) {
193218
193357
  this.$val = this;
193219
193358
  if (arguments.length === 0) {
193220
193359
  this.screen = ptrType$1.nil;
@@ -193230,6 +193369,9 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193230
193369
  this.vertexArray = ptrType$6.nil;
193231
193370
  this.released = false;
193232
193371
  this.domEvents = ptrType$7.nil;
193372
+ this.frontEvents = sliceType$2.nil;
193373
+ this.backEvents = sliceType$2.nil;
193374
+ this.eventWake = $chanNil;
193233
193375
  this.width = 0;
193234
193376
  this.height = 0;
193235
193377
  return;
@@ -193247,6 +193389,9 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193247
193389
  this.vertexArray = vertexArray_;
193248
193390
  this.released = released_;
193249
193391
  this.domEvents = domEvents_;
193392
+ this.frontEvents = frontEvents_;
193393
+ this.backEvents = backEvents_;
193394
+ this.eventWake = eventWake_;
193250
193395
  this.width = width_;
193251
193396
  this.height = height_;
193252
193397
  });
@@ -193325,11 +193470,13 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193325
193470
  ptrType$5 = $ptrType(types.Texture);
193326
193471
  ptrType$6 = $ptrType(types.VertexArray);
193327
193472
  ptrType$7 = $ptrType(dom.DomEvents);
193473
+ structType = $structType("", []);
193328
193474
  ptrType$8 = $ptrType(BufferImpl);
193329
193475
  sliceType$3 = $sliceType($Uint8);
193330
193476
  ptrType$9 = $ptrType(YCbCrJS);
193331
193477
  ptrType$10 = $ptrType(screen.DrawOptions);
193332
193478
  ptrType$11 = $ptrType(windowImpl);
193479
+ chanType = $chanType(structType, false, false);
193333
193480
  ptrType$12 = $ptrType(ArrayBufferSlice);
193334
193481
  ptrType$13 = $ptrType(image.RGBA);
193335
193482
  ptrType$14 = $ptrType(image.YCbCr);
@@ -193366,7 +193513,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193366
193513
  $panic(err);
193367
193514
  }
193368
193515
  domEvents = dom.NewDomEventsForTarget($clone(canvasEl, js.Value));
193369
- w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), $clone(canvasEl, js.Value), gl, ptrType$4.nil, ptrType$5.nil, ptrType$4.nil, ptrType$5.nil, ptrType$5.nil, ptrType$5.nil, ptrType$6.nil, false, domEvents, 0, 0);
193516
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), $clone(canvasEl, js.Value), gl, ptrType$4.nil, ptrType$5.nil, ptrType$4.nil, ptrType$5.nil, ptrType$5.nil, ptrType$5.nil, ptrType$6.nil, false, domEvents, sliceType$2.nil, sliceType$2.nil, new $Chan(structType, 1), 0, 0);
193370
193517
  /* */ if (!((opts.Width === 0))) { $s = 14; continue; }
193371
193518
  /* */ $s = 15; continue;
193372
193519
  /* if (!((opts.Width === 0))) { */ case 14:
@@ -193440,33 +193587,126 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
193440
193587
  };
193441
193588
  windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
193442
193589
  windowImpl.ptr.prototype.Send = function(event) {
193443
- var event, w;
193590
+ var {event, eventChan, w, $s, $r, $c} = $restore(this, {event});
193591
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193444
193592
  w = this;
193445
- if (w.released) {
193446
- return;
193447
- }
193448
- $panic(new $String("Not implemented"));
193593
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193594
+ /* */ if (w.released) { $s = 2; continue; }
193595
+ /* */ $s = 3; continue;
193596
+ /* if (w.released) { */ case 2:
193597
+ $r = w.mutex.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193598
+ $s = -1; return;
193599
+ /* } */ case 3:
193600
+ eventChan = w.domEvents.GetEventChan();
193601
+ $r = w.mutex.Unlock(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193602
+ $r = $send(eventChan, event); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193603
+ $s = -1; return;
193604
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Send, $c: true, $r, event, eventChan, w, $s};return $f;
193449
193605
  };
193450
193606
  windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
193607
+ windowImpl.ptr.prototype.SendNonBlocking = function(event) {
193608
+ var {$24r, $24r$1, $24r$2, _selection, event, w, $s, $deferred, $r, $c} = $restore(this, {event});
193609
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
193610
+ w = this;
193611
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193612
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
193613
+ /* */ if (w.released) { $s = 2; continue; }
193614
+ /* */ $s = 3; continue;
193615
+ /* if (w.released) { */ case 2:
193616
+ $24r = false;
193617
+ $s = 4; case 4: return $24r;
193618
+ /* } */ case 3:
193619
+ _selection = $select([[w.domEvents.GetEventChan(), event], []]);
193620
+ /* */ if (_selection[0] === 0) { $s = 5; continue; }
193621
+ /* */ if (_selection[0] === 1) { $s = 6; continue; }
193622
+ /* */ $s = 7; continue;
193623
+ /* if (_selection[0] === 0) { */ case 5:
193624
+ $24r$1 = true;
193625
+ $s = 8; case 8: return $24r$1;
193626
+ /* } else if (_selection[0] === 1) { */ case 6:
193627
+ $24r$2 = false;
193628
+ $s = 9; case 9: return $24r$2;
193629
+ /* } */ case 7:
193630
+ $s = -1; return false;
193631
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return false; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.SendNonBlocking, $c: true, $r, $24r, $24r$1, $24r$2, _selection, event, w, $s, $deferred};return $f; } }
193632
+ };
193633
+ windowImpl.prototype.SendNonBlocking = function(event) { return this.$val.SendNonBlocking(event); };
193451
193634
  windowImpl.ptr.prototype.SendFirst = function(event) {
193452
- var event, w;
193635
+ var {_selection, event, w, $s, $deferred, $r, $c} = $restore(this, {event});
193636
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
193453
193637
  w = this;
193454
- if (w.released) {
193455
- return;
193638
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193639
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
193640
+ /* */ if (w.released) { $s = 2; continue; }
193641
+ /* */ $s = 3; continue;
193642
+ /* if (w.released) { */ case 2:
193643
+ $s = 4; case 4: return;
193644
+ /* } */ case 3:
193645
+ w.frontEvents = $append(w.frontEvents, event);
193646
+ _selection = $select([[w.eventWake, $clone(new structType.ptr(), structType)], []]);
193647
+ if (_selection[0] === 0) {
193648
+ } else if (_selection[0] === 1) {
193456
193649
  }
193457
- $panic(new $String("Not implemented"));
193650
+ $s = -1; return;
193651
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.SendFirst, $c: true, $r, _selection, event, w, $s, $deferred};return $f; } }
193458
193652
  };
193459
193653
  windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
193460
193654
  windowImpl.ptr.prototype.NextEvent = function() {
193461
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
193655
+ var {_r, _selection, _tuple, event, event$1, ok, w, x, $s, $r, $c} = $restore(this, {});
193462
193656
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
193463
193657
  w = this;
193464
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193465
- ev = _r[0];
193466
- $s = -1; return ev;
193467
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
193658
+ /* while (true) { */ case 1:
193659
+ $r = w.mutex.Lock(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193660
+ _tuple = w.nextQueuedEvent();
193661
+ event = _tuple[0];
193662
+ ok = _tuple[1];
193663
+ /* */ if (ok) { $s = 4; continue; }
193664
+ /* */ $s = 5; continue;
193665
+ /* if (ok) { */ case 4:
193666
+ $r = w.mutex.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193667
+ $s = -1; return event;
193668
+ /* } */ case 5:
193669
+ $r = w.mutex.Unlock(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193670
+ _r = $select([[w.domEvents.GetEventChan()], [w.eventWake]]); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
193671
+ _selection = _r;
193672
+ /* */ if (_selection[0] === 0) { $s = 9; continue; }
193673
+ /* */ if (_selection[0] === 1) { $s = 10; continue; }
193674
+ /* */ $s = 11; continue;
193675
+ /* if (_selection[0] === 0) { */ case 9:
193676
+ event$1 = _selection[1][0];
193677
+ $r = w.mutex.Lock(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193678
+ w.backEvents = $append(w.backEvents, $ifaceNil);
193679
+ $copySlice($subslice(w.backEvents, 1), $subslice(w.backEvents, 0, (w.backEvents.$length - 1 >> 0)));
193680
+ (x = w.backEvents, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0] = event$1));
193681
+ $r = w.mutex.Unlock(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193682
+ $s = 11; continue;
193683
+ /* } else if (_selection[0] === 1) { */ case 10:
193684
+ /* } */ case 11:
193685
+ $s = 1; continue;
193686
+ case 2:
193687
+ $s = -1; return $ifaceNil;
193688
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, _selection, _tuple, event, event$1, ok, w, x, $s};return $f;
193468
193689
  };
193469
193690
  windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
193691
+ windowImpl.ptr.prototype.nextQueuedEvent = function() {
193692
+ var event, event$1, last, w, x, x$1, x$2, x$3;
193693
+ w = this;
193694
+ last = w.frontEvents.$length - 1 >> 0;
193695
+ if (last >= 0) {
193696
+ event = (x = w.frontEvents, ((last < 0 || last >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + last]));
193697
+ (x$1 = w.frontEvents, ((last < 0 || last >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + last] = $ifaceNil));
193698
+ w.frontEvents = $subslice(w.frontEvents, 0, last);
193699
+ return [event, true];
193700
+ }
193701
+ if (w.backEvents.$length > 0) {
193702
+ event$1 = (x$2 = w.backEvents, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]));
193703
+ (x$3 = w.backEvents, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = $ifaceNil));
193704
+ w.backEvents = $subslice(w.backEvents, 1);
193705
+ return [event$1, true];
193706
+ }
193707
+ return [$ifaceNil, false];
193708
+ };
193709
+ windowImpl.prototype.nextQueuedEvent = function() { return this.$val.nextQueuedEvent(); };
193470
193710
  windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
193471
193711
  var {dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
193472
193712
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -194006,11 +194246,11 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
194006
194246
  /* */ } 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; } }
194007
194247
  };
194008
194248
  BufferImpl.prototype.Release = function() { return this.$val.Release(); };
194009
- ptrType$11.methods = [{prop: "ensureCanvasSize", name: "ensureCanvasSize", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "clear", name: "clear", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {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$10], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$4], [$error], false)}, {prop: "ensureYUV420Textures", name: "ensureYUV420Textures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "drawBufferYUV420", name: "drawBufferYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "drawBufferYUV420JSArrayBuffers", name: "drawBufferYUV420JSArrayBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, js.Value, js.Value, js.Value, image.Rectangle], [], false)}, {prop: "ensureRGBATextures", name: "ensureRGBATextures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "drawBufferRGBA", name: "drawBufferRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "createBuffers", name: "createBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$6], false)}, {prop: "createAndAttachFragmentShader", name: "createAndAttachFragmentShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$4, $String], [$error], false)}, {prop: "createTexture", name: "createTexture", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Int], [ptrType$5], false)}];
194249
+ ptrType$11.methods = [{prop: "ensureCanvasSize", name: "ensureCanvasSize", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "clear", name: "clear", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {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: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "nextQueuedEvent", name: "nextQueuedEvent", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [$emptyInterface, $Bool], 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$10], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$10], [], false)}, {prop: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$4], [$error], false)}, {prop: "ensureYUV420Textures", name: "ensureYUV420Textures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "drawBufferYUV420", name: "drawBufferYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "drawBufferYUV420JSArrayBuffers", name: "drawBufferYUV420JSArrayBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, js.Value, js.Value, js.Value, image.Rectangle], [], false)}, {prop: "ensureRGBATextures", name: "ensureRGBATextures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$4, $error], false)}, {prop: "drawBufferRGBA", name: "drawBufferRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "createBuffers", name: "createBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$6], false)}, {prop: "createAndAttachFragmentShader", name: "createAndAttachFragmentShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$4, $String], [$error], false)}, {prop: "createTexture", name: "createTexture", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([types.GLEnum, types.GLEnum, $Int, $Int], [ptrType$5], false)}];
194010
194250
  ptrType$1.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)}];
194011
194251
  ptrType$12.methods = [{prop: "slice", name: "slice", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [js.Value], false)}];
194012
194252
  ptrType$8.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$13], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
194013
- windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexY", name: "imageTexY", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "imageTexU", name: "imageTexU", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "imageTexV", name: "imageTexV", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "vertexArray", name: "vertexArray", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}]);
194253
+ windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexY", name: "imageTexY", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "imageTexU", name: "imageTexU", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "imageTexV", name: "imageTexV", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "vertexArray", name: "vertexArray", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$7, tag: ""}, {prop: "frontEvents", name: "frontEvents", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "backEvents", name: "backEvents", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "eventWake", name: "eventWake", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}]);
194014
194254
  screenImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
194015
194255
  ArrayBufferSlice.init("", [{prop: "ArrayBuffer", name: "ArrayBuffer", embedded: false, exported: true, typ: js.Value, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Length", name: "Length", embedded: false, exported: true, typ: $Int, tag: ""}]);
194016
194256
  YCbCrJS.init("", [{prop: "Y", name: "Y", embedded: false, exported: true, typ: ArrayBufferSlice, tag: ""}, {prop: "Cb", name: "Cb", embedded: false, exported: true, typ: ArrayBufferSlice, tag: ""}, {prop: "Cr", name: "Cr", embedded: false, exported: true, typ: ArrayBufferSlice, tag: ""}, {prop: "YStride", name: "YStride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "CStride", name: "CStride", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "SubsampleRatio", name: "SubsampleRatio", embedded: false, exported: true, typ: image.YCbCrSubsampleRatio, tag: ""}, {prop: "Rect", name: "Rect", embedded: false, exported: true, typ: image.Rectangle, tag: ""}, {prop: "Use", name: "Use", embedded: false, exported: true, typ: $Bool, tag: ""}]);
@@ -196293,7 +196533,8 @@ $packages["github.com/supraio/client-daemon/pkg/render/player"] = (function() {
196293
196533
  return $pkg;
196294
196534
  })();
196295
196535
  $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (function() {
196296
- var $pkg = {}, $init, errs, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, newWindow, newScreenImpl, Main, main, newBuffer;
196536
+ var $pkg = {}, $init, fmt, errs, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, ptrType$2, funcType, arrayType, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, newWindow, overlayDimension, newScreenImpl, Main, MainForTarget, main, newBuffer;
196537
+ fmt = $packages["fmt"];
196297
196538
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
196298
196539
  dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
196299
196540
  screen = $packages["golang.org/x/exp/shiny/screen"];
@@ -196303,13 +196544,15 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196303
196544
  draw = $packages["image/draw"];
196304
196545
  sync = $packages["sync"];
196305
196546
  js = $packages["syscall/js"];
196306
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "overlaydriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(screen_, mutex_, renderingInProgress_, domEvents_, released_) {
196547
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "overlaydriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(screen_, mutex_, renderingInProgress_, domEvents_, inputTarget_, ownsInputTarget_, released_) {
196307
196548
  this.$val = this;
196308
196549
  if (arguments.length === 0) {
196309
196550
  this.screen = ptrType.nil;
196310
196551
  this.mutex = ptrType$1.nil;
196311
196552
  this.renderingInProgress = false;
196312
196553
  this.domEvents = ptrType$2.nil;
196554
+ this.inputTarget = new js.Value.ptr(null, false, arrayType.zero());
196555
+ this.ownsInputTarget = false;
196313
196556
  this.released = false;
196314
196557
  return;
196315
196558
  }
@@ -196317,15 +196560,19 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196317
196560
  this.mutex = mutex_;
196318
196561
  this.renderingInProgress = renderingInProgress_;
196319
196562
  this.domEvents = domEvents_;
196563
+ this.inputTarget = inputTarget_;
196564
+ this.ownsInputTarget = ownsInputTarget_;
196320
196565
  this.released = released_;
196321
196566
  });
196322
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "overlaydriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(doc_) {
196567
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "overlaydriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", false, function(doc_, inputTarget_) {
196323
196568
  this.$val = this;
196324
196569
  if (arguments.length === 0) {
196325
196570
  this.doc = new js.Value.ptr(null, false, arrayType.zero());
196571
+ this.inputTarget = new js.Value.ptr(null, false, arrayType.zero());
196326
196572
  return;
196327
196573
  }
196328
196574
  this.doc = doc_;
196575
+ this.inputTarget = inputTarget_;
196329
196576
  });
196330
196577
  BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "overlaydriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", true, function(screen_, size_) {
196331
196578
  this.$val = this;
@@ -196351,7 +196598,7 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196351
196598
  ptrType$7 = $ptrType(image.YCbCr);
196352
196599
  ptrType$8 = $ptrType(BufferImpl);
196353
196600
  newWindow = function(screen$1, opts) {
196354
- var {_r, _r$1, domEvents, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
196601
+ var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, domEvents, inputTarget, opts, ownsInputTarget, screen$1, style, w, $s, $r, $c} = $restore(this, {screen$1, opts});
196355
196602
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196356
196603
  /* */ if (!(opts.Title === "")) { $s = 1; continue; }
196357
196604
  /* */ $s = 2; continue;
@@ -196360,14 +196607,52 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196360
196607
  _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
196361
196608
  $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196362
196609
  /* } */ case 2:
196363
- domEvents = dom.NewDomEvents();
196364
- w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), false, domEvents, false);
196365
- $r = domEvents.BindEvents(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196610
+ inputTarget = $clone(screen$1.inputTarget, js.Value);
196611
+ ownsInputTarget = false;
196612
+ /* */ if ($clone(inputTarget, js.Value).IsNull() || $clone(inputTarget, js.Value).IsUndefined()) { $s = 6; continue; }
196613
+ /* */ $s = 7; continue;
196614
+ /* if ($clone(inputTarget, js.Value).IsNull() || $clone(inputTarget, js.Value).IsUndefined()) { */ case 6:
196615
+ _r$2 = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("div")])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
196616
+ js.Value.copy(inputTarget, _r$2);
196617
+ style = $clone($clone(inputTarget, js.Value).Get("style"), js.Value);
196618
+ $clone(style, js.Value).Set("position", new $String("fixed"));
196619
+ _r$3 = fmt.Sprintf("%dpx", new sliceType([new $Int(opts.X)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
196620
+ _arg = new $String(_r$3);
196621
+ $r = $clone(style, js.Value).Set("left", _arg); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196622
+ _r$4 = fmt.Sprintf("%dpx", new sliceType([new $Int(opts.Y)])); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
196623
+ _arg$1 = new $String(_r$4);
196624
+ $r = $clone(style, js.Value).Set("top", _arg$1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196625
+ _r$5 = overlayDimension(opts.Width, $clone($clone($clone(screen$1.doc, js.Value).Get("documentElement"), js.Value).Get("clientWidth"), js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
196626
+ _arg$2 = new $String(_r$5);
196627
+ $r = $clone(style, js.Value).Set("width", _arg$2); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196628
+ _r$6 = overlayDimension(opts.Height, $clone($clone($clone(screen$1.doc, js.Value).Get("documentElement"), js.Value).Get("clientHeight"), js.Value)); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
196629
+ _arg$3 = new $String(_r$6);
196630
+ $r = $clone(style, js.Value).Set("height", _arg$3); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196631
+ $clone(style, js.Value).Set("zIndex", new $String("2147483647"));
196632
+ _r$7 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new inputTarget.constructor.elem(inputTarget)])); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
196633
+ _r$7;
196634
+ ownsInputTarget = true;
196635
+ /* } */ case 7:
196636
+ $clone($clone(inputTarget, js.Value).Get("style"), js.Value).Set("touchAction", new $String("none"));
196637
+ domEvents = dom.NewDomEventsForTarget($clone(inputTarget, js.Value));
196638
+ w = new windowImpl.ptr(screen$1, new sync.Mutex.ptr(0, 0), false, domEvents, $clone(inputTarget, js.Value), ownsInputTarget, false);
196639
+ $r = domEvents.BindEvents(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196366
196640
  $s = -1; return w;
196367
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, domEvents, opts, screen$1, w, $s};return $f;
196641
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, domEvents, inputTarget, opts, ownsInputTarget, screen$1, style, w, $s};return $f;
196642
+ };
196643
+ overlayDimension = function(size, fallback) {
196644
+ var {$24r, _r, fallback, size, $s, $r, $c} = $restore(this, {size, fallback});
196645
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196646
+ if (size <= 0) {
196647
+ size = $clone(fallback, js.Value).Int();
196648
+ }
196649
+ _r = fmt.Sprintf("%dpx", new sliceType([new $Int(size)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196650
+ $24r = _r;
196651
+ $s = 2; case 2: return $24r;
196652
+ /* */ } return; } var $f = {$blk: overlayDimension, $c: true, $r, $24r, _r, fallback, size, $s};return $f;
196368
196653
  };
196369
196654
  windowImpl.ptr.prototype.Release = function() {
196370
- var {w, $s, $deferred, $r, $c} = $restore(this, {});
196655
+ var {_r, parent, w, x, $s, $deferred, $r, $c} = $restore(this, {});
196371
196656
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
196372
196657
  w = this;
196373
196658
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -196378,9 +196663,20 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196378
196663
  $s = 4; case 4: return;
196379
196664
  /* } */ case 3:
196380
196665
  $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196666
+ /* */ if (w.ownsInputTarget) { $s = 6; continue; }
196667
+ /* */ $s = 7; continue;
196668
+ /* if (w.ownsInputTarget) { */ case 6:
196669
+ parent = $clone($clone(w.inputTarget, js.Value).Get("parentNode"), js.Value);
196670
+ /* */ if (!$clone(parent, js.Value).IsNull() && !$clone(parent, js.Value).IsUndefined()) { $s = 8; continue; }
196671
+ /* */ $s = 9; continue;
196672
+ /* if (!$clone(parent, js.Value).IsNull() && !$clone(parent, js.Value).IsUndefined()) { */ case 8:
196673
+ _r = $clone(parent, js.Value).Call("removeChild", new sliceType([(x = w.inputTarget, new x.constructor.elem(x))])); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196674
+ _r;
196675
+ /* } */ case 9:
196676
+ /* } */ case 7:
196381
196677
  w.released = true;
196382
196678
  $s = -1; return;
196383
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
196679
+ /* */ } 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, parent, w, x, $s, $deferred};return $f; } }
196384
196680
  };
196385
196681
  windowImpl.prototype.Release = function() { return this.$val.Release(); };
196386
196682
  windowImpl.ptr.prototype.Publish = function() {
@@ -196520,9 +196816,9 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196520
196816
  $panic(new $String("Not implemented"));
196521
196817
  };
196522
196818
  windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
196523
- newScreenImpl = function() {
196524
- var s;
196525
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
196819
+ newScreenImpl = function(inputTarget) {
196820
+ var inputTarget, s;
196821
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value), $clone(inputTarget, js.Value));
196526
196822
  return [s, $ifaceNil];
196527
196823
  };
196528
196824
  screenImpl.ptr.prototype.NewBuffer = function(size) {
@@ -196555,7 +196851,7 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196555
196851
  Main = function(f) {
196556
196852
  var {_r, err, f, $s, $r, $c} = $restore(this, {f});
196557
196853
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196558
- _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196854
+ _r = main(f, $clone(js.Undefined(), js.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196559
196855
  err = _r;
196560
196856
  if (!($interfaceIsEqual(err, $ifaceNil))) {
196561
196857
  $panic(err);
@@ -196564,11 +196860,26 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196564
196860
  /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
196565
196861
  };
196566
196862
  $pkg.Main = Main;
196567
- main = function(f) {
196568
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
196863
+ MainForTarget = function(f, inputTarget) {
196864
+ var {_r, err, f, inputTarget, $s, $r, $c} = $restore(this, {f, inputTarget});
196865
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196866
+ if ($clone(inputTarget, js.Value).IsNull() || $clone(inputTarget, js.Value).IsUndefined()) {
196867
+ $panic(new $String("overlay renderer input target not found"));
196868
+ }
196869
+ _r = main(f, $clone(inputTarget, js.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
196870
+ err = _r;
196871
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
196872
+ $panic(err);
196873
+ }
196874
+ $s = -1; return;
196875
+ /* */ } return; } var $f = {$blk: MainForTarget, $c: true, $r, _r, err, f, inputTarget, $s};return $f;
196876
+ };
196877
+ $pkg.MainForTarget = MainForTarget;
196878
+ main = function(f, inputTarget) {
196879
+ var {_tuple, err, f, inputTarget, retErr, s, $s, $r, $c} = $restore(this, {f, inputTarget});
196569
196880
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
196570
196881
  retErr = $ifaceNil;
196571
- _tuple = newScreenImpl();
196882
+ _tuple = newScreenImpl($clone(inputTarget, js.Value));
196572
196883
  s = _tuple[0];
196573
196884
  err = _tuple[1];
196574
196885
  if (!($interfaceIsEqual(err, $ifaceNil))) {
@@ -196578,7 +196889,7 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196578
196889
  $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196579
196890
  retErr = $ifaceNil;
196580
196891
  $s = -1; return retErr;
196581
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
196892
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, inputTarget, retErr, s, $s};return $f;
196582
196893
  };
196583
196894
  newBuffer = function(screen$1, size) {
196584
196895
  var b, screen$1, size;
@@ -196621,21 +196932,22 @@ $packages["github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver"] = (
196621
196932
  ptrType$5.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: "SendNonBlocking", name: "SendNonBlocking", pkg: "", typ: $funcType([$emptyInterface], [$Bool], 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$4], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$4], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$4], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$4], [], false)}];
196622
196933
  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$6], [screen.Window, $error], false)}];
196623
196934
  ptrType$8.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$3], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
196624
- windowImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
196625
- screenImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
196935
+ windowImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "renderingInProgress", name: "renderingInProgress", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "inputTarget", name: "inputTarget", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ownsInputTarget", name: "ownsInputTarget", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
196936
+ screenImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "inputTarget", name: "inputTarget", embedded: false, exported: false, typ: js.Value, tag: ""}]);
196626
196937
  BufferImpl.init("github.com/supraio/client-daemon/pkg/shiny/driver/overlaydriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
196627
196938
  $init = function() {
196628
196939
  $pkg.$init = function() {};
196629
196940
  /* */ 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:
196630
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196631
- $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196632
- $r = screen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196633
- $r = f64.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196634
- $r = image.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196635
- $r = color.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196636
- $r = draw.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196637
- $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196638
- $r = js.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196941
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196942
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196943
+ $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196944
+ $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196945
+ $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196946
+ $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196947
+ $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196948
+ $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196949
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196950
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
196639
196951
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
196640
196952
  };
196641
196953
  $pkg.$init = $init;
@@ -198246,7 +198558,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
198246
198558
  $r = nacldriver.Main(f); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198247
198559
  $s = 6; continue;
198248
198560
  /* } else if (samsungwasmdecoder.IsAvailable()) { */ case 3:
198249
- $r = overlaydriver.Main(f); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198561
+ $r = overlaydriver.MainForTarget(f, $clone(samsungwasmdecoder.GetVideoElement(), js.Value)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
198250
198562
  $s = 6; continue;
198251
198563
  /* } else if (webcodecs.IsAvailable()) { */ case 4:
198252
198564
  $r = canvasdriver.Main(f); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }