@supraio/client-daemon-js 0.0.1-master.10 → 0.0.1-master.11

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.
@@ -135711,6 +135711,21 @@ $packages["github.com/supraio/client-daemon/pkg/window"] = (function() {
135711
135711
  $pkg.$init = $init;
135712
135712
  return $pkg;
135713
135713
  })();
135714
+ $packages["github.com/supraio/client-daemon/pkg/x264/general"] = (function() {
135715
+ var $pkg = {}, $init, image, OutputBuffer, ptrType;
135716
+ image = $packages["image"];
135717
+ OutputBuffer = $pkg.OutputBuffer = $newType(8, $kindInterface, "general.OutputBuffer", true, "github.com/supraio/client-daemon/pkg/x264/general", true, null);
135718
+ ptrType = $ptrType(image.YCbCr);
135719
+ OutputBuffer.init([{prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType], false)}]);
135720
+ $init = function() {
135721
+ $pkg.$init = function() {};
135722
+ /* */ 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:
135723
+ $r = image.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
135724
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
135725
+ };
135726
+ $pkg.$init = $init;
135727
+ return $pkg;
135728
+ })();
135714
135729
  $packages["github.com/nuberu/webgl/types"] = (function() {
135715
135730
  var $pkg = {}, $init, js, ActiveInfo, Attributes, GLEnum, PowerPreference, Buffer, FrameBuffer, RenderBuffer, Program, Shader, ShaderPrecisionFormat, Texture, UniformLocation, VertexArray, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, NewActiveInfo, NewBuffer, NewFrameBuffer, NewRenderBuffer, NewProgram, NewShader, NewShaderPrecisionFormat, NewTexture, NewUniformLocation, NewVertexArray;
135716
135731
  js = $packages["syscall/js"];
@@ -136075,7 +136090,7 @@ $packages["github.com/nuberu/webgl/extensions"] = (function() {
136075
136090
  return $pkg;
136076
136091
  })();
136077
136092
  $packages["github.com/nuberu/webgl"] = (function() {
136078
- var $pkg = {}, $init, errors, fmt, extensions, types, reflect, runtime, js, RenderingContext, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$10, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$11, ptrType$17, arrayType, arrayType$1, arrayType$2, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, sliceToByteSlice, TypedArrayOf, WrapContext, FromCanvas;
136093
+ var $pkg = {}, $init, errors, fmt, extensions, types, reflect, runtime, js, RenderingContext, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, sliceType$6, sliceType$7, sliceType$8, sliceType$9, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, sliceType$10, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$11, ptrType$17, arrayType, arrayType$1, arrayType$2, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, sliceToByteSlice, TypedArrayOf, WrapContext, FromCanvas, polyfillOldVersion;
136079
136094
  errors = $packages["errors"];
136080
136095
  fmt = $packages["fmt"];
136081
136096
  extensions = $packages["github.com/nuberu/webgl/extensions"];
@@ -136163,24 +136178,24 @@ $packages["github.com/nuberu/webgl"] = (function() {
136163
136178
  /* */ if ($assertType(_ref, sliceType$9, true)[1]) { $s = 10; continue; }
136164
136179
  /* */ $s = 11; continue;
136165
136180
  /* if ($assertType(_ref, sliceType, true)[1]) { */ case 1:
136166
- s$1[0] = _ref.$val;
136167
- h = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType));
136181
+ s$4[0] = _ref.$val;
136182
+ h = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$1(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType));
136168
136183
  $s = -1; return ((h)).$get();
136169
136184
  /* } else if ($assertType(_ref, sliceType$1, true)[1]) { */ case 2:
136170
- s$5[0] = _ref.$val;
136171
- h$1 = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType));
136185
+ s$8[0] = _ref.$val;
136186
+ h$1 = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType));
136172
136187
  h$1.Len = $imul(h$1.Len, (2));
136173
136188
  h$1.Cap = $imul(h$1.Cap, (2));
136174
136189
  $s = -1; return ((h$1)).$get();
136175
136190
  /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 3:
136176
- s$6[0] = _ref.$val;
136177
- h$2 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType));
136191
+ s$5[0] = _ref.$val;
136192
+ h$2 = ($pointerOfStructConversion(((s$5.$ptr || (s$5.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$5)))), ptrType));
136178
136193
  h$2.Len = $imul(h$2.Len, (4));
136179
136194
  h$2.Cap = $imul(h$2.Cap, (4));
136180
136195
  $s = -1; return ((h$2)).$get();
136181
136196
  /* } else if ($assertType(_ref, sliceType$3, true)[1]) { */ case 4:
136182
- s$2[0] = _ref.$val;
136183
- h$3 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType));
136197
+ s$6[0] = _ref.$val;
136198
+ h$3 = ($pointerOfStructConversion(((s$6.$ptr || (s$6.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$6)))), ptrType));
136184
136199
  h$3.Len = $imul(h$3.Len, (8));
136185
136200
  h$3.Cap = $imul(h$3.Cap, (8));
136186
136201
  $s = -1; return ((h$3)).$get();
@@ -136194,26 +136209,26 @@ $packages["github.com/nuberu/webgl"] = (function() {
136194
136209
  h$4.Cap = $imul(h$4.Cap, (2));
136195
136210
  $s = -1; return ((h$4)).$get();
136196
136211
  /* } else if ($assertType(_ref, sliceType$6, true)[1]) { */ case 7:
136197
- s$3[0] = _ref.$val;
136198
- h$5 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType));
136212
+ s$9[0] = _ref.$val;
136213
+ h$5 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType));
136199
136214
  h$5.Len = $imul(h$5.Len, (4));
136200
136215
  h$5.Cap = $imul(h$5.Cap, (4));
136201
136216
  $s = -1; return ((h$5)).$get();
136202
136217
  /* } else if ($assertType(_ref, sliceType$7, true)[1]) { */ case 8:
136203
- s$4[0] = _ref.$val;
136204
- h$6 = ($pointerOfStructConversion(((s$4.$ptr || (s$4.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$4)))), ptrType));
136218
+ s$1[0] = _ref.$val;
136219
+ h$6 = ($pointerOfStructConversion(((s$1.$ptr || (s$1.$ptr = new ptrType$7(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$1)))), ptrType));
136205
136220
  h$6.Len = $imul(h$6.Len, (8));
136206
136221
  h$6.Cap = $imul(h$6.Cap, (8));
136207
136222
  $s = -1; return ((h$6)).$get();
136208
136223
  /* } else if ($assertType(_ref, sliceType$8, true)[1]) { */ case 9:
136209
- s$8[0] = _ref.$val;
136210
- h$7 = ($pointerOfStructConversion(((s$8.$ptr || (s$8.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$8)))), ptrType));
136224
+ s$2[0] = _ref.$val;
136225
+ h$7 = ($pointerOfStructConversion(((s$2.$ptr || (s$2.$ptr = new ptrType$8(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$2)))), ptrType));
136211
136226
  h$7.Len = $imul(h$7.Len, (4));
136212
136227
  h$7.Cap = $imul(h$7.Cap, (4));
136213
136228
  $s = -1; return ((h$7)).$get();
136214
136229
  /* } else if ($assertType(_ref, sliceType$9, true)[1]) { */ case 10:
136215
- s$9[0] = _ref.$val;
136216
- h$8 = ($pointerOfStructConversion(((s$9.$ptr || (s$9.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$9)))), ptrType));
136230
+ s$3[0] = _ref.$val;
136231
+ h$8 = ($pointerOfStructConversion(((s$3.$ptr || (s$3.$ptr = new ptrType$9(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s$3)))), ptrType));
136217
136232
  h$8.Len = $imul(h$8.Len, (8));
136218
136233
  h$8.Cap = $imul(h$8.Cap, (8));
136219
136234
  $s = -1; return ((h$8)).$get();
@@ -136356,25 +136371,47 @@ $packages["github.com/nuberu/webgl"] = (function() {
136356
136371
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; canvasEl = $f.canvasEl; jsContext = $f.jsContext; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
136357
136372
  _r = $clone(canvasEl, js.Value).Call("getContext", new sliceType$10([new $String("webgl2")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
136358
136373
  jsContext = $clone(_r, js.Value);
136359
- /* */ if ($clone(jsContext, js.Value).IsUndefined()) { $s = 2; continue; }
136374
+ /* */ if ($clone(jsContext, js.Value).IsUndefined() || $clone(jsContext, js.Value).IsNull()) { $s = 2; continue; }
136360
136375
  /* */ $s = 3; continue;
136361
- /* if ($clone(jsContext, js.Value).IsUndefined()) { */ case 2:
136376
+ /* if ($clone(jsContext, js.Value).IsUndefined() || $clone(jsContext, js.Value).IsNull()) { */ case 2:
136362
136377
  _r$1 = $clone(canvasEl, js.Value).Call("getContext", new sliceType$10([new $String("webgl")])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
136363
136378
  js.Value.copy(jsContext, _r$1);
136379
+ $r = polyfillOldVersion($clone(jsContext, js.Value)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136364
136380
  /* } */ case 3:
136365
- /* */ if ($clone(jsContext, js.Value).IsUndefined()) { $s = 5; continue; }
136366
- /* */ $s = 6; continue;
136367
- /* if ($clone(jsContext, js.Value).IsUndefined()) { */ case 5:
136368
- _r$2 = $clone(canvasEl, js.Value).Call("getContext", new sliceType$10([new $String("experimental-webgl")])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
136381
+ /* */ if ($clone(jsContext, js.Value).IsUndefined() || $clone(jsContext, js.Value).IsNull()) { $s = 6; continue; }
136382
+ /* */ $s = 7; continue;
136383
+ /* if ($clone(jsContext, js.Value).IsUndefined() || $clone(jsContext, js.Value).IsNull()) { */ case 6:
136384
+ _r$2 = $clone(canvasEl, js.Value).Call("getContext", new sliceType$10([new $String("experimental-webgl")])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
136369
136385
  js.Value.copy(jsContext, _r$2);
136370
- /* } */ case 6:
136371
- if ($clone(jsContext, js.Value).IsUndefined()) {
136386
+ $r = polyfillOldVersion($clone(jsContext, js.Value)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136387
+ /* } */ case 7:
136388
+ if ($clone(jsContext, js.Value).IsUndefined() || $clone(jsContext, js.Value).IsNull()) {
136372
136389
  $s = -1; return [ptrType$10.nil, errors.New("browser might not support webgl")];
136373
136390
  }
136374
136391
  $s = -1; return [WrapContext($clone(jsContext, js.Value)), $ifaceNil];
136375
136392
  /* */ } return; } if ($f === undefined) { $f = { $blk: FromCanvas }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.canvasEl = canvasEl; $f.jsContext = jsContext; $f.$s = $s; $f.$r = $r; return $f;
136376
136393
  };
136377
136394
  $pkg.FromCanvas = FromCanvas;
136395
+ polyfillOldVersion = function(jsContext) {
136396
+ var _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, jsContext, vaoExt, x, x$1, x$2, x$3, $s, $r;
136397
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; jsContext = $f.jsContext; vaoExt = $f.vaoExt; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
136398
+ _r = $clone(jsContext, js.Value).Call("getExtension", new sliceType$10([new $String("OES_vertex_array_object")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
136399
+ vaoExt = $clone(_r, js.Value);
136400
+ _r$1 = $clone($clone(vaoExt, js.Value).Get("bindVertexArrayOES"), js.Value).Call("bind", new sliceType$10([new vaoExt.constructor.elem(vaoExt)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
136401
+ _arg = (x = _r$1, new x.constructor.elem(x));
136402
+ $r = $clone(jsContext, js.Value).Set("bindVertexArray", _arg); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136403
+ _r$2 = $clone($clone(vaoExt, js.Value).Get("createVertexArrayOES"), js.Value).Call("bind", new sliceType$10([new vaoExt.constructor.elem(vaoExt)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
136404
+ _arg$1 = (x$1 = _r$2, new x$1.constructor.elem(x$1));
136405
+ $r = $clone(jsContext, js.Value).Set("createVertexArray", _arg$1); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136406
+ _r$3 = $clone($clone(vaoExt, js.Value).Get("deleteVertexArrayOES"), js.Value).Call("bind", new sliceType$10([new vaoExt.constructor.elem(vaoExt)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
136407
+ _arg$2 = (x$2 = _r$3, new x$2.constructor.elem(x$2));
136408
+ $r = $clone(jsContext, js.Value).Set("deleteVertexArray", _arg$2); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136409
+ _r$4 = $clone($clone(vaoExt, js.Value).Get("isVertexArrayOES"), js.Value).Call("bind", new sliceType$10([new vaoExt.constructor.elem(vaoExt)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
136410
+ _arg$3 = (x$3 = _r$4, new x$3.constructor.elem(x$3));
136411
+ $r = $clone(jsContext, js.Value).Set("isVertexArray", _arg$3); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
136412
+ $s = -1; return;
136413
+ /* */ } return; } if ($f === undefined) { $f = { $blk: polyfillOldVersion }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.jsContext = jsContext; $f.vaoExt = vaoExt; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f;
136414
+ };
136378
136415
  RenderingContext.ptr.prototype.GetJs = function() {
136379
136416
  var c;
136380
136417
  c = this;
@@ -139989,112 +140026,504 @@ $packages["github.com/nuberu/webgl"] = (function() {
139989
140026
  $pkg.$init = $init;
139990
140027
  return $pkg;
139991
140028
  })();
139992
- $packages["golang.org/x/image/math/f64"] = (function() {
139993
- var $pkg = {}, $init, Aff3;
139994
- Aff3 = $pkg.Aff3 = $newType(48, $kindArray, "f64.Aff3", true, "golang.org/x/image/math/f64", true, null);
139995
- Aff3.init($Float64, 6);
139996
- $init = function() {
139997
- $pkg.$init = function() {};
139998
- /* */ 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:
139999
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
140029
+ $packages["golang.org/x/exp/shiny/driver/internal/dom"] = (function() {
140030
+ var $pkg = {}, $init, focus, key, mouse, size, geom, strings, js, DomEvents, funcType, sliceType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode, GetDocWidth, GetDocHeight, GetOrientation;
140031
+ focus = $packages["golang.org/x/mobile/event/focus"];
140032
+ key = $packages["golang.org/x/mobile/event/key"];
140033
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
140034
+ size = $packages["golang.org/x/mobile/event/size"];
140035
+ geom = $packages["golang.org/x/mobile/geom"];
140036
+ strings = $packages["strings"];
140037
+ js = $packages["syscall/js"];
140038
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "golang.org/x/exp/shiny/driver/internal/dom", true, function(eventChan_, releases_) {
140039
+ this.$val = this;
140040
+ if (arguments.length === 0) {
140041
+ this.eventChan = $chanNil;
140042
+ this.releases = sliceType.nil;
140043
+ return;
140044
+ }
140045
+ this.eventChan = eventChan_;
140046
+ this.releases = releases_;
140047
+ });
140048
+ funcType = $funcType([], [], false);
140049
+ sliceType = $sliceType(funcType);
140050
+ sliceType$1 = $sliceType($emptyInterface);
140051
+ sliceType$2 = $sliceType($Int32);
140052
+ chanType = $chanType($emptyInterface, false, false);
140053
+ ptrType = $ptrType(DomEvents);
140054
+ NewDomEvents = function() {
140055
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType, 0));
140000
140056
  };
140001
- $pkg.$init = $init;
140002
- return $pkg;
140003
- })();
140004
- $packages["image/internal/imageutil"] = (function() {
140005
- var $pkg = {}, $init, image, DrawYCbCr;
140006
- image = $packages["image"];
140007
- DrawYCbCr = function(dst, r, src, sp) {
140008
- var _1, _q, _q$1, _q$2, _q$3, _q$4, _q$5, _q$6, _q$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, b, b$1, b$2, b$3, cb1, cb1$1, cb1$2, cb1$3, ci, ci$1, ci$2, ci$3, ciBase, ciBase$1, cr1, cr1$1, cr1$2, cr1$3, dpix, dpix$1, dpix$2, dpix$3, dst, g, g$1, g$2, g$3, ok, r, r$1, r$2, r$3, r$4, rgba, rgba$1, rgba$2, rgba$3, sp, src, sx, sx$1, sy, sy$1, sy$2, sy$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x0, x1, y, y$1, y$2, y$3, y0, y1, yi, yi$1, yi$2, yi$3, yy1, yy1$1, yy1$2, yy1$3;
140009
- ok = false;
140010
- x0 = $imul(((r.Min.X - dst.Rect.Min.X >> 0)), 4);
140011
- x1 = $imul(((r.Max.X - dst.Rect.Min.X >> 0)), 4);
140012
- y0 = r.Min.Y - dst.Rect.Min.Y >> 0;
140013
- y1 = r.Max.Y - dst.Rect.Min.Y >> 0;
140014
- _1 = src.SubsampleRatio;
140057
+ $pkg.NewDomEvents = NewDomEvents;
140058
+ DomEvents.ptr.prototype.GetEventChan = function() {
140059
+ var d;
140060
+ d = this;
140061
+ return d.eventChan;
140062
+ };
140063
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
140064
+ DomEvents.ptr.prototype.Release = function() {
140065
+ var _i, _ref, d, release, $s, $r;
140066
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; d = $f.d; release = $f.release; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140067
+ d = this;
140068
+ _ref = d.releases;
140069
+ _i = 0;
140070
+ /* while (true) { */ case 1:
140071
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
140072
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
140073
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140074
+ _i++;
140075
+ /* } */ $s = 1; continue; case 2:
140076
+ $s = -1; return;
140077
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.Release }; } $f._i = _i; $f._ref = _ref; $f.d = d; $f.release = release; $f.$s = $s; $f.$r = $r; return $f;
140078
+ };
140079
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
140080
+ DomEvents.ptr.prototype.BindEvents = function() {
140081
+ var d, $s, $r;
140082
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; d = $f.d; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140083
+ d = this;
140084
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140085
+ $go($methodVal(d, "emitSizeEvent"), []);
140086
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140087
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140088
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140089
+ $s = -1; return;
140090
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.BindEvents }; } $f.d = d; $f.$s = $s; $f.$r = $r; return $f;
140091
+ };
140092
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
140093
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
140094
+ var _r, d, onResize, $s, $r;
140095
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; d = $f.d; onResize = $f.onResize; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140096
+ d = [d];
140097
+ onResize = [onResize];
140098
+ d[0] = this;
140099
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
140100
+ var args, this$1, $s, $r;
140101
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140102
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140103
+ $s = -1; return $ifaceNil;
140104
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f;
140105
+ }; })(d, onResize)), js.Func);
140106
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
140107
+ _r;
140108
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
140109
+ var _r$1, $s, $r;
140110
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140111
+ _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
140112
+ _r$1;
140113
+ $clone(onResize[0], js.Func).Release();
140114
+ $s = -1; return;
140115
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f.$s = $s; $f.$r = $r; return $f;
140116
+ }; })(d, onResize));
140117
+ $s = -1; return;
140118
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.bindSizeEvents }; } $f._r = _r; $f.d = d; $f.onResize = onResize; $f.$s = $s; $f.$r = $r; return $f;
140119
+ };
140120
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
140121
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
140122
+ var _q, _q$1, d, height, orientation, pixelsPerPt, width, x, $s, $r;
140123
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; d = $f.d; height = $f.height; orientation = $f.orientation; pixelsPerPt = $f.pixelsPerPt; width = $f.width; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140124
+ d = this;
140125
+ orientation = GetOrientation();
140126
+ pixelsPerPt = 1;
140127
+ width = GetDocWidth();
140128
+ height = GetDocHeight();
140129
+ $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140130
+ $s = -1; return;
140131
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.emitSizeEvent }; } $f._q = _q; $f._q$1 = _q$1; $f.d = d; $f.height = height; $f.orientation = orientation; $f.pixelsPerPt = pixelsPerPt; $f.width = width; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140132
+ };
140133
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
140134
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
140135
+ var _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r;
140136
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; d = $f.d; onClick = $f.onClick; onMove = $f.onMove; onWheel = $f.onWheel; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140137
+ d = [d];
140138
+ onClick = [onClick];
140139
+ onMove = [onMove];
140140
+ onWheel = [onWheel];
140141
+ d[0] = this;
140142
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
140143
+ var _r, args, this$1, x, $s, $r;
140144
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140145
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
140146
+ _r;
140147
+ $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; }
140148
+ $s = -1; return $ifaceNil;
140149
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140150
+ }; })(d, onClick, onMove, onWheel)), js.Func);
140151
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([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; }
140152
+ _r;
140153
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
140154
+ var _r$1, args, this$1, x, $s, $r;
140155
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140156
+ _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
140157
+ _r$1;
140158
+ $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; }
140159
+ $s = -1; return $ifaceNil;
140160
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140161
+ }; })(d, onClick, onMove, onWheel)), js.Func);
140162
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([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; }
140163
+ _r$1;
140164
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([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; }
140165
+ _r$2;
140166
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
140167
+ var args, this$1, x, $s, $r;
140168
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140169
+ $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; }
140170
+ $s = -1; return $ifaceNil;
140171
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140172
+ }; })(d, onClick, onMove, onWheel)), js.Func);
140173
+ _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([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; }
140174
+ _r$3;
140175
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
140176
+ var _r$4, _r$5, _r$6, _r$7, $s, $r;
140177
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140178
+ _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
140179
+ _r$4;
140180
+ _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
140181
+ _r$5;
140182
+ _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
140183
+ _r$6;
140184
+ _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
140185
+ _r$7;
140186
+ $clone(onMove[0], js.Func).Release();
140187
+ $clone(onClick[0], js.Func).Release();
140188
+ $clone(onWheel[0], js.Func).Release();
140189
+ $s = -1; return;
140190
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.$s = $s; $f.$r = $r; return $f;
140191
+ }; })(d, onClick, onMove, onWheel));
140192
+ $s = -1; return;
140193
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.bindMouseEvents }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.d = d; $f.onClick = onClick; $f.onMove = onMove; $f.onWheel = onWheel; $f.$s = $s; $f.$r = $r; return $f;
140194
+ };
140195
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
140196
+ getMouseDirection = function(ev) {
140197
+ var dir, ev;
140198
+ dir = 0;
140199
+ dir = 0;
140200
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
140201
+ dir = 1;
140202
+ }
140203
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
140204
+ dir = 2;
140205
+ }
140206
+ return dir;
140207
+ };
140208
+ getWheelButton = function(ev) {
140209
+ var deltaX, deltaY, ev;
140210
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
140211
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
140212
+ if (deltaY > 0) {
140213
+ return -2;
140214
+ }
140215
+ if (deltaY < 0) {
140216
+ return -1;
140217
+ }
140218
+ if (deltaX > 0) {
140219
+ return -4;
140220
+ }
140221
+ if (deltaX < 0) {
140222
+ return -3;
140223
+ }
140224
+ return 0;
140225
+ };
140226
+ getMouseButton = function(ev) {
140227
+ var _1, ev;
140228
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
140015
140229
  if (_1 === (0)) {
140016
- _tmp = y0;
140017
- _tmp$1 = sp.Y;
140018
- y = _tmp;
140019
- sy = _tmp$1;
140020
- while (true) {
140021
- if (!(!((y === y1)))) { break; }
140022
- dpix = $subslice(dst.Pix, ($imul(y, dst.Stride)));
140023
- yi = ($imul(((sy - src.Rect.Min.Y >> 0)), src.YStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140024
- ci = ($imul(((sy - src.Rect.Min.Y >> 0)), src.CStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140025
- x = x0;
140026
- while (true) {
140027
- if (!(!((x === x1)))) { break; }
140028
- yy1 = $imul((((x$1 = src.Y, ((yi < 0 || yi >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + yi])) >> 0)), 65793);
140029
- cb1 = (((x$2 = src.Cb, ((ci < 0 || ci >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ci])) >> 0)) - 128 >> 0;
140030
- cr1 = (((x$3 = src.Cr, ((ci < 0 || ci >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + ci])) >> 0)) - 128 >> 0;
140031
- r$1 = yy1 + ($imul(91881, cr1)) >> 0;
140032
- if (((((r$1 >>> 0)) & 4278190080) >>> 0) === 0) {
140033
- r$1 = (r$1 >> $min((16), 31)) >> 0;
140034
- } else {
140035
- r$1 = ~((r$1 >> 31 >> 0)) >> 0;
140036
- }
140037
- g = (yy1 - ($imul(22554, cb1)) >> 0) - ($imul(46802, cr1)) >> 0;
140038
- if (((((g >>> 0)) & 4278190080) >>> 0) === 0) {
140039
- g = (g >> $min((16), 31)) >> 0;
140040
- } else {
140041
- g = ~((g >> 31 >> 0)) >> 0;
140042
- }
140043
- b = yy1 + ($imul(116130, cb1)) >> 0;
140044
- if (((((b >>> 0)) & 4278190080) >>> 0) === 0) {
140045
- b = (b >> $min((16), 31)) >> 0;
140046
- } else {
140047
- b = ~((b >> 31 >> 0)) >> 0;
140048
- }
140049
- rgba = $subslice(dpix, x, (x + 4 >> 0), dpix.$length);
140050
- (0 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 0] = ((r$1 << 24 >>> 24)));
140051
- (1 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 1] = ((g << 24 >>> 24)));
140052
- (2 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 2] = ((b << 24 >>> 24)));
140053
- (3 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 3] = 255);
140054
- _tmp$2 = x + 4 >> 0;
140055
- _tmp$3 = yi + 1 >> 0;
140056
- _tmp$4 = ci + 1 >> 0;
140057
- x = _tmp$2;
140058
- yi = _tmp$3;
140059
- ci = _tmp$4;
140060
- }
140061
- _tmp$5 = y + 1 >> 0;
140062
- _tmp$6 = sy + 1 >> 0;
140063
- y = _tmp$5;
140064
- sy = _tmp$6;
140065
- }
140230
+ return 1;
140066
140231
  } else if (_1 === (1)) {
140067
- _tmp$7 = y0;
140068
- _tmp$8 = sp.Y;
140069
- y$1 = _tmp$7;
140070
- sy$1 = _tmp$8;
140071
- while (true) {
140072
- if (!(!((y$1 === y1)))) { break; }
140073
- dpix$1 = $subslice(dst.Pix, ($imul(y$1, dst.Stride)));
140074
- yi$1 = ($imul(((sy$1 - src.Rect.Min.Y >> 0)), src.YStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140075
- ciBase = ($imul(((sy$1 - src.Rect.Min.Y >> 0)), src.CStride)) - (_q = src.Rect.Min.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
140076
- _tmp$9 = x0;
140077
- _tmp$10 = sp.X;
140078
- x$4 = _tmp$9;
140079
- sx = _tmp$10;
140080
- while (true) {
140081
- if (!(!((x$4 === x1)))) { break; }
140082
- ci$1 = ciBase + (_q$1 = sx / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
140083
- yy1$1 = $imul((((x$5 = src.Y, ((yi$1 < 0 || yi$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + yi$1])) >> 0)), 65793);
140084
- cb1$1 = (((x$6 = src.Cb, ((ci$1 < 0 || ci$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + ci$1])) >> 0)) - 128 >> 0;
140085
- cr1$1 = (((x$7 = src.Cr, ((ci$1 < 0 || ci$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + ci$1])) >> 0)) - 128 >> 0;
140086
- r$2 = yy1$1 + ($imul(91881, cr1$1)) >> 0;
140087
- if (((((r$2 >>> 0)) & 4278190080) >>> 0) === 0) {
140088
- r$2 = (r$2 >> $min((16), 31)) >> 0;
140089
- } else {
140090
- r$2 = ~((r$2 >> 31 >> 0)) >> 0;
140091
- }
140092
- g$1 = (yy1$1 - ($imul(22554, cb1$1)) >> 0) - ($imul(46802, cr1$1)) >> 0;
140093
- if (((((g$1 >>> 0)) & 4278190080) >>> 0) === 0) {
140094
- g$1 = (g$1 >> $min((16), 31)) >> 0;
140095
- } else {
140096
- g$1 = ~((g$1 >> 31 >> 0)) >> 0;
140097
- }
140232
+ return 2;
140233
+ } else if (_1 === (2)) {
140234
+ return 3;
140235
+ } else if (_1 === (3)) {
140236
+ return 8;
140237
+ } else if (_1 === (4)) {
140238
+ return 9;
140239
+ } else {
140240
+ return 0;
140241
+ }
140242
+ };
140243
+ getEventModifiers = function(ev) {
140244
+ var ev, mod;
140245
+ mod = 0;
140246
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
140247
+ mod = (mod | (4)) >>> 0;
140248
+ }
140249
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
140250
+ mod = (mod | (2)) >>> 0;
140251
+ }
140252
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
140253
+ mod = (mod | (1)) >>> 0;
140254
+ }
140255
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
140256
+ mod = (mod | (8)) >>> 0;
140257
+ }
140258
+ return mod;
140259
+ };
140260
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
140261
+ var _r, _r$1, d, onFocus, $s, $r;
140262
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; d = $f.d; onFocus = $f.onFocus; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140263
+ d = [d];
140264
+ onFocus = [onFocus];
140265
+ d[0] = this;
140266
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
140267
+ var args, this$1, x, $s, $r;
140268
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140269
+ $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140270
+ $s = -1; return $ifaceNil;
140271
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140272
+ }; })(d, onFocus)), js.Func);
140273
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
140274
+ _r;
140275
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
140276
+ _r$1;
140277
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
140278
+ var _r$2, _r$3, $s, $r;
140279
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$2 = $f._r$2; _r$3 = $f._r$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140280
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
140281
+ _r$2;
140282
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
140283
+ _r$3;
140284
+ $clone(onFocus[0], js.Func).Release();
140285
+ $s = -1; return;
140286
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$2 = _r$2; $f._r$3 = _r$3; $f.$s = $s; $f.$r = $r; return $f;
140287
+ }; })(d, onFocus));
140288
+ $s = -1; return;
140289
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.bindFocusEvents }; } $f._r = _r; $f._r$1 = _r$1; $f.d = d; $f.onFocus = onFocus; $f.$s = $s; $f.$r = $r; return $f;
140290
+ };
140291
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
140292
+ isFocusIn = function(ev) {
140293
+ var ev;
140294
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
140295
+ return true;
140296
+ }
140297
+ return false;
140298
+ };
140299
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
140300
+ var _r, _r$1, d, onKey, $s, $r;
140301
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; d = $f.d; onKey = $f.onKey; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140302
+ d = [d];
140303
+ onKey = [onKey];
140304
+ d[0] = this;
140305
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
140306
+ var _r, args, this$1, x, $s, $r;
140307
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140308
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
140309
+ _r;
140310
+ $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140311
+ $s = -1; return $ifaceNil;
140312
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
140313
+ }; })(d, onKey)), js.Func);
140314
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
140315
+ _r;
140316
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$1([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
140317
+ _r$1;
140318
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
140319
+ var _r$2, _r$3, $s, $r;
140320
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$2 = $f._r$2; _r$3 = $f._r$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
140321
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
140322
+ _r$2;
140323
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$1([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
140324
+ _r$3;
140325
+ $clone(onKey[0], js.Func).Release();
140326
+ $s = -1; return;
140327
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$2 = _r$2; $f._r$3 = _r$3; $f.$s = $s; $f.$r = $r; return $f;
140328
+ }; })(d, onKey));
140329
+ $s = -1; return;
140330
+ /* */ } return; } if ($f === undefined) { $f = { $blk: DomEvents.ptr.prototype.bindKeyEvents }; } $f._r = _r; $f._r$1 = _r$1; $f.d = d; $f.onKey = onKey; $f.$s = $s; $f.$r = $r; return $f;
140331
+ };
140332
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
140333
+ getKeyRune = function(ev) {
140334
+ var ev, key$1;
140335
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
140336
+ if (key$1.$length === 1) {
140337
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
140338
+ }
140339
+ return -1;
140340
+ };
140341
+ getKeyDirection = function(ev) {
140342
+ var dir, ev;
140343
+ dir = 0;
140344
+ dir = 0;
140345
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
140346
+ dir = 1;
140347
+ }
140348
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
140349
+ dir = 2;
140350
+ }
140351
+ return dir;
140352
+ };
140353
+ getKeyCode = function(ev) {
140354
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
140355
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
140356
+ _tuple = (_entry = keyCodesMap[$String.keyFor(domCode)], _entry !== undefined ? [_entry.v, true] : [0, false]);
140357
+ code = _tuple[0];
140358
+ exists = _tuple[1];
140359
+ if (exists) {
140360
+ return code;
140361
+ }
140362
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
140363
+ _tuple$1 = (_entry$1 = keyCodesByKeyMap[$String.keyFor(domKey)], _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
140364
+ code$1 = _tuple$1[0];
140365
+ exists$1 = _tuple$1[1];
140366
+ if (exists$1) {
140367
+ return code$1;
140368
+ }
140369
+ return 0;
140370
+ };
140371
+ GetDocWidth = function() {
140372
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
140373
+ };
140374
+ $pkg.GetDocWidth = GetDocWidth;
140375
+ GetDocHeight = function() {
140376
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
140377
+ };
140378
+ $pkg.GetDocHeight = GetDocHeight;
140379
+ GetOrientation = function() {
140380
+ var orientation, orientationType, $deferred;
140381
+ /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
140382
+ orientation = 0;
140383
+ $deferred.push([(function() {
140384
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
140385
+ orientation = 0;
140386
+ }
140387
+ }), []]);
140388
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
140389
+ if (strings.HasPrefix(orientationType, "landscape")) {
140390
+ orientation = 2;
140391
+ return orientation;
140392
+ }
140393
+ if (strings.HasPrefix(orientationType, "portrait")) {
140394
+ orientation = 2;
140395
+ return orientation;
140396
+ }
140397
+ orientation = 0;
140398
+ return orientation;
140399
+ /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation; } }
140400
+ };
140401
+ $pkg.GetOrientation = GetOrientation;
140402
+ ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "golang.org/x/exp/shiny/driver/internal/dom", typ: $funcType([], [], false)}];
140403
+ DomEvents.init("golang.org/x/exp/shiny/driver/internal/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType, tag: ""}]);
140404
+ $init = function() {
140405
+ $pkg.$init = function() {};
140406
+ /* */ 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:
140407
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140408
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140409
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140410
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140411
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140412
+ $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140413
+ $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
140414
+ keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
140415
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
140416
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
140417
+ };
140418
+ $pkg.$init = $init;
140419
+ return $pkg;
140420
+ })();
140421
+ $packages["golang.org/x/image/math/f64"] = (function() {
140422
+ var $pkg = {}, $init, Aff3;
140423
+ Aff3 = $pkg.Aff3 = $newType(48, $kindArray, "f64.Aff3", true, "golang.org/x/image/math/f64", true, null);
140424
+ Aff3.init($Float64, 6);
140425
+ $init = function() {
140426
+ $pkg.$init = function() {};
140427
+ /* */ 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:
140428
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
140429
+ };
140430
+ $pkg.$init = $init;
140431
+ return $pkg;
140432
+ })();
140433
+ $packages["image/internal/imageutil"] = (function() {
140434
+ var $pkg = {}, $init, image, DrawYCbCr;
140435
+ image = $packages["image"];
140436
+ DrawYCbCr = function(dst, r, src, sp) {
140437
+ var _1, _q, _q$1, _q$2, _q$3, _q$4, _q$5, _q$6, _q$7, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, b, b$1, b$2, b$3, cb1, cb1$1, cb1$2, cb1$3, ci, ci$1, ci$2, ci$3, ciBase, ciBase$1, cr1, cr1$1, cr1$2, cr1$3, dpix, dpix$1, dpix$2, dpix$3, dst, g, g$1, g$2, g$3, ok, r, r$1, r$2, r$3, r$4, rgba, rgba$1, rgba$2, rgba$3, sp, src, sx, sx$1, sy, sy$1, sy$2, sy$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, x0, x1, y, y$1, y$2, y$3, y0, y1, yi, yi$1, yi$2, yi$3, yy1, yy1$1, yy1$2, yy1$3;
140438
+ ok = false;
140439
+ x0 = $imul(((r.Min.X - dst.Rect.Min.X >> 0)), 4);
140440
+ x1 = $imul(((r.Max.X - dst.Rect.Min.X >> 0)), 4);
140441
+ y0 = r.Min.Y - dst.Rect.Min.Y >> 0;
140442
+ y1 = r.Max.Y - dst.Rect.Min.Y >> 0;
140443
+ _1 = src.SubsampleRatio;
140444
+ if (_1 === (0)) {
140445
+ _tmp = y0;
140446
+ _tmp$1 = sp.Y;
140447
+ y = _tmp;
140448
+ sy = _tmp$1;
140449
+ while (true) {
140450
+ if (!(!((y === y1)))) { break; }
140451
+ dpix = $subslice(dst.Pix, ($imul(y, dst.Stride)));
140452
+ yi = ($imul(((sy - src.Rect.Min.Y >> 0)), src.YStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140453
+ ci = ($imul(((sy - src.Rect.Min.Y >> 0)), src.CStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140454
+ x = x0;
140455
+ while (true) {
140456
+ if (!(!((x === x1)))) { break; }
140457
+ yy1 = $imul((((x$1 = src.Y, ((yi < 0 || yi >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + yi])) >> 0)), 65793);
140458
+ cb1 = (((x$2 = src.Cb, ((ci < 0 || ci >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ci])) >> 0)) - 128 >> 0;
140459
+ cr1 = (((x$3 = src.Cr, ((ci < 0 || ci >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + ci])) >> 0)) - 128 >> 0;
140460
+ r$1 = yy1 + ($imul(91881, cr1)) >> 0;
140461
+ if (((((r$1 >>> 0)) & 4278190080) >>> 0) === 0) {
140462
+ r$1 = (r$1 >> $min((16), 31)) >> 0;
140463
+ } else {
140464
+ r$1 = ~((r$1 >> 31 >> 0)) >> 0;
140465
+ }
140466
+ g = (yy1 - ($imul(22554, cb1)) >> 0) - ($imul(46802, cr1)) >> 0;
140467
+ if (((((g >>> 0)) & 4278190080) >>> 0) === 0) {
140468
+ g = (g >> $min((16), 31)) >> 0;
140469
+ } else {
140470
+ g = ~((g >> 31 >> 0)) >> 0;
140471
+ }
140472
+ b = yy1 + ($imul(116130, cb1)) >> 0;
140473
+ if (((((b >>> 0)) & 4278190080) >>> 0) === 0) {
140474
+ b = (b >> $min((16), 31)) >> 0;
140475
+ } else {
140476
+ b = ~((b >> 31 >> 0)) >> 0;
140477
+ }
140478
+ rgba = $subslice(dpix, x, (x + 4 >> 0), dpix.$length);
140479
+ (0 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 0] = ((r$1 << 24 >>> 24)));
140480
+ (1 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 1] = ((g << 24 >>> 24)));
140481
+ (2 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 2] = ((b << 24 >>> 24)));
140482
+ (3 >= rgba.$length ? ($throwRuntimeError("index out of range"), undefined) : rgba.$array[rgba.$offset + 3] = 255);
140483
+ _tmp$2 = x + 4 >> 0;
140484
+ _tmp$3 = yi + 1 >> 0;
140485
+ _tmp$4 = ci + 1 >> 0;
140486
+ x = _tmp$2;
140487
+ yi = _tmp$3;
140488
+ ci = _tmp$4;
140489
+ }
140490
+ _tmp$5 = y + 1 >> 0;
140491
+ _tmp$6 = sy + 1 >> 0;
140492
+ y = _tmp$5;
140493
+ sy = _tmp$6;
140494
+ }
140495
+ } else if (_1 === (1)) {
140496
+ _tmp$7 = y0;
140497
+ _tmp$8 = sp.Y;
140498
+ y$1 = _tmp$7;
140499
+ sy$1 = _tmp$8;
140500
+ while (true) {
140501
+ if (!(!((y$1 === y1)))) { break; }
140502
+ dpix$1 = $subslice(dst.Pix, ($imul(y$1, dst.Stride)));
140503
+ yi$1 = ($imul(((sy$1 - src.Rect.Min.Y >> 0)), src.YStride)) + ((sp.X - src.Rect.Min.X >> 0)) >> 0;
140504
+ ciBase = ($imul(((sy$1 - src.Rect.Min.Y >> 0)), src.CStride)) - (_q = src.Rect.Min.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
140505
+ _tmp$9 = x0;
140506
+ _tmp$10 = sp.X;
140507
+ x$4 = _tmp$9;
140508
+ sx = _tmp$10;
140509
+ while (true) {
140510
+ if (!(!((x$4 === x1)))) { break; }
140511
+ ci$1 = ciBase + (_q$1 = sx / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0;
140512
+ yy1$1 = $imul((((x$5 = src.Y, ((yi$1 < 0 || yi$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + yi$1])) >> 0)), 65793);
140513
+ cb1$1 = (((x$6 = src.Cb, ((ci$1 < 0 || ci$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + ci$1])) >> 0)) - 128 >> 0;
140514
+ cr1$1 = (((x$7 = src.Cr, ((ci$1 < 0 || ci$1 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + ci$1])) >> 0)) - 128 >> 0;
140515
+ r$2 = yy1$1 + ($imul(91881, cr1$1)) >> 0;
140516
+ if (((((r$2 >>> 0)) & 4278190080) >>> 0) === 0) {
140517
+ r$2 = (r$2 >> $min((16), 31)) >> 0;
140518
+ } else {
140519
+ r$2 = ~((r$2 >> 31 >> 0)) >> 0;
140520
+ }
140521
+ g$1 = (yy1$1 - ($imul(22554, cb1$1)) >> 0) - ($imul(46802, cr1$1)) >> 0;
140522
+ if (((((g$1 >>> 0)) & 4278190080) >>> 0) === 0) {
140523
+ g$1 = (g$1 >> $min((16), 31)) >> 0;
140524
+ } else {
140525
+ g$1 = ~((g$1 >> 31 >> 0)) >> 0;
140526
+ }
140098
140527
  b$1 = yy1$1 + ($imul(116130, cb1$1)) >> 0;
140099
140528
  if (((((b$1 >>> 0)) & 4278190080) >>> 0) === 0) {
140100
140529
  b$1 = (b$1 >> $min((16), 31)) >> 0;
@@ -141520,23 +141949,18 @@ $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
141520
141949
  return $pkg;
141521
141950
  })();
141522
141951
  $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141523
- var $pkg = {}, $init, fmt, webgl, types, errscreen, imageutil, screen, f64, focus, key, mouse, size, geom, image, color, draw, strings, sync, js, ArrayBufferSlice, YCbCrJS, BufferImpl, screenImpl, windowImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, sliceType$3, ptrType$2, sliceType$4, ptrType$3, ptrType$4, ptrType$5, ptrType$6, funcType, sliceType$5, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, chanType, keyCodesMap, keyCodesByKeyMap, elementsIndices, texCoordsVertices, newBuffer, getDocWidth, getDocHeight, getOrientation, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode, newScreenImpl, Main, main, newWindow;
141952
+ var $pkg = {}, $init, fmt, webgl, types, dom, errscreen, imageutil, screen, f64, image, color, draw, sync, js, ArrayBufferSlice, YCbCrJS, BufferImpl, screenImpl, windowImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, sliceType$3, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, elementsIndices, texCoordsVertices, newBuffer, newScreenImpl, Main, main, newWindow;
141524
141953
  fmt = $packages["fmt"];
141525
141954
  webgl = $packages["github.com/nuberu/webgl"];
141526
141955
  types = $packages["github.com/nuberu/webgl/types"];
141956
+ dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
141527
141957
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
141528
141958
  imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
141529
141959
  screen = $packages["golang.org/x/exp/shiny/screen"];
141530
141960
  f64 = $packages["golang.org/x/image/math/f64"];
141531
- focus = $packages["golang.org/x/mobile/event/focus"];
141532
- key = $packages["golang.org/x/mobile/event/key"];
141533
- mouse = $packages["golang.org/x/mobile/event/mouse"];
141534
- size = $packages["golang.org/x/mobile/event/size"];
141535
- geom = $packages["golang.org/x/mobile/geom"];
141536
141961
  image = $packages["image"];
141537
141962
  color = $packages["image/color"];
141538
141963
  draw = $packages["image/draw"];
141539
- strings = $packages["strings"];
141540
141964
  sync = $packages["sync"];
141541
141965
  js = $packages["syscall/js"];
141542
141966
  ArrayBufferSlice = $pkg.ArrayBufferSlice = $newType(0, $kindStruct, "webgldriver.ArrayBufferSlice", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(ArrayBuffer_, Offset_, Length_) {
@@ -141601,7 +142025,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141601
142025
  }
141602
142026
  this.doc = doc_;
141603
142027
  });
141604
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, width_, height_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, releases_, eventChan_) {
142028
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, width_, height_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, domEvents_) {
141605
142029
  this.$val = this;
141606
142030
  if (arguments.length === 0) {
141607
142031
  this.screen = ptrType.nil;
@@ -141618,8 +142042,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141618
142042
  this.imageTexV = ptrType$5.nil;
141619
142043
  this.vertexArray = ptrType$6.nil;
141620
142044
  this.released = false;
141621
- this.releases = sliceType$5.nil;
141622
- this.eventChan = $chanNil;
142045
+ this.domEvents = ptrType$7.nil;
141623
142046
  return;
141624
142047
  }
141625
142048
  this.screen = screen_;
@@ -141636,8 +142059,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141636
142059
  this.imageTexV = imageTexV_;
141637
142060
  this.vertexArray = vertexArray_;
141638
142061
  this.released = released_;
141639
- this.releases = releases_;
141640
- this.eventChan = eventChan_;
142062
+ this.domEvents = domEvents_;
141641
142063
  });
141642
142064
  sliceType = $sliceType($Uint16);
141643
142065
  sliceType$1 = $sliceType($Float32);
@@ -141646,21 +142068,18 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141646
142068
  ptrType$1 = $ptrType(sync.Mutex);
141647
142069
  sliceType$3 = $sliceType($Uint8);
141648
142070
  ptrType$2 = $ptrType(YCbCrJS);
141649
- sliceType$4 = $sliceType($Int32);
141650
142071
  ptrType$3 = $ptrType(types.Program);
141651
142072
  ptrType$4 = $ptrType(webgl.RenderingContext);
141652
142073
  ptrType$5 = $ptrType(types.Texture);
141653
142074
  ptrType$6 = $ptrType(types.VertexArray);
141654
- funcType = $funcType([], [], false);
141655
- sliceType$5 = $sliceType(funcType);
141656
- ptrType$7 = $ptrType(BufferImpl);
141657
- ptrType$8 = $ptrType(ArrayBufferSlice);
141658
- ptrType$9 = $ptrType(image.RGBA);
141659
- ptrType$10 = $ptrType(image.YCbCr);
141660
- ptrType$11 = $ptrType(screen.NewWindowOptions);
141661
- ptrType$12 = $ptrType(screen.DrawOptions);
141662
- ptrType$13 = $ptrType(windowImpl);
141663
- chanType = $chanType($emptyInterface, false, false);
142075
+ ptrType$7 = $ptrType(dom.DomEvents);
142076
+ ptrType$8 = $ptrType(BufferImpl);
142077
+ ptrType$9 = $ptrType(ArrayBufferSlice);
142078
+ ptrType$10 = $ptrType(image.RGBA);
142079
+ ptrType$11 = $ptrType(image.YCbCr);
142080
+ ptrType$12 = $ptrType(screen.NewWindowOptions);
142081
+ ptrType$13 = $ptrType(screen.DrawOptions);
142082
+ ptrType$14 = $ptrType(windowImpl);
141664
142083
  ArrayBufferSlice.ptr.prototype.slice = function() {
141665
142084
  var _r, a, $s, $r;
141666
142085
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -141670,10 +142089,10 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141670
142089
  /* */ } return; } if ($f === undefined) { $f = { $blk: ArrayBufferSlice.ptr.prototype.slice }; } $f._r = _r; $f.a = a; $f.$s = $s; $f.$r = $r; return $f;
141671
142090
  };
141672
142091
  ArrayBufferSlice.prototype.slice = function() { return this.$val.slice(); };
141673
- newBuffer = function(screen$1, size$1) {
141674
- var _q, _q$1, _q$2, b, rect, screen$1, size$1;
141675
- rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size$1, image.Point));
141676
- b = new BufferImpl.ptr(screen$1, $clone(size$1, image.Point), new sync.Mutex.ptr(0, 0), false, new image.RGBA.ptr($makeSlice(sliceType$3, ($imul(($imul(4, size$1.X)), size$1.Y))), $imul(4, size$1.X), $clone(rect, image.Rectangle)), new image.YCbCr.ptr($makeSlice(sliceType$3, ($imul(size$1.X, size$1.Y))), $makeSlice(sliceType$3, (_q$1 = ($imul(size$1.X, size$1.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$3, (_q$2 = ($imul(size$1.X, size$1.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size$1.X, (_q = size$1.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), ptrType$2.nil);
142092
+ newBuffer = function(screen$1, size) {
142093
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
142094
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
142095
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, new image.RGBA.ptr($makeSlice(sliceType$3, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), new image.YCbCr.ptr($makeSlice(sliceType$3, ($imul(size.X, size.Y))), $makeSlice(sliceType$3, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$3, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), ptrType$2.nil);
141677
142096
  return b;
141678
142097
  };
141679
142098
  BufferImpl.ptr.prototype.Size = function() {
@@ -141729,312 +142148,6 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
141729
142148
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: BufferImpl.ptr.prototype.Release }; } $f.b = b; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
141730
142149
  };
141731
142150
  BufferImpl.prototype.Release = function() { return this.$val.Release(); };
141732
- getDocWidth = function() {
141733
- return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
141734
- };
141735
- getDocHeight = function() {
141736
- return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
141737
- };
141738
- getOrientation = function() {
141739
- var orientation, orientationType, $deferred;
141740
- /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
141741
- orientation = 0;
141742
- $deferred.push([(function() {
141743
- if (!($interfaceIsEqual($recover(), $ifaceNil))) {
141744
- orientation = 0;
141745
- }
141746
- }), []]);
141747
- orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
141748
- if (strings.HasPrefix(orientationType, "landscape")) {
141749
- orientation = 2;
141750
- return orientation;
141751
- }
141752
- if (strings.HasPrefix(orientationType, "portrait")) {
141753
- orientation = 2;
141754
- return orientation;
141755
- }
141756
- orientation = 0;
141757
- return orientation;
141758
- /* */ } catch(err) { $err = err; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation; } }
141759
- };
141760
- windowImpl.ptr.prototype.bindSizeEvents = function() {
141761
- var _r, onResize, w, $s, $r;
141762
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; onResize = $f.onResize; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141763
- onResize = [onResize];
141764
- w = [w];
141765
- w[0] = this;
141766
- onResize[0] = $clone(js.FuncOf((function(onResize, w) { return function $b(this$1, args) {
141767
- var args, this$1, $s, $r;
141768
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141769
- $r = w[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
141770
- $s = -1; return $ifaceNil;
141771
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f;
141772
- }; })(onResize, w)), js.Func);
141773
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
141774
- _r;
141775
- w[0].releases = $append(w[0].releases, (function(onResize, w) { return function $b() {
141776
- var _r$1, $s, $r;
141777
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141778
- _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
141779
- _r$1;
141780
- $clone(onResize[0], js.Func).Release();
141781
- $s = -1; return;
141782
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f.$s = $s; $f.$r = $r; return $f;
141783
- }; })(onResize, w));
141784
- $s = -1; return;
141785
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.bindSizeEvents }; } $f._r = _r; $f.onResize = onResize; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
141786
- };
141787
- windowImpl.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
141788
- windowImpl.ptr.prototype.emitSizeEvent = function() {
141789
- var _q, _q$1, height, orientation, pixelsPerPt, w, width, x, $s, $r;
141790
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; height = $f.height; orientation = $f.orientation; pixelsPerPt = $f.pixelsPerPt; w = $f.w; width = $f.width; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141791
- w = this;
141792
- orientation = getOrientation();
141793
- pixelsPerPt = 1;
141794
- width = getDocWidth();
141795
- height = getDocHeight();
141796
- $r = $send(w.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
141797
- $s = -1; return;
141798
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.emitSizeEvent }; } $f._q = _q; $f._q$1 = _q$1; $f.height = height; $f.orientation = orientation; $f.pixelsPerPt = pixelsPerPt; $f.w = w; $f.width = width; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141799
- };
141800
- windowImpl.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
141801
- windowImpl.ptr.prototype.bindMouseEvents = function() {
141802
- var _r, _r$1, _r$2, _r$3, onClick, onMove, onWheel, w, $s, $r;
141803
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; onClick = $f.onClick; onMove = $f.onMove; onWheel = $f.onWheel; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141804
- onClick = [onClick];
141805
- onMove = [onMove];
141806
- onWheel = [onWheel];
141807
- w = [w];
141808
- w[0] = this;
141809
- onMove[0] = $clone(js.FuncOf((function(onClick, onMove, onWheel, w) { return function $b(this$1, args) {
141810
- var _r, args, this$1, x, $s, $r;
141811
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141812
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
141813
- _r;
141814
- $r = $send(w[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; }
141815
- $s = -1; return $ifaceNil;
141816
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141817
- }; })(onClick, onMove, onWheel, w)), js.Func);
141818
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([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; }
141819
- _r;
141820
- onClick[0] = $clone(js.FuncOf((function(onClick, onMove, onWheel, w) { return function $b(this$1, args) {
141821
- var _r$1, args, this$1, x, $s, $r;
141822
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141823
- _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
141824
- _r$1;
141825
- $r = $send(w[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; }
141826
- $s = -1; return $ifaceNil;
141827
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141828
- }; })(onClick, onMove, onWheel, w)), js.Func);
141829
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([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; }
141830
- _r$1;
141831
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([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; }
141832
- _r$2;
141833
- onWheel[0] = $clone(js.FuncOf((function(onClick, onMove, onWheel, w) { return function $b(this$1, args) {
141834
- var args, this$1, x, $s, $r;
141835
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141836
- $r = $send(w[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; }
141837
- $s = -1; return $ifaceNil;
141838
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141839
- }; })(onClick, onMove, onWheel, w)), js.Func);
141840
- _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([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; }
141841
- _r$3;
141842
- w[0].releases = $append(w[0].releases, (function(onClick, onMove, onWheel, w) { return function $b() {
141843
- var _r$4, _r$5, _r$6, _r$7, $s, $r;
141844
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141845
- _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
141846
- _r$4;
141847
- _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
141848
- _r$5;
141849
- _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
141850
- _r$6;
141851
- _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
141852
- _r$7;
141853
- $clone(onMove[0], js.Func).Release();
141854
- $clone(onClick[0], js.Func).Release();
141855
- $clone(onWheel[0], js.Func).Release();
141856
- $s = -1; return;
141857
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.$s = $s; $f.$r = $r; return $f;
141858
- }; })(onClick, onMove, onWheel, w));
141859
- $s = -1; return;
141860
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.bindMouseEvents }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.onClick = onClick; $f.onMove = onMove; $f.onWheel = onWheel; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
141861
- };
141862
- windowImpl.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
141863
- getMouseDirection = function(ev) {
141864
- var dir, ev;
141865
- dir = 0;
141866
- dir = 0;
141867
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
141868
- dir = 1;
141869
- }
141870
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
141871
- dir = 2;
141872
- }
141873
- return dir;
141874
- };
141875
- getWheelButton = function(ev) {
141876
- var deltaX, deltaY, ev;
141877
- deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
141878
- deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
141879
- if (deltaY > 0) {
141880
- return -2;
141881
- }
141882
- if (deltaY < 0) {
141883
- return -1;
141884
- }
141885
- if (deltaX > 0) {
141886
- return -4;
141887
- }
141888
- if (deltaX < 0) {
141889
- return -3;
141890
- }
141891
- return 0;
141892
- };
141893
- getMouseButton = function(ev) {
141894
- var _1, ev;
141895
- _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
141896
- if (_1 === (0)) {
141897
- return 1;
141898
- } else if (_1 === (1)) {
141899
- return 2;
141900
- } else if (_1 === (2)) {
141901
- return 3;
141902
- } else if (_1 === (3)) {
141903
- return 8;
141904
- } else if (_1 === (4)) {
141905
- return 9;
141906
- } else {
141907
- return 0;
141908
- }
141909
- };
141910
- getEventModifiers = function(ev) {
141911
- var ev, mod;
141912
- mod = 0;
141913
- if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
141914
- mod = (mod | (4)) >>> 0;
141915
- }
141916
- if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
141917
- mod = (mod | (2)) >>> 0;
141918
- }
141919
- if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
141920
- mod = (mod | (1)) >>> 0;
141921
- }
141922
- if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
141923
- mod = (mod | (8)) >>> 0;
141924
- }
141925
- return mod;
141926
- };
141927
- windowImpl.ptr.prototype.bindFocusEvents = function() {
141928
- var _r, _r$1, onFocus, w, $s, $r;
141929
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; onFocus = $f.onFocus; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141930
- onFocus = [onFocus];
141931
- w = [w];
141932
- w[0] = this;
141933
- onFocus[0] = $clone(js.FuncOf((function(onFocus, w) { return function $b(this$1, args) {
141934
- var args, this$1, x, $s, $r;
141935
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141936
- $r = $send(w[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
141937
- $s = -1; return $ifaceNil;
141938
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141939
- }; })(onFocus, w)), js.Func);
141940
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
141941
- _r;
141942
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
141943
- _r$1;
141944
- w[0].releases = $append(w[0].releases, (function(onFocus, w) { return function $b() {
141945
- var _r$2, _r$3, $s, $r;
141946
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$2 = $f._r$2; _r$3 = $f._r$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141947
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
141948
- _r$2;
141949
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
141950
- _r$3;
141951
- $clone(onFocus[0], js.Func).Release();
141952
- $s = -1; return;
141953
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$2 = _r$2; $f._r$3 = _r$3; $f.$s = $s; $f.$r = $r; return $f;
141954
- }; })(onFocus, w));
141955
- $s = -1; return;
141956
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.bindFocusEvents }; } $f._r = _r; $f._r$1 = _r$1; $f.onFocus = onFocus; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
141957
- };
141958
- windowImpl.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
141959
- isFocusIn = function(ev) {
141960
- var ev;
141961
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
141962
- return true;
141963
- }
141964
- return false;
141965
- };
141966
- windowImpl.ptr.prototype.bindKeyEvents = function() {
141967
- var _r, _r$1, onKey, w, $s, $r;
141968
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; onKey = $f.onKey; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141969
- onKey = [onKey];
141970
- w = [w];
141971
- w[0] = this;
141972
- onKey[0] = $clone(js.FuncOf((function(onKey, w) { return function $b(this$1, args) {
141973
- var _r, args, this$1, x, $s, $r;
141974
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141975
- _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
141976
- _r;
141977
- $r = $send(w[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
141978
- $s = -1; return $ifaceNil;
141979
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
141980
- }; })(onKey, w)), js.Func);
141981
- _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
141982
- _r;
141983
- _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType$2([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
141984
- _r$1;
141985
- w[0].releases = $append(w[0].releases, (function(onKey, w) { return function $b() {
141986
- var _r$2, _r$3, $s, $r;
141987
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$2 = $f._r$2; _r$3 = $f._r$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
141988
- _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
141989
- _r$2;
141990
- _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType$2([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
141991
- _r$3;
141992
- $clone(onKey[0], js.Func).Release();
141993
- $s = -1; return;
141994
- /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$2 = _r$2; $f._r$3 = _r$3; $f.$s = $s; $f.$r = $r; return $f;
141995
- }; })(onKey, w));
141996
- $s = -1; return;
141997
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.bindKeyEvents }; } $f._r = _r; $f._r$1 = _r$1; $f.onKey = onKey; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
141998
- };
141999
- windowImpl.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
142000
- getKeyRune = function(ev) {
142001
- var ev, key$1;
142002
- key$1 = (new sliceType$4($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
142003
- if (key$1.$length === 1) {
142004
- return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
142005
- }
142006
- return -1;
142007
- };
142008
- getKeyDirection = function(ev) {
142009
- var dir, ev;
142010
- dir = 0;
142011
- dir = 0;
142012
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
142013
- dir = 1;
142014
- }
142015
- if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
142016
- dir = 2;
142017
- }
142018
- return dir;
142019
- };
142020
- getKeyCode = function(ev) {
142021
- var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
142022
- domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
142023
- _tuple = (_entry = keyCodesMap[$String.keyFor(domCode)], _entry !== undefined ? [_entry.v, true] : [0, false]);
142024
- code = _tuple[0];
142025
- exists = _tuple[1];
142026
- if (exists) {
142027
- return code;
142028
- }
142029
- domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
142030
- _tuple$1 = (_entry$1 = keyCodesByKeyMap[$String.keyFor(domKey)], _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
142031
- code$1 = _tuple$1[0];
142032
- exists$1 = _tuple$1[1];
142033
- if (exists$1) {
142034
- return code$1;
142035
- }
142036
- return 0;
142037
- };
142038
142151
  windowImpl.ptr.prototype.createBuffers = function() {
142039
142152
  var _r, _r$1, _r$2, elementBuffer, emptyFloat, floatLen, vertexArray, vertexBuffer, w, $s, $r;
142040
142153
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; elementBuffer = $f.elementBuffer; emptyFloat = $f.emptyFloat; floatLen = $f.floatLen; vertexArray = $f.vertexArray; vertexBuffer = $f.vertexBuffer; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -142261,22 +142374,22 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142261
142374
  s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
142262
142375
  return [s, $ifaceNil];
142263
142376
  };
142264
- screenImpl.ptr.prototype.NewBuffer = function(size$1) {
142265
- var buffer, s, size$1;
142377
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
142378
+ var buffer, s, size;
142266
142379
  s = this;
142267
- buffer = newBuffer(s, $clone(size$1, image.Point));
142380
+ buffer = newBuffer(s, $clone(size, image.Point));
142268
142381
  return [buffer, $ifaceNil];
142269
142382
  };
142270
- screenImpl.prototype.NewBuffer = function(size$1) { return this.$val.NewBuffer(size$1); };
142271
- screenImpl.ptr.prototype.NewTexture = function(size$1) {
142272
- var _r, s, size$1, $s, $r;
142273
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; size$1 = $f.size$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142383
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
142384
+ screenImpl.ptr.prototype.NewTexture = function(size) {
142385
+ var _r, s, size, $s, $r;
142386
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142274
142387
  s = this;
142275
142388
  _r = fmt.Errorf("Texture not implemented", new sliceType$2([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142276
142389
  $s = -1; return [$ifaceNil, _r];
142277
- /* */ } return; } if ($f === undefined) { $f = { $blk: screenImpl.ptr.prototype.NewTexture }; } $f._r = _r; $f.s = s; $f.size$1 = size$1; $f.$s = $s; $f.$r = $r; return $f;
142390
+ /* */ } return; } if ($f === undefined) { $f = { $blk: screenImpl.ptr.prototype.NewTexture }; } $f._r = _r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f;
142278
142391
  };
142279
- screenImpl.prototype.NewTexture = function(size$1) { return this.$val.NewTexture(size$1); };
142392
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
142280
142393
  screenImpl.ptr.prototype.NewWindow = function(opts) {
142281
142394
  var _r, opts, s, window, $s, $r;
142282
142395
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; opts = $f.opts; s = $f.s; window = $f.window; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
@@ -142318,20 +142431,20 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142318
142431
  /* */ } return; } if ($f === undefined) { $f = { $blk: main }; } $f._tuple = _tuple; $f.err = err; $f.f = f; $f.retErr = retErr; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
142319
142432
  };
142320
142433
  newWindow = function(screen$1, opts) {
142321
- var _q, _q$1, _q$2, _q$3, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, canvasEl, err, gl, height, opts, screen$1, w, width, $s, $r;
142322
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; canvasEl = $f.canvasEl; err = $f.err; gl = $f.gl; height = $f.height; opts = $f.opts; screen$1 = $f.screen$1; w = $f.w; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142434
+ var _q, _q$1, _q$2, _q$3, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, canvasEl, domEvents, err, gl, height, opts, screen$1, w, width, $s, $r;
142435
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; canvasEl = $f.canvasEl; domEvents = $f.domEvents; err = $f.err; gl = $f.gl; height = $f.height; opts = $f.opts; screen$1 = $f.screen$1; w = $f.w; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142323
142436
  _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType$2([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142324
142437
  canvasEl = $clone(_r, js.Value);
142325
142438
  _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType$2([new canvasEl.constructor.elem(canvasEl)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142326
142439
  _r$1;
142327
142440
  width = opts.Width;
142328
142441
  if (opts.Width === 0) {
142329
- width = getDocWidth();
142442
+ width = dom.GetDocWidth();
142330
142443
  }
142331
142444
  $r = $clone(canvasEl, js.Value).Set("width", new $Int(width)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142332
142445
  height = opts.Height;
142333
142446
  if (opts.Height === 0) {
142334
- height = getDocHeight();
142447
+ height = dom.GetDocHeight();
142335
142448
  }
142336
142449
  $r = $clone(canvasEl, js.Value).Set("height", new $Int(height)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142337
142450
  /* */ if (!(opts.Title === "")) { $s = 5; continue; }
@@ -142348,7 +142461,8 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142348
142461
  if (!($interfaceIsEqual(err, $ifaceNil))) {
142349
142462
  $panic(err);
142350
142463
  }
142351
- w = new windowImpl.ptr(screen$1, width, height, ptrType$1.nil, $clone(canvasEl, js.Value), gl, ptrType$3.nil, ptrType$5.nil, ptrType$3.nil, ptrType$5.nil, ptrType$5.nil, ptrType$5.nil, ptrType$6.nil, false, $makeSlice(sliceType$5, 0), new $Chan($emptyInterface, 0));
142464
+ domEvents = dom.NewDomEvents();
142465
+ w = new windowImpl.ptr(screen$1, width, height, ptrType$1.nil, $clone(canvasEl, js.Value), gl, ptrType$3.nil, ptrType$5.nil, ptrType$3.nil, ptrType$5.nil, ptrType$5.nil, ptrType$5.nil, ptrType$6.nil, false, domEvents);
142352
142466
  _r$5 = w.createAndLinkProgramRGBA(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
142353
142467
  _tuple$1 = _r$5;
142354
142468
  w.programRGBA = _tuple$1[0];
@@ -142376,13 +142490,9 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142376
142490
  $r = w.gl.Enable(2929); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142377
142491
  $r = w.gl.Viewport(0, 0, w.width, w.height); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142378
142492
  $r = w.clear(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142379
- $r = w.bindSizeEvents(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142380
- $go($methodVal(w, "emitSizeEvent"), []);
142381
- $r = w.bindMouseEvents(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142382
- $r = w.bindKeyEvents(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142383
- $r = w.bindFocusEvents(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142493
+ $r = domEvents.BindEvents(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142384
142494
  $s = -1; return w;
142385
- /* */ } return; } if ($f === undefined) { $f = { $blk: newWindow }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.canvasEl = canvasEl; $f.err = err; $f.gl = gl; $f.height = height; $f.opts = opts; $f.screen$1 = screen$1; $f.w = w; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
142495
+ /* */ } return; } if ($f === undefined) { $f = { $blk: newWindow }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.canvasEl = canvasEl; $f.domEvents = domEvents; $f.err = err; $f.gl = gl; $f.height = height; $f.opts = opts; $f.screen$1 = screen$1; $f.w = w; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
142386
142496
  };
142387
142497
  windowImpl.ptr.prototype.clear = function() {
142388
142498
  var w, $s, $r;
@@ -142395,8 +142505,8 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142395
142505
  };
142396
142506
  windowImpl.prototype.clear = function() { return this.$val.clear(); };
142397
142507
  windowImpl.ptr.prototype.Release = function() {
142398
- var _i, _r, _ref, release, w, $s, $deferred, $r;
142399
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; release = $f.release; w = $f.w; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
142508
+ var _r, w, $s, $deferred, $r;
142509
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; w = $f.w; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
142400
142510
  w = this;
142401
142511
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142402
142512
  $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
@@ -142405,17 +142515,10 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142405
142515
  }
142406
142516
  _r = $clone(w.canvasEl, js.Value).Call("remove", new sliceType$2([])); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142407
142517
  _r;
142408
- _ref = w.releases;
142409
- _i = 0;
142410
- /* while (true) { */ case 3:
142411
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; }
142412
- release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
142413
- $r = release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142414
- _i++;
142415
- /* } */ $s = 3; continue; case 4:
142518
+ $r = w.domEvents.Release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142416
142519
  w.released = true;
142417
142520
  $s = -1; return;
142418
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.Release }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.release = release; $f.w = w; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
142521
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.Release }; } $f._r = _r; $f.w = w; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
142419
142522
  };
142420
142523
  windowImpl.prototype.Release = function() { return this.$val.Release(); };
142421
142524
  windowImpl.ptr.prototype.Publish = function() {
@@ -142449,7 +142552,7 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142449
142552
  var _r, ev, w, $s, $r;
142450
142553
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ev = $f.ev; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142451
142554
  w = this;
142452
- _r = $recv(w.eventChan); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142555
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142453
142556
  ev = _r[0];
142454
142557
  $s = -1; return ev;
142455
142558
  /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.NextEvent }; } $f._r = _r; $f.ev = ev; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
@@ -142475,52 +142578,603 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142475
142578
  $s = -1; return;
142476
142579
  }
142477
142580
  _ref = src;
142478
- /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 1; continue; }
142581
+ /* */ if ($assertType(_ref, ptrType$8, true)[1]) { $s = 1; continue; }
142582
+ /* */ $s = 2; continue;
142583
+ /* if ($assertType(_ref, ptrType$8, true)[1]) { */ case 1:
142584
+ jsSrc = _ref.$val;
142585
+ _r = jsSrc.YCbCrJS(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142586
+ /* */ if (_r.Use) { $s = 3; continue; }
142587
+ /* */ $s = 4; continue;
142588
+ /* if (_r.Use) { */ case 3:
142589
+ _r$1 = jsSrc.YCbCrJS(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142590
+ /* */ if (!((_r$1.SubsampleRatio === 2))) { $s = 6; continue; }
142591
+ /* */ $s = 7; continue;
142592
+ /* if (!((_r$1.SubsampleRatio === 2))) { */ case 6:
142593
+ $panic(new $String("Only image.YCbCrSubsampleRatio420 SubsampleRatio is currently supported"));
142594
+ /* } */ case 7:
142595
+ _arg = $clone(dp, image.Point);
142596
+ _r$2 = jsSrc.YCbCrJS(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
142597
+ _r$3 = _r$2.Y.slice(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
142598
+ _arg$1 = $clone(_r$3, js.Value);
142599
+ _r$4 = jsSrc.YCbCrJS(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
142600
+ _r$5 = _r$4.Cb.slice(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
142601
+ _arg$2 = $clone(_r$5, js.Value);
142602
+ _r$6 = jsSrc.YCbCrJS(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
142603
+ _r$7 = _r$6.Cr.slice(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
142604
+ _arg$3 = $clone(_r$7, js.Value);
142605
+ _arg$4 = $clone(sr, image.Rectangle);
142606
+ $r = w.drawBufferYUV420JSArrayBuffers(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142607
+ $s = -1; return;
142608
+ /* } */ case 4:
142609
+ /* } */ case 2:
142610
+ _r$8 = src.YCbCr(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
142611
+ /* */ if (_r$8.SubsampleRatio === 2) { $s = 16; continue; }
142612
+ /* */ $s = 17; continue;
142613
+ /* if (_r$8.SubsampleRatio === 2) { */ case 16:
142614
+ $r = w.drawBufferYUV420($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142615
+ $s = 18; continue;
142616
+ /* } else { */ case 17:
142617
+ _r$9 = src.RGBA(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
142618
+ /* */ if (_r$9.Pix.$length === 0) { $s = 21; continue; }
142619
+ /* */ $s = 22; continue;
142620
+ /* if (_r$9.Pix.$length === 0) { */ case 21:
142621
+ $r = imageutil.ConvertYCbCrToRGBA(src); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142622
+ /* } */ case 22:
142623
+ $r = w.drawBufferRGBA($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142624
+ /* } */ case 18:
142625
+ $s = -1; return;
142626
+ /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.UploadYCbCr }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f.dp = dp; $f.jsSrc = jsSrc; $f.sr = sr; $f.src = src; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
142627
+ };
142628
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
142629
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
142630
+ var dr, op, src, w;
142631
+ w = this;
142632
+ if (w.released) {
142633
+ return;
142634
+ }
142635
+ $panic(new $String("Not implemented"));
142636
+ };
142637
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
142638
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
142639
+ var op, opts, sr, src, src2dst, w;
142640
+ w = this;
142641
+ if (w.released) {
142642
+ return;
142643
+ }
142644
+ $panic(new $String("Not implemented"));
142645
+ };
142646
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
142647
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
142648
+ var op, opts, sr, src, src2dst, w;
142649
+ w = this;
142650
+ if (w.released) {
142651
+ return;
142652
+ }
142653
+ $panic(new $String("Not implemented"));
142654
+ };
142655
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
142656
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
142657
+ var dp, op, opts, sr, src, w;
142658
+ w = this;
142659
+ if (w.released) {
142660
+ return;
142661
+ }
142662
+ $panic(new $String("Not implemented"));
142663
+ };
142664
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
142665
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
142666
+ var dr, op, opts, sr, src, w;
142667
+ w = this;
142668
+ if (w.released) {
142669
+ return;
142670
+ }
142671
+ $panic(new $String("Not implemented"));
142672
+ };
142673
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
142674
+ ptrType$9.methods = [{prop: "slice", name: "slice", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [js.Value], false)}];
142675
+ 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$10], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$11], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
142676
+ 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$12], [screen.Window, $error], false)}];
142677
+ ptrType$14.methods = [{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$3, $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)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$3, $error], false)}, {prop: "drawBufferRGBA", name: "drawBufferRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$3, $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: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$3], [$error], 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$13], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$13], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$13], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$13], [], false)}];
142678
+ 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: ""}]);
142679
+ 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: ""}]);
142680
+ BufferImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
142681
+ screenImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
142682
+ windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$3, 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: ""}]);
142683
+ $init = function() {
142684
+ $pkg.$init = function() {};
142685
+ /* */ 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:
142686
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142687
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142688
+ $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142689
+ $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142690
+ $r = errscreen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142691
+ $r = imageutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142692
+ $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142693
+ $r = f64.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142694
+ $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142695
+ $r = color.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142696
+ $r = draw.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142697
+ $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142698
+ $r = js.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142699
+ elementsIndices = new sliceType([0, 1, 3, 1, 2, 3]);
142700
+ texCoordsVertices = new sliceType$1([1, 1, 1, 0, 1, -1, 1, 1, -1, -1, 0, 1, -1, 1, 0, 0]);
142701
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142702
+ };
142703
+ $pkg.$init = $init;
142704
+ return $pkg;
142705
+ })();
142706
+ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function() {
142707
+ var $pkg = {}, $init, errs, general, webgldriver, image, js, H264Decoder, sliceType, ptrType, sliceType$1, ptrType$1, NewDecoder;
142708
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
142709
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
142710
+ webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
142711
+ image = $packages["image"];
142712
+ js = $packages["syscall/js"];
142713
+ H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "h264_decoder.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264/h264decoder", true, function(decoder_, nalBuffer_) {
142714
+ this.$val = this;
142715
+ if (arguments.length === 0) {
142716
+ this.decoder = new js.Value.ptr(null, false);
142717
+ this.nalBuffer = new js.Value.ptr(null, false);
142718
+ return;
142719
+ }
142720
+ this.decoder = decoder_;
142721
+ this.nalBuffer = nalBuffer_;
142722
+ });
142723
+ sliceType = $sliceType($emptyInterface);
142724
+ ptrType = $ptrType(webgldriver.BufferImpl);
142725
+ sliceType$1 = $sliceType($Uint8);
142726
+ ptrType$1 = $ptrType(H264Decoder);
142727
+ NewDecoder = function(header) {
142728
+ var _r, decoder, header, nalBuffer, nalBufferOffset, $s, $r;
142729
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; decoder = $f.decoder; header = $f.header; nalBuffer = $f.nalBuffer; nalBufferOffset = $f.nalBufferOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142730
+ decoder = $clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value);
142731
+ nalBufferOffset = $clone($clone(decoder, js.Value).Get("decBuffer"), js.Value);
142732
+ _r = $clone($clone($clone(decoder, js.Value).Get("memory"), js.Value).Get("HEAPU8"), js.Value).Call("subarray", new sliceType([new nalBufferOffset.constructor.elem(nalBufferOffset)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142733
+ nalBuffer = $clone(_r, js.Value);
142734
+ $s = -1; return new H264Decoder.ptr($clone(decoder, js.Value), $clone(nalBuffer, js.Value));
142735
+ /* */ } return; } if ($f === undefined) { $f = { $blk: NewDecoder }; } $f._r = _r; $f.decoder = decoder; $f.header = header; $f.nalBuffer = nalBuffer; $f.nalBufferOffset = nalBufferOffset; $f.$s = $s; $f.$r = $r; return $f;
142736
+ };
142737
+ $pkg.NewDecoder = NewDecoder;
142738
+ H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
142739
+ var _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, cSize, cStride, height, heightIndex, m, nal, outputBuffer, pHeight, pPicture, pWidth, pictureBuffer, pictureBufferOffset, pictureIndex, pictureLen, status, width, widthIndex, x, x$1, ySize, yStride, ycbcrJSImg, $s, $r;
142740
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; cSize = $f.cSize; cStride = $f.cStride; height = $f.height; heightIndex = $f.heightIndex; m = $f.m; nal = $f.nal; outputBuffer = $f.outputBuffer; pHeight = $f.pHeight; pPicture = $f.pPicture; pWidth = $f.pWidth; pictureBuffer = $f.pictureBuffer; pictureBufferOffset = $f.pictureBufferOffset; pictureIndex = $f.pictureIndex; pictureLen = $f.pictureLen; status = $f.status; width = $f.width; widthIndex = $f.widthIndex; x = $f.x; x$1 = $f.x$1; ySize = $f.ySize; yStride = $f.yStride; ycbcrJSImg = $f.ycbcrJSImg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142741
+ m = this;
142742
+ js.CopyBytesToJS($clone(m.nalBuffer, js.Value), nal);
142743
+ pPicture = $clone($clone(m.decoder, js.Value).Get("pPicture"), js.Value);
142744
+ pWidth = $clone($clone(m.decoder, js.Value).Get("pWidth"), js.Value);
142745
+ pHeight = $clone($clone(m.decoder, js.Value).Get("pHeight"), js.Value);
142746
+ _r = $clone($clone(m.decoder, js.Value).Get("asm"), js.Value).Call("decode", new sliceType([(x = $clone(m.decoder, js.Value).Get("pStorage"), new x.constructor.elem(x)), (x$1 = $clone(m.decoder, js.Value).Get("decBuffer"), new x$1.constructor.elem(x$1)), new $Int(nal.$length), new pPicture.constructor.elem(pPicture), new pWidth.constructor.elem(pWidth), new pHeight.constructor.elem(pHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142747
+ status = $clone(_r, js.Value);
142748
+ /* */ if (!(($clone(status, js.Value).Int() === 1))) { $s = 2; continue; }
142749
+ /* */ $s = 3; continue;
142750
+ /* if (!(($clone(status, js.Value).Int() === 1))) { */ case 2:
142751
+ _r$1 = errs.Errorf("Decoding failed with status code %d", new sliceType([new $Int($clone(status, js.Value).Int())])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142752
+ $s = -1; return _r$1;
142753
+ /* } */ case 3:
142754
+ widthIndex = $clone(pWidth, js.Value).Int() >> 2 >> 0;
142755
+ heightIndex = $clone(pHeight, js.Value).Int() >> 2 >> 0;
142756
+ width = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(widthIndex), js.Value).Int();
142757
+ height = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(heightIndex), js.Value).Int();
142758
+ pictureIndex = $clone(pPicture, js.Value).Int() >> 2 >> 0;
142759
+ pictureBufferOffset = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(pictureIndex), js.Value).Int();
142760
+ pictureLen = (_q = ($imul(($imul(width, height)), 3)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
142761
+ _r$2 = $clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAPU8"), js.Value).Call("subarray", new sliceType([new $Int(pictureBufferOffset), new $Int((pictureBufferOffset + pictureLen >> 0))])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
142762
+ pictureBuffer = $clone(_r$2, js.Value);
142763
+ yStride = width;
142764
+ cStride = (_q$1 = yStride / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
142765
+ ySize = $imul(yStride, height);
142766
+ cSize = (_q$2 = ($imul(cStride, height)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"));
142767
+ _r$3 = $assertType(outputBuffer, ptrType).YCbCrJS(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
142768
+ ycbcrJSImg = _r$3;
142769
+ webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Y, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), 0, ySize));
142770
+ webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Cb, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), ySize, ySize + cSize >> 0));
142771
+ webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Cr, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), ySize + cSize >> 0, ySize + ($imul(cSize, 2)) >> 0));
142772
+ ycbcrJSImg.YStride = yStride;
142773
+ ycbcrJSImg.CStride = cStride;
142774
+ ycbcrJSImg.SubsampleRatio = 2;
142775
+ image.Rectangle.copy(ycbcrJSImg.Rect, image.Rect(0, 0, width, height));
142776
+ ycbcrJSImg.Use = true;
142777
+ $s = -1; return $ifaceNil;
142778
+ /* */ } return; } if ($f === undefined) { $f = { $blk: H264Decoder.ptr.prototype.Decode }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.cSize = cSize; $f.cStride = cStride; $f.height = height; $f.heightIndex = heightIndex; $f.m = m; $f.nal = nal; $f.outputBuffer = outputBuffer; $f.pHeight = pHeight; $f.pPicture = pPicture; $f.pWidth = pWidth; $f.pictureBuffer = pictureBuffer; $f.pictureBufferOffset = pictureBufferOffset; $f.pictureIndex = pictureIndex; $f.pictureLen = pictureLen; $f.status = status; $f.width = width; $f.widthIndex = widthIndex; $f.x = x; $f.x$1 = x$1; $f.ySize = ySize; $f.yStride = yStride; $f.ycbcrJSImg = ycbcrJSImg; $f.$s = $s; $f.$r = $r; return $f;
142779
+ };
142780
+ H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
142781
+ H264Decoder.ptr.prototype.Release = function(outputBuffer) {
142782
+ var m, outputBuffer;
142783
+ m = this;
142784
+ };
142785
+ H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
142786
+ ptrType$1.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
142787
+ H264Decoder.init("github.com/supraio/client-daemon/pkg/x264/h264decoder", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "nalBuffer", name: "nalBuffer", embedded: false, exported: false, typ: js.Value, tag: ""}]);
142788
+ $init = function() {
142789
+ $pkg.$init = function() {};
142790
+ /* */ 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:
142791
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142792
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142793
+ $r = webgldriver.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142794
+ $r = image.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142795
+ $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142796
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142797
+ };
142798
+ $pkg.$init = $init;
142799
+ return $pkg;
142800
+ })();
142801
+ $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
142802
+ var $pkg = {}, $init, js, ptrType, sliceType, Await;
142803
+ js = $packages["syscall/js"];
142804
+ ptrType = $ptrType(js.Value);
142805
+ sliceType = $sliceType($emptyInterface);
142806
+ Await = function(awaitable) {
142807
+ var _arg, _arg$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred, $r;
142808
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _selection = $f._selection; awaitable = $f.awaitable; catch$1 = $f.catch$1; catchFunc = $f.catchFunc; err = $f.err; result = $f.result; then = $f.then; thenFunc = $f.thenFunc; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
142809
+ catch$1 = [catch$1];
142810
+ then = [then];
142811
+ then[0] = new $Chan(ptrType, 0);
142812
+ $deferred.push([function(_arg) { $close(_arg); }, [then[0]]]);
142813
+ thenFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
142814
+ var args, this$1, $s, $r;
142815
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142816
+ $r = $send(then[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142817
+ $s = -1; return $ifaceNil;
142818
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f;
142819
+ }; })(catch$1, then)), js.Func);
142820
+ $deferred.push([$methodVal($clone(thenFunc, js.Func), "Release"), []]);
142821
+ catch$1[0] = new $Chan(ptrType, 0);
142822
+ $deferred.push([function(_arg$1) { $close(_arg$1); }, [catch$1[0]]]);
142823
+ catchFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
142824
+ var args, this$1, $s, $r;
142825
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; args = $f.args; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142826
+ $r = $send(catch$1[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142827
+ $s = -1; return $ifaceNil;
142828
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.args = args; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f;
142829
+ }; })(catch$1, then)), js.Func);
142830
+ $deferred.push([$methodVal($clone(catchFunc, js.Func), "Release"), []]);
142831
+ _r = $clone(awaitable, js.Value).Call("then", new sliceType([new thenFunc.constructor.elem(thenFunc)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142832
+ _r$1 = $clone(_r, js.Value).Call("catch", new sliceType([new catchFunc.constructor.elem(catchFunc)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142833
+ _r$1;
142834
+ _r$2 = $select([[then[0]], [catch$1[0]]]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
142835
+ _selection = _r$2;
142836
+ if (_selection[0] === 0) {
142837
+ result = _selection[1][0];
142838
+ $s = -1; return [result, ptrType.nil];
142839
+ } else if (_selection[0] === 1) {
142840
+ err = _selection[1][0];
142841
+ $s = -1; return [ptrType.nil, err];
142842
+ }
142843
+ $s = -1; return [ptrType.nil, ptrType.nil];
142844
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType.nil, ptrType.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Await }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._selection = _selection; $f.awaitable = awaitable; $f.catch$1 = catch$1; $f.catchFunc = catchFunc; $f.err = err; $f.result = result; $f.then = then; $f.thenFunc = thenFunc; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
142845
+ };
142846
+ $pkg.Await = Await;
142847
+ $init = function() {
142848
+ $pkg.$init = function() {};
142849
+ /* */ 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:
142850
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142851
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142852
+ };
142853
+ $pkg.$init = $init;
142854
+ return $pkg;
142855
+ })();
142856
+ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
142857
+ var $pkg = {}, $init, fmt, dom, errscreen, screen, f64, image, color, draw, sync, js, YCbCrJS, BufferImpl, screenImpl, windowImpl, ptrType, ptrType$1, sliceType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newBuffer, newScreenImpl, Main, main, newWindow;
142858
+ fmt = $packages["fmt"];
142859
+ dom = $packages["golang.org/x/exp/shiny/driver/internal/dom"];
142860
+ errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
142861
+ screen = $packages["golang.org/x/exp/shiny/screen"];
142862
+ f64 = $packages["golang.org/x/image/math/f64"];
142863
+ image = $packages["image"];
142864
+ color = $packages["image/color"];
142865
+ draw = $packages["image/draw"];
142866
+ sync = $packages["sync"];
142867
+ js = $packages["syscall/js"];
142868
+ YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
142869
+ this.$val = this;
142870
+ if (arguments.length === 0) {
142871
+ this.CanvasImageSource = ptrType$3.nil;
142872
+ return;
142873
+ }
142874
+ this.CanvasImageSource = CanvasImageSource_;
142875
+ });
142876
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "canvasdriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
142877
+ this.$val = this;
142878
+ if (arguments.length === 0) {
142879
+ this.screen = ptrType.nil;
142880
+ this.size = new image.Point.ptr(0, 0);
142881
+ this.mutex = ptrType$1.nil;
142882
+ this.released = false;
142883
+ this.rgba = new image.RGBA.ptr(sliceType.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
142884
+ this.ycbcr = new image.YCbCr.ptr(sliceType.nil, sliceType.nil, sliceType.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
142885
+ this.ycbcrJS = ptrType$2.nil;
142886
+ return;
142887
+ }
142888
+ this.screen = screen_;
142889
+ this.size = size_;
142890
+ this.mutex = mutex_;
142891
+ this.released = released_;
142892
+ this.rgba = rgba_;
142893
+ this.ycbcr = ycbcr_;
142894
+ this.ycbcrJS = ycbcrJS_;
142895
+ });
142896
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
142897
+ this.$val = this;
142898
+ if (arguments.length === 0) {
142899
+ this.doc = new js.Value.ptr(null, false);
142900
+ return;
142901
+ }
142902
+ this.doc = doc_;
142903
+ });
142904
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, width_, height_, mutex_, canvasEl_, ctx2d_, released_, domEvents_) {
142905
+ this.$val = this;
142906
+ if (arguments.length === 0) {
142907
+ this.screen = ptrType.nil;
142908
+ this.width = 0;
142909
+ this.height = 0;
142910
+ this.mutex = ptrType$1.nil;
142911
+ this.canvasEl = new js.Value.ptr(null, false);
142912
+ this.ctx2d = new js.Value.ptr(null, false);
142913
+ this.released = false;
142914
+ this.domEvents = ptrType$4.nil;
142915
+ return;
142916
+ }
142917
+ this.screen = screen_;
142918
+ this.width = width_;
142919
+ this.height = height_;
142920
+ this.mutex = mutex_;
142921
+ this.canvasEl = canvasEl_;
142922
+ this.ctx2d = ctx2d_;
142923
+ this.released = released_;
142924
+ this.domEvents = domEvents_;
142925
+ });
142926
+ ptrType = $ptrType(screenImpl);
142927
+ ptrType$1 = $ptrType(sync.Mutex);
142928
+ sliceType = $sliceType($Uint8);
142929
+ ptrType$2 = $ptrType(YCbCrJS);
142930
+ ptrType$3 = $ptrType(js.Value);
142931
+ sliceType$1 = $sliceType($emptyInterface);
142932
+ ptrType$4 = $ptrType(dom.DomEvents);
142933
+ ptrType$5 = $ptrType(BufferImpl);
142934
+ ptrType$6 = $ptrType(image.RGBA);
142935
+ ptrType$7 = $ptrType(image.YCbCr);
142936
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
142937
+ ptrType$9 = $ptrType(screen.DrawOptions);
142938
+ ptrType$10 = $ptrType(windowImpl);
142939
+ newBuffer = function(screen$1, size) {
142940
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
142941
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
142942
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, new image.RGBA.ptr($makeSlice(sliceType, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), new image.YCbCr.ptr($makeSlice(sliceType, ($imul(size.X, size.Y))), $makeSlice(sliceType, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), ptrType$2.nil);
142943
+ return b;
142944
+ };
142945
+ BufferImpl.ptr.prototype.Size = function() {
142946
+ var b;
142947
+ b = this;
142948
+ return b.size;
142949
+ };
142950
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
142951
+ BufferImpl.ptr.prototype.Bounds = function() {
142952
+ var b;
142953
+ b = this;
142954
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
142955
+ };
142956
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
142957
+ BufferImpl.ptr.prototype.RGBA = function() {
142958
+ var b;
142959
+ b = this;
142960
+ return b.rgba;
142961
+ };
142962
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
142963
+ BufferImpl.ptr.prototype.YCbCr = function() {
142964
+ var b;
142965
+ b = this;
142966
+ return b.ycbcr;
142967
+ };
142968
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
142969
+ BufferImpl.ptr.prototype.YCbCrJS = function() {
142970
+ var b;
142971
+ b = this;
142972
+ if (b.ycbcrJS === ptrType$2.nil) {
142973
+ b.ycbcrJS = new YCbCrJS.ptr(ptrType$3.nil);
142974
+ }
142975
+ return b.ycbcrJS;
142976
+ };
142977
+ BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
142978
+ BufferImpl.ptr.prototype.Release = function() {
142979
+ var b, $s, $deferred, $r;
142980
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
142981
+ b = this;
142982
+ $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142983
+ $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
142984
+ if (b.released) {
142985
+ $s = -1; return;
142986
+ }
142987
+ b.released = true;
142988
+ $s = -1; return;
142989
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: BufferImpl.ptr.prototype.Release }; } $f.b = b; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
142990
+ };
142991
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
142992
+ newScreenImpl = function() {
142993
+ var s;
142994
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
142995
+ return [s, $ifaceNil];
142996
+ };
142997
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
142998
+ var buffer, s, size;
142999
+ s = this;
143000
+ buffer = newBuffer(s, $clone(size, image.Point));
143001
+ return [buffer, $ifaceNil];
143002
+ };
143003
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
143004
+ screenImpl.ptr.prototype.NewTexture = function(size) {
143005
+ var _r, s, size, $s, $r;
143006
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143007
+ s = this;
143008
+ _r = fmt.Errorf("Texture not implemented", new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143009
+ $s = -1; return [$ifaceNil, _r];
143010
+ /* */ } return; } if ($f === undefined) { $f = { $blk: screenImpl.ptr.prototype.NewTexture }; } $f._r = _r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f;
143011
+ };
143012
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
143013
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
143014
+ var _r, opts, s, window, $s, $r;
143015
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; opts = $f.opts; s = $f.s; window = $f.window; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143016
+ s = this;
143017
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143018
+ window = _r;
143019
+ $s = -1; return [window, $ifaceNil];
143020
+ /* */ } return; } if ($f === undefined) { $f = { $blk: screenImpl.ptr.prototype.NewWindow }; } $f._r = _r; $f.opts = opts; $f.s = s; $f.window = window; $f.$s = $s; $f.$r = $r; return $f;
143021
+ };
143022
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
143023
+ Main = function(f) {
143024
+ var _r, err, f, $s, $r;
143025
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143026
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143027
+ err = _r;
143028
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
143029
+ /* */ $s = 3; continue;
143030
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
143031
+ $r = f(errscreen.Stub(err)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143032
+ /* } */ case 3:
143033
+ $s = -1; return;
143034
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Main }; } $f._r = _r; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
143035
+ };
143036
+ $pkg.Main = Main;
143037
+ main = function(f) {
143038
+ var _tuple, err, f, retErr, s, $s, $r;
143039
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; f = $f.f; retErr = $f.retErr; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143040
+ retErr = $ifaceNil;
143041
+ _tuple = newScreenImpl();
143042
+ s = _tuple[0];
143043
+ err = _tuple[1];
143044
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
143045
+ retErr = err;
143046
+ $s = -1; return retErr;
143047
+ }
143048
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143049
+ retErr = $ifaceNil;
143050
+ $s = -1; return retErr;
143051
+ /* */ } return; } if ($f === undefined) { $f = { $blk: main }; } $f._tuple = _tuple; $f.err = err; $f.f = f; $f.retErr = retErr; $f.s = s; $f.$s = $s; $f.$r = $r; return $f;
143052
+ };
143053
+ newWindow = function(screen$1, opts) {
143054
+ var _r, _r$1, _r$2, _r$3, _r$4, _r$5, canvasEl, ctx2d, domEvents, height, opts, screen$1, w, width, $s, $r;
143055
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; canvasEl = $f.canvasEl; ctx2d = $f.ctx2d; domEvents = $f.domEvents; height = $f.height; opts = $f.opts; screen$1 = $f.screen$1; w = $f.w; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143056
+ _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType$1([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143057
+ canvasEl = $clone(_r, js.Value);
143058
+ _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType$1([new canvasEl.constructor.elem(canvasEl)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143059
+ _r$1;
143060
+ width = opts.Width;
143061
+ if (opts.Width === 0) {
143062
+ width = dom.GetDocWidth();
143063
+ }
143064
+ $r = $clone(canvasEl, js.Value).Set("width", new $Int(width)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143065
+ height = opts.Height;
143066
+ if (opts.Height === 0) {
143067
+ height = dom.GetDocHeight();
143068
+ }
143069
+ $r = $clone(canvasEl, js.Value).Set("height", new $Int(height)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143070
+ /* */ if (!(opts.Title === "")) { $s = 5; continue; }
143071
+ /* */ $s = 6; continue;
143072
+ /* if (!(opts.Title === "")) { */ case 5:
143073
+ _r$2 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType$1([new $String("title")])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143074
+ _r$3 = $clone(_r$2, js.Value).Call("item", new sliceType$1([new $Int(0)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143075
+ $r = $clone(_r$3, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143076
+ /* } */ case 6:
143077
+ _r$4 = $clone(canvasEl, js.Value).Call("getContext", new sliceType$1([new $String("2d")])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
143078
+ ctx2d = $clone(_r$4, js.Value);
143079
+ /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 11; continue; }
143080
+ /* */ $s = 12; continue;
143081
+ /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 11:
143082
+ _r$5 = fmt.Errorf("Cannot get 2d context of canvas", new sliceType$1([])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
143083
+ $panic(_r$5);
143084
+ /* } */ case 12:
143085
+ domEvents = dom.NewDomEvents();
143086
+ w = new windowImpl.ptr(screen$1, width, height, ptrType$1.nil, $clone(canvasEl, js.Value), $clone(ctx2d, js.Value), false, domEvents);
143087
+ $r = domEvents.BindEvents(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143088
+ $s = -1; return w;
143089
+ /* */ } return; } if ($f === undefined) { $f = { $blk: newWindow }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.canvasEl = canvasEl; $f.ctx2d = ctx2d; $f.domEvents = domEvents; $f.height = height; $f.opts = opts; $f.screen$1 = screen$1; $f.w = w; $f.width = width; $f.$s = $s; $f.$r = $r; return $f;
143090
+ };
143091
+ windowImpl.ptr.prototype.Release = function() {
143092
+ var _r, w, $s, $deferred, $r;
143093
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; w = $f.w; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
143094
+ w = this;
143095
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143096
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
143097
+ if (w.released) {
143098
+ $s = -1; return;
143099
+ }
143100
+ _r = $clone(w.canvasEl, js.Value).Call("remove", new sliceType$1([])); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143101
+ _r;
143102
+ $r = w.domEvents.Release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143103
+ w.released = true;
143104
+ $s = -1; return;
143105
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.Release }; } $f._r = _r; $f.w = w; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
143106
+ };
143107
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
143108
+ windowImpl.ptr.prototype.Publish = function() {
143109
+ var w;
143110
+ w = this;
143111
+ if (w.released) {
143112
+ return new screen.PublishResult.ptr(false);
143113
+ }
143114
+ return new screen.PublishResult.ptr(false);
143115
+ };
143116
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
143117
+ windowImpl.ptr.prototype.Send = function(event) {
143118
+ var event, w;
143119
+ w = this;
143120
+ if (w.released) {
143121
+ return;
143122
+ }
143123
+ $panic(new $String("Not implemented"));
143124
+ };
143125
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
143126
+ windowImpl.ptr.prototype.SendFirst = function(event) {
143127
+ var event, w;
143128
+ w = this;
143129
+ if (w.released) {
143130
+ return;
143131
+ }
143132
+ $panic(new $String("Not implemented"));
143133
+ };
143134
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
143135
+ windowImpl.ptr.prototype.NextEvent = function() {
143136
+ var _r, ev, w, $s, $r;
143137
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ev = $f.ev; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143138
+ w = this;
143139
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143140
+ ev = _r[0];
143141
+ $s = -1; return ev;
143142
+ /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.NextEvent }; } $f._r = _r; $f.ev = ev; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
143143
+ };
143144
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
143145
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
143146
+ var _r, dp, sr, src, w, $s, $r;
143147
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; dp = $f.dp; sr = $f.sr; src = $f.src; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143148
+ w = this;
143149
+ if (w.released) {
143150
+ $s = -1; return;
143151
+ }
143152
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143153
+ $panic(_r);
143154
+ $s = -1; return;
143155
+ /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.Upload }; } $f._r = _r; $f.dp = dp; $f.sr = sr; $f.src = src; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
143156
+ };
143157
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
143158
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
143159
+ var _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r;
143160
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; dp = $f.dp; jsSrc = $f.jsSrc; sr = $f.sr; src = $f.src; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143161
+ w = this;
143162
+ if (w.released) {
143163
+ $s = -1; return;
143164
+ }
143165
+ _ref = src;
143166
+ /* */ if ($assertType(_ref, ptrType$5, true)[1]) { $s = 1; continue; }
142479
143167
  /* */ $s = 2; continue;
142480
- /* if ($assertType(_ref, ptrType$7, true)[1]) { */ case 1:
143168
+ /* if ($assertType(_ref, ptrType$5, true)[1]) { */ case 1:
142481
143169
  jsSrc = _ref.$val;
142482
- _r = jsSrc.YCbCrJS(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142483
- /* */ if (_r.Use) { $s = 3; continue; }
142484
- /* */ $s = 4; continue;
142485
- /* if (_r.Use) { */ case 3:
142486
- _r$1 = jsSrc.YCbCrJS(); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142487
- /* */ if (!((_r$1.SubsampleRatio === 2))) { $s = 6; continue; }
142488
- /* */ $s = 7; continue;
142489
- /* if (!((_r$1.SubsampleRatio === 2))) { */ case 6:
142490
- $panic(new $String("Only image.YCbCrSubsampleRatio420 SubsampleRatio is currently supported"));
142491
- /* } */ case 7:
142492
- _arg = $clone(dp, image.Point);
142493
- _r$2 = jsSrc.YCbCrJS(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
142494
- _r$3 = _r$2.Y.slice(); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
142495
- _arg$1 = $clone(_r$3, js.Value);
142496
- _r$4 = jsSrc.YCbCrJS(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
142497
- _r$5 = _r$4.Cb.slice(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
142498
- _arg$2 = $clone(_r$5, js.Value);
142499
- _r$6 = jsSrc.YCbCrJS(); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
142500
- _r$7 = _r$6.Cr.slice(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
142501
- _arg$3 = $clone(_r$7, js.Value);
142502
- _arg$4 = $clone(sr, image.Rectangle);
142503
- $r = w.drawBufferYUV420JSArrayBuffers(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142504
- $s = -1; return;
142505
- /* } */ case 4:
143170
+ _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType$1([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143171
+ _r;
143172
+ $s = -1; return;
142506
143173
  /* } */ case 2:
142507
- _r$8 = src.YCbCr(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
142508
- /* */ if (_r$8.SubsampleRatio === 2) { $s = 16; continue; }
142509
- /* */ $s = 17; continue;
142510
- /* if (_r$8.SubsampleRatio === 2) { */ case 16:
142511
- $r = w.drawBufferYUV420($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142512
- $s = 18; continue;
142513
- /* } else { */ case 17:
142514
- _r$9 = src.RGBA(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
142515
- /* */ if (_r$9.Pix.$length === 0) { $s = 21; continue; }
142516
- /* */ $s = 22; continue;
142517
- /* if (_r$9.Pix.$length === 0) { */ case 21:
142518
- $r = imageutil.ConvertYCbCrToRGBA(src); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142519
- /* } */ case 22:
142520
- $r = w.drawBufferRGBA($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142521
- /* } */ case 18:
143174
+ _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", new sliceType$1([])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143175
+ $panic(_r$1);
142522
143176
  $s = -1; return;
142523
- /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.UploadYCbCr }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f.dp = dp; $f.jsSrc = jsSrc; $f.sr = sr; $f.src = src; $f.w = w; $f.$s = $s; $f.$r = $r; return $f;
143177
+ /* */ } return; } if ($f === undefined) { $f = { $blk: windowImpl.ptr.prototype.UploadYCbCr }; } $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f.dp = dp; $f.jsSrc = jsSrc; $f.sr = sr; $f.src = src; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
142524
143178
  };
142525
143179
  windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
142526
143180
  windowImpl.ptr.prototype.Fill = function(dr, src, op) {
@@ -142568,160 +143222,360 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
142568
143222
  $panic(new $String("Not implemented"));
142569
143223
  };
142570
143224
  windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
142571
- ptrType$8.methods = [{prop: "slice", name: "slice", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [js.Value], false)}];
142572
- ptrType$7.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$2], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
142573
- 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$11], [screen.Window, $error], false)}];
142574
- ptrType$13.methods = [{prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], 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$3, $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)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$3, $error], false)}, {prop: "drawBufferRGBA", name: "drawBufferRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$3, $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: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$3], [$error], 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$12], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$12], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$12], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$12], [], false)}];
142575
- 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: ""}]);
142576
- 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: ""}]);
142577
- BufferImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
142578
- screenImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
142579
- windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$3, 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: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}]);
143225
+ ptrType$5.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$6], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$7], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
143226
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$8], [screen.Window, $error], false)}];
143227
+ ptrType$10.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$9], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$9], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$9], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$9], [], false)}];
143228
+ YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$3, tag: ""}]);
143229
+ BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$2, tag: ""}]);
143230
+ screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
143231
+ windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
142580
143232
  $init = function() {
142581
143233
  $pkg.$init = function() {};
142582
143234
  /* */ 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:
142583
143235
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142584
- $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142585
- $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142586
- $r = errscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142587
- $r = imageutil.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142588
- $r = screen.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142589
- $r = f64.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142590
- $r = focus.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142591
- $r = key.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142592
- $r = mouse.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142593
- $r = size.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142594
- $r = geom.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142595
- $r = image.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142596
- $r = color.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142597
- $r = draw.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142598
- $r = strings.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142599
- $r = sync.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142600
- $r = js.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142601
- keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
142602
- keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
142603
- elementsIndices = new sliceType([0, 1, 3, 1, 2, 3]);
142604
- texCoordsVertices = new sliceType$1([1, 1, 1, 0, 1, -1, 1, 1, -1, -1, 0, 1, -1, 1, 0, 0]);
143236
+ $r = dom.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143237
+ $r = errscreen.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143238
+ $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143239
+ $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143240
+ $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143241
+ $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143242
+ $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143243
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143244
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142605
143245
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142606
143246
  };
142607
143247
  $pkg.$init = $init;
142608
143248
  return $pkg;
142609
143249
  })();
142610
- $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
142611
- var $pkg = {}, $init, errs, webgldriver, image, js, H264Decoder, OutputBuffer, sliceType, ptrType, sliceType$1, ptrType$1, ptrType$2, NewH264Decoder;
143250
+ $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"] = (function() {
143251
+ var $pkg = {}, $init, hex, webgl, errs, jshelper, general, canvasdriver, js, Decoder, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, funcType, NewDecoder;
143252
+ hex = $packages["encoding/hex"];
143253
+ webgl = $packages["github.com/nuberu/webgl"];
142612
143254
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
142613
- webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
142614
- image = $packages["image"];
143255
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
143256
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
143257
+ canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
142615
143258
  js = $packages["syscall/js"];
142616
- H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_, nalBuffer_) {
143259
+ Decoder = $pkg.Decoder = $newType(0, $kindStruct, "webcodecs.Decoder", true, "github.com/supraio/client-daemon/pkg/x264/webcodecs", true, function(jsVideoDecoder_, resolves_, rejects_, releaseVideoDecoder_) {
142617
143260
  this.$val = this;
142618
143261
  if (arguments.length === 0) {
142619
- this.decoder = new js.Value.ptr(null, false);
142620
- this.nalBuffer = new js.Value.ptr(null, false);
143262
+ this.jsVideoDecoder = ptrType.nil;
143263
+ this.resolves = sliceType.nil;
143264
+ this.rejects = sliceType.nil;
143265
+ this.releaseVideoDecoder = $throwNilPointerError;
142621
143266
  return;
142622
143267
  }
142623
- this.decoder = decoder_;
142624
- this.nalBuffer = nalBuffer_;
143268
+ this.jsVideoDecoder = jsVideoDecoder_;
143269
+ this.resolves = resolves_;
143270
+ this.rejects = rejects_;
143271
+ this.releaseVideoDecoder = releaseVideoDecoder_;
142625
143272
  });
142626
- OutputBuffer = $pkg.OutputBuffer = $newType(8, $kindInterface, "x264.OutputBuffer", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
142627
- sliceType = $sliceType($emptyInterface);
142628
- ptrType = $ptrType(webgldriver.BufferImpl);
142629
- sliceType$1 = $sliceType($Uint8);
142630
- ptrType$1 = $ptrType(H264Decoder);
142631
- ptrType$2 = $ptrType(image.YCbCr);
142632
- NewH264Decoder = function(header) {
142633
- var _r, decoder, header, nalBuffer, nalBufferOffset, $s, $r;
142634
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; decoder = $f.decoder; header = $f.header; nalBuffer = $f.nalBuffer; nalBufferOffset = $f.nalBufferOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142635
- decoder = $clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value);
142636
- nalBufferOffset = $clone($clone(decoder, js.Value).Get("decBuffer"), js.Value);
142637
- _r = $clone($clone($clone(decoder, js.Value).Get("memory"), js.Value).Get("HEAPU8"), js.Value).Call("subarray", new sliceType([new nalBufferOffset.constructor.elem(nalBufferOffset)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142638
- nalBuffer = $clone(_r, js.Value);
142639
- $s = -1; return [new H264Decoder.ptr($clone(decoder, js.Value), $clone(nalBuffer, js.Value)), $ifaceNil];
142640
- /* */ } return; } if ($f === undefined) { $f = { $blk: NewH264Decoder }; } $f._r = _r; $f.decoder = decoder; $f.header = header; $f.nalBuffer = nalBuffer; $f.nalBufferOffset = nalBufferOffset; $f.$s = $s; $f.$r = $r; return $f;
143273
+ sliceType = $sliceType(js.Value);
143274
+ ptrType = $ptrType(js.Value);
143275
+ sliceType$1 = $sliceType($emptyInterface);
143276
+ ptrType$1 = $ptrType(canvasdriver.BufferImpl);
143277
+ sliceType$2 = $sliceType($Uint8);
143278
+ ptrType$2 = $ptrType(Decoder);
143279
+ funcType = $funcType([], [], false);
143280
+ NewDecoder = function(header) {
143281
+ var header, rejects, resolves;
143282
+ resolves = new sliceType([]);
143283
+ rejects = new sliceType([]);
143284
+ return new Decoder.ptr(ptrType.nil, resolves, rejects, $throwNilPointerError);
142641
143285
  };
142642
- $pkg.NewH264Decoder = NewH264Decoder;
142643
- H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
142644
- var _q, _q$1, _q$2, _r, _r$1, _r$2, _r$3, cSize, cStride, height, heightIndex, m, nal, outputBuffer, pHeight, pPicture, pWidth, pictureBuffer, pictureBufferOffset, pictureIndex, pictureLen, status, width, widthIndex, x, x$1, ySize, yStride, ycbcrJSImg, $s, $r;
142645
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; cSize = $f.cSize; cStride = $f.cStride; height = $f.height; heightIndex = $f.heightIndex; m = $f.m; nal = $f.nal; outputBuffer = $f.outputBuffer; pHeight = $f.pHeight; pPicture = $f.pPicture; pWidth = $f.pWidth; pictureBuffer = $f.pictureBuffer; pictureBufferOffset = $f.pictureBufferOffset; pictureIndex = $f.pictureIndex; pictureLen = $f.pictureLen; status = $f.status; width = $f.width; widthIndex = $f.widthIndex; x = $f.x; x$1 = $f.x$1; ySize = $f.ySize; yStride = $f.yStride; ycbcrJSImg = $f.ycbcrJSImg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142646
- m = this;
142647
- js.CopyBytesToJS($clone(m.nalBuffer, js.Value), nal);
142648
- pPicture = $clone($clone(m.decoder, js.Value).Get("pPicture"), js.Value);
142649
- pWidth = $clone($clone(m.decoder, js.Value).Get("pWidth"), js.Value);
142650
- pHeight = $clone($clone(m.decoder, js.Value).Get("pHeight"), js.Value);
142651
- _r = $clone($clone(m.decoder, js.Value).Get("asm"), js.Value).Call("decode", new sliceType([(x = $clone(m.decoder, js.Value).Get("pStorage"), new x.constructor.elem(x)), (x$1 = $clone(m.decoder, js.Value).Get("decBuffer"), new x$1.constructor.elem(x$1)), new $Int(nal.$length), new pPicture.constructor.elem(pPicture), new pWidth.constructor.elem(pWidth), new pHeight.constructor.elem(pHeight)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
142652
- status = $clone(_r, js.Value);
142653
- /* */ if (!(($clone(status, js.Value).Int() === 1))) { $s = 2; continue; }
142654
- /* */ $s = 3; continue;
142655
- /* if (!(($clone(status, js.Value).Int() === 1))) { */ case 2:
142656
- _r$1 = errs.Errorf("Decoding failed with status code %d", new sliceType([new $Int($clone(status, js.Value).Int())])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
142657
- $s = -1; return _r$1;
142658
- /* } */ case 3:
142659
- widthIndex = $clone(pWidth, js.Value).Int() >> 2 >> 0;
142660
- heightIndex = $clone(pHeight, js.Value).Int() >> 2 >> 0;
142661
- width = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(widthIndex), js.Value).Int();
142662
- height = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(heightIndex), js.Value).Int();
142663
- pictureIndex = $clone(pPicture, js.Value).Int() >> 2 >> 0;
142664
- pictureBufferOffset = $clone($clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAP32"), js.Value).Index(pictureIndex), js.Value).Int();
142665
- pictureLen = (_q = ($imul(($imul(width, height)), 3)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
142666
- _r$2 = $clone($clone($clone(m.decoder, js.Value).Get("memory"), js.Value).Get("HEAPU8"), js.Value).Call("subarray", new sliceType([new $Int(pictureBufferOffset), new $Int((pictureBufferOffset + pictureLen >> 0))])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
142667
- pictureBuffer = $clone(_r$2, js.Value);
142668
- yStride = width;
142669
- cStride = (_q$1 = yStride / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"));
142670
- ySize = $imul(yStride, height);
142671
- cSize = (_q$2 = ($imul(cStride, height)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"));
142672
- _r$3 = $assertType(outputBuffer, ptrType).YCbCrJS(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
142673
- ycbcrJSImg = _r$3;
142674
- webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Y, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), 0, ySize));
142675
- webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Cb, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), ySize, ySize + cSize >> 0));
142676
- webgldriver.ArrayBufferSlice.copy(ycbcrJSImg.Cr, new webgldriver.ArrayBufferSlice.ptr($clone(pictureBuffer, js.Value), ySize + cSize >> 0, ySize + ($imul(cSize, 2)) >> 0));
142677
- ycbcrJSImg.YStride = yStride;
142678
- ycbcrJSImg.CStride = cStride;
142679
- ycbcrJSImg.SubsampleRatio = 2;
142680
- image.Rectangle.copy(ycbcrJSImg.Rect, image.Rect(0, 0, width, height));
142681
- ycbcrJSImg.Use = true;
143286
+ $pkg.NewDecoder = NewDecoder;
143287
+ Decoder.ptr.prototype.configure = function(nal) {
143288
+ var _r, _r$1, _r$2, _r$3, config, d, errorCallback, h264CodecName, init, jsVideoDecoder, nal, outputCallback, $s, $r;
143289
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; config = $f.config; d = $f.d; errorCallback = $f.errorCallback; h264CodecName = $f.h264CodecName; init = $f.init; jsVideoDecoder = $f.jsVideoDecoder; nal = $f.nal; outputCallback = $f.outputCallback; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143290
+ d = [d];
143291
+ errorCallback = [errorCallback];
143292
+ jsVideoDecoder = [jsVideoDecoder];
143293
+ outputCallback = [outputCallback];
143294
+ d[0] = this;
143295
+ _r = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143296
+ init = $clone(_r, js.Value);
143297
+ outputCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143298
+ var _i, _r$1, _ref, args, resolve, this$1, x, $s, $r;
143299
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; resolve = $f.resolve; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143300
+ _ref = d[0].resolves;
143301
+ _i = 0;
143302
+ /* while (true) { */ case 1:
143303
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143304
+ resolve = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
143305
+ _r$1 = $clone(resolve, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143306
+ _r$1;
143307
+ _i++;
143308
+ /* } */ $s = 1; continue; case 2:
143309
+ d[0].resolves = new sliceType([]);
143310
+ d[0].rejects = new sliceType([]);
143311
+ $s = -1; return $ifaceNil;
143312
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.resolve = resolve; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143313
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143314
+ errorCallback[0] = $clone(js.FuncOf((function(d, errorCallback, jsVideoDecoder, outputCallback) { return function $b(this$1, args) {
143315
+ var _i, _r$1, _ref, args, reject, this$1, x, $s, $r;
143316
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$1 = $f._r$1; _ref = $f._ref; args = $f.args; reject = $f.reject; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143317
+ _ref = d[0].rejects;
143318
+ _i = 0;
143319
+ /* while (true) { */ case 1:
143320
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
143321
+ reject = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), js.Value);
143322
+ _r$1 = $clone(reject, js.Value).Call("call", new sliceType$1([$ifaceNil, (x = (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143323
+ _r$1;
143324
+ _i++;
143325
+ /* } */ $s = 1; continue; case 2:
143326
+ d[0].resolves = new sliceType([]);
143327
+ d[0].rejects = new sliceType([]);
143328
+ $s = -1; return $ifaceNil;
143329
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._i = _i; $f._r$1 = _r$1; $f._ref = _ref; $f.args = args; $f.reject = reject; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143330
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback)), js.Func);
143331
+ $r = $clone(init, js.Value).Set("output", new outputCallback[0].constructor.elem(outputCallback[0])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143332
+ $r = $clone(init, js.Value).Set("error", new errorCallback[0].constructor.elem(errorCallback[0])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143333
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).New(new sliceType$1([new init.constructor.elem(init)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143334
+ jsVideoDecoder[0] = $clone(_r$1, js.Value);
143335
+ h264CodecName = d[0].detectCodecName(nal);
143336
+ _r$2 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143337
+ config = $clone(_r$2, js.Value);
143338
+ $r = $clone(config, js.Value).Set("codec", new $String(h264CodecName)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143339
+ $r = $clone(config, js.Value).Set("optimizeForLatency", new $Bool(true)); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143340
+ _r$3 = $clone(jsVideoDecoder[0], js.Value).Call("configure", new sliceType$1([new config.constructor.elem(config)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143341
+ _r$3;
143342
+ d[0].jsVideoDecoder = jsVideoDecoder[0];
143343
+ d[0].releaseVideoDecoder = (function(d, errorCallback, jsVideoDecoder, outputCallback) { return function() {
143344
+ d[0].jsVideoDecoder = ptrType.nil;
143345
+ d[0].releaseVideoDecoder = $throwNilPointerError;
143346
+ $clone(outputCallback[0], js.Func).Release();
143347
+ $clone(errorCallback[0], js.Func).Release();
143348
+ }; })(d, errorCallback, jsVideoDecoder, outputCallback);
143349
+ $s = -1; return;
143350
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.configure }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.config = config; $f.d = d; $f.errorCallback = errorCallback; $f.h264CodecName = h264CodecName; $f.init = init; $f.jsVideoDecoder = jsVideoDecoder; $f.nal = nal; $f.outputCallback = outputCallback; $f.$s = $s; $f.$r = $r; return $f;
143351
+ };
143352
+ Decoder.prototype.configure = function(nal) { return this.$val.configure(nal); };
143353
+ Decoder.ptr.prototype.detectCodecName = function(nal) {
143354
+ var codecName, d, nal;
143355
+ d = this;
143356
+ codecName = "avc1." + hex.EncodeToString($subslice(nal, 5, 8));
143357
+ return codecName;
143358
+ };
143359
+ Decoder.prototype.detectCodecName = function(nal) { return this.$val.detectCodecName(nal); };
143360
+ Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
143361
+ var _arg, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, chunk, chunkOpts, d, err, errDec, errMessage, frame, frameData, framePromise, framePromiseCb, frameType, nal, outputBuffer, racePromise, timeoutPromise, timeoutPromiseCb, x, ycbcrJSImg, $s, $r;
143362
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; chunk = $f.chunk; chunkOpts = $f.chunkOpts; d = $f.d; err = $f.err; errDec = $f.errDec; errMessage = $f.errMessage; frame = $f.frame; frameData = $f.frameData; framePromise = $f.framePromise; framePromiseCb = $f.framePromiseCb; frameType = $f.frameType; nal = $f.nal; outputBuffer = $f.outputBuffer; racePromise = $f.racePromise; timeoutPromise = $f.timeoutPromise; timeoutPromiseCb = $f.timeoutPromiseCb; x = $f.x; ycbcrJSImg = $f.ycbcrJSImg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143363
+ d = [d];
143364
+ d[0] = this;
143365
+ frameType = "delta";
143366
+ /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
143367
+ /* */ $s = 2; continue;
143368
+ /* if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { */ case 1:
143369
+ frameType = "key";
143370
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 3; continue; }
143371
+ /* */ $s = 4; continue;
143372
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 3:
143373
+ $r = d[0].configure(nal); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143374
+ /* } */ case 4:
143375
+ /* } */ case 2:
143376
+ /* */ if (d[0].jsVideoDecoder === ptrType.nil) { $s = 6; continue; }
143377
+ /* */ $s = 7; continue;
143378
+ /* if (d[0].jsVideoDecoder === ptrType.nil) { */ case 6:
143379
+ _r = errs.Errorf("Key frame with SPS & IDR is required at the beginning", new sliceType$1([])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143380
+ $s = -1; return _r;
143381
+ /* } */ case 7:
143382
+ _r$1 = $clone($clone(js.Global(), js.Value).Get("Object"), js.Value).New(new sliceType$1([])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143383
+ chunkOpts = $clone(_r$1, js.Value);
143384
+ _r$2 = webgl.TypedArrayOf(nal); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143385
+ frameData = $clone(_r$2, js.Value);
143386
+ $r = $clone(chunkOpts, js.Value).Set("type", new $String(frameType)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143387
+ $r = $clone(chunkOpts, js.Value).Set("data", new frameData.constructor.elem(frameData)); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143388
+ $r = $clone(chunkOpts, js.Value).Set("timestamp", new $Int(0)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143389
+ _r$3 = $clone($clone(js.Global(), js.Value).Get("EncodedVideoChunk"), js.Value).New(new sliceType$1([new chunkOpts.constructor.elem(chunkOpts)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143390
+ chunk = $clone(_r$3, js.Value);
143391
+ _r$4 = d[0].jsSafeDecode($clone(chunk, js.Value)); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
143392
+ errDec = _r$4;
143393
+ /* */ if (!($interfaceIsEqual(errDec, $ifaceNil))) { $s = 16; continue; }
143394
+ /* */ $s = 17; continue;
143395
+ /* if (!($interfaceIsEqual(errDec, $ifaceNil))) { */ case 16:
143396
+ /* */ if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { $s = 18; continue; }
143397
+ /* */ $s = 19; continue;
143398
+ /* if ($clone($clone(d[0].jsVideoDecoder, js.Value).Get("state"), js.Value).String() === "closed") { */ case 18:
143399
+ $r = d[0].releaseVideoDecoder(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143400
+ /* } */ case 19:
143401
+ $s = -1; return errDec;
143402
+ /* } */ case 17:
143403
+ framePromiseCb = $clone(js.FuncOf((function(d) { return function(this$1, args) {
143404
+ var args, this$1;
143405
+ d[0].resolves = $append(d[0].resolves, (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]));
143406
+ d[0].rejects = $append(d[0].rejects, (1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]));
143407
+ return $ifaceNil;
143408
+ }; })(d)), js.Func);
143409
+ _r$5 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new framePromiseCb.constructor.elem(framePromiseCb)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
143410
+ framePromise = $clone(_r$5, js.Value);
143411
+ timeoutPromiseCb = $clone(js.FuncOf((function(d) { return function $b(this$1, args) {
143412
+ var _arg, _r$6, _r$7, args, this$1, x, $s, $r;
143413
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r$6 = $f._r$6; _r$7 = $f._r$7; args = $f.args; this$1 = $f.this$1; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143414
+ _r$6 = $clone((1 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 1]), js.Value).Call("bind", new sliceType$1([$ifaceNil, new $String("Timeout")])); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
143415
+ _arg = (x = _r$6, new x.constructor.elem(x));
143416
+ _r$7 = $clone(js.Global(), js.Value).Call("setTimeout", new sliceType$1([_arg, new $Int(500)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
143417
+ _r$7;
143418
+ $s = -1; return $ifaceNil;
143419
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.args = args; $f.this$1 = this$1; $f.x = x; $f.$s = $s; $f.$r = $r; return $f;
143420
+ }; })(d)), js.Func);
143421
+ _r$6 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType$1([new timeoutPromiseCb.constructor.elem(timeoutPromiseCb)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
143422
+ timeoutPromise = $clone(_r$6, js.Value);
143423
+ _r$7 = $clone($clone(js.Global(), js.Value).Get("Array"), js.Value).New(new sliceType$1([new framePromise.constructor.elem(framePromise), new timeoutPromise.constructor.elem(timeoutPromise)])); /* */ $s = 23; case 23: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
143424
+ _arg = (x = _r$7, new x.constructor.elem(x));
143425
+ _r$8 = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).Call("race", new sliceType$1([_arg])); /* */ $s = 24; case 24: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
143426
+ racePromise = $clone(_r$8, js.Value);
143427
+ _r$9 = jshelper.Await($clone(racePromise, js.Value)); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; }
143428
+ _tuple = _r$9;
143429
+ frame = _tuple[0];
143430
+ err = _tuple[1];
143431
+ $clone(framePromiseCb, js.Func).Release();
143432
+ $clone(timeoutPromiseCb, js.Func).Release();
143433
+ /* */ if (!(err === ptrType.nil)) { $s = 26; continue; }
143434
+ /* */ $s = 27; continue;
143435
+ /* if (!(err === ptrType.nil)) { */ case 26:
143436
+ errMessage = "";
143437
+ if ($clone(err, js.Value).Type() === 4) {
143438
+ errMessage = $clone(err, js.Value).String();
143439
+ } else {
143440
+ errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
143441
+ }
143442
+ _r$10 = errs.Errorf(errMessage, new sliceType$1([])); /* */ $s = 28; case 28: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; }
143443
+ $s = -1; return _r$10;
143444
+ /* } */ case 27:
143445
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
143446
+ ycbcrJSImg.CanvasImageSource = frame;
142682
143447
  $s = -1; return $ifaceNil;
142683
- /* */ } return; } if ($f === undefined) { $f = { $blk: H264Decoder.ptr.prototype.Decode }; } $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.cSize = cSize; $f.cStride = cStride; $f.height = height; $f.heightIndex = heightIndex; $f.m = m; $f.nal = nal; $f.outputBuffer = outputBuffer; $f.pHeight = pHeight; $f.pPicture = pPicture; $f.pWidth = pWidth; $f.pictureBuffer = pictureBuffer; $f.pictureBufferOffset = pictureBufferOffset; $f.pictureIndex = pictureIndex; $f.pictureLen = pictureLen; $f.status = status; $f.width = width; $f.widthIndex = widthIndex; $f.x = x; $f.x$1 = x$1; $f.ySize = ySize; $f.yStride = yStride; $f.ycbcrJSImg = ycbcrJSImg; $f.$s = $s; $f.$r = $r; return $f;
143448
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.Decode }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f.chunk = chunk; $f.chunkOpts = chunkOpts; $f.d = d; $f.err = err; $f.errDec = errDec; $f.errMessage = errMessage; $f.frame = frame; $f.frameData = frameData; $f.framePromise = framePromise; $f.framePromiseCb = framePromiseCb; $f.frameType = frameType; $f.nal = nal; $f.outputBuffer = outputBuffer; $f.racePromise = racePromise; $f.timeoutPromise = timeoutPromise; $f.timeoutPromiseCb = timeoutPromiseCb; $f.x = x; $f.ycbcrJSImg = ycbcrJSImg; $f.$s = $s; $f.$r = $r; return $f;
142684
143449
  };
142685
- H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
142686
- ptrType$1.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, OutputBuffer], [$error], false)}];
142687
- H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "nalBuffer", name: "nalBuffer", embedded: false, exported: false, typ: js.Value, tag: ""}]);
142688
- OutputBuffer.init([{prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$2], false)}]);
143450
+ Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
143451
+ Decoder.ptr.prototype.Release = function(outputBuffer) {
143452
+ var _r, m, outputBuffer, ycbcrJSImg, $s, $r;
143453
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; m = $f.m; outputBuffer = $f.outputBuffer; ycbcrJSImg = $f.ycbcrJSImg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143454
+ m = this;
143455
+ ycbcrJSImg = $assertType(outputBuffer, ptrType$1).YCbCrJS();
143456
+ /* */ if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { $s = 1; continue; }
143457
+ /* */ $s = 2; continue;
143458
+ /* if (!(ycbcrJSImg.CanvasImageSource === ptrType.nil)) { */ case 1:
143459
+ _r = $clone(ycbcrJSImg.CanvasImageSource, js.Value).Call("close", new sliceType$1([])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143460
+ _r;
143461
+ /* } */ case 2:
143462
+ $s = -1; return;
143463
+ /* */ } return; } if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.Release }; } $f._r = _r; $f.m = m; $f.outputBuffer = outputBuffer; $f.ycbcrJSImg = ycbcrJSImg; $f.$s = $s; $f.$r = $r; return $f;
143464
+ };
143465
+ Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
143466
+ Decoder.ptr.prototype.jsSafeDecode = function(chunk) {
143467
+ var _r, chunk, d, err, $s, $deferred, $r;
143468
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; chunk = $f.chunk; d = $f.d; err = $f.err; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
143469
+ err = [err];
143470
+ err[0] = $ifaceNil;
143471
+ d = this;
143472
+ $deferred.push([(function(err) { return function $b() {
143473
+ var _r, recoverErr, $s, $r;
143474
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; recoverErr = $f.recoverErr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143475
+ recoverErr = $recover();
143476
+ /* */ if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { $s = 1; continue; }
143477
+ /* */ $s = 2; continue;
143478
+ /* if (!($interfaceIsEqual(recoverErr, $ifaceNil))) { */ case 1:
143479
+ _r = errs.Errorf("Cannot decode %s", new sliceType$1([recoverErr])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143480
+ err[0] = _r;
143481
+ /* } */ case 2:
143482
+ $s = -1; return;
143483
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.recoverErr = recoverErr; $f.$s = $s; $f.$r = $r; return $f;
143484
+ }; })(err), []]);
143485
+ _r = $clone(d.jsVideoDecoder, js.Value).Call("decode", new sliceType$1([new chunk.constructor.elem(chunk)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143486
+ _r;
143487
+ err[0] = err[0];
143488
+ $s = -1; return err[0];
143489
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Decoder.ptr.prototype.jsSafeDecode }; } $f._r = _r; $f.chunk = chunk; $f.d = d; $f.err = err; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
143490
+ };
143491
+ Decoder.prototype.jsSafeDecode = function(chunk) { return this.$val.jsSafeDecode(chunk); };
143492
+ ptrType$2.methods = [{prop: "configure", name: "configure", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [], false)}, {prop: "detectCodecName", name: "detectCodecName", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([sliceType$2], [$String], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$2, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}, {prop: "jsSafeDecode", name: "jsSafeDecode", pkg: "github.com/supraio/client-daemon/pkg/x264/webcodecs", typ: $funcType([js.Value], [$error], false)}];
143493
+ Decoder.init("github.com/supraio/client-daemon/pkg/x264/webcodecs", [{prop: "jsVideoDecoder", name: "jsVideoDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "resolves", name: "resolves", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "rejects", name: "rejects", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "releaseVideoDecoder", name: "releaseVideoDecoder", embedded: false, exported: false, typ: funcType, tag: ""}]);
142689
143494
  $init = function() {
142690
143495
  $pkg.$init = function() {};
142691
143496
  /* */ 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:
142692
- $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142693
- $r = webgldriver.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142694
- $r = image.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142695
- $r = js.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143497
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143498
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143499
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143500
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143501
+ $r = general.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143502
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143503
+ $r = js.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142696
143504
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142697
143505
  };
142698
143506
  $pkg.$init = $init;
142699
143507
  return $pkg;
142700
143508
  })();
142701
- $packages["golang.org/x/exp/shiny/driver"] = (function() {
142702
- var $pkg = {}, $init, webgldriver, screen, Main, main;
142703
- webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
142704
- screen = $packages["golang.org/x/exp/shiny/screen"];
142705
- Main = function(f) {
142706
- var f, $s, $r;
142707
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142708
- $r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142709
- $s = -1; return;
142710
- /* */ } return; } if ($f === undefined) { $f = { $blk: Main }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
143509
+ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
143510
+ var $pkg = {}, $init, errs, general, h264_decoder, webcodecs, js, H264Decoder, Decoder, ptrType, sliceType, sliceType$1, NewH264Decoder;
143511
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
143512
+ general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
143513
+ h264_decoder = $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"];
143514
+ webcodecs = $packages["github.com/supraio/client-daemon/pkg/x264/webcodecs"];
143515
+ js = $packages["syscall/js"];
143516
+ H264Decoder = $pkg.H264Decoder = $newType(0, $kindStruct, "x264.H264Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, function(decoder_) {
143517
+ this.$val = this;
143518
+ if (arguments.length === 0) {
143519
+ this.decoder = $ifaceNil;
143520
+ return;
143521
+ }
143522
+ this.decoder = decoder_;
143523
+ });
143524
+ Decoder = $pkg.Decoder = $newType(8, $kindInterface, "x264.Decoder", true, "github.com/supraio/client-daemon/pkg/x264", true, null);
143525
+ ptrType = $ptrType(H264Decoder);
143526
+ sliceType = $sliceType($emptyInterface);
143527
+ sliceType$1 = $sliceType($Uint8);
143528
+ NewH264Decoder = function(header) {
143529
+ var _r, _r$1, decoder, header, $s, $r;
143530
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; decoder = $f.decoder; header = $f.header; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143531
+ decoder = $ifaceNil;
143532
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
143533
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { $s = 2; continue; }
143534
+ /* */ $s = 3; continue;
143535
+ /* if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 1:
143536
+ decoder = webcodecs.NewDecoder(header);
143537
+ $s = 4; continue;
143538
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("h264Decoder"), js.Value).IsUndefined()) { */ case 2:
143539
+ _r = h264_decoder.NewDecoder(header); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143540
+ decoder = _r;
143541
+ $s = 4; continue;
143542
+ /* } else { */ case 3:
143543
+ _r$1 = errs.Errorf("Not available any h264 docoder adapeter in JS", new sliceType([])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143544
+ $s = -1; return [ptrType.nil, _r$1];
143545
+ /* } */ case 4:
143546
+ $s = -1; return [new H264Decoder.ptr(decoder), $ifaceNil];
143547
+ /* */ } return; } if ($f === undefined) { $f = { $blk: NewH264Decoder }; } $f._r = _r; $f._r$1 = _r$1; $f.decoder = decoder; $f.header = header; $f.$s = $s; $f.$r = $r; return $f;
142711
143548
  };
142712
- $pkg.Main = Main;
142713
- main = function(f) {
142714
- var f, $s, $r;
142715
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
142716
- $r = webgldriver.Main(f); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143549
+ $pkg.NewH264Decoder = NewH264Decoder;
143550
+ H264Decoder.ptr.prototype.Decode = function(nal, outputBuffer) {
143551
+ var _r, m, nal, outputBuffer, $s, $r;
143552
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; m = $f.m; nal = $f.nal; outputBuffer = $f.outputBuffer; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143553
+ m = this;
143554
+ _r = m.decoder.Decode(nal, outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143555
+ $s = -1; return _r;
143556
+ /* */ } return; } if ($f === undefined) { $f = { $blk: H264Decoder.ptr.prototype.Decode }; } $f._r = _r; $f.m = m; $f.nal = nal; $f.outputBuffer = outputBuffer; $f.$s = $s; $f.$r = $r; return $f;
143557
+ };
143558
+ H264Decoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
143559
+ H264Decoder.ptr.prototype.Release = function(outputBuffer) {
143560
+ var m, outputBuffer, $s, $r;
143561
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; outputBuffer = $f.outputBuffer; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143562
+ m = this;
143563
+ $r = m.decoder.Release(outputBuffer); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142717
143564
  $s = -1; return;
142718
- /* */ } return; } if ($f === undefined) { $f = { $blk: main }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
143565
+ /* */ } return; } if ($f === undefined) { $f = { $blk: H264Decoder.ptr.prototype.Release }; } $f.m = m; $f.outputBuffer = outputBuffer; $f.$s = $s; $f.$r = $r; return $f;
142719
143566
  };
143567
+ H264Decoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
143568
+ ptrType.methods = [{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
143569
+ H264Decoder.init("github.com/supraio/client-daemon/pkg/x264", [{prop: "decoder", name: "decoder", embedded: false, exported: false, typ: Decoder, tag: ""}]);
143570
+ Decoder.init([{prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}]);
142720
143571
  $init = function() {
142721
143572
  $pkg.$init = function() {};
142722
143573
  /* */ 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:
142723
- $r = webgldriver.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142724
- $r = screen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143574
+ $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143575
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143576
+ $r = h264_decoder.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143577
+ $r = webcodecs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143578
+ $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
142725
143579
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
142726
143580
  };
142727
143581
  $pkg.$init = $init;
@@ -142818,7 +143672,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
142818
143672
  return $pkg;
142819
143673
  })();
142820
143674
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
142821
- var $pkg = {}, $init, binary, json, query, clipboard, errs, input, message, netclient, netpacket, netstream, stats, window, x264, driver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, Frame, FrameType, FrameCollector, FrameMapItem, ProcessInfo, ProcessInfoManager, ScreenWindow, X264FrameRenderer, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, sliceType$2, ptrType$3, funcType, sliceType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, structType, ptrType$12, mapType, funcType$1, ptrType$14, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewFrameCollector, NewProcessInfoManager, NewScreenWindow, NewX264FrameRenderer;
143675
+ var $pkg = {}, $init, binary, json, query, clipboard, errs, input, message, netclient, netpacket, netstream, stats, window, x264, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, Frame, FrameType, FrameCollector, FrameMapItem, ProcessInfo, ProcessInfoManager, ScreenWindow, X264FrameRenderer, ptrType, sliceType, ptrType$1, ptrType$2, sliceType$1, sliceType$2, ptrType$3, funcType, sliceType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, structType, ptrType$12, mapType, funcType$1, ptrType$14, chanType, chanType$1, chanType$2, chanType$3, chanType$4, NewFrameCollector, NewProcessInfoManager, MainDriver, NewScreenWindow, NewX264FrameRenderer;
142822
143676
  binary = $packages["encoding/binary"];
142823
143677
  json = $packages["encoding/json"];
142824
143678
  query = $packages["github.com/google/go-querystring/query"];
@@ -142832,7 +143686,8 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
142832
143686
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
142833
143687
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
142834
143688
  x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
142835
- driver = $packages["golang.org/x/exp/shiny/driver"];
143689
+ canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
143690
+ webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
142836
143691
  screen = $packages["golang.org/x/exp/shiny/screen"];
142837
143692
  focus = $packages["golang.org/x/mobile/event/focus"];
142838
143693
  key = $packages["golang.org/x/mobile/event/key"];
@@ -143260,6 +144115,21 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143260
144115
  return path.Join(new sliceType$2([m.processDir, "S-" + m.username]));
143261
144116
  };
143262
144117
  ProcessInfoManager.prototype.getUserProcessDirPath = function() { return this.$val.getUserProcessDirPath(); };
144118
+ MainDriver = function(f) {
144119
+ var f, $s, $r;
144120
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144121
+ /* */ if ($clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
144122
+ /* */ $s = 2; continue;
144123
+ /* if ($clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 1:
144124
+ $r = webgldriver.Main(f); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144125
+ $s = 3; continue;
144126
+ /* } else { */ case 2:
144127
+ $r = canvasdriver.Main(f); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144128
+ /* } */ case 3:
144129
+ $s = -1; return;
144130
+ /* */ } return; } if ($f === undefined) { $f = { $blk: MainDriver }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f;
144131
+ };
144132
+ $pkg.MainDriver = MainDriver;
143263
144133
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
143264
144134
  var clientID, clientSecret, metadataDriver, metadataHost, processInfoManager, screenDriver, screenHost, screenID, screenSize, secure, timeoutDuration;
143265
144135
  return new ScreenWindow.ptr(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, "", clientID, clientSecret, screenID, secure, $clone(screenSize, image.Point), new sync.Mutex.ptr(0, 0), timeoutDuration, true, stats.NewStats(), sliceType$3.nil, $ifaceNil, $ifaceNil, $ifaceNil, false, ptrType$4.nil, ptrType$5.nil, ptrType$6.nil, $ifaceNil, $ifaceNil, ptrType$7.nil, ptrType$8.nil, ptrType$9.nil, ptrType$10.nil, ptrType$11.nil, new $Chan(key.Event, 0), new $Chan(mouse.Event, 0), new $Chan(size.Event, 0), new $Chan(focus.Event, 0), new $Chan($emptyInterface, 0));
@@ -143391,7 +144261,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143391
144261
  $go((function(w, windowChannel) { return function $b() {
143392
144262
  var $s, $r;
143393
144263
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143394
- $r = driver.Main((function(w, windowChannel) { return function $b(s) {
144264
+ $r = MainDriver((function(w, windowChannel) { return function $b(s) {
143395
144265
  var _r, _r$1, _tuple, err, s, window$1, $s, $r;
143396
144266
  /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; s = $f.s; window$1 = $f.window$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
143397
144267
  _r = s.NewWindow(new screen.NewWindowOptions.ptr(w[0].screenSize.X, w[0].screenSize.Y, "")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
@@ -143786,43 +144656,42 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143786
144656
  };
143787
144657
  $pkg.NewX264FrameRenderer = NewX264FrameRenderer;
143788
144658
  X264FrameRenderer.ptr.prototype.Render = function(frame) {
143789
- var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, err, err$1, frame, r, $s, $r;
143790
- /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; frame = $f.frame; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0:
144659
+ var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, err, frame, r, $s, $deferred, $r;
144660
+ /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; err = $f.err; frame = $f.frame; r = $f.r; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
143791
144661
  r = this;
143792
144662
  err = $ifaceNil;
143793
144663
  /* */ if (r.dec === ptrType$12.nil) { $s = 1; continue; }
143794
144664
  /* */ $s = 2; continue;
143795
144665
  /* if (r.dec === ptrType$12.nil) { */ case 1:
143796
- _r = x264.NewH264Decoder(frame.buffer); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
144666
+ _r = x264.NewH264Decoder(frame.buffer); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
143797
144667
  _tuple = _r;
143798
144668
  r.dec = _tuple[0];
143799
144669
  err = _tuple[1];
143800
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; }
143801
- /* */ $s = 6; continue;
143802
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5:
143803
- $r = errs.Print("Decoder cannot be created", err); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143804
- $s = -1; return;
143805
- /* } */ case 6:
143806
- $s = 3; continue;
143807
- /* } else { */ case 2:
143808
- _r$1 = r.dec.Decode(frame.buffer, r.screenBuffer); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
143809
- err$1 = _r$1;
143810
- /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 9; continue; }
143811
- /* */ $s = 10; continue;
143812
- /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 9:
143813
- $r = errs.Print("Frame cannot be decoded", err$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144670
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
144671
+ /* */ $s = 5; continue;
144672
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
144673
+ $r = errs.Print("Decoder cannot be created", err); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143814
144674
  $s = -1; return;
143815
- /* } */ case 10:
143816
- _arg = new image.Point.ptr(0, 0);
143817
- _arg$1 = r.screenBuffer;
143818
- _r$2 = r.screenBuffer.Bounds(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
143819
- _arg$2 = $clone(_r$2, image.Rectangle);
143820
- $r = r.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143821
- _r$3 = r.window.Publish(); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
143822
- _r$3;
143823
- /* } */ case 3:
144675
+ /* } */ case 5:
144676
+ /* } */ case 2:
144677
+ _r$1 = r.dec.Decode(frame.buffer, r.screenBuffer); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
144678
+ err = _r$1;
144679
+ $deferred.push([$methodVal(r.dec, "Release"), [r.screenBuffer]]);
144680
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
144681
+ /* */ $s = 9; continue;
144682
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
144683
+ $r = errs.Print("Frame cannot be decoded", err); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144684
+ $s = -1; return;
144685
+ /* } */ case 9:
144686
+ _arg = new image.Point.ptr(0, 0);
144687
+ _arg$1 = r.screenBuffer;
144688
+ _r$2 = r.screenBuffer.Bounds(); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
144689
+ _arg$2 = $clone(_r$2, image.Rectangle);
144690
+ $r = r.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144691
+ _r$3 = r.window.Publish(); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
144692
+ _r$3;
143824
144693
  $s = -1; return;
143825
- /* */ } return; } if ($f === undefined) { $f = { $blk: X264FrameRenderer.ptr.prototype.Render }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.frame = frame; $f.r = r; $f.$s = $s; $f.$r = $r; return $f;
144694
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: X264FrameRenderer.ptr.prototype.Render }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.frame = frame; $f.r = r; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
143826
144695
  };
143827
144696
  X264FrameRenderer.prototype.Render = function(frame) { return this.$val.Render(frame); };
143828
144697
  ptrType$1.methods = [{prop: "GetTimestmap", name: "GetTimestmap", pkg: "", typ: $funcType([], [$Uint64], false)}];
@@ -143853,23 +144722,24 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
143853
144722
  $r = stats.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143854
144723
  $r = window.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143855
144724
  $r = x264.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143856
- $r = driver.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143857
- $r = screen.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143858
- $r = focus.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143859
- $r = key.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143860
- $r = lifecycle.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143861
- $r = mouse.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143862
- $r = size.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143863
- $r = image.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143864
- $r = io.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143865
- $r = ioutil.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143866
- $r = log.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143867
- $r = os.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143868
- $r = path.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143869
- $r = strings.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143870
- $r = sync.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143871
- $r = js.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143872
- $r = time.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144725
+ $r = canvasdriver.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144726
+ $r = webgldriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144727
+ $r = screen.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144728
+ $r = focus.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144729
+ $r = key.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144730
+ $r = lifecycle.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144731
+ $r = mouse.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144732
+ $r = size.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144733
+ $r = image.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144734
+ $r = io.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144735
+ $r = ioutil.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144736
+ $r = log.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144737
+ $r = os.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144738
+ $r = path.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144739
+ $r = strings.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144740
+ $r = sync.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144741
+ $r = js.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
144742
+ $r = time.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
143873
144743
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
143874
144744
  };
143875
144745
  $pkg.$init = $init;