private void AddPartialResult(RenderFinishedEventArgs result) { lock (this) { _contentPanel.SetMinimumWidth((int)(result.TotalWidth * _displayDensity)); _contentPanel.SetMinimumHeight((int)(result.TotalHeight * _displayDensity)); if (result.RenderResult != null) { using (var image = (SKImage)result.RenderResult) { byte[] imageBytes; using (var data = image.Encode(SKEncodedImageFormat.Png, 100)) { imageBytes = data.ToArray(); } var view = new ImageView(Context); view.SetMinimumWidth((int)(result.Width * _displayDensity)); view.SetMinimumHeight((int)(result.Height * _displayDensity)); view.SetMaxWidth((int)(result.Width * _displayDensity)); view.SetMaxHeight((int)(result.Width * _displayDensity)); view.SetImageBitmap(BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length)); _contentPanel.AddView(view); } } } }
protected virtual void OnPartialRenderFinished(RenderFinishedEventArgs e) { if (PartialRenderFinished != null) { PartialRenderFinished(e); } }
private float PaintGroup(StaveGroup group, float totalHeight, ICanvas canvas) { // paint into canvas var height = group.Height + (GroupSpacing * Scale); canvas.BeginRender(Width, height); Renderer.Canvas.Color = Renderer.RenderingResources.MainGlyphColor; Renderer.Canvas.TextAlign = TextAlign.Left; // NOTE: we use this negation trick to make the group paint itself to 0/0 coordinates // since we use partial drawing group.Paint(0, -group.Y, canvas); // calculate coordinates for next group totalHeight += height; var result = canvas.EndRender(); var args = new RenderFinishedEventArgs(); args.TotalWidth = Width; args.TotalHeight = totalHeight; args.Width = Width; args.Height = height; args.RenderResult = result; args.FirstMasterBarIndex = group.FirstBarIndex; args.LastMasterBarIndex = group.LastBarIndex; Renderer.OnPartialRenderFinished(args); return(height); }
private void AddPartialResult(RenderFinishedEventArgs result) { ActualScoreWidth = result.TotalWidth; ActualScoreHeight = result.TotalHeight; _layoutPanel.Width = (int)result.TotalWidth; _layoutPanel.Height = (int)result.TotalHeight; if (result.RenderResult != null) { var bitmap = result.RenderResult as Bitmap; if (bitmap == null) { using (result.RenderResult as IDisposable) { bitmap = SkiaUtil.ToBitmap(result.RenderResult); } } var pic = new PictureBox { AutoSize = false, BackColor = ForeColor, Width = (int)result.Width, Height = (int)result.Height, Image = bitmap, Padding = Padding.Empty, Margin = Padding.Empty, BorderStyle = BorderStyle.None }; _layoutPanel.Controls.Add(pic); } }
protected virtual void OnRenderFinished(RenderFinishedEventArgs obj) { var handler = RenderFinished; if (handler != null) { handler(obj); } }
protected virtual void OnPartialRenderFinished(RenderFinishedEventArgs obj) { Action <RenderFinishedEventArgs> handler = PartialRenderFinished; if (handler != null) { handler(obj); } }
protected virtual void OnRenderFinished(RenderFinishedEventArgs e) { EventHandler handler = RenderFinished; if (handler != null) { handler(this, EventArgs.Empty); } }
private void AddPartialResult(RenderFinishedEventArgs result) { lock (this) { Width = (int)result.TotalWidth; Height = (int)result.TotalHeight; _images.Add((Image)result.RenderResult); Invalidate(); } }
private void AppendRenderResult(RenderFinishedEventArgs result) { CanvasElement.style.width = result.TotalWidth + "px"; CanvasElement.style.height = result.TotalHeight + "px"; if (result.RenderResult != null) { Node itemToAppend; if (@typeof(result.RenderResult) == "string") { var partialResult = (HtmlDivElement)document.createElement("div"); partialResult.innerHTML = result.RenderResult.As <string>(); itemToAppend = partialResult.firstChild; } else { itemToAppend = (Node)result.RenderResult; } CanvasElement.appendChild(itemToAppend); } }
private void AddPartialResult(RenderFinishedEventArgs result) { lock (this) { _contentPanel.WidthRequest = result.TotalWidth; _contentPanel.HeightRequest = result.TotalHeight; if (result.RenderResult != null) { using (var image = (SKImage)result.RenderResult) { _contentPanel.Children.Add(new Image { Source = new SkImageSource(image), WidthRequest = result.Width, HeightRequest = result.Height }); } } } }
private void AddPartialResult(RenderFinishedEventArgs result) { lock (this) { Width = result.TotalWidth; Height = result.TotalHeight; var bitmap = (Bitmap)result.RenderResult; IntPtr hBitmap = bitmap.GetHbitmap(); try { PartialResults.Add(Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(bitmap.Width, bitmap.Height))); } finally { DeleteObject(hBitmap); } } }
private void AddPartialResult(RenderFinishedEventArgs result) { ActualScoreWidth = result.TotalWidth; ActualScoreHeight = result.TotalHeight; if (result.RenderResult != null) { var bitmap = result.RenderResult as Bitmap; if (bitmap != null) { using (bitmap) { _images.Add(GdiImageSource.Create(bitmap)); } } else { using (result.RenderResult as IDisposable) { _images.Add(SkImageSource.Create(result.RenderResult)); } } } }
protected virtual void OnRenderFinished(RenderFinishedEventArgs e) { RenderFinished?.Invoke(this, e); }
private void AppendRenderResult(RenderFinishedEventArgs result) { if (result != null) { CanvasElement.style.width = result.TotalWidth + "px"; CanvasElement.style.height = result.TotalHeight + "px"; } if (result == null || result.RenderResult != null) { // the queue/dequeue like mechanism used here is to maintain the order within the setTimeout. // setTimeout allows to decouple the rendering from the JS processing a bit which makes the overall display faster. _renderResults.Add(result); setTimeout(() => { while (_renderResults.Count > 0) { var renderResult = _renderResults[0]; _renderResults.RemoveAt(0); // null result indicates that the rendering finished if (renderResult == null) { // so we remove elements that might be from a previous render session while (CanvasElement.childElementCount > _totalResultCount) { CanvasElement.removeChild(CanvasElement.lastChild); } } // NOTE: here we try to replace existing children else { var body = renderResult.RenderResult; if (@typeof(body) == "string") { HtmlElement placeholder; if (_totalResultCount < CanvasElement.childElementCount) { placeholder = CanvasElement.children[_totalResultCount].As <HtmlElement>(); } else { placeholder = document.createElement("div").As <HtmlElement>(); CanvasElement.appendChild(placeholder); } placeholder.style.width = renderResult.Width + "px"; placeholder.style.height = renderResult.Height + "px"; placeholder.style.display = "inline-block"; if (IsElementInViewPort(placeholder) || Settings.DisableLazyLoading) { placeholder.outerHTML = body.As <string>(); } else { placeholder.As <dynamic>().svg = body; placeholder.setAttribute("data-lazy", "true"); } } else { if (_totalResultCount < CanvasElement.childElementCount) { CanvasElement.replaceChild(renderResult.RenderResult.As <Node>(), CanvasElement.children[_totalResultCount]); } else { CanvasElement.appendChild(renderResult.RenderResult.As <Node>()); } } _totalResultCount++; } } }, 1); } }
protected virtual void OnRenderFinished(RenderFinishedEventArgs e) { RoutedEventArgs newEventArgs = new RoutedEventArgs(RenderFinishedEvent); RaiseEvent(newEventArgs); }
protected virtual void OnPreRender(RenderFinishedEventArgs obj) { Action<RenderFinishedEventArgs> handler = PreRender; if (handler != null) handler(obj); }