/// <summary> /// This is a javascript application. /// </summary> /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param> public Application(IApp page) { // X:\jsc.svn\examples\javascript\WebGL\WebGLSVGAnonymous\WebGLSVGAnonymous\Application.cs // X:\jsc.svn\examples\javascript\WebGL\WebGLVRCreativeLeadership\WebGLVRCreativeLeadership\Application.cs // X:\jsc.svn\examples\javascript\WebGL\WebGLSVGSprite\WebGLSVGSprite\Application.cs var l = new NotificationLayout().layout; l.AttachToDocument(); new { }.With( async delegate { var retry = new IHTMLButton { "retry" }.AttachToDocument(); do { new IHTMLHorizontalRule().AttachToDocument(); Task<ISVGSVGElement> n = l; var svg = await n; svg.AttachToDocument(); IHTMLImage i = svg; i.AttachToDocument(); var c = new CanvasRenderingContext2D(svg.clientWidth, svg.clientHeight); // http://www.w3schools.com/tags/canvas_fillstyle.asp c.fillStyle = "red"; c.fillRect(0, 0, svg.clientWidth, svg.clientHeight); // rather than to overload drawimage lets do an operator which is more exotic for the api // at some point the canvas may implement the html drawing obseleting this workaround c.drawImage(i, 0, 0, svg.clientWidth, svg.clientHeight); c.canvas.AttachToDocument(); } while (await retry.async.onclick); } ); }
/// <summary> /// This is a javascript application. /// </summary> /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param> public Application(IApp page) { var l = new NotificationLayout().layout; l.AttachToDocument(); var div0 = new IHTMLDiv().AttachToDocument(); new { }.With( async delegate { do { div0.Clear(); new IHTMLHorizontalRule().AttachToDocument(); Task<ISVGSVGElement> n = l; var svg = await n; IHTMLImage i = svg; var c = new CanvasRenderingContext2D(l.clientWidth, l.clientHeight); c.drawImage(i, 0, 0, l.clientWidth, l.clientHeight); c.canvas.AttachTo(div0); } while (await l.async.onmutation); } ); }