@supraio/client-daemon-js 0.0.0-jvmaster.324 → 0.0.0-jvmaster.327

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.
@@ -185276,6 +185276,62 @@ $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"] = (functio
185276
185276
  $pkg.$init = $init;
185277
185277
  return $pkg;
185278
185278
  })();
185279
+ $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
185280
+ var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, sync;
185281
+ binary = $packages["encoding/binary"];
185282
+ fmt = $packages["fmt"];
185283
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
185284
+ message = $packages["github.com/supraio/client-daemon/pkg/message"];
185285
+ focus = $packages["golang.org/x/mobile/event/focus"];
185286
+ key = $packages["golang.org/x/mobile/event/key"];
185287
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
185288
+ sync = $packages["sync"];
185289
+ $init = function() {
185290
+ $pkg.$init = function() {};
185291
+ /* */ 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:
185292
+ $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185293
+ $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185294
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185295
+ $r = message.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185296
+ $r = focus.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185297
+ $r = key.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185298
+ $r = mouse.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185299
+ $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185300
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
185301
+ };
185302
+ $pkg.$init = $init;
185303
+ return $pkg;
185304
+ })();
185305
+ $packages["github.com/supraio/client-daemon/pkg/render/frame"] = (function() {
185306
+ var $pkg = {}, $init, time;
185307
+ time = $packages["time"];
185308
+ $init = function() {
185309
+ $pkg.$init = function() {};
185310
+ /* */ 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:
185311
+ $r = time.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185312
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
185313
+ };
185314
+ $pkg.$init = $init;
185315
+ return $pkg;
185316
+ })();
185317
+ $packages["github.com/supraio/client-daemon/pkg/render/netframe"] = (function() {
185318
+ var $pkg = {}, $init, binary, errs, netpacket, frame;
185319
+ binary = $packages["encoding/binary"];
185320
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
185321
+ netpacket = $packages["github.com/supraio/client-daemon/pkg/netpacket"];
185322
+ frame = $packages["github.com/supraio/client-daemon/pkg/render/frame"];
185323
+ $init = function() {
185324
+ $pkg.$init = function() {};
185325
+ /* */ 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:
185326
+ $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185327
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185328
+ $r = netpacket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185329
+ $r = frame.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
185330
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
185331
+ };
185332
+ $pkg.$init = $init;
185333
+ return $pkg;
185334
+ })();
185279
185335
  $packages["github.com/nuberu/webgl/types"] = (function() {
185280
185336
  var $pkg = {}, $init, js, VertexArray, UniformLocation, Texture, Shader, ShaderPrecisionFormat, Program, Buffer, FrameBuffer, RenderBuffer, GLEnum, PowerPreference, Attributes, ActiveInfo, funcType, arrayType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, NewVertexArray, NewUniformLocation, NewTexture, NewShader, NewShaderPrecisionFormat, NewProgram, NewBuffer, NewFrameBuffer, NewRenderBuffer, NewActiveInfo;
185281
185337
  js = $packages["syscall/js"];
@@ -189653,11 +189709,47 @@ $packages["golang.org/x/exp/shiny/driver/internal/errscreen"] = (function() {
189653
189709
  $pkg.$init = $init;
189654
189710
  return $pkg;
189655
189711
  })();
189656
- $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189657
- var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, main, newScreenImpl, newBuffer;
189712
+ $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
189713
+ var $pkg = {}, $init, screen, image, draw, ConvertYCbCrToRGBA;
189714
+ screen = $packages["golang.org/x/exp/shiny/screen"];
189715
+ image = $packages["image"];
189716
+ draw = $packages["image/draw"];
189717
+ ConvertYCbCrToRGBA = function(b) {
189718
+ var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, b, $s, $r, $c} = $restore(this, {b});
189719
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189720
+ _r = b.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189721
+ _arg = _r;
189722
+ _r$1 = b.YCbCr(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189723
+ _r$2 = _r$1.Bounds(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189724
+ _arg$1 = $clone(_r$2, image.Rectangle);
189725
+ _r$3 = b.YCbCr(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189726
+ _arg$2 = _r$3;
189727
+ _r$4 = b.RGBA(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189728
+ _arg$3 = $clone(_r$4.Rect.Min, image.Point);
189729
+ $r = draw.Draw(_arg, _arg$1, _arg$2, _arg$3, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189730
+ $s = -1; return;
189731
+ /* */ } return; } var $f = {$blk: ConvertYCbCrToRGBA, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, b, $s};return $f;
189732
+ };
189733
+ $pkg.ConvertYCbCrToRGBA = ConvertYCbCrToRGBA;
189734
+ $init = function() {
189735
+ $pkg.$init = function() {};
189736
+ /* */ 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:
189737
+ $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189738
+ $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189739
+ $r = draw.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189740
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
189741
+ };
189742
+ $pkg.$init = $init;
189743
+ return $pkg;
189744
+ })();
189745
+ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
189746
+ var $pkg = {}, $init, fmt, webgl, types, errscreen, dom, imageutil, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, ArrayBufferSlice, YCbCrJS, BufferImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, main, newScreenImpl, newBuffer;
189658
189747
  fmt = $packages["fmt"];
189748
+ webgl = $packages["github.com/nuberu/webgl"];
189749
+ types = $packages["github.com/nuberu/webgl/types"];
189659
189750
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
189660
189751
  dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
189752
+ imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
189661
189753
  screen = $packages["golang.org/x/exp/shiny/screen"];
189662
189754
  f64 = $packages["golang.org/x/image/math/f64"];
189663
189755
  image = $packages["image"];
@@ -189665,27 +189757,43 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189665
189757
  draw = $packages["image/draw"];
189666
189758
  sync = $packages["sync"];
189667
189759
  js = $packages["syscall/js"];
189668
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
189760
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, domEvents_, width_, height_) {
189669
189761
  this.$val = this;
189670
189762
  if (arguments.length === 0) {
189671
189763
  this.screen = ptrType.nil;
189672
189764
  this.mutex = ptrType$1.nil;
189673
189765
  this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
189674
- this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
189766
+ this.gl = ptrType$2.nil;
189767
+ this.programRGBA = ptrType$3.nil;
189768
+ this.imageTexRGBA = ptrType$4.nil;
189769
+ this.programYUV420 = ptrType$3.nil;
189770
+ this.imageTexY = ptrType$4.nil;
189771
+ this.imageTexU = ptrType$4.nil;
189772
+ this.imageTexV = ptrType$4.nil;
189773
+ this.vertexArray = ptrType$5.nil;
189675
189774
  this.released = false;
189676
- this.domEvents = ptrType$2.nil;
189677
- this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
189775
+ this.domEvents = ptrType$6.nil;
189776
+ this.width = 0;
189777
+ this.height = 0;
189678
189778
  return;
189679
189779
  }
189680
189780
  this.screen = screen_;
189681
189781
  this.mutex = mutex_;
189682
189782
  this.canvasEl = canvasEl_;
189683
- this.ctx2d = ctx2d_;
189783
+ this.gl = gl_;
189784
+ this.programRGBA = programRGBA_;
189785
+ this.imageTexRGBA = imageTexRGBA_;
189786
+ this.programYUV420 = programYUV420_;
189787
+ this.imageTexY = imageTexY_;
189788
+ this.imageTexU = imageTexU_;
189789
+ this.imageTexV = imageTexV_;
189790
+ this.vertexArray = vertexArray_;
189684
189791
  this.released = released_;
189685
189792
  this.domEvents = domEvents_;
189686
- this.resizeCallback = resizeCallback_;
189793
+ this.width = width_;
189794
+ this.height = height_;
189687
189795
  });
189688
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
189796
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "webgldriver.screenImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(doc_) {
189689
189797
  this.$val = this;
189690
189798
  if (arguments.length === 0) {
189691
189799
  this.doc = new js.Value.ptr(null, false, arrayType.zero());
@@ -189693,24 +189801,50 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189693
189801
  }
189694
189802
  this.doc = doc_;
189695
189803
  });
189696
- YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
189804
+ ArrayBufferSlice = $pkg.ArrayBufferSlice = $newType(0, $kindStruct, "webgldriver.ArrayBufferSlice", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(ArrayBuffer_, Offset_, Length_) {
189697
189805
  this.$val = this;
189698
189806
  if (arguments.length === 0) {
189699
- this.CanvasImageSource = ptrType$5.nil;
189807
+ this.ArrayBuffer = new js.Value.ptr(null, false, arrayType.zero());
189808
+ this.Offset = 0;
189809
+ this.Length = 0;
189700
189810
  return;
189701
189811
  }
189702
- this.CanvasImageSource = CanvasImageSource_;
189812
+ this.ArrayBuffer = ArrayBuffer_;
189813
+ this.Offset = Offset_;
189814
+ this.Length = Length_;
189703
189815
  });
189704
- 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_) {
189816
+ YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "webgldriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(Y_, Cb_, Cr_, YStride_, CStride_, SubsampleRatio_, Rect_, Use_) {
189817
+ this.$val = this;
189818
+ if (arguments.length === 0) {
189819
+ this.Y = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
189820
+ this.Cb = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
189821
+ this.Cr = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
189822
+ this.YStride = 0;
189823
+ this.CStride = 0;
189824
+ this.SubsampleRatio = 0;
189825
+ this.Rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0));
189826
+ this.Use = false;
189827
+ return;
189828
+ }
189829
+ this.Y = Y_;
189830
+ this.Cb = Cb_;
189831
+ this.Cr = Cr_;
189832
+ this.YStride = YStride_;
189833
+ this.CStride = CStride_;
189834
+ this.SubsampleRatio = SubsampleRatio_;
189835
+ this.Rect = Rect_;
189836
+ this.Use = Use_;
189837
+ });
189838
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "webgldriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
189705
189839
  this.$val = this;
189706
189840
  if (arguments.length === 0) {
189707
189841
  this.screen = ptrType.nil;
189708
189842
  this.size = new image.Point.ptr(0, 0);
189709
189843
  this.mutex = ptrType$1.nil;
189710
189844
  this.released = false;
189711
- this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189712
- this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189713
- this.ycbcrJS = ptrType$4.nil;
189845
+ this.rgba = new image.RGBA.ptr(sliceType$3.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189846
+ this.ycbcr = new image.YCbCr.ptr(sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
189847
+ this.ycbcrJS = ptrType$8.nil;
189714
189848
  return;
189715
189849
  }
189716
189850
  this.screen = screen_;
@@ -189721,85 +189855,89 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189721
189855
  this.ycbcr = ycbcr_;
189722
189856
  this.ycbcrJS = ycbcrJS_;
189723
189857
  });
189724
- sliceType = $sliceType($emptyInterface);
189858
+ sliceType = $sliceType($Float32);
189859
+ sliceType$1 = $sliceType($Uint16);
189860
+ sliceType$2 = $sliceType($emptyInterface);
189725
189861
  ptrType = $ptrType(screenImpl);
189726
189862
  ptrType$1 = $ptrType(sync.Mutex);
189727
189863
  funcType = $funcType([], [], false);
189728
189864
  arrayType = $arrayType(funcType, 0);
189729
- ptrType$2 = $ptrType(dom.DomEvents);
189730
- ptrType$3 = $ptrType(BufferImpl);
189731
- sliceType$1 = $sliceType($Uint8);
189732
- ptrType$4 = $ptrType(YCbCrJS);
189733
- ptrType$5 = $ptrType(js.Value);
189734
- ptrType$6 = $ptrType(screen.DrawOptions);
189735
- ptrType$7 = $ptrType(windowImpl);
189736
- ptrType$8 = $ptrType(screen.NewWindowOptions);
189737
- ptrType$9 = $ptrType(image.RGBA);
189738
- ptrType$10 = $ptrType(image.YCbCr);
189865
+ ptrType$2 = $ptrType(webgl.RenderingContext);
189866
+ ptrType$3 = $ptrType(types.Program);
189867
+ ptrType$4 = $ptrType(types.Texture);
189868
+ ptrType$5 = $ptrType(types.VertexArray);
189869
+ ptrType$6 = $ptrType(dom.DomEvents);
189870
+ ptrType$7 = $ptrType(BufferImpl);
189871
+ sliceType$3 = $sliceType($Uint8);
189872
+ ptrType$8 = $ptrType(YCbCrJS);
189873
+ ptrType$9 = $ptrType(screen.DrawOptions);
189874
+ ptrType$10 = $ptrType(windowImpl);
189875
+ ptrType$11 = $ptrType(screen.NewWindowOptions);
189876
+ ptrType$12 = $ptrType(ArrayBufferSlice);
189877
+ ptrType$13 = $ptrType(image.RGBA);
189878
+ ptrType$14 = $ptrType(image.YCbCr);
189739
189879
  newWindow = function(screen$1, opts) {
189740
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
189880
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, canvasEl, domEvents, err, gl, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
189741
189881
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189742
- adaptCanvas = [adaptCanvas];
189743
- canvasEl = [canvasEl];
189744
- _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189745
- canvasEl[0] = $clone(_r, js.Value);
189746
- _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189882
+ _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; }
189883
+ canvasEl = $clone(_r, js.Value);
189884
+ _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; }
189747
189885
  _r$1;
189748
- adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function() {
189749
- var height, scale, width;
189750
- scale = dom.GetBrowserZoomRatio();
189751
- width = (((dom.GetScreenWidth()) / scale >> 0));
189752
- if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
189753
- $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
189754
- }
189755
- height = (((dom.GetScreenHeight()) / scale >> 0));
189756
- if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
189757
- $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
189758
- }
189759
- }; })(adaptCanvas, canvasEl);
189760
- $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189761
- resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
189762
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
189763
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189764
- $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189765
- $s = -1; return $ifaceNil;
189766
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
189767
- }; })(adaptCanvas, canvasEl)), js.Func);
189768
- _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189769
- _r$2;
189770
- /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
189771
- /* */ $s = 6; continue;
189772
- /* if (!((opts.Width === 0))) { */ case 5:
189773
- $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189774
- /* } */ case 6:
189775
- /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
189776
- /* */ $s = 9; continue;
189777
- /* if (!((opts.Height === 0))) { */ case 8:
189778
- $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189779
- /* } */ case 9:
189780
- /* */ if (!(opts.Title === "")) { $s = 11; continue; }
189781
- /* */ $s = 12; continue;
189782
- /* if (!(opts.Title === "")) { */ case 11:
189783
- _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189784
- _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189785
- $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189786
- /* } */ case 12:
189787
- _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
189788
- ctx2d = $clone(_r$5, js.Value);
189789
- /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
189790
- /* */ $s = 18; continue;
189791
- /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
189792
- _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
189793
- $panic(_r$6);
189794
- /* } */ case 18:
189795
- domEvents = dom.NewDomEvents();
189796
- w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
189797
- $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189798
- $s = -1; return w;
189799
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
189886
+ _r$2 = webgl.FromCanvas($clone(canvasEl, js.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
189887
+ _tuple = _r$2;
189888
+ gl = _tuple[0];
189889
+ err = _tuple[1];
189890
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
189891
+ $panic(err);
189892
+ }
189893
+ domEvents = dom.NewDomEvents();
189894
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl, js.Value), gl, ptrType$3.nil, ptrType$4.nil, ptrType$3.nil, ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, ptrType$5.nil, false, domEvents, 0, 0);
189895
+ /* */ if (!((opts.Width === 0))) { $s = 4; continue; }
189896
+ /* */ $s = 5; continue;
189897
+ /* if (!((opts.Width === 0))) { */ case 4:
189898
+ $r = dom.SetWindowWidth(opts.Width); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189899
+ /* } */ case 5:
189900
+ /* */ if (!((opts.Height === 0))) { $s = 7; continue; }
189901
+ /* */ $s = 8; continue;
189902
+ /* if (!((opts.Height === 0))) { */ case 7:
189903
+ $r = dom.SetWindowHeight(opts.Height); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189904
+ /* } */ case 8:
189905
+ /* */ if (!(opts.Title === "")) { $s = 10; continue; }
189906
+ /* */ $s = 11; continue;
189907
+ /* if (!(opts.Title === "")) { */ case 10:
189908
+ _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType$2([new $String("title")])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
189909
+ _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType$2([new $Int(0)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
189910
+ $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189911
+ /* } */ case 11:
189912
+ _r$5 = w.createBuffers(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
189913
+ w.vertexArray = _r$5;
189914
+ $r = domEvents.BindEvents(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189915
+ $s = -1; return w;
189916
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, canvasEl, domEvents, err, gl, opts, screen$1, w, $s};return $f;
189917
+ };
189918
+ windowImpl.ptr.prototype.ensureCanvasSize = function(width, height) {
189919
+ var height, w, width;
189920
+ w = this;
189921
+ if (!(($clone($clone(w.canvasEl, js.Value).Get("width"), js.Value).Int() === width))) {
189922
+ $clone(w.canvasEl, js.Value).Set("width", new $Int(width));
189923
+ }
189924
+ if (!(($clone($clone(w.canvasEl, js.Value).Get("height"), js.Value).Int() === height))) {
189925
+ $clone(w.canvasEl, js.Value).Set("height", new $Int(height));
189926
+ }
189927
+ };
189928
+ windowImpl.prototype.ensureCanvasSize = function(width, height) { return this.$val.ensureCanvasSize(width, height); };
189929
+ windowImpl.ptr.prototype.clear = function() {
189930
+ var {w, $s, $r, $c} = $restore(this, {});
189931
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189932
+ w = this;
189933
+ $r = w.gl.ClearColor(0, 0, 0, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189934
+ $r = w.gl.Clear(16384); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189935
+ $s = -1; return;
189936
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.clear, $c: true, $r, w, $s};return $f;
189800
189937
  };
189938
+ windowImpl.prototype.clear = function() { return this.$val.clear(); };
189801
189939
  windowImpl.ptr.prototype.Release = function() {
189802
- var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
189940
+ var {_r, w, $s, $deferred, $r, $c} = $restore(this, {});
189803
189941
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
189804
189942
  w = this;
189805
189943
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -189809,15 +189947,12 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189809
189947
  /* if (w.released) { */ case 2:
189810
189948
  $s = 4; case 4: return;
189811
189949
  /* } */ case 3:
189812
- _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189950
+ _r = $clone(w.canvasEl, js.Value).Call("remove", sliceType$2.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189813
189951
  _r;
189814
- $clone(w.resizeCallback, js.Func).Release();
189815
- _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189816
- _r$1;
189817
- $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189952
+ $r = w.domEvents.Release(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189818
189953
  w.released = true;
189819
189954
  $s = -1; return;
189820
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
189955
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, w, $s, $deferred};return $f; } }
189821
189956
  };
189822
189957
  windowImpl.prototype.Release = function() { return this.$val.Release(); };
189823
189958
  windowImpl.ptr.prototype.Publish = function() {
@@ -189858,38 +189993,71 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189858
189993
  };
189859
189994
  windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
189860
189995
  windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
189861
- var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
189996
+ var {dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
189862
189997
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189863
189998
  w = this;
189864
189999
  if (w.released) {
189865
190000
  $s = -1; return;
189866
190001
  }
189867
- _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189868
- $panic(_r);
190002
+ $r = w.drawBufferRGBA($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
189869
190003
  $s = -1; return;
189870
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190004
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, dp, sr, src, w, $s};return $f;
189871
190005
  };
189872
190006
  windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
189873
190007
  windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
189874
- var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190008
+ var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, dp, jsSrc, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
189875
190009
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189876
190010
  w = this;
189877
190011
  if (w.released) {
189878
190012
  $s = -1; return;
189879
190013
  }
189880
190014
  _ref = src;
189881
- /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190015
+ /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 1; continue; }
189882
190016
  /* */ $s = 2; continue;
189883
- /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190017
+ /* if ($assertType(_ref, ptrType$7, true)[1]) { */ case 1:
189884
190018
  jsSrc = _ref.$val;
189885
- _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189886
- _r;
189887
- $s = -1; return;
190019
+ _r = jsSrc.YCbCrJS(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190020
+ /* */ if (_r.Use) { $s = 3; continue; }
190021
+ /* */ $s = 4; continue;
190022
+ /* if (_r.Use) { */ case 3:
190023
+ _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; }
190024
+ /* */ if (!((_r$1.SubsampleRatio === 2))) { $s = 6; continue; }
190025
+ /* */ $s = 7; continue;
190026
+ /* if (!((_r$1.SubsampleRatio === 2))) { */ case 6:
190027
+ $panic(new $String("Only image.YCbCrSubsampleRatio420 SubsampleRatio is currently supported"));
190028
+ /* } */ case 7:
190029
+ _arg = $clone(dp, image.Point);
190030
+ _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; }
190031
+ _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; }
190032
+ _arg$1 = $clone(_r$3, js.Value);
190033
+ _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; }
190034
+ _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; }
190035
+ _arg$2 = $clone(_r$5, js.Value);
190036
+ _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; }
190037
+ _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; }
190038
+ _arg$3 = $clone(_r$7, js.Value);
190039
+ _arg$4 = $clone(sr, image.Rectangle);
190040
+ $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; }
190041
+ $s = -1; return;
190042
+ /* } */ case 4:
189888
190043
  /* } */ case 2:
189889
- _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
189890
- $panic(_r$1);
190044
+ _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; }
190045
+ /* */ if (_r$8.SubsampleRatio === 2) { $s = 16; continue; }
190046
+ /* */ $s = 17; continue;
190047
+ /* if (_r$8.SubsampleRatio === 2) { */ case 16:
190048
+ $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; }
190049
+ $s = 18; continue;
190050
+ /* } else { */ case 17:
190051
+ _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; }
190052
+ /* */ if (_r$9.Pix.$length === 0) { $s = 21; continue; }
190053
+ /* */ $s = 22; continue;
190054
+ /* if (_r$9.Pix.$length === 0) { */ case 21:
190055
+ $r = imageutil.ConvertYCbCrToRGBA(src); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190056
+ /* } */ case 22:
190057
+ $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; }
190058
+ /* } */ case 18:
189891
190059
  $s = -1; return;
189892
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
190060
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, dp, jsSrc, sr, src, w, $s};return $f;
189893
190061
  };
189894
190062
  windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
189895
190063
  windowImpl.ptr.prototype.Fill = function(dr, src, op) {
@@ -189969,7 +190137,7 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189969
190137
  var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
189970
190138
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
189971
190139
  s = this;
189972
- _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190140
+ _r = fmt.Errorf("Texture not implemented", sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
189973
190141
  $24r = [$ifaceNil, _r];
189974
190142
  $s = 2; case 2: return $24r;
189975
190143
  /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
@@ -189985,209 +190153,538 @@ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
189985
190153
  /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
189986
190154
  };
189987
190155
  screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
189988
- newBuffer = function(screen$1, size) {
189989
- var _q, _q$1, _q$2, b, rect, screen$1, size;
189990
- rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
189991
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
189992
- return b;
189993
- };
189994
- BufferImpl.ptr.prototype.Size = function() {
189995
- var b;
189996
- b = this;
189997
- return b.size;
189998
- };
189999
- BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190000
- BufferImpl.ptr.prototype.Bounds = function() {
190001
- var b;
190002
- b = this;
190003
- return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190004
- };
190005
- BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190006
- BufferImpl.ptr.prototype.RGBA = function() {
190007
- var b;
190008
- b = this;
190009
- return b.rgba;
190010
- };
190011
- BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190012
- BufferImpl.ptr.prototype.YCbCr = function() {
190013
- var b;
190014
- b = this;
190015
- return b.ycbcr;
190156
+ windowImpl.ptr.prototype.createAndAttachVertexShader = function(shaderProgram) {
190157
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, shaderProgram, vertShader, w, $s, $r, $c} = $restore(this, {shaderProgram});
190158
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190159
+ w = this;
190160
+ _r = w.gl.CreateVertexShader(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190161
+ vertShader = _r;
190162
+ $r = w.gl.ShaderSource(vertShader, "\nattribute vec2 a_postion;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\n\nvoid main() {\n\tgl_Position = vec4(a_postion, 0.0, 1.0);\n\tv_texCoord = a_texCoord;\n}\n"); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190163
+ $r = w.gl.CompileShader(vertShader); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190164
+ _r$1 = w.gl.GetShaderParameterCompileStatus(vertShader); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190165
+ /* */ if (!_r$1) { $s = 4; continue; }
190166
+ /* */ $s = 5; continue;
190167
+ /* if (!_r$1) { */ case 4:
190168
+ _r$2 = w.gl.GetShaderInfoLog(vertShader); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190169
+ _arg = new $String(_r$2);
190170
+ _r$3 = fmt.Errorf("Vertex shader: %s", new sliceType$2([_arg])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190171
+ $24r = _r$3;
190172
+ $s = 9; case 9: return $24r;
190173
+ /* } */ case 5:
190174
+ $r = w.gl.AttachShader(shaderProgram, vertShader); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190175
+ $r = w.gl.BindAttribLocation(shaderProgram, 0, "a_position"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190176
+ $r = w.gl.BindAttribLocation(shaderProgram, 1, "a_texCoord"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190177
+ $r = w.gl.DeleteShader(vertShader); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190178
+ $s = -1; return $ifaceNil;
190179
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndAttachVertexShader, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, shaderProgram, vertShader, w, $s};return $f;
190016
190180
  };
190017
- BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190018
- BufferImpl.ptr.prototype.YCbCrJS = function() {
190019
- var b;
190020
- b = this;
190021
- if (b.ycbcrJS === ptrType$4.nil) {
190022
- b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
190181
+ windowImpl.prototype.createAndAttachVertexShader = function(shaderProgram) { return this.$val.createAndAttachVertexShader(shaderProgram); };
190182
+ windowImpl.ptr.prototype.ensureYUV420Textures = function(width, height) {
190183
+ var {_q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _tuple, err, height, w, width, $s, $r, $c} = $restore(this, {width, height});
190184
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190185
+ w = this;
190186
+ /* */ if (w.programYUV420 === ptrType$3.nil) { $s = 1; continue; }
190187
+ /* */ $s = 2; continue;
190188
+ /* if (w.programYUV420 === ptrType$3.nil) { */ case 1:
190189
+ err = $ifaceNil;
190190
+ _r = w.createAndLinkProgramYUV420(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190191
+ _tuple = _r;
190192
+ w.programYUV420 = _tuple[0];
190193
+ err = _tuple[1];
190194
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190195
+ $panic(err);
190196
+ }
190197
+ /* } */ case 2:
190198
+ if ((w.width === width) && (w.height === height)) {
190199
+ $s = -1; return;
190023
190200
  }
190024
- return b.ycbcrJS;
190025
- };
190026
- BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190027
- BufferImpl.ptr.prototype.Release = function() {
190028
- var {b, $s, $deferred, $r, $c} = $restore(this, {});
190029
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190030
- b = this;
190031
- $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190032
- $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
190033
- /* */ if (b.released) { $s = 2; continue; }
190034
- /* */ $s = 3; continue;
190035
- /* if (b.released) { */ case 2:
190036
- $s = 4; case 4: return;
190037
- /* } */ case 3:
190038
- b.released = true;
190201
+ w.ensureCanvasSize(width, height);
190202
+ _r$1 = w.createTexture(33985, 6409, width, height); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190203
+ w.imageTexY = _r$1;
190204
+ _r$2 = w.createTexture(33986, 6409, (_q = width / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = height / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190205
+ w.imageTexU = _r$2;
190206
+ _r$3 = w.createTexture(33987, 6409, (_q$2 = width / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), (_q$3 = height / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190207
+ w.imageTexV = _r$3;
190208
+ $r = w.gl.Enable(2929); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190209
+ $r = w.gl.Viewport(0, 0, width, height); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190210
+ w.width = width;
190211
+ w.height = height;
190212
+ $r = w.clear(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190039
190213
  $s = -1; return;
190040
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
190041
- };
190042
- BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190043
- ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
190044
- 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)}];
190045
- ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190046
- windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
190047
- screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190048
- YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
190049
- BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
190050
- $init = function() {
190051
- $pkg.$init = function() {};
190052
- /* */ 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:
190053
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190054
- $r = errscreen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190055
- $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190056
- $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190057
- $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190058
- $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190059
- $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190060
- $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190061
- $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190062
- $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190063
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190214
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.ensureYUV420Textures, $c: true, $r, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _tuple, err, height, w, width, $s};return $f;
190064
190215
  };
190065
- $pkg.$init = $init;
190066
- return $pkg;
190067
- })();
190068
- $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function() {
190069
- var $pkg = {}, $init, hex, webgl, general, errs, jshelper, canvasdriver, image, js;
190070
- hex = $packages["encoding/hex"];
190071
- webgl = $packages["github.com/nuberu/webgl"];
190072
- general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
190073
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190074
- jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190075
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190076
- image = $packages["image"];
190077
- js = $packages["syscall/js"];
190216
+ windowImpl.prototype.ensureYUV420Textures = function(width, height) { return this.$val.ensureYUV420Textures(width, height); };
190217
+ windowImpl.ptr.prototype.createAndLinkProgramYUV420 = function() {
190218
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, imageULoc, imageVLoc, imageYLoc, shaderProgram, w, $s, $r, $c} = $restore(this, {});
190219
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190220
+ w = this;
190221
+ _r = w.gl.CreateProgram(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190222
+ shaderProgram = _r;
190223
+ _r$1 = w.createAndAttachVertexShader(shaderProgram); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190224
+ err = _r$1;
190225
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190226
+ $s = -1; return [ptrType$3.nil, err];
190227
+ }
190228
+ _r$2 = w.createAndAttachFragmentShader(shaderProgram, "\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_imageY;\nuniform sampler2D u_imageU;\nuniform sampler2D u_imageV;\n\nvoid main(void) {\n\tfloat yChannel = texture2D(u_imageY, v_texCoord).x;\n\tfloat uChannel = texture2D(u_imageU, v_texCoord).x;\n\tfloat vChannel = texture2D(u_imageV, v_texCoord).x;\n\n\t// This does the colorspace conversion from Y'UV to RGB as a matrix\n\t// multiply. It also does the offset of the U and V channels from\n\t// [0,1] to [-.5,.5] as part of the transform.\n\tvec4 channels = vec4(yChannel, uChannel, vChannel, 1.0);\n\n\tmat4 conversion = mat4(1.0, 0.0, 1.402, -0.701,\n\t\t\t\t\t\t\t1.0, -0.344, -0.714, 0.529,\n\t\t\t\t\t\t\t1.0, 1.772, 0.0, -0.886,\n\t\t\t\t\t\t\t0, 0, 0, 0);\n\tvec3 rgb = (channels * conversion).xyz;\n\n\t// This is another Y'UV transform that can be used, but it doesn't\n\t// accurately transform my source image. Your images may well fare\n\t// better with it, however, considering they come from a different\n\t// source, and because I'm not sure that my original was converted\n\t// to Y'UV420p with the same RGB->YUV (or YCrCb) conversion as\n\t// yours.\n\t//\n\t// vec4 channels = vec4(yChannel, uChannel, vChannel, 1.0);\n\t// float3x4 conversion = float3x4(1.0, 0.0, 1.13983, -0.569915,\n\t// 1.0, -0.39465, -0.58060, 0.487625,\n\t// 1.0, 2.03211, 0.0, -1.016055);\n\t// float3 rgb = mul(conversion, channels);\n\tgl_FragColor = vec4(rgb, 1.0);\n}\n"); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190229
+ err = _r$2;
190230
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190231
+ $s = -1; return [ptrType$3.nil, err];
190232
+ }
190233
+ $r = w.gl.LinkProgram(shaderProgram); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190234
+ _r$3 = w.gl.GetProgramParameterLinkStatus(shaderProgram); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190235
+ /* */ if (!_r$3) { $s = 5; continue; }
190236
+ /* */ $s = 6; continue;
190237
+ /* if (!_r$3) { */ case 5:
190238
+ _r$4 = w.gl.GetProgramInfoLog(shaderProgram); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190239
+ _arg = new $String(_r$4);
190240
+ _r$5 = fmt.Errorf("Program: %s", new sliceType$2([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190241
+ $24r = [ptrType$3.nil, _r$5];
190242
+ $s = 10; case 10: return $24r;
190243
+ /* } */ case 6:
190244
+ $r = w.gl.UseProgram(shaderProgram); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190245
+ _r$6 = w.gl.GetUniformLocation(shaderProgram, "u_imageY"); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190246
+ imageYLoc = _r$6;
190247
+ $r = w.gl.Uniform1i(imageYLoc, 1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190248
+ _r$7 = w.gl.GetUniformLocation(shaderProgram, "u_imageU"); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190249
+ imageULoc = _r$7;
190250
+ $r = w.gl.Uniform1i(imageULoc, 2); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190251
+ _r$8 = w.gl.GetUniformLocation(shaderProgram, "u_imageV"); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190252
+ imageVLoc = _r$8;
190253
+ $r = w.gl.Uniform1i(imageVLoc, 3); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190254
+ $s = -1; return [shaderProgram, $ifaceNil];
190255
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndLinkProgramYUV420, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, imageULoc, imageVLoc, imageYLoc, shaderProgram, w, $s};return $f;
190256
+ };
190257
+ windowImpl.prototype.createAndLinkProgramYUV420 = function() { return this.$val.createAndLinkProgramYUV420(); };
190258
+ windowImpl.ptr.prototype.drawBufferYUV420 = function(dp, src, sr) {
190259
+ var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190260
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190261
+ w = this;
190262
+ _arg = $clone(dp, image.Point);
190263
+ _r = src.YCbCr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190264
+ _r$1 = webgl.TypedArrayOf(_r.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190265
+ _arg$1 = $clone(_r$1, js.Value);
190266
+ _r$2 = src.YCbCr(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190267
+ _r$3 = webgl.TypedArrayOf(_r$2.Cb); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190268
+ _arg$2 = $clone(_r$3, js.Value);
190269
+ _r$4 = src.YCbCr(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190270
+ _r$5 = webgl.TypedArrayOf(_r$4.Cr); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190271
+ _arg$3 = $clone(_r$5, js.Value);
190272
+ _arg$4 = $clone(sr, image.Rectangle);
190273
+ $r = w.drawBufferYUV420JSArrayBuffers(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190274
+ $s = -1; return;
190275
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferYUV420, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, dp, sr, src, w, $s};return $f;
190276
+ };
190277
+ windowImpl.prototype.drawBufferYUV420 = function(dp, src, sr) { return this.$val.drawBufferYUV420(dp, src, sr); };
190278
+ windowImpl.ptr.prototype.drawBufferYUV420JSArrayBuffers = function(dp, y, cb, cr, sr) {
190279
+ var {_q, _q$1, _q$2, _q$3, cb, cr, dp, sr, w, y, $s, $r, $c} = $restore(this, {dp, y, cb, cr, sr});
190280
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190281
+ w = this;
190282
+ $r = w.ensureYUV420Textures(sr.Max.X, sr.Max.Y); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190283
+ $r = w.gl.UseProgram(w.programYUV420); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190284
+ $r = w.gl.BindTexture(3553, w.imageTexY); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190285
+ $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, sr.Max.X, sr.Max.Y, 6409, 5121, $clone(y, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190286
+ $r = w.gl.BindTexture(3553, w.imageTexU); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190287
+ $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, (_q = sr.Max.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = sr.Max.Y / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 6409, 5121, $clone(cb, js.Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190288
+ $r = w.gl.BindTexture(3553, w.imageTexV); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190289
+ $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, (_q$2 = sr.Max.X / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), (_q$3 = sr.Max.Y / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 6409, 5121, $clone(cr, js.Value)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190290
+ $r = w.gl.BindVertexArray(w.vertexArray); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190291
+ $r = w.gl.DrawElements(4, elementsIndices.$length, 5123, new $Int64(0, 0)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190292
+ $s = -1; return;
190293
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferYUV420JSArrayBuffers, $c: true, $r, _q, _q$1, _q$2, _q$3, cb, cr, dp, sr, w, y, $s};return $f;
190294
+ };
190295
+ windowImpl.prototype.drawBufferYUV420JSArrayBuffers = function(dp, y, cb, cr, sr) { return this.$val.drawBufferYUV420JSArrayBuffers(dp, y, cb, cr, sr); };
190296
+ windowImpl.ptr.prototype.ensureRGBATextures = function(width, height) {
190297
+ var {_r, _r$1, _tuple, err, height, w, width, $s, $r, $c} = $restore(this, {width, height});
190298
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190299
+ w = this;
190300
+ /* */ if (w.programRGBA === ptrType$3.nil) { $s = 1; continue; }
190301
+ /* */ $s = 2; continue;
190302
+ /* if (w.programRGBA === ptrType$3.nil) { */ case 1:
190303
+ err = $ifaceNil;
190304
+ _r = w.createAndLinkProgramRGBA(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190305
+ _tuple = _r;
190306
+ w.programRGBA = _tuple[0];
190307
+ err = _tuple[1];
190308
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190309
+ $panic(err);
190310
+ }
190311
+ /* } */ case 2:
190312
+ if ((w.width === width) && (w.height === height)) {
190313
+ $s = -1; return;
190314
+ }
190315
+ w.ensureCanvasSize(width, height);
190316
+ _r$1 = w.createTexture(33984, 6408, width, height); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190317
+ w.imageTexRGBA = _r$1;
190318
+ $r = w.gl.Enable(2929); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190319
+ $r = w.gl.Viewport(0, 0, width, height); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190320
+ w.width = width;
190321
+ w.height = height;
190322
+ $r = w.clear(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190323
+ $s = -1; return;
190324
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.ensureRGBATextures, $c: true, $r, _r, _r$1, _tuple, err, height, w, width, $s};return $f;
190325
+ };
190326
+ windowImpl.prototype.ensureRGBATextures = function(width, height) { return this.$val.ensureRGBATextures(width, height); };
190327
+ windowImpl.ptr.prototype.createAndLinkProgramRGBA = function() {
190328
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, imageLoc, shaderProgram, w, $s, $r, $c} = $restore(this, {});
190329
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190330
+ w = this;
190331
+ _r = w.gl.CreateProgram(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190332
+ shaderProgram = _r;
190333
+ _r$1 = w.createAndAttachVertexShader(shaderProgram); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190334
+ err = _r$1;
190335
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190336
+ $s = -1; return [ptrType$3.nil, err];
190337
+ }
190338
+ _r$2 = w.createAndAttachFragmentShader(shaderProgram, "\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_image;\n\nvoid main(void) {\n\tgl_FragColor = texture2D(u_image, v_texCoord);\n}\n"); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190339
+ err = _r$2;
190340
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190341
+ $s = -1; return [ptrType$3.nil, err];
190342
+ }
190343
+ $r = w.gl.LinkProgram(shaderProgram); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190344
+ _r$3 = w.gl.GetProgramParameterLinkStatus(shaderProgram); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190345
+ /* */ if (!_r$3) { $s = 5; continue; }
190346
+ /* */ $s = 6; continue;
190347
+ /* if (!_r$3) { */ case 5:
190348
+ _r$4 = w.gl.GetProgramInfoLog(shaderProgram); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190349
+ _arg = new $String(_r$4);
190350
+ _r$5 = fmt.Errorf("Program: %s", new sliceType$2([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190351
+ $24r = [ptrType$3.nil, _r$5];
190352
+ $s = 10; case 10: return $24r;
190353
+ /* } */ case 6:
190354
+ $r = w.gl.UseProgram(shaderProgram); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190355
+ _r$6 = w.gl.GetUniformLocation(shaderProgram, "u_image"); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190356
+ imageLoc = _r$6;
190357
+ $r = w.gl.Uniform1i(imageLoc, 0); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190358
+ $s = -1; return [shaderProgram, $ifaceNil];
190359
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndLinkProgramRGBA, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, imageLoc, shaderProgram, w, $s};return $f;
190360
+ };
190361
+ windowImpl.prototype.createAndLinkProgramRGBA = function() { return this.$val.createAndLinkProgramRGBA(); };
190362
+ windowImpl.ptr.prototype.drawBufferRGBA = function(dp, src, sr) {
190363
+ var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190364
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190365
+ w = this;
190366
+ $r = w.ensureRGBATextures(sr.Max.X, sr.Max.Y); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190367
+ $r = w.gl.UseProgram(w.programRGBA); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190368
+ $r = w.gl.BindTexture(3553, w.imageTexRGBA); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190369
+ _arg = dp.X;
190370
+ _arg$1 = dp.Y;
190371
+ _arg$2 = sr.Max.X;
190372
+ _arg$3 = sr.Max.Y;
190373
+ _r = src.RGBA(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190374
+ _r$1 = webgl.TypedArrayOf(_r.Pix); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190375
+ _arg$4 = $clone(_r$1, js.Value);
190376
+ $r = w.gl.TexSubImage2D(3553, 0, _arg, _arg$1, _arg$2, _arg$3, 6408, 5121, _arg$4); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190377
+ $r = w.gl.BindVertexArray(w.vertexArray); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190378
+ $r = w.gl.DrawElements(4, elementsIndices.$length, 5123, new $Int64(0, 0)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190379
+ $s = -1; return;
190380
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferRGBA, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, dp, sr, src, w, $s};return $f;
190381
+ };
190382
+ windowImpl.prototype.drawBufferRGBA = function(dp, src, sr) { return this.$val.drawBufferRGBA(dp, src, sr); };
190383
+ windowImpl.ptr.prototype.createBuffers = function() {
190384
+ var {_r, _r$1, _r$2, elementBuffer, emptyFloat, floatLen, vertexArray, vertexBuffer, w, $s, $r, $c} = $restore(this, {});
190385
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190386
+ w = this;
190387
+ _r = w.gl.CreateVertexArray(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190388
+ vertexArray = _r;
190389
+ _r$1 = w.gl.CreateBuffer(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190390
+ vertexBuffer = _r$1;
190391
+ _r$2 = w.gl.CreateBuffer(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190392
+ elementBuffer = _r$2;
190393
+ $r = w.gl.BindVertexArray(vertexArray); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190394
+ $r = w.gl.BindBuffer(34962, vertexBuffer); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190395
+ $r = w.gl.BufferData(34962, texCoordsVertices, 35044); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190396
+ $r = w.gl.BindBuffer(34963, elementBuffer); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190397
+ $r = w.gl.BufferDataUI16(34963, elementsIndices, 35044); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190398
+ emptyFloat = 0;
190399
+ floatLen = 4;
190400
+ $r = w.gl.VertexAttribPointer(0, 2, 5126, false, $imul(4, floatLen), 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190401
+ $r = w.gl.EnableVertexAttribArray(0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190402
+ $r = w.gl.VertexAttribPointer(1, 2, 5126, false, $imul(4, floatLen), $imul(2, floatLen)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190403
+ $r = w.gl.EnableVertexAttribArray(1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190404
+ $s = -1; return vertexArray;
190405
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createBuffers, $c: true, $r, _r, _r$1, _r$2, elementBuffer, emptyFloat, floatLen, vertexArray, vertexBuffer, w, $s};return $f;
190406
+ };
190407
+ windowImpl.prototype.createBuffers = function() { return this.$val.createBuffers(); };
190408
+ windowImpl.ptr.prototype.createAndAttachFragmentShader = function(shaderProgram, fragmentShaderCode) {
190409
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, fragShader, fragmentShaderCode, shaderProgram, w, $s, $r, $c} = $restore(this, {shaderProgram, fragmentShaderCode});
190410
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190411
+ w = this;
190412
+ _r = w.gl.CreateFragmentShader(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190413
+ fragShader = _r;
190414
+ $r = w.gl.ShaderSource(fragShader, fragmentShaderCode); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190415
+ $r = w.gl.CompileShader(fragShader); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190416
+ _r$1 = w.gl.GetShaderParameterCompileStatus(fragShader); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190417
+ /* */ if (!_r$1) { $s = 4; continue; }
190418
+ /* */ $s = 5; continue;
190419
+ /* if (!_r$1) { */ case 4:
190420
+ _r$2 = w.gl.GetShaderInfoLog(fragShader); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190421
+ _arg = new $String(_r$2);
190422
+ _r$3 = fmt.Errorf("Fragment shader: %s", new sliceType$2([_arg])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190423
+ $24r = _r$3;
190424
+ $s = 9; case 9: return $24r;
190425
+ /* } */ case 5:
190426
+ $r = w.gl.AttachShader(shaderProgram, fragShader); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190427
+ $r = w.gl.DeleteShader(fragShader); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190428
+ $s = -1; return $ifaceNil;
190429
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndAttachFragmentShader, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, fragShader, fragmentShaderCode, shaderProgram, w, $s};return $f;
190430
+ };
190431
+ windowImpl.prototype.createAndAttachFragmentShader = function(shaderProgram, fragmentShaderCode) { return this.$val.createAndAttachFragmentShader(shaderProgram, fragmentShaderCode); };
190432
+ windowImpl.ptr.prototype.createTexture = function(unit, format, width, height) {
190433
+ var {_r, format, height, imageTex, unit, w, width, $s, $r, $c} = $restore(this, {unit, format, width, height});
190434
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190435
+ w = this;
190436
+ $r = w.gl.ActiveTexture(((unit >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190437
+ _r = w.gl.CreateTexture(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190438
+ imageTex = _r;
190439
+ $r = w.gl.BindTexture(3553, imageTex); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190440
+ $r = w.gl.TexParameterWrapS(3553, 10497); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190441
+ $r = w.gl.TexParameterWrapT(3553, 10497); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190442
+ $r = w.gl.TexParameterMinFilter(3553, 9729); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190443
+ $r = w.gl.TexParameterMagFilter(3553, 9729); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190444
+ $r = w.gl.TexImage2Db(3553, 0, format, width, height, 0, format, sliceType$3.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190445
+ $s = -1; return imageTex;
190446
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createTexture, $c: true, $r, _r, format, height, imageTex, unit, w, width, $s};return $f;
190447
+ };
190448
+ windowImpl.prototype.createTexture = function(unit, format, width, height) { return this.$val.createTexture(unit, format, width, height); };
190449
+ ArrayBufferSlice.ptr.prototype.slice = function() {
190450
+ var {$24r, _r, a, $s, $r, $c} = $restore(this, {});
190451
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190452
+ a = this;
190453
+ _r = $clone(a.ArrayBuffer, js.Value).Call("subarray", new sliceType$2([new $Int(a.Offset), new $Int(a.Length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190454
+ $24r = _r;
190455
+ $s = 2; case 2: return $24r;
190456
+ /* */ } return; } var $f = {$blk: ArrayBufferSlice.ptr.prototype.slice, $c: true, $r, $24r, _r, a, $s};return $f;
190457
+ };
190458
+ ArrayBufferSlice.prototype.slice = function() { return this.$val.slice(); };
190459
+ newBuffer = function(screen$1, size) {
190460
+ var _q, _q$1, _q$2, b, rect, screen$1, size;
190461
+ rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
190462
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$3, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(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)), image.YCbCr), ptrType$8.nil);
190463
+ return b;
190464
+ };
190465
+ BufferImpl.ptr.prototype.Size = function() {
190466
+ var b;
190467
+ b = this;
190468
+ return b.size;
190469
+ };
190470
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190471
+ BufferImpl.ptr.prototype.Bounds = function() {
190472
+ var b;
190473
+ b = this;
190474
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190475
+ };
190476
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190477
+ BufferImpl.ptr.prototype.RGBA = function() {
190478
+ var b;
190479
+ b = this;
190480
+ return b.rgba;
190481
+ };
190482
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190483
+ BufferImpl.ptr.prototype.YCbCr = function() {
190484
+ var b;
190485
+ b = this;
190486
+ return b.ycbcr;
190487
+ };
190488
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190489
+ BufferImpl.ptr.prototype.YCbCrJS = function() {
190490
+ var {_r, b, emptyBuffer, $s, $r, $c} = $restore(this, {});
190491
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190492
+ b = this;
190493
+ /* */ if (b.ycbcrJS === ptrType$8.nil) { $s = 1; continue; }
190494
+ /* */ $s = 2; continue;
190495
+ /* if (b.ycbcrJS === ptrType$8.nil) { */ case 1:
190496
+ _r = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190497
+ emptyBuffer = $clone(_r, js.Value);
190498
+ b.ycbcrJS = new YCbCrJS.ptr($clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), $clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), $clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), b.ycbcr.YStride, b.ycbcr.CStride, 2, $clone(b.ycbcr.Rect, image.Rectangle), false);
190499
+ /* } */ case 2:
190500
+ $s = -1; return b.ycbcrJS;
190501
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCrJS, $c: true, $r, _r, b, emptyBuffer, $s};return $f;
190502
+ };
190503
+ BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190504
+ BufferImpl.ptr.prototype.Release = function() {
190505
+ var {b, $s, $deferred, $r, $c} = $restore(this, {});
190506
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190507
+ b = this;
190508
+ $r = b.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190509
+ $deferred.push([$methodVal(b.mutex, "Unlock"), []]);
190510
+ /* */ if (b.released) { $s = 2; continue; }
190511
+ /* */ $s = 3; continue;
190512
+ /* if (b.released) { */ case 2:
190513
+ $s = 4; case 4: return;
190514
+ /* } */ case 3:
190515
+ b.released = true;
190516
+ $s = -1; return;
190517
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
190518
+ };
190519
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190520
+ ptrType$10.methods = [{prop: "ensureCanvasSize", name: "ensureCanvasSize", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "clear", name: "clear", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$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)}, {prop: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$3], [$error], false)}, {prop: "ensureYUV420Textures", name: "ensureYUV420Textures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$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: "ensureRGBATextures", name: "ensureRGBATextures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$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: "createBuffers", name: "createBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$5], 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$4], false)}];
190521
+ 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)}];
190522
+ ptrType$12.methods = [{prop: "slice", name: "slice", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [js.Value], false)}];
190523
+ 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$13], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190524
+ windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexY", name: "imageTexY", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexU", name: "imageTexU", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexV", name: "imageTexV", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "vertexArray", name: "vertexArray", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}]);
190525
+ screenImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190526
+ 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: ""}]);
190527
+ 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: ""}]);
190528
+ 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$8, tag: ""}]);
190078
190529
  $init = function() {
190079
190530
  $pkg.$init = function() {};
190080
190531
  /* */ 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:
190081
- $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190532
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190082
190533
  $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190083
- $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190084
- $r = errs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190085
- $r = jshelper.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190086
- $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190087
- $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190088
- $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190534
+ $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190535
+ $r = errscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190536
+ $r = dom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190537
+ $r = imageutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190538
+ $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190539
+ $r = f64.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190540
+ $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190541
+ $r = color.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190542
+ $r = draw.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190543
+ $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190544
+ $r = js.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190545
+ texCoordsVertices = new sliceType([1, 1, 1, 0, 1, -1, 1, 1, -1, -1, 0, 1, -1, 1, 0, 0]);
190546
+ elementsIndices = new sliceType$1([0, 1, 3, 1, 2, 3]);
190089
190547
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190090
190548
  };
190091
190549
  $pkg.$init = $init;
190092
190550
  return $pkg;
190093
190551
  })();
190094
- $packages["github.com/supraio/client-daemon/pkg/input"] = (function() {
190095
- var $pkg = {}, $init, binary, fmt, errs, message, focus, key, mouse, sync;
190096
- binary = $packages["encoding/binary"];
190097
- fmt = $packages["fmt"];
190552
+ $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"] = (function() {
190553
+ var $pkg = {}, $init, general, errs, webgldriver, image, js;
190554
+ general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
190098
190555
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190099
- message = $packages["github.com/supraio/client-daemon/pkg/message"];
190100
- focus = $packages["golang.org/x/mobile/event/focus"];
190101
- key = $packages["golang.org/x/mobile/event/key"];
190102
- mouse = $packages["golang.org/x/mobile/event/mouse"];
190103
- sync = $packages["sync"];
190556
+ webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
190557
+ image = $packages["image"];
190558
+ js = $packages["syscall/js"];
190104
190559
  $init = function() {
190105
190560
  $pkg.$init = function() {};
190106
190561
  /* */ 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:
190107
- $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190108
- $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190109
- $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190110
- $r = message.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190111
- $r = focus.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190112
- $r = key.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190113
- $r = mouse.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190114
- $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190562
+ $r = general.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190563
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190564
+ $r = webgldriver.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190565
+ $r = image.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190566
+ $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190115
190567
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190116
190568
  };
190117
190569
  $pkg.$init = $init;
190118
190570
  return $pkg;
190119
190571
  })();
190120
- $packages["github.com/supraio/client-daemon/pkg/render/frame"] = (function() {
190121
- var $pkg = {}, $init, time;
190122
- time = $packages["time"];
190572
+ $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
190573
+ var $pkg = {}, $init, Protocol, videoStreamer, Register;
190574
+ Protocol = $pkg.Protocol = $newType(1, $kindUint8, "videostream.Protocol", true, "github.com/supraio/client-daemon/pkg/videostream", true, null);
190575
+ Register = function(newVideoStreamer) {
190576
+ var newVideoStreamer;
190577
+ if (!($interfaceIsEqual(videoStreamer, $ifaceNil))) {
190578
+ $panic(new $String("VideoStreamer already registered"));
190579
+ }
190580
+ videoStreamer = newVideoStreamer;
190581
+ };
190582
+ $pkg.Register = Register;
190123
190583
  $init = function() {
190124
190584
  $pkg.$init = function() {};
190125
190585
  /* */ 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:
190126
- $r = time.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190586
+ videoStreamer = $ifaceNil;
190127
190587
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190128
190588
  };
190129
190589
  $pkg.$init = $init;
190130
190590
  return $pkg;
190131
190591
  })();
190132
- $packages["github.com/supraio/client-daemon/pkg/render/netframe"] = (function() {
190133
- var $pkg = {}, $init, binary, errs, netpacket, frame;
190134
- binary = $packages["encoding/binary"];
190592
+ $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function() {
190593
+ var $pkg = {}, $init, fmt, general, errs, jshelper, videostream, js, SOSVideoStreamer, funcType, arrayType, ptrType$1, init;
190594
+ fmt = $packages["fmt"];
190595
+ general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
190135
190596
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190136
- netpacket = $packages["github.com/supraio/client-daemon/pkg/netpacket"];
190137
- frame = $packages["github.com/supraio/client-daemon/pkg/render/frame"];
190138
- $init = function() {
190139
- $pkg.$init = function() {};
190140
- /* */ 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:
190141
- $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190142
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190143
- $r = netpacket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190144
- $r = frame.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190145
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190597
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190598
+ videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
190599
+ js = $packages["syscall/js"];
190600
+ SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_) {
190601
+ this.$val = this;
190602
+ if (arguments.length === 0) {
190603
+ this.sos = new js.Value.ptr(null, false, arrayType.zero());
190604
+ return;
190605
+ }
190606
+ this.sos = sos_;
190607
+ });
190608
+ funcType = $funcType([], [], false);
190609
+ arrayType = $arrayType(funcType, 0);
190610
+ ptrType$1 = $ptrType(SOSVideoStreamer);
190611
+ init = function() {
190612
+ var videoStreamer;
190613
+ videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value));
190614
+ videostream.Register(videoStreamer);
190146
190615
  };
190147
- $pkg.$init = $init;
190148
- return $pkg;
190149
- })();
190150
- $packages["golang.org/x/exp/shiny/imageutil"] = (function() {
190151
- var $pkg = {}, $init, screen, image, draw, ConvertYCbCrToRGBA;
190152
- screen = $packages["golang.org/x/exp/shiny/screen"];
190153
- image = $packages["image"];
190154
- draw = $packages["image/draw"];
190155
- ConvertYCbCrToRGBA = function(b) {
190156
- var {_arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, b, $s, $r, $c} = $restore(this, {b});
190157
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190158
- _r = b.RGBA(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190159
- _arg = _r;
190160
- _r$1 = b.YCbCr(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190161
- _r$2 = _r$1.Bounds(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190162
- _arg$1 = $clone(_r$2, image.Rectangle);
190163
- _r$3 = b.YCbCr(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190164
- _arg$2 = _r$3;
190165
- _r$4 = b.RGBA(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190166
- _arg$3 = $clone(_r$4.Rect.Min, image.Point);
190167
- $r = draw.Draw(_arg, _arg$1, _arg$2, _arg$3, 1); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190168
- $s = -1; return;
190169
- /* */ } return; } var $f = {$blk: ConvertYCbCrToRGBA, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _r, _r$1, _r$2, _r$3, _r$4, b, $s};return $f;
190616
+ SOSVideoStreamer.ptr.prototype.IsAvailable = function() {
190617
+ var m;
190618
+ m = this;
190619
+ return !$clone(m.sos, js.Value).IsUndefined() && $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
190620
+ };
190621
+ SOSVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
190622
+ SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
190623
+ var _1, m, protocol, protocolValue;
190624
+ m = this;
190625
+ protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
190626
+ protocol = 0;
190627
+ if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
190628
+ _1 = $clone(protocolValue, js.Value).String();
190629
+ if (_1 === ("UDP")) {
190630
+ protocol = 0;
190631
+ } else if (_1 === ("HTTP")) {
190632
+ protocol = 1;
190633
+ } else if (_1 === ("HTTPMP4")) {
190634
+ protocol = 2;
190635
+ } else if (_1 === ("RTP")) {
190636
+ protocol = 3;
190637
+ } else {
190638
+ protocol = 0;
190639
+ }
190640
+ }
190641
+ return protocol;
190642
+ };
190643
+ SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
190644
+ SOSVideoStreamer.ptr.prototype.GetPort = function() {
190645
+ var m, port, portValue;
190646
+ m = this;
190647
+ portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
190648
+ port = 5000;
190649
+ if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
190650
+ port = $clone(portValue, js.Value).Int();
190651
+ }
190652
+ return ((port << 16 >>> 16));
190170
190653
  };
190171
- $pkg.ConvertYCbCrToRGBA = ConvertYCbCrToRGBA;
190654
+ SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
190655
+ SOSVideoStreamer.ptr.prototype.GetHostname = function() {
190656
+ var hostname, hostnameValue, m;
190657
+ m = this;
190658
+ hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
190659
+ hostname = "";
190660
+ if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
190661
+ hostname = $clone(hostnameValue, js.Value).String();
190662
+ }
190663
+ return hostname;
190664
+ };
190665
+ SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
190666
+ ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [videostream.Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
190667
+ SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190172
190668
  $init = function() {
190173
190669
  $pkg.$init = function() {};
190174
190670
  /* */ 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:
190175
- $r = screen.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190176
- $r = image.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190177
- $r = draw.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190671
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190672
+ $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190673
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190674
+ $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190675
+ $r = videostream.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190676
+ $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190677
+ init();
190178
190678
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190179
190679
  };
190180
190680
  $pkg.$init = $init;
190181
190681
  return $pkg;
190182
190682
  })();
190183
- $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190184
- var $pkg = {}, $init, fmt, webgl, types, errscreen, dom, imageutil, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, ArrayBufferSlice, YCbCrJS, BufferImpl, sliceType, sliceType$1, sliceType$2, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, sliceType$3, ptrType$8, ptrType$9, ptrType$10, ptrType$11, ptrType$12, ptrType$13, ptrType$14, texCoordsVertices, elementsIndices, newWindow, main, newScreenImpl, newBuffer;
190683
+ $packages["golang.org/x/exp/shiny/driver/canvasdriver"] = (function() {
190684
+ var $pkg = {}, $init, fmt, errscreen, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, YCbCrJS, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, sliceType$1, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, newWindow, main, newScreenImpl, newBuffer;
190185
190685
  fmt = $packages["fmt"];
190186
- webgl = $packages["github.com/nuberu/webgl"];
190187
- types = $packages["github.com/nuberu/webgl/types"];
190188
190686
  errscreen = $packages["golang.org/x/exp/shiny/driver/internal/errscreen"];
190189
190687
  dom = $packages["golang.org/x/exp/shiny/driver/util/dom"];
190190
- imageutil = $packages["golang.org/x/exp/shiny/imageutil"];
190191
190688
  screen = $packages["golang.org/x/exp/shiny/screen"];
190192
190689
  f64 = $packages["golang.org/x/image/math/f64"];
190193
190690
  image = $packages["image"];
@@ -190195,43 +190692,27 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190195
190692
  draw = $packages["image/draw"];
190196
190693
  sync = $packages["sync"];
190197
190694
  js = $packages["syscall/js"];
190198
- windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "webgldriver.windowImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(screen_, mutex_, canvasEl_, gl_, programRGBA_, imageTexRGBA_, programYUV420_, imageTexY_, imageTexU_, imageTexV_, vertexArray_, released_, domEvents_, width_, height_) {
190695
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "canvasdriver.windowImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(screen_, mutex_, canvasEl_, ctx2d_, released_, domEvents_, resizeCallback_) {
190199
190696
  this.$val = this;
190200
190697
  if (arguments.length === 0) {
190201
190698
  this.screen = ptrType.nil;
190202
190699
  this.mutex = ptrType$1.nil;
190203
190700
  this.canvasEl = new js.Value.ptr(null, false, arrayType.zero());
190204
- this.gl = ptrType$2.nil;
190205
- this.programRGBA = ptrType$3.nil;
190206
- this.imageTexRGBA = ptrType$4.nil;
190207
- this.programYUV420 = ptrType$3.nil;
190208
- this.imageTexY = ptrType$4.nil;
190209
- this.imageTexU = ptrType$4.nil;
190210
- this.imageTexV = ptrType$4.nil;
190211
- this.vertexArray = ptrType$5.nil;
190701
+ this.ctx2d = new js.Value.ptr(null, false, arrayType.zero());
190212
190702
  this.released = false;
190213
- this.domEvents = ptrType$6.nil;
190214
- this.width = 0;
190215
- this.height = 0;
190703
+ this.domEvents = ptrType$2.nil;
190704
+ this.resizeCallback = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
190216
190705
  return;
190217
190706
  }
190218
190707
  this.screen = screen_;
190219
190708
  this.mutex = mutex_;
190220
190709
  this.canvasEl = canvasEl_;
190221
- this.gl = gl_;
190222
- this.programRGBA = programRGBA_;
190223
- this.imageTexRGBA = imageTexRGBA_;
190224
- this.programYUV420 = programYUV420_;
190225
- this.imageTexY = imageTexY_;
190226
- this.imageTexU = imageTexU_;
190227
- this.imageTexV = imageTexV_;
190228
- this.vertexArray = vertexArray_;
190710
+ this.ctx2d = ctx2d_;
190229
190711
  this.released = released_;
190230
190712
  this.domEvents = domEvents_;
190231
- this.width = width_;
190232
- this.height = height_;
190713
+ this.resizeCallback = resizeCallback_;
190233
190714
  });
190234
- screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "webgldriver.screenImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", false, function(doc_) {
190715
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "canvasdriver.screenImpl", true, "golang.org/x/exp/shiny/driver/canvasdriver", false, function(doc_) {
190235
190716
  this.$val = this;
190236
190717
  if (arguments.length === 0) {
190237
190718
  this.doc = new js.Value.ptr(null, false, arrayType.zero());
@@ -190239,50 +190720,24 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190239
190720
  }
190240
190721
  this.doc = doc_;
190241
190722
  });
190242
- ArrayBufferSlice = $pkg.ArrayBufferSlice = $newType(0, $kindStruct, "webgldriver.ArrayBufferSlice", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(ArrayBuffer_, Offset_, Length_) {
190243
- this.$val = this;
190244
- if (arguments.length === 0) {
190245
- this.ArrayBuffer = new js.Value.ptr(null, false, arrayType.zero());
190246
- this.Offset = 0;
190247
- this.Length = 0;
190248
- return;
190249
- }
190250
- this.ArrayBuffer = ArrayBuffer_;
190251
- this.Offset = Offset_;
190252
- this.Length = Length_;
190253
- });
190254
- YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "webgldriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(Y_, Cb_, Cr_, YStride_, CStride_, SubsampleRatio_, Rect_, Use_) {
190723
+ YCbCrJS = $pkg.YCbCrJS = $newType(0, $kindStruct, "canvasdriver.YCbCrJS", true, "golang.org/x/exp/shiny/driver/canvasdriver", true, function(CanvasImageSource_) {
190255
190724
  this.$val = this;
190256
190725
  if (arguments.length === 0) {
190257
- this.Y = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
190258
- this.Cb = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
190259
- this.Cr = new ArrayBufferSlice.ptr(new js.Value.ptr(null, false, arrayType.zero()), 0, 0);
190260
- this.YStride = 0;
190261
- this.CStride = 0;
190262
- this.SubsampleRatio = 0;
190263
- this.Rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0));
190264
- this.Use = false;
190726
+ this.CanvasImageSource = ptrType$5.nil;
190265
190727
  return;
190266
190728
  }
190267
- this.Y = Y_;
190268
- this.Cb = Cb_;
190269
- this.Cr = Cr_;
190270
- this.YStride = YStride_;
190271
- this.CStride = CStride_;
190272
- this.SubsampleRatio = SubsampleRatio_;
190273
- this.Rect = Rect_;
190274
- this.Use = Use_;
190729
+ this.CanvasImageSource = CanvasImageSource_;
190275
190730
  });
190276
- BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "webgldriver.BufferImpl", true, "golang.org/x/exp/shiny/driver/webgldriver", true, function(screen_, size_, mutex_, released_, rgba_, ycbcr_, ycbcrJS_) {
190731
+ 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_) {
190277
190732
  this.$val = this;
190278
190733
  if (arguments.length === 0) {
190279
190734
  this.screen = ptrType.nil;
190280
190735
  this.size = new image.Point.ptr(0, 0);
190281
190736
  this.mutex = ptrType$1.nil;
190282
190737
  this.released = false;
190283
- this.rgba = new image.RGBA.ptr(sliceType$3.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190284
- this.ycbcr = new image.YCbCr.ptr(sliceType$3.nil, sliceType$3.nil, sliceType$3.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190285
- this.ycbcrJS = ptrType$8.nil;
190738
+ this.rgba = new image.RGBA.ptr(sliceType$1.nil, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190739
+ this.ycbcr = new image.YCbCr.ptr(sliceType$1.nil, sliceType$1.nil, sliceType$1.nil, 0, 0, 0, new image.Rectangle.ptr(new image.Point.ptr(0, 0), new image.Point.ptr(0, 0)));
190740
+ this.ycbcrJS = ptrType$4.nil;
190286
190741
  return;
190287
190742
  }
190288
190743
  this.screen = screen_;
@@ -190293,89 +190748,85 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190293
190748
  this.ycbcr = ycbcr_;
190294
190749
  this.ycbcrJS = ycbcrJS_;
190295
190750
  });
190296
- sliceType = $sliceType($Float32);
190297
- sliceType$1 = $sliceType($Uint16);
190298
- sliceType$2 = $sliceType($emptyInterface);
190751
+ sliceType = $sliceType($emptyInterface);
190299
190752
  ptrType = $ptrType(screenImpl);
190300
190753
  ptrType$1 = $ptrType(sync.Mutex);
190301
190754
  funcType = $funcType([], [], false);
190302
190755
  arrayType = $arrayType(funcType, 0);
190303
- ptrType$2 = $ptrType(webgl.RenderingContext);
190304
- ptrType$3 = $ptrType(types.Program);
190305
- ptrType$4 = $ptrType(types.Texture);
190306
- ptrType$5 = $ptrType(types.VertexArray);
190307
- ptrType$6 = $ptrType(dom.DomEvents);
190308
- ptrType$7 = $ptrType(BufferImpl);
190309
- sliceType$3 = $sliceType($Uint8);
190310
- ptrType$8 = $ptrType(YCbCrJS);
190311
- ptrType$9 = $ptrType(screen.DrawOptions);
190312
- ptrType$10 = $ptrType(windowImpl);
190313
- ptrType$11 = $ptrType(screen.NewWindowOptions);
190314
- ptrType$12 = $ptrType(ArrayBufferSlice);
190315
- ptrType$13 = $ptrType(image.RGBA);
190316
- ptrType$14 = $ptrType(image.YCbCr);
190756
+ ptrType$2 = $ptrType(dom.DomEvents);
190757
+ ptrType$3 = $ptrType(BufferImpl);
190758
+ sliceType$1 = $sliceType($Uint8);
190759
+ ptrType$4 = $ptrType(YCbCrJS);
190760
+ ptrType$5 = $ptrType(js.Value);
190761
+ ptrType$6 = $ptrType(screen.DrawOptions);
190762
+ ptrType$7 = $ptrType(windowImpl);
190763
+ ptrType$8 = $ptrType(screen.NewWindowOptions);
190764
+ ptrType$9 = $ptrType(image.RGBA);
190765
+ ptrType$10 = $ptrType(image.YCbCr);
190317
190766
  newWindow = function(screen$1, opts) {
190318
- var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, canvasEl, domEvents, err, gl, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190767
+ var {_r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190319
190768
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190320
- _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; }
190321
- canvasEl = $clone(_r, js.Value);
190322
- _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; }
190769
+ adaptCanvas = [adaptCanvas];
190770
+ canvasEl = [canvasEl];
190771
+ _r = $clone(screen$1.doc, js.Value).Call("createElement", new sliceType([new $String("canvas")])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190772
+ canvasEl[0] = $clone(_r, js.Value);
190773
+ _r$1 = $clone($clone(screen$1.doc, js.Value).Get("body"), js.Value).Call("appendChild", new sliceType([new canvasEl[0].constructor.elem(canvasEl[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190323
190774
  _r$1;
190324
- _r$2 = webgl.FromCanvas($clone(canvasEl, js.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190325
- _tuple = _r$2;
190326
- gl = _tuple[0];
190327
- err = _tuple[1];
190328
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190329
- $panic(err);
190330
- }
190775
+ adaptCanvas[0] = (function(adaptCanvas, canvasEl) { return function() {
190776
+ var height, scale, width;
190777
+ scale = dom.GetBrowserZoomRatio();
190778
+ width = (((dom.GetScreenWidth()) / scale >> 0));
190779
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("width"), js.Value).Int() === width))) {
190780
+ $clone(canvasEl[0], js.Value).Set("width", new $Int(width));
190781
+ }
190782
+ height = (((dom.GetScreenHeight()) / scale >> 0));
190783
+ if (!(($clone($clone(canvasEl[0], js.Value).Get("height"), js.Value).Int() === height))) {
190784
+ $clone(canvasEl[0], js.Value).Set("height", new $Int(height));
190785
+ }
190786
+ }; })(adaptCanvas, canvasEl);
190787
+ $r = adaptCanvas[0](); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190788
+ resizeCallback = $clone(js.FuncOf((function(adaptCanvas, canvasEl) { return function $b(this$1, args) {
190789
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190790
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190791
+ $r = adaptCanvas[0](); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190792
+ $s = -1; return $ifaceNil;
190793
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190794
+ }; })(adaptCanvas, canvasEl)), js.Func);
190795
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new resizeCallback.constructor.elem(resizeCallback)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190796
+ _r$2;
190797
+ /* */ if (!((opts.Width === 0))) { $s = 5; continue; }
190798
+ /* */ $s = 6; continue;
190799
+ /* if (!((opts.Width === 0))) { */ case 5:
190800
+ $r = dom.SetWindowWidth(opts.Width); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190801
+ /* } */ case 6:
190802
+ /* */ if (!((opts.Height === 0))) { $s = 8; continue; }
190803
+ /* */ $s = 9; continue;
190804
+ /* if (!((opts.Height === 0))) { */ case 8:
190805
+ $r = dom.SetWindowHeight(opts.Height); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190806
+ /* } */ case 9:
190807
+ /* */ if (!(opts.Title === "")) { $s = 11; continue; }
190808
+ /* */ $s = 12; continue;
190809
+ /* if (!(opts.Title === "")) { */ case 11:
190810
+ _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190811
+ _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190812
+ $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190813
+ /* } */ case 12:
190814
+ _r$5 = $clone(canvasEl[0], js.Value).Call("getContext", new sliceType([new $String("2d")])); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190815
+ ctx2d = $clone(_r$5, js.Value);
190816
+ /* */ if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { $s = 17; continue; }
190817
+ /* */ $s = 18; continue;
190818
+ /* if ($clone(ctx2d, js.Value).IsUndefined() || $clone(ctx2d, js.Value).IsNull()) { */ case 17:
190819
+ _r$6 = fmt.Errorf("Cannot get 2d context of canvas", sliceType.nil); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190820
+ $panic(_r$6);
190821
+ /* } */ case 18:
190331
190822
  domEvents = dom.NewDomEvents();
190332
- w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl, js.Value), gl, ptrType$3.nil, ptrType$4.nil, ptrType$3.nil, ptrType$4.nil, ptrType$4.nil, ptrType$4.nil, ptrType$5.nil, false, domEvents, 0, 0);
190333
- /* */ if (!((opts.Width === 0))) { $s = 4; continue; }
190334
- /* */ $s = 5; continue;
190335
- /* if (!((opts.Width === 0))) { */ case 4:
190336
- $r = dom.SetWindowWidth(opts.Width); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190337
- /* } */ case 5:
190338
- /* */ if (!((opts.Height === 0))) { $s = 7; continue; }
190339
- /* */ $s = 8; continue;
190340
- /* if (!((opts.Height === 0))) { */ case 7:
190341
- $r = dom.SetWindowHeight(opts.Height); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190342
- /* } */ case 8:
190343
- /* */ if (!(opts.Title === "")) { $s = 10; continue; }
190344
- /* */ $s = 11; continue;
190345
- /* if (!(opts.Title === "")) { */ case 10:
190346
- _r$3 = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType$2([new $String("title")])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190347
- _r$4 = $clone(_r$3, js.Value).Call("item", new sliceType$2([new $Int(0)])); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190348
- $r = $clone(_r$4, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190349
- /* } */ case 11:
190350
- _r$5 = w.createBuffers(); /* */ $s = 15; case 15: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190351
- w.vertexArray = _r$5;
190352
- $r = domEvents.BindEvents(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190823
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(canvasEl[0], js.Value), $clone(ctx2d, js.Value), false, domEvents, $clone(resizeCallback, js.Func));
190824
+ $r = domEvents.BindEvents(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190353
190825
  $s = -1; return w;
190354
- /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tuple, canvasEl, domEvents, err, gl, opts, screen$1, w, $s};return $f;
190355
- };
190356
- windowImpl.ptr.prototype.ensureCanvasSize = function(width, height) {
190357
- var height, w, width;
190358
- w = this;
190359
- if (!(($clone($clone(w.canvasEl, js.Value).Get("width"), js.Value).Int() === width))) {
190360
- $clone(w.canvasEl, js.Value).Set("width", new $Int(width));
190361
- }
190362
- if (!(($clone($clone(w.canvasEl, js.Value).Get("height"), js.Value).Int() === height))) {
190363
- $clone(w.canvasEl, js.Value).Set("height", new $Int(height));
190364
- }
190365
- };
190366
- windowImpl.prototype.ensureCanvasSize = function(width, height) { return this.$val.ensureCanvasSize(width, height); };
190367
- windowImpl.ptr.prototype.clear = function() {
190368
- var {w, $s, $r, $c} = $restore(this, {});
190369
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190370
- w = this;
190371
- $r = w.gl.ClearColor(0, 0, 0, 1); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190372
- $r = w.gl.Clear(16384); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190373
- $s = -1; return;
190374
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.clear, $c: true, $r, w, $s};return $f;
190826
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, adaptCanvas, canvasEl, ctx2d, domEvents, opts, resizeCallback, screen$1, w, $s};return $f;
190375
190827
  };
190376
- windowImpl.prototype.clear = function() { return this.$val.clear(); };
190377
190828
  windowImpl.ptr.prototype.Release = function() {
190378
- var {_r, w, $s, $deferred, $r, $c} = $restore(this, {});
190829
+ var {_r, _r$1, w, x, $s, $deferred, $r, $c} = $restore(this, {});
190379
190830
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190380
190831
  w = this;
190381
190832
  $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -190385,12 +190836,15 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190385
190836
  /* if (w.released) { */ case 2:
190386
190837
  $s = 4; case 4: return;
190387
190838
  /* } */ case 3:
190388
- _r = $clone(w.canvasEl, js.Value).Call("remove", sliceType$2.nil); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190839
+ _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), (x = w.resizeCallback, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190389
190840
  _r;
190390
- $r = w.domEvents.Release(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190841
+ $clone(w.resizeCallback, js.Func).Release();
190842
+ _r$1 = $clone(w.canvasEl, js.Value).Call("remove", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190843
+ _r$1;
190844
+ $r = w.domEvents.Release(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190391
190845
  w.released = true;
190392
190846
  $s = -1; return;
190393
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, w, $s, $deferred};return $f; } }
190847
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, _r, _r$1, w, x, $s, $deferred};return $f; } }
190394
190848
  };
190395
190849
  windowImpl.prototype.Release = function() { return this.$val.Release(); };
190396
190850
  windowImpl.ptr.prototype.Publish = function() {
@@ -190412,492 +190866,156 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190412
190866
  };
190413
190867
  windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190414
190868
  windowImpl.ptr.prototype.SendFirst = function(event) {
190415
- var event, w;
190416
- w = this;
190417
- if (w.released) {
190418
- return;
190419
- }
190420
- $panic(new $String("Not implemented"));
190421
- };
190422
- windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190423
- windowImpl.ptr.prototype.NextEvent = function() {
190424
- var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190425
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190426
- w = this;
190427
- _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190428
- ev = _r[0];
190429
- $s = -1; return ev;
190430
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190431
- };
190432
- windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190433
- windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190434
- var {dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190435
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190436
- w = this;
190437
- if (w.released) {
190438
- $s = -1; return;
190439
- }
190440
- $r = w.drawBufferRGBA($clone(dp, image.Point), src, $clone(sr, image.Rectangle)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190441
- $s = -1; return;
190442
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, dp, sr, src, w, $s};return $f;
190443
- };
190444
- windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190445
- windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190446
- var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, dp, jsSrc, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190447
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190448
- w = this;
190449
- if (w.released) {
190450
- $s = -1; return;
190451
- }
190452
- _ref = src;
190453
- /* */ if ($assertType(_ref, ptrType$7, true)[1]) { $s = 1; continue; }
190454
- /* */ $s = 2; continue;
190455
- /* if ($assertType(_ref, ptrType$7, true)[1]) { */ case 1:
190456
- jsSrc = _ref.$val;
190457
- _r = jsSrc.YCbCrJS(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190458
- /* */ if (_r.Use) { $s = 3; continue; }
190459
- /* */ $s = 4; continue;
190460
- /* if (_r.Use) { */ case 3:
190461
- _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; }
190462
- /* */ if (!((_r$1.SubsampleRatio === 2))) { $s = 6; continue; }
190463
- /* */ $s = 7; continue;
190464
- /* if (!((_r$1.SubsampleRatio === 2))) { */ case 6:
190465
- $panic(new $String("Only image.YCbCrSubsampleRatio420 SubsampleRatio is currently supported"));
190466
- /* } */ case 7:
190467
- _arg = $clone(dp, image.Point);
190468
- _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; }
190469
- _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; }
190470
- _arg$1 = $clone(_r$3, js.Value);
190471
- _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; }
190472
- _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; }
190473
- _arg$2 = $clone(_r$5, js.Value);
190474
- _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; }
190475
- _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; }
190476
- _arg$3 = $clone(_r$7, js.Value);
190477
- _arg$4 = $clone(sr, image.Rectangle);
190478
- $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; }
190479
- $s = -1; return;
190480
- /* } */ case 4:
190481
- /* } */ case 2:
190482
- _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; }
190483
- /* */ if (_r$8.SubsampleRatio === 2) { $s = 16; continue; }
190484
- /* */ $s = 17; continue;
190485
- /* if (_r$8.SubsampleRatio === 2) { */ case 16:
190486
- $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; }
190487
- $s = 18; continue;
190488
- /* } else { */ case 17:
190489
- _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; }
190490
- /* */ if (_r$9.Pix.$length === 0) { $s = 21; continue; }
190491
- /* */ $s = 22; continue;
190492
- /* if (_r$9.Pix.$length === 0) { */ case 21:
190493
- $r = imageutil.ConvertYCbCrToRGBA(src); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190494
- /* } */ case 22:
190495
- $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; }
190496
- /* } */ case 18:
190497
- $s = -1; return;
190498
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, dp, jsSrc, sr, src, w, $s};return $f;
190499
- };
190500
- windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190501
- windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190502
- var dr, op, src, w;
190503
- w = this;
190504
- if (w.released) {
190505
- return;
190506
- }
190507
- $panic(new $String("Not implemented"));
190508
- };
190509
- windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190510
- windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190511
- var op, opts, sr, src, src2dst, w;
190512
- w = this;
190513
- if (w.released) {
190514
- return;
190515
- }
190516
- $panic(new $String("Not implemented"));
190517
- };
190518
- windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190519
- windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190520
- var op, opts, sr, src, src2dst, w;
190521
- w = this;
190522
- if (w.released) {
190523
- return;
190524
- }
190525
- $panic(new $String("Not implemented"));
190526
- };
190527
- windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190528
- windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190529
- var dp, op, opts, sr, src, w;
190530
- w = this;
190531
- if (w.released) {
190532
- return;
190533
- }
190534
- $panic(new $String("Not implemented"));
190535
- };
190536
- windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190537
- windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190538
- var dr, op, opts, sr, src, w;
190539
- w = this;
190540
- if (w.released) {
190541
- return;
190542
- }
190543
- $panic(new $String("Not implemented"));
190544
- };
190545
- windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190546
- main = function(f) {
190547
- var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190548
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190549
- retErr = $ifaceNil;
190550
- _tuple = newScreenImpl();
190551
- s = _tuple[0];
190552
- err = _tuple[1];
190553
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190554
- retErr = err;
190555
- $s = -1; return retErr;
190556
- }
190557
- $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190558
- retErr = $ifaceNil;
190559
- $s = -1; return retErr;
190560
- /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190561
- };
190562
- newScreenImpl = function() {
190563
- var s;
190564
- s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190565
- return [s, $ifaceNil];
190566
- };
190567
- screenImpl.ptr.prototype.NewBuffer = function(size) {
190568
- var buffer, s, size;
190569
- s = this;
190570
- buffer = newBuffer(s, $clone(size, image.Point));
190571
- return [buffer, $ifaceNil];
190572
- };
190573
- screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190574
- screenImpl.ptr.prototype.NewTexture = function(size) {
190575
- var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190576
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190577
- s = this;
190578
- _r = fmt.Errorf("Texture not implemented", sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190579
- $24r = [$ifaceNil, _r];
190580
- $s = 2; case 2: return $24r;
190581
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190582
- };
190583
- screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190584
- screenImpl.ptr.prototype.NewWindow = function(opts) {
190585
- var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190586
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190587
- s = this;
190588
- _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190589
- window = _r;
190590
- $s = -1; return [window, $ifaceNil];
190591
- /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190592
- };
190593
- screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190594
- windowImpl.ptr.prototype.createAndAttachVertexShader = function(shaderProgram) {
190595
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, shaderProgram, vertShader, w, $s, $r, $c} = $restore(this, {shaderProgram});
190596
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190597
- w = this;
190598
- _r = w.gl.CreateVertexShader(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190599
- vertShader = _r;
190600
- $r = w.gl.ShaderSource(vertShader, "\nattribute vec2 a_postion;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\n\nvoid main() {\n\tgl_Position = vec4(a_postion, 0.0, 1.0);\n\tv_texCoord = a_texCoord;\n}\n"); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190601
- $r = w.gl.CompileShader(vertShader); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190602
- _r$1 = w.gl.GetShaderParameterCompileStatus(vertShader); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190603
- /* */ if (!_r$1) { $s = 4; continue; }
190604
- /* */ $s = 5; continue;
190605
- /* if (!_r$1) { */ case 4:
190606
- _r$2 = w.gl.GetShaderInfoLog(vertShader); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190607
- _arg = new $String(_r$2);
190608
- _r$3 = fmt.Errorf("Vertex shader: %s", new sliceType$2([_arg])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190609
- $24r = _r$3;
190610
- $s = 9; case 9: return $24r;
190611
- /* } */ case 5:
190612
- $r = w.gl.AttachShader(shaderProgram, vertShader); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190613
- $r = w.gl.BindAttribLocation(shaderProgram, 0, "a_position"); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190614
- $r = w.gl.BindAttribLocation(shaderProgram, 1, "a_texCoord"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190615
- $r = w.gl.DeleteShader(vertShader); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190616
- $s = -1; return $ifaceNil;
190617
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndAttachVertexShader, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, shaderProgram, vertShader, w, $s};return $f;
190618
- };
190619
- windowImpl.prototype.createAndAttachVertexShader = function(shaderProgram) { return this.$val.createAndAttachVertexShader(shaderProgram); };
190620
- windowImpl.ptr.prototype.ensureYUV420Textures = function(width, height) {
190621
- var {_q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _tuple, err, height, w, width, $s, $r, $c} = $restore(this, {width, height});
190622
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190623
- w = this;
190624
- /* */ if (w.programYUV420 === ptrType$3.nil) { $s = 1; continue; }
190625
- /* */ $s = 2; continue;
190626
- /* if (w.programYUV420 === ptrType$3.nil) { */ case 1:
190627
- err = $ifaceNil;
190628
- _r = w.createAndLinkProgramYUV420(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190629
- _tuple = _r;
190630
- w.programYUV420 = _tuple[0];
190631
- err = _tuple[1];
190632
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190633
- $panic(err);
190634
- }
190635
- /* } */ case 2:
190636
- if ((w.width === width) && (w.height === height)) {
190637
- $s = -1; return;
190638
- }
190639
- w.ensureCanvasSize(width, height);
190640
- _r$1 = w.createTexture(33985, 6409, width, height); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190641
- w.imageTexY = _r$1;
190642
- _r$2 = w.createTexture(33986, 6409, (_q = width / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = height / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190643
- w.imageTexU = _r$2;
190644
- _r$3 = w.createTexture(33987, 6409, (_q$2 = width / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), (_q$3 = height / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero"))); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190645
- w.imageTexV = _r$3;
190646
- $r = w.gl.Enable(2929); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190647
- $r = w.gl.Viewport(0, 0, width, height); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190648
- w.width = width;
190649
- w.height = height;
190650
- $r = w.clear(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190651
- $s = -1; return;
190652
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.ensureYUV420Textures, $c: true, $r, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _tuple, err, height, w, width, $s};return $f;
190653
- };
190654
- windowImpl.prototype.ensureYUV420Textures = function(width, height) { return this.$val.ensureYUV420Textures(width, height); };
190655
- windowImpl.ptr.prototype.createAndLinkProgramYUV420 = function() {
190656
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, imageULoc, imageVLoc, imageYLoc, shaderProgram, w, $s, $r, $c} = $restore(this, {});
190657
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190658
- w = this;
190659
- _r = w.gl.CreateProgram(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190660
- shaderProgram = _r;
190661
- _r$1 = w.createAndAttachVertexShader(shaderProgram); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190662
- err = _r$1;
190663
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190664
- $s = -1; return [ptrType$3.nil, err];
190665
- }
190666
- _r$2 = w.createAndAttachFragmentShader(shaderProgram, "\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_imageY;\nuniform sampler2D u_imageU;\nuniform sampler2D u_imageV;\n\nvoid main(void) {\n\tfloat yChannel = texture2D(u_imageY, v_texCoord).x;\n\tfloat uChannel = texture2D(u_imageU, v_texCoord).x;\n\tfloat vChannel = texture2D(u_imageV, v_texCoord).x;\n\n\t// This does the colorspace conversion from Y'UV to RGB as a matrix\n\t// multiply. It also does the offset of the U and V channels from\n\t// [0,1] to [-.5,.5] as part of the transform.\n\tvec4 channels = vec4(yChannel, uChannel, vChannel, 1.0);\n\n\tmat4 conversion = mat4(1.0, 0.0, 1.402, -0.701,\n\t\t\t\t\t\t\t1.0, -0.344, -0.714, 0.529,\n\t\t\t\t\t\t\t1.0, 1.772, 0.0, -0.886,\n\t\t\t\t\t\t\t0, 0, 0, 0);\n\tvec3 rgb = (channels * conversion).xyz;\n\n\t// This is another Y'UV transform that can be used, but it doesn't\n\t// accurately transform my source image. Your images may well fare\n\t// better with it, however, considering they come from a different\n\t// source, and because I'm not sure that my original was converted\n\t// to Y'UV420p with the same RGB->YUV (or YCrCb) conversion as\n\t// yours.\n\t//\n\t// vec4 channels = vec4(yChannel, uChannel, vChannel, 1.0);\n\t// float3x4 conversion = float3x4(1.0, 0.0, 1.13983, -0.569915,\n\t// 1.0, -0.39465, -0.58060, 0.487625,\n\t// 1.0, 2.03211, 0.0, -1.016055);\n\t// float3 rgb = mul(conversion, channels);\n\tgl_FragColor = vec4(rgb, 1.0);\n}\n"); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190667
- err = _r$2;
190668
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190669
- $s = -1; return [ptrType$3.nil, err];
190869
+ var event, w;
190870
+ w = this;
190871
+ if (w.released) {
190872
+ return;
190670
190873
  }
190671
- $r = w.gl.LinkProgram(shaderProgram); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190672
- _r$3 = w.gl.GetProgramParameterLinkStatus(shaderProgram); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190673
- /* */ if (!_r$3) { $s = 5; continue; }
190674
- /* */ $s = 6; continue;
190675
- /* if (!_r$3) { */ case 5:
190676
- _r$4 = w.gl.GetProgramInfoLog(shaderProgram); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190677
- _arg = new $String(_r$4);
190678
- _r$5 = fmt.Errorf("Program: %s", new sliceType$2([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190679
- $24r = [ptrType$3.nil, _r$5];
190680
- $s = 10; case 10: return $24r;
190681
- /* } */ case 6:
190682
- $r = w.gl.UseProgram(shaderProgram); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190683
- _r$6 = w.gl.GetUniformLocation(shaderProgram, "u_imageY"); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190684
- imageYLoc = _r$6;
190685
- $r = w.gl.Uniform1i(imageYLoc, 1); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190686
- _r$7 = w.gl.GetUniformLocation(shaderProgram, "u_imageU"); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190687
- imageULoc = _r$7;
190688
- $r = w.gl.Uniform1i(imageULoc, 2); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190689
- _r$8 = w.gl.GetUniformLocation(shaderProgram, "u_imageV"); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; }
190690
- imageVLoc = _r$8;
190691
- $r = w.gl.Uniform1i(imageVLoc, 3); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190692
- $s = -1; return [shaderProgram, $ifaceNil];
190693
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndLinkProgramYUV420, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, err, imageULoc, imageVLoc, imageYLoc, shaderProgram, w, $s};return $f;
190874
+ $panic(new $String("Not implemented"));
190694
190875
  };
190695
- windowImpl.prototype.createAndLinkProgramYUV420 = function() { return this.$val.createAndLinkProgramYUV420(); };
190696
- windowImpl.ptr.prototype.drawBufferYUV420 = function(dp, src, sr) {
190697
- var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190876
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190877
+ windowImpl.ptr.prototype.NextEvent = function() {
190878
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190698
190879
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190699
190880
  w = this;
190700
- _arg = $clone(dp, image.Point);
190701
- _r = src.YCbCr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190702
- _r$1 = webgl.TypedArrayOf(_r.Y); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190703
- _arg$1 = $clone(_r$1, js.Value);
190704
- _r$2 = src.YCbCr(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190705
- _r$3 = webgl.TypedArrayOf(_r$2.Cb); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190706
- _arg$2 = $clone(_r$3, js.Value);
190707
- _r$4 = src.YCbCr(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190708
- _r$5 = webgl.TypedArrayOf(_r$4.Cr); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190709
- _arg$3 = $clone(_r$5, js.Value);
190710
- _arg$4 = $clone(sr, image.Rectangle);
190711
- $r = w.drawBufferYUV420JSArrayBuffers(_arg, _arg$1, _arg$2, _arg$3, _arg$4); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190712
- $s = -1; return;
190713
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferYUV420, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, dp, sr, src, w, $s};return $f;
190881
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190882
+ ev = _r[0];
190883
+ $s = -1; return ev;
190884
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190714
190885
  };
190715
- windowImpl.prototype.drawBufferYUV420 = function(dp, src, sr) { return this.$val.drawBufferYUV420(dp, src, sr); };
190716
- windowImpl.ptr.prototype.drawBufferYUV420JSArrayBuffers = function(dp, y, cb, cr, sr) {
190717
- var {_q, _q$1, _q$2, _q$3, cb, cr, dp, sr, w, y, $s, $r, $c} = $restore(this, {dp, y, cb, cr, sr});
190886
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190887
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190888
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190718
190889
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190719
190890
  w = this;
190720
- $r = w.ensureYUV420Textures(sr.Max.X, sr.Max.Y); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190721
- $r = w.gl.UseProgram(w.programYUV420); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190722
- $r = w.gl.BindTexture(3553, w.imageTexY); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190723
- $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, sr.Max.X, sr.Max.Y, 6409, 5121, $clone(y, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190724
- $r = w.gl.BindTexture(3553, w.imageTexU); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190725
- $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, (_q = sr.Max.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), (_q$1 = sr.Max.Y / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 6409, 5121, $clone(cb, js.Value)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190726
- $r = w.gl.BindTexture(3553, w.imageTexV); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190727
- $r = w.gl.TexSubImage2D(3553, 0, dp.X, dp.Y, (_q$2 = sr.Max.X / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")), (_q$3 = sr.Max.Y / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 6409, 5121, $clone(cr, js.Value)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190728
- $r = w.gl.BindVertexArray(w.vertexArray); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190729
- $r = w.gl.DrawElements(4, elementsIndices.$length, 5123, new $Int64(0, 0)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190891
+ if (w.released) {
190892
+ $s = -1; return;
190893
+ }
190894
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190895
+ $panic(_r);
190730
190896
  $s = -1; return;
190731
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferYUV420JSArrayBuffers, $c: true, $r, _q, _q$1, _q$2, _q$3, cb, cr, dp, sr, w, y, $s};return $f;
190897
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190732
190898
  };
190733
- windowImpl.prototype.drawBufferYUV420JSArrayBuffers = function(dp, y, cb, cr, sr) { return this.$val.drawBufferYUV420JSArrayBuffers(dp, y, cb, cr, sr); };
190734
- windowImpl.ptr.prototype.ensureRGBATextures = function(width, height) {
190735
- var {_r, _r$1, _tuple, err, height, w, width, $s, $r, $c} = $restore(this, {width, height});
190899
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190900
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190901
+ var {_r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190736
190902
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190737
190903
  w = this;
190738
- /* */ if (w.programRGBA === ptrType$3.nil) { $s = 1; continue; }
190739
- /* */ $s = 2; continue;
190740
- /* if (w.programRGBA === ptrType$3.nil) { */ case 1:
190741
- err = $ifaceNil;
190742
- _r = w.createAndLinkProgramRGBA(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190743
- _tuple = _r;
190744
- w.programRGBA = _tuple[0];
190745
- err = _tuple[1];
190746
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190747
- $panic(err);
190748
- }
190749
- /* } */ case 2:
190750
- if ((w.width === width) && (w.height === height)) {
190904
+ if (w.released) {
190751
190905
  $s = -1; return;
190752
190906
  }
190753
- w.ensureCanvasSize(width, height);
190754
- _r$1 = w.createTexture(33984, 6408, width, height); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190755
- w.imageTexRGBA = _r$1;
190756
- $r = w.gl.Enable(2929); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190757
- $r = w.gl.Viewport(0, 0, width, height); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190758
- w.width = width;
190759
- w.height = height;
190760
- $r = w.clear(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190907
+ _ref = src;
190908
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190909
+ /* */ $s = 2; continue;
190910
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190911
+ jsSrc = _ref.$val;
190912
+ _r = $clone(w.ctx2d, js.Value).Call("drawImage", new sliceType([(x = jsSrc.YCbCrJS().CanvasImageSource, new x.constructor.elem(x)), new $Int(0), new $Int(0)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190913
+ _r;
190914
+ $s = -1; return;
190915
+ /* } */ case 2:
190916
+ _r$1 = fmt.Errorf("Not implemented, use canvasdriver.BufferImpl instead", sliceType.nil); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190917
+ $panic(_r$1);
190761
190918
  $s = -1; return;
190762
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.ensureRGBATextures, $c: true, $r, _r, _r$1, _tuple, err, height, w, width, $s};return $f;
190919
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _r, _r$1, _ref, dp, jsSrc, sr, src, w, x, $s};return $f;
190763
190920
  };
190764
- windowImpl.prototype.ensureRGBATextures = function(width, height) { return this.$val.ensureRGBATextures(width, height); };
190765
- windowImpl.ptr.prototype.createAndLinkProgramRGBA = function() {
190766
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, imageLoc, shaderProgram, w, $s, $r, $c} = $restore(this, {});
190767
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190921
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190922
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190923
+ var dr, op, src, w;
190768
190924
  w = this;
190769
- _r = w.gl.CreateProgram(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190770
- shaderProgram = _r;
190771
- _r$1 = w.createAndAttachVertexShader(shaderProgram); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190772
- err = _r$1;
190773
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190774
- $s = -1; return [ptrType$3.nil, err];
190925
+ if (w.released) {
190926
+ return;
190775
190927
  }
190776
- _r$2 = w.createAndAttachFragmentShader(shaderProgram, "\nprecision mediump float;\nvarying vec2 v_texCoord;\nuniform sampler2D u_image;\n\nvoid main(void) {\n\tgl_FragColor = texture2D(u_image, v_texCoord);\n}\n"); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190777
- err = _r$2;
190778
- if (!($interfaceIsEqual(err, $ifaceNil))) {
190779
- $s = -1; return [ptrType$3.nil, err];
190928
+ $panic(new $String("Not implemented"));
190929
+ };
190930
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190931
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190932
+ var op, opts, sr, src, src2dst, w;
190933
+ w = this;
190934
+ if (w.released) {
190935
+ return;
190780
190936
  }
190781
- $r = w.gl.LinkProgram(shaderProgram); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190782
- _r$3 = w.gl.GetProgramParameterLinkStatus(shaderProgram); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190783
- /* */ if (!_r$3) { $s = 5; continue; }
190784
- /* */ $s = 6; continue;
190785
- /* if (!_r$3) { */ case 5:
190786
- _r$4 = w.gl.GetProgramInfoLog(shaderProgram); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190787
- _arg = new $String(_r$4);
190788
- _r$5 = fmt.Errorf("Program: %s", new sliceType$2([_arg])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190789
- $24r = [ptrType$3.nil, _r$5];
190790
- $s = 10; case 10: return $24r;
190791
- /* } */ case 6:
190792
- $r = w.gl.UseProgram(shaderProgram); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190793
- _r$6 = w.gl.GetUniformLocation(shaderProgram, "u_image"); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190794
- imageLoc = _r$6;
190795
- $r = w.gl.Uniform1i(imageLoc, 0); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190796
- $s = -1; return [shaderProgram, $ifaceNil];
190797
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndLinkProgramRGBA, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, err, imageLoc, shaderProgram, w, $s};return $f;
190937
+ $panic(new $String("Not implemented"));
190798
190938
  };
190799
- windowImpl.prototype.createAndLinkProgramRGBA = function() { return this.$val.createAndLinkProgramRGBA(); };
190800
- windowImpl.ptr.prototype.drawBufferRGBA = function(dp, src, sr) {
190801
- var {_arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190802
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190939
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190940
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190941
+ var op, opts, sr, src, src2dst, w;
190803
190942
  w = this;
190804
- $r = w.ensureRGBATextures(sr.Max.X, sr.Max.Y); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190805
- $r = w.gl.UseProgram(w.programRGBA); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190806
- $r = w.gl.BindTexture(3553, w.imageTexRGBA); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190807
- _arg = dp.X;
190808
- _arg$1 = dp.Y;
190809
- _arg$2 = sr.Max.X;
190810
- _arg$3 = sr.Max.Y;
190811
- _r = src.RGBA(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190812
- _r$1 = webgl.TypedArrayOf(_r.Pix); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190813
- _arg$4 = $clone(_r$1, js.Value);
190814
- $r = w.gl.TexSubImage2D(3553, 0, _arg, _arg$1, _arg$2, _arg$3, 6408, 5121, _arg$4); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190815
- $r = w.gl.BindVertexArray(w.vertexArray); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190816
- $r = w.gl.DrawElements(4, elementsIndices.$length, 5123, new $Int64(0, 0)); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190817
- $s = -1; return;
190818
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.drawBufferRGBA, $c: true, $r, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _r, _r$1, dp, sr, src, w, $s};return $f;
190943
+ if (w.released) {
190944
+ return;
190945
+ }
190946
+ $panic(new $String("Not implemented"));
190819
190947
  };
190820
- windowImpl.prototype.drawBufferRGBA = function(dp, src, sr) { return this.$val.drawBufferRGBA(dp, src, sr); };
190821
- windowImpl.ptr.prototype.createBuffers = function() {
190822
- var {_r, _r$1, _r$2, elementBuffer, emptyFloat, floatLen, vertexArray, vertexBuffer, w, $s, $r, $c} = $restore(this, {});
190823
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190948
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190949
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190950
+ var dp, op, opts, sr, src, w;
190824
190951
  w = this;
190825
- _r = w.gl.CreateVertexArray(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190826
- vertexArray = _r;
190827
- _r$1 = w.gl.CreateBuffer(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190828
- vertexBuffer = _r$1;
190829
- _r$2 = w.gl.CreateBuffer(); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190830
- elementBuffer = _r$2;
190831
- $r = w.gl.BindVertexArray(vertexArray); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190832
- $r = w.gl.BindBuffer(34962, vertexBuffer); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190833
- $r = w.gl.BufferData(34962, texCoordsVertices, 35044); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190834
- $r = w.gl.BindBuffer(34963, elementBuffer); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190835
- $r = w.gl.BufferDataUI16(34963, elementsIndices, 35044); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190836
- emptyFloat = 0;
190837
- floatLen = 4;
190838
- $r = w.gl.VertexAttribPointer(0, 2, 5126, false, $imul(4, floatLen), 0); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190839
- $r = w.gl.EnableVertexAttribArray(0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190840
- $r = w.gl.VertexAttribPointer(1, 2, 5126, false, $imul(4, floatLen), $imul(2, floatLen)); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190841
- $r = w.gl.EnableVertexAttribArray(1); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190842
- $s = -1; return vertexArray;
190843
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createBuffers, $c: true, $r, _r, _r$1, _r$2, elementBuffer, emptyFloat, floatLen, vertexArray, vertexBuffer, w, $s};return $f;
190952
+ if (w.released) {
190953
+ return;
190954
+ }
190955
+ $panic(new $String("Not implemented"));
190844
190956
  };
190845
- windowImpl.prototype.createBuffers = function() { return this.$val.createBuffers(); };
190846
- windowImpl.ptr.prototype.createAndAttachFragmentShader = function(shaderProgram, fragmentShaderCode) {
190847
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, fragShader, fragmentShaderCode, shaderProgram, w, $s, $r, $c} = $restore(this, {shaderProgram, fragmentShaderCode});
190848
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190957
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190958
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190959
+ var dr, op, opts, sr, src, w;
190849
190960
  w = this;
190850
- _r = w.gl.CreateFragmentShader(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190851
- fragShader = _r;
190852
- $r = w.gl.ShaderSource(fragShader, fragmentShaderCode); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190853
- $r = w.gl.CompileShader(fragShader); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190854
- _r$1 = w.gl.GetShaderParameterCompileStatus(fragShader); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190855
- /* */ if (!_r$1) { $s = 4; continue; }
190856
- /* */ $s = 5; continue;
190857
- /* if (!_r$1) { */ case 4:
190858
- _r$2 = w.gl.GetShaderInfoLog(fragShader); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190859
- _arg = new $String(_r$2);
190860
- _r$3 = fmt.Errorf("Fragment shader: %s", new sliceType$2([_arg])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190861
- $24r = _r$3;
190862
- $s = 9; case 9: return $24r;
190863
- /* } */ case 5:
190864
- $r = w.gl.AttachShader(shaderProgram, fragShader); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190865
- $r = w.gl.DeleteShader(fragShader); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190866
- $s = -1; return $ifaceNil;
190867
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createAndAttachFragmentShader, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, fragShader, fragmentShaderCode, shaderProgram, w, $s};return $f;
190961
+ if (w.released) {
190962
+ return;
190963
+ }
190964
+ $panic(new $String("Not implemented"));
190965
+ };
190966
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190967
+ main = function(f) {
190968
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190969
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190970
+ retErr = $ifaceNil;
190971
+ _tuple = newScreenImpl();
190972
+ s = _tuple[0];
190973
+ err = _tuple[1];
190974
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190975
+ retErr = err;
190976
+ $s = -1; return retErr;
190977
+ }
190978
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
+ retErr = $ifaceNil;
190980
+ $s = -1; return retErr;
190981
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190868
190982
  };
190869
- windowImpl.prototype.createAndAttachFragmentShader = function(shaderProgram, fragmentShaderCode) { return this.$val.createAndAttachFragmentShader(shaderProgram, fragmentShaderCode); };
190870
- windowImpl.ptr.prototype.createTexture = function(unit, format, width, height) {
190871
- var {_r, format, height, imageTex, unit, w, width, $s, $r, $c} = $restore(this, {unit, format, width, height});
190872
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190873
- w = this;
190874
- $r = w.gl.ActiveTexture(((unit >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190875
- _r = w.gl.CreateTexture(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190876
- imageTex = _r;
190877
- $r = w.gl.BindTexture(3553, imageTex); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190878
- $r = w.gl.TexParameterWrapS(3553, 10497); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190879
- $r = w.gl.TexParameterWrapT(3553, 10497); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190880
- $r = w.gl.TexParameterMinFilter(3553, 9729); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190881
- $r = w.gl.TexParameterMagFilter(3553, 9729); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190882
- $r = w.gl.TexImage2Db(3553, 0, format, width, height, 0, format, sliceType$3.nil); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190883
- $s = -1; return imageTex;
190884
- /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.createTexture, $c: true, $r, _r, format, height, imageTex, unit, w, width, $s};return $f;
190983
+ newScreenImpl = function() {
190984
+ var s;
190985
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190986
+ return [s, $ifaceNil];
190885
190987
  };
190886
- windowImpl.prototype.createTexture = function(unit, format, width, height) { return this.$val.createTexture(unit, format, width, height); };
190887
- ArrayBufferSlice.ptr.prototype.slice = function() {
190888
- var {$24r, _r, a, $s, $r, $c} = $restore(this, {});
190988
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
190989
+ var buffer, s, size;
190990
+ s = this;
190991
+ buffer = newBuffer(s, $clone(size, image.Point));
190992
+ return [buffer, $ifaceNil];
190993
+ };
190994
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190995
+ screenImpl.ptr.prototype.NewTexture = function(size) {
190996
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190889
190997
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190890
- a = this;
190891
- _r = $clone(a.ArrayBuffer, js.Value).Call("subarray", new sliceType$2([new $Int(a.Offset), new $Int(a.Length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190892
- $24r = _r;
190998
+ s = this;
190999
+ _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191000
+ $24r = [$ifaceNil, _r];
190893
191001
  $s = 2; case 2: return $24r;
190894
- /* */ } return; } var $f = {$blk: ArrayBufferSlice.ptr.prototype.slice, $c: true, $r, $24r, _r, a, $s};return $f;
191002
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190895
191003
  };
190896
- ArrayBufferSlice.prototype.slice = function() { return this.$val.slice(); };
191004
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
191005
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
191006
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
191007
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191008
+ s = this;
191009
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191010
+ window = _r;
191011
+ $s = -1; return [window, $ifaceNil];
191012
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
191013
+ };
191014
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190897
191015
  newBuffer = function(screen$1, size) {
190898
191016
  var _q, _q$1, _q$2, b, rect, screen$1, size;
190899
191017
  rect = new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(size, image.Point));
190900
- b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$3, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(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)), image.YCbCr), ptrType$8.nil);
191018
+ b = new BufferImpl.ptr(screen$1, $clone(size, image.Point), new sync.Mutex.ptr(0, 0), false, $clone(new image.RGBA.ptr($makeSlice(sliceType$1, ($imul(($imul(4, size.X)), size.Y))), $imul(4, size.X), $clone(rect, image.Rectangle)), image.RGBA), $clone(new image.YCbCr.ptr($makeSlice(sliceType$1, ($imul(size.X, size.Y))), $makeSlice(sliceType$1, (_q$1 = ($imul(size.X, size.Y)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), $makeSlice(sliceType$1, (_q$2 = ($imul(size.X, size.Y)) / 4, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero"))), size.X, (_q = size.X / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 2, $clone(rect, image.Rectangle)), image.YCbCr), ptrType$4.nil);
190901
191019
  return b;
190902
191020
  };
190903
191021
  BufferImpl.ptr.prototype.Size = function() {
@@ -190925,18 +191043,12 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190925
191043
  };
190926
191044
  BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190927
191045
  BufferImpl.ptr.prototype.YCbCrJS = function() {
190928
- var {_r, b, emptyBuffer, $s, $r, $c} = $restore(this, {});
190929
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191046
+ var b;
190930
191047
  b = this;
190931
- /* */ if (b.ycbcrJS === ptrType$8.nil) { $s = 1; continue; }
190932
- /* */ $s = 2; continue;
190933
- /* if (b.ycbcrJS === ptrType$8.nil) { */ case 1:
190934
- _r = $clone($clone(js.Global(), js.Value).Get("ArrayBuffer"), js.Value).New(sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190935
- emptyBuffer = $clone(_r, js.Value);
190936
- b.ycbcrJS = new YCbCrJS.ptr($clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), $clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), $clone(new ArrayBufferSlice.ptr($clone(emptyBuffer, js.Value), 0, 0), ArrayBufferSlice), b.ycbcr.YStride, b.ycbcr.CStride, 2, $clone(b.ycbcr.Rect, image.Rectangle), false);
190937
- /* } */ case 2:
190938
- $s = -1; return b.ycbcrJS;
190939
- /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCrJS, $c: true, $r, _r, b, emptyBuffer, $s};return $f;
191048
+ if (b.ycbcrJS === ptrType$4.nil) {
191049
+ b.ycbcrJS = new YCbCrJS.ptr(ptrType$5.nil);
191050
+ }
191051
+ return b.ycbcrJS;
190940
191052
  };
190941
191053
  BufferImpl.prototype.YCbCrJS = function() { return this.$val.YCbCrJS(); };
190942
191054
  BufferImpl.ptr.prototype.Release = function() {
@@ -190955,164 +191067,54 @@ $packages["golang.org/x/exp/shiny/driver/webgldriver"] = (function() {
190955
191067
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: BufferImpl.ptr.prototype.Release, $c: true, $r, b, $s, $deferred};return $f; } }
190956
191068
  };
190957
191069
  BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190958
- ptrType$10.methods = [{prop: "ensureCanvasSize", name: "ensureCanvasSize", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "clear", name: "clear", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$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)}, {prop: "createAndAttachVertexShader", name: "createAndAttachVertexShader", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([ptrType$3], [$error], false)}, {prop: "ensureYUV420Textures", name: "ensureYUV420Textures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramYUV420", name: "createAndLinkProgramYUV420", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$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: "ensureRGBATextures", name: "ensureRGBATextures", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([$Int, $Int], [], false)}, {prop: "createAndLinkProgramRGBA", name: "createAndLinkProgramRGBA", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$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: "createBuffers", name: "createBuffers", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [ptrType$5], 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$4], false)}];
190959
- 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)}];
190960
- ptrType$12.methods = [{prop: "slice", name: "slice", pkg: "golang.org/x/exp/shiny/driver/webgldriver", typ: $funcType([], [js.Value], false)}];
190961
- 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$13], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$14], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$8], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190962
- windowImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "gl", name: "gl", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "programRGBA", name: "programRGBA", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexRGBA", name: "imageTexRGBA", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "programYUV420", name: "programYUV420", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "imageTexY", name: "imageTexY", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexU", name: "imageTexU", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "imageTexV", name: "imageTexV", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "vertexArray", name: "vertexArray", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "width", name: "width", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "height", name: "height", embedded: false, exported: false, typ: $Int, tag: ""}]);
190963
- screenImpl.init("golang.org/x/exp/shiny/driver/webgldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190964
- 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: ""}]);
190965
- 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: ""}]);
190966
- 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$8, tag: ""}]);
191070
+ ptrType$7.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$6], [], false)}];
191071
+ 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)}];
191072
+ ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$9], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$10], false)}, {prop: "YCbCrJS", name: "YCbCrJS", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
191073
+ windowImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "canvasEl", name: "canvasEl", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "ctx2d", name: "ctx2d", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "resizeCallback", name: "resizeCallback", embedded: false, exported: false, typ: js.Func, tag: ""}]);
191074
+ screenImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191075
+ YCbCrJS.init("", [{prop: "CanvasImageSource", name: "CanvasImageSource", embedded: false, exported: true, typ: ptrType$5, tag: ""}]);
191076
+ BufferImpl.init("golang.org/x/exp/shiny/driver/canvasdriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "rgba", name: "rgba", embedded: false, exported: false, typ: image.RGBA, tag: ""}, {prop: "ycbcr", name: "ycbcr", embedded: false, exported: false, typ: image.YCbCr, tag: ""}, {prop: "ycbcrJS", name: "ycbcrJS", embedded: false, exported: false, typ: ptrType$4, tag: ""}]);
190967
191077
  $init = function() {
190968
191078
  $pkg.$init = function() {};
190969
191079
  /* */ 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:
190970
191080
  $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190971
- $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190972
- $r = types.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190973
- $r = errscreen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190974
- $r = dom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190975
- $r = imageutil.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190976
- $r = screen.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190977
- $r = f64.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190978
- $r = image.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
- $r = color.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190980
- $r = draw.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190981
- $r = sync.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190982
- $r = js.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190983
- texCoordsVertices = new sliceType([1, 1, 1, 0, 1, -1, 1, 1, -1, -1, 0, 1, -1, 1, 0, 0]);
190984
- elementsIndices = new sliceType$1([0, 1, 3, 1, 2, 3]);
190985
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190986
- };
190987
- $pkg.$init = $init;
190988
- return $pkg;
190989
- })();
190990
- $packages["github.com/supraio/client-daemon/pkg/decoder/h264decoder"] = (function() {
190991
- var $pkg = {}, $init, general, errs, webgldriver, image, js;
190992
- general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
190993
- errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190994
- webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
190995
- image = $packages["image"];
190996
- js = $packages["syscall/js"];
190997
- $init = function() {
190998
- $pkg.$init = function() {};
190999
- /* */ 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:
191000
- $r = general.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191001
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191002
- $r = webgldriver.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191003
- $r = image.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191004
- $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191005
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191006
- };
191007
- $pkg.$init = $init;
191008
- return $pkg;
191009
- })();
191010
- $packages["github.com/supraio/client-daemon/pkg/videostream"] = (function() {
191011
- var $pkg = {}, $init, Protocol, videoStreamer, Register;
191012
- Protocol = $pkg.Protocol = $newType(1, $kindUint8, "videostream.Protocol", true, "github.com/supraio/client-daemon/pkg/videostream", true, null);
191013
- Register = function(newVideoStreamer) {
191014
- var newVideoStreamer;
191015
- if (!($interfaceIsEqual(videoStreamer, $ifaceNil))) {
191016
- $panic(new $String("VideoStreamer already registered"));
191017
- }
191018
- videoStreamer = newVideoStreamer;
191019
- };
191020
- $pkg.Register = Register;
191021
- $init = function() {
191022
- $pkg.$init = function() {};
191023
- /* */ 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:
191024
- videoStreamer = $ifaceNil;
191081
+ $r = errscreen.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191082
+ $r = dom.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191083
+ $r = screen.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191084
+ $r = f64.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191085
+ $r = image.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191086
+ $r = color.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191087
+ $r = draw.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191088
+ $r = sync.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191089
+ $r = js.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191025
191090
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191026
191091
  };
191027
191092
  $pkg.$init = $init;
191028
191093
  return $pkg;
191029
191094
  })();
191030
- $packages["github.com/supraio/client-daemon/pkg/decoder/sosstream"] = (function() {
191031
- var $pkg = {}, $init, fmt, general, errs, jshelper, videostream, js, SOSVideoStreamer, funcType, arrayType, ptrType$1, init;
191032
- fmt = $packages["fmt"];
191095
+ $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"] = (function() {
191096
+ var $pkg = {}, $init, hex, webgl, general, errs, jshelper, canvasdriver, image, log, js;
191097
+ hex = $packages["encoding/hex"];
191098
+ webgl = $packages["github.com/nuberu/webgl"];
191033
191099
  general = $packages["github.com/supraio/client-daemon/pkg/decoder/general"];
191034
191100
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191035
191101
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
191036
- videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
191102
+ canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
191103
+ image = $packages["image"];
191104
+ log = $packages["log"];
191037
191105
  js = $packages["syscall/js"];
191038
- SOSVideoStreamer = $pkg.SOSVideoStreamer = $newType(0, $kindStruct, "sosstream.SOSVideoStreamer", true, "github.com/supraio/client-daemon/pkg/decoder/sosstream", true, function(sos_) {
191039
- this.$val = this;
191040
- if (arguments.length === 0) {
191041
- this.sos = new js.Value.ptr(null, false, arrayType.zero());
191042
- return;
191043
- }
191044
- this.sos = sos_;
191045
- });
191046
- funcType = $funcType([], [], false);
191047
- arrayType = $arrayType(funcType, 0);
191048
- ptrType$1 = $ptrType(SOSVideoStreamer);
191049
- init = function() {
191050
- var videoStreamer;
191051
- videoStreamer = new SOSVideoStreamer.ptr($clone($clone(js.Global(), js.Value).Get("sos"), js.Value));
191052
- videostream.Register(videoStreamer);
191053
- };
191054
- SOSVideoStreamer.ptr.prototype.IsAvailable = function() {
191055
- var m;
191056
- m = this;
191057
- return !$clone(m.sos, js.Value).IsUndefined() && $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("stream"), js.Value).Truthy();
191058
- };
191059
- SOSVideoStreamer.prototype.IsAvailable = function() { return this.$val.IsAvailable(); };
191060
- SOSVideoStreamer.ptr.prototype.GetProtocol = function() {
191061
- var _1, m, protocol, protocolValue;
191062
- m = this;
191063
- protocolValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamProtocol"), js.Value);
191064
- protocol = 0;
191065
- if (!$clone(protocolValue, js.Value).IsUndefined() && ($clone(protocolValue, js.Value).Type() === 4)) {
191066
- _1 = $clone(protocolValue, js.Value).String();
191067
- if (_1 === ("UDP")) {
191068
- protocol = 0;
191069
- } else if (_1 === ("HTTP")) {
191070
- protocol = 1;
191071
- } else if (_1 === ("HTTPMP4")) {
191072
- protocol = 2;
191073
- } else if (_1 === ("RTP")) {
191074
- protocol = 3;
191075
- } else {
191076
- protocol = 0;
191077
- }
191078
- }
191079
- return protocol;
191080
- };
191081
- SOSVideoStreamer.prototype.GetProtocol = function() { return this.$val.GetProtocol(); };
191082
- SOSVideoStreamer.ptr.prototype.GetPort = function() {
191083
- var m, port, portValue;
191084
- m = this;
191085
- portValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamPort"), js.Value);
191086
- port = 5000;
191087
- if (!$clone(portValue, js.Value).IsUndefined() && ($clone(portValue, js.Value).Type() === 3)) {
191088
- port = $clone(portValue, js.Value).Int();
191089
- }
191090
- return ((port << 16 >>> 16));
191091
- };
191092
- SOSVideoStreamer.prototype.GetPort = function() { return this.$val.GetPort(); };
191093
- SOSVideoStreamer.ptr.prototype.GetHostname = function() {
191094
- var hostname, hostnameValue, m;
191095
- m = this;
191096
- hostnameValue = $clone($clone($clone(m.sos, js.Value).Get("config"), js.Value).Get("streamHostname"), js.Value);
191097
- hostname = "";
191098
- if (!$clone(hostnameValue, js.Value).IsUndefined() && ($clone(hostnameValue, js.Value).Type() === 4)) {
191099
- hostname = $clone(hostnameValue, js.Value).String();
191100
- }
191101
- return hostname;
191102
- };
191103
- SOSVideoStreamer.prototype.GetHostname = function() { return this.$val.GetHostname(); };
191104
- ptrType$1.methods = [{prop: "IsAvailable", name: "IsAvailable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "GetProtocol", name: "GetProtocol", pkg: "", typ: $funcType([], [videostream.Protocol], false)}, {prop: "GetPort", name: "GetPort", pkg: "", typ: $funcType([], [$Uint16], false)}, {prop: "GetHostname", name: "GetHostname", pkg: "", typ: $funcType([], [$String], false)}];
191105
- SOSVideoStreamer.init("github.com/supraio/client-daemon/pkg/decoder/sosstream", [{prop: "sos", name: "sos", embedded: false, exported: false, typ: js.Value, tag: ""}]);
191106
191106
  $init = function() {
191107
191107
  $pkg.$init = function() {};
191108
191108
  /* */ 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:
191109
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191110
- $r = general.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191111
- $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191112
- $r = jshelper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191113
- $r = videostream.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191114
- $r = js.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191115
- init();
191109
+ $r = hex.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191110
+ $r = webgl.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191111
+ $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191112
+ $r = errs.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191113
+ $r = jshelper.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191114
+ $r = canvasdriver.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191115
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191116
+ $r = log.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191117
+ $r = js.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191116
191118
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191117
191119
  };
191118
191120
  $pkg.$init = $init;
@@ -191542,7 +191544,7 @@ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
191542
191544
  return $pkg;
191543
191545
  })();
191544
191546
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191545
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, webcodecs, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, overlaydriver, stats, videostream, window, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, screenParams, ScreenManager, ProcessInfo, ProcessInfoManager, ptrType, funcType, sliceType$1, sliceType$3, arrayType, ptrType$12, openScreenWindows, mutex, NewScreenManager, NewProcessInfoManager;
191547
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, nacldecoder, nacldriver, errs, helper, input, message, netclient, netpacket, netstream, netframe, player, overlaydriver, stats, videostream, window, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, screenParams, ScreenManager, ProcessInfo, ProcessInfoManager, ptrType, funcType, sliceType$1, sliceType$3, arrayType, ptrType$12, openScreenWindows, mutex, NewScreenManager, NewProcessInfoManager;
191546
191548
  binary = $packages["encoding/binary"];
191547
191549
  json = $packages["encoding/json"];
191548
191550
  query = $packages["github.com/google/go-querystring/query"];
@@ -191550,7 +191552,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191550
191552
  clipboard = $packages["github.com/supraio/client-daemon/pkg/clipboard"];
191551
191553
  nacldecoder = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder"];
191552
191554
  nacldriver = $packages["github.com/supraio/client-daemon/pkg/decoder/nacldecoder/nacldriver"];
191553
- webcodecs = $packages["github.com/supraio/client-daemon/pkg/decoder/webcodecs"];
191554
191555
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191555
191556
  helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
191556
191557
  input = $packages["github.com/supraio/client-daemon/pkg/input"];
@@ -191564,7 +191565,6 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191564
191565
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
191565
191566
  videostream = $packages["github.com/supraio/client-daemon/pkg/videostream"];
191566
191567
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
191567
- canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
191568
191568
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
191569
191569
  screen = $packages["golang.org/x/exp/shiny/screen"];
191570
191570
  focus = $packages["golang.org/x/mobile/event/focus"];
@@ -192003,38 +192003,36 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192003
192003
  $r = clipboard.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192004
192004
  $r = nacldecoder.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192005
192005
  $r = nacldriver.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192006
- $r = webcodecs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192007
- $r = errs.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192008
- $r = helper.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192009
- $r = input.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192010
- $r = message.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192011
- $r = netclient.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192012
- $r = netpacket.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192013
- $r = netstream.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192014
- $r = netframe.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192015
- $r = player.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192016
- $r = overlaydriver.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192017
- $r = stats.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192018
- $r = videostream.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192019
- $r = window.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192020
- $r = canvasdriver.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192021
- $r = webgldriver.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192022
- $r = screen.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192023
- $r = focus.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192024
- $r = key.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192025
- $r = lifecycle.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192026
- $r = mouse.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192027
- $r = size.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192028
- $r = image.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192029
- $r = io.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192030
- $r = ioutil.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192031
- $r = log.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192032
- $r = os.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192033
- $r = path.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192034
- $r = strings.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192035
- $r = sync.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192036
- $r = js.$init(); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192037
- $r = time.$init(); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192006
+ $r = errs.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192007
+ $r = helper.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192008
+ $r = input.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192009
+ $r = message.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192010
+ $r = netclient.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192011
+ $r = netpacket.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192012
+ $r = netstream.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192013
+ $r = netframe.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192014
+ $r = player.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192015
+ $r = overlaydriver.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192016
+ $r = stats.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192017
+ $r = videostream.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192018
+ $r = window.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192019
+ $r = webgldriver.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192020
+ $r = screen.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192021
+ $r = focus.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192022
+ $r = key.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192023
+ $r = lifecycle.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192024
+ $r = mouse.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192025
+ $r = size.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192026
+ $r = image.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192027
+ $r = io.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192028
+ $r = ioutil.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192029
+ $r = log.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192030
+ $r = os.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192031
+ $r = path.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192032
+ $r = strings.$init(); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192033
+ $r = sync.$init(); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192034
+ $r = js.$init(); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192035
+ $r = time.$init(); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192038
192036
  openScreenWindows = $makeMap($String.keyFor, []);
192039
192037
  mutex = new sync.Mutex.ptr(0, 0);
192040
192038
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;