Picture _buildPicture(_InspectorOverlayRenderState state) { PictureRecorder recorder = new PictureRecorder(); Canvas canvas = new RecorderCanvas(recorder); Size size = state.overlayRect.size; var fillPaint = new Paint() { color = _kHighlightedRenderObjectFillColor }; var borderPaint = new Paint() { color = _kHighlightedRenderObjectBorderColor, style = PaintingStyle.stroke, strokeWidth = 1 }; Rect selectedPaintRect = state.selected.rect.deflate(0.5f); canvas.save(); canvas.setMatrix(state.selected.transform); canvas.drawRect(selectedPaintRect, fillPaint); canvas.drawRect(selectedPaintRect, borderPaint); canvas.restore(); foreach (var transformedRect in state.candidates) { canvas.save(); canvas.setMatrix(transformedRect.transform); canvas.drawRect(transformedRect.rect.deflate(0.5f), borderPaint); canvas.restore(); } // todo paint descipion return(recorder.endRecording()); }
void clipRRect() { var pictureRecorder = new PictureRecorder(); var canvas = new RecorderCanvas(pictureRecorder); var paint = new Paint { color = new Color(0xFFFF0000), }; var path = new Path(); path.moveTo(10, 10); path.lineTo(10, 110); path.lineTo(90, 110); path.lineTo(110, 10); path.close(); canvas.drawPath(path, paint); paint = new Paint { color = new Color(0xFFFFFF00), }; var rect = Unity.UIWidgets.ui.Rect.fromLTWH(10, 150, 100, 100); var rrect = RRect.fromRectAndCorners(rect, 0, 4, 8, 16); var rect1 = Unity.UIWidgets.ui.Rect.fromLTWH(18, 152, 88, 92); var rrect1 = RRect.fromRectAndCorners(rect1, 0, 4, 8, 16); canvas.drawDRRect(rrect, rrect1, paint); canvas.rotate(-45 * Mathf.PI / 180.0f, new Offset(150, 150)); // paint = new Paint { // color = new Color(0xFF00FFFF), // blurSigma = 3, // }; // canvas.drawRectShadow( // Rect.fromLTWH(150, 150, 110, 120), // paint); var picture = pictureRecorder.endRecording(); Debug.Log("picture.paintBounds: " + picture.paintBounds); var editorCanvas = new CommandBufferCanvas(this._renderTexture, Window.instance.devicePixelRatio, this._meshPool); editorCanvas.rotate(-5 * Mathf.PI / 180); editorCanvas.clipRRect(RRect.fromRectAndRadius(Unity.UIWidgets.ui.Rect.fromLTWH(25, 15, 250, 250), 50)); editorCanvas.rotate(5 * Mathf.PI / 180); editorCanvas.drawPicture(picture); editorCanvas.rotate(-15 * Mathf.PI / 180); editorCanvas.translate(100, 100); editorCanvas.drawPicture(picture); editorCanvas.flush(); }
public Picture Snapshot(Rect bounds) { var skPictureRecorder = new PictureRecorder(); var skCanvas = skPictureRecorder.BeginRecording(bounds); OnDraw(skCanvas); return(skPictureRecorder.EndRecording()); }
void drawPicture() { var pictureRecorder = new PictureRecorder(); var canvas = new RecorderCanvas(pictureRecorder); var paint = new Paint { color = new Color(0xFFFF0000), }; var path = new Path(); path.moveTo(10, 10); path.lineTo(10, 110); path.lineTo(90, 110); path.lineTo(100, 10); path.close(); canvas.drawPath(path, paint); paint = new Paint { color = new Color(0xFFFFFF00), }; var rect = Unity.UIWidgets.ui.Rect.fromLTWH(10, 150, 100, 100); var rrect = RRect.fromRectAndCorners(rect, 0, 4, 8, 16); var rect1 = Unity.UIWidgets.ui.Rect.fromLTWH(18, 152, 88, 92); var rrect1 = RRect.fromRectAndCorners(rect1, 0, 4, 8, 16); canvas.drawDRRect(rrect, rrect1, paint); canvas.rotate(-45 * Mathf.PI / 180, new Offset(150, 150)); paint = new Paint { color = new Color(0xFF00FFFF), maskFilter = MaskFilter.blur(BlurStyle.normal, 3), }; canvas.drawRect( Unity.UIWidgets.ui.Rect.fromLTWH(150, 150, 110, 120), paint); var picture = pictureRecorder.endRecording(); Debug.Log("picture.paintBounds: " + picture.paintBounds); var editorCanvas = new CommandBufferCanvas(this._renderTexture, Window.instance.devicePixelRatio, this._meshPool); editorCanvas.drawPicture(picture); editorCanvas.rotate(-15 * Mathf.PI / 180); editorCanvas.translate(100, 100); editorCanvas.drawPicture(picture); editorCanvas.flush(); }
public override void EndPage() { var picture = PictureRecorder?.EndRecording(); if (picture != null && CurrentPageSize.HasValue) { Pictures.Add(new PreviewerPicture(picture, CurrentPageSize.Value)); } PictureRecorder?.Dispose(); PictureRecorder = null; }
public void BeginFrame() { var window = FlutterBinding.UI.Window.Instance; double devicePixelRatio = window.devicePixelRatio; var physicalSize = window.physicalSize; var logicalSize = physicalSize / devicePixelRatio; var paragraphBuilder = new ParagraphBuilder(new ParagraphStyle()); paragraphBuilder.addText("Hello, world!"); var paragraph = paragraphBuilder.build(); paragraph.layout(new ParagraphConstraints(width: logicalSize.width)); var physicalBounds = Offset.zero & physicalSize; var recorder = new PictureRecorder(); var canvas = new FlutterBinding.UI.Canvas(recorder, physicalBounds); canvas.scale((float)devicePixelRatio, (float)devicePixelRatio); PaintUtils.DrawCheckerboard(canvas.RecordingCanvas, new SKRect(0, 0, (float)physicalSize.width, (float)physicalSize.height)); var circlePaint = new SKPaint { Style = SKPaintStyle.Stroke, IsAntialias = true, StrokeWidth = 3, Color = SKColors.OrangeRed }; canvas.drawCircle(new Offset(logicalSize.width / 2, logicalSize.height / 2), 100, circlePaint); canvas.drawParagraph(paragraph, new Offset( (logicalSize.width - paragraph.maxIntrinsicWidth) / 2.0, (logicalSize.height - paragraph.height) / 2.0)); var picture = recorder.endRecording(); var sceneBuilder = new SceneBuilder(); sceneBuilder.pushClipRect(physicalBounds); sceneBuilder.addPicture(Offset.zero, picture); sceneBuilder.pop(); var scene = sceneBuilder.build(); window.render(scene); }
public Future execute() { PictureRecorder recorder = new PictureRecorder(); Canvas canvas = new Canvas(recorder); return(warmUpOnCanvas(canvas).then(_ => { Picture picture = recorder.endRecording(); //TimelineTask shaderWarmUpTask = TimelineTask(); //shaderWarmUpTask.start('Warm-up shader'); picture.toImage(size.width.ceil(), size.height.ceil()).then(__ => { //shaderWarmUpTask.finish(); return FutureOr.nil; }); return FutureOr.nil; })); }
PictureLayer _highlightConflictingLayer(PhysicalModelLayer child) { PictureRecorder recorder = new PictureRecorder(); var canvas = new RecorderCanvas(recorder); canvas.drawPath(child.clipPath, new Paint() { color = new Color(0xFFAA0000), style = PaintingStyle.stroke, strokeWidth = child.elevation + 10.0f, }); PictureLayer pictureLayer = new PictureLayer(child.clipPath.getBounds()); pictureLayer.picture = recorder.endRecording(); pictureLayer.debugCreator = child; child.append(pictureLayer); return(pictureLayer); }
public void BeginFrame() { var window = FlutterBinding.UI.Window.Instance; double devicePixelRatio = window.devicePixelRatio; var physicalSize = window.physicalSize; var logicalSize = physicalSize / devicePixelRatio; var paragraphBuilder = new ParagraphBuilder(new ParagraphStyle()); paragraphBuilder.addText("Hello, world!"); var paragraph = paragraphBuilder.build(); paragraph.layout(new ParagraphConstraints(width: logicalSize.width)); var physicalBounds = Offset.zero & physicalSize; var recorder = new PictureRecorder(); var canvas = new FlutterBinding.UI.Canvas(recorder, physicalBounds); canvas.scale((float)devicePixelRatio, (float)devicePixelRatio); canvas.drawParagraph(paragraph, new Offset( (logicalSize.width - paragraph.maxIntrinsicWidth) / 2.0, (logicalSize.height - paragraph.height) / 2.0 )); var picture = recorder.endRecording(); var sceneBuilder = new SceneBuilder(); sceneBuilder.pushClipRect(physicalBounds); sceneBuilder.addPicture(Offset.zero, picture); sceneBuilder.pop(); var scene = sceneBuilder.build(); var display = Windows.Graphics.Display.DisplayInformation.GetForCurrentView(); var _scale = display.LogicalDpi / 96.0f; window.render(scene); }
void saveLayer() { var pictureRecorder = new PictureRecorder(); var canvas = new RecorderCanvas(pictureRecorder); var paint1 = new Paint { color = new Color(0xFFFFFFFF), }; var path1 = new Path(); path1.moveTo(0, 0); path1.lineTo(0, 90); path1.lineTo(90, 90); path1.lineTo(90, 0); path1.close(); canvas.drawPath(path1, paint1); var paint = new Paint { color = new Color(0xFFFF0000), }; var path = new Path(); path.moveTo(20, 20); path.lineTo(20, 70); path.lineTo(70, 70); path.lineTo(70, 20); path.close(); canvas.drawPath(path, paint); var paint2 = new Paint { color = new Color(0xFFFFFF00), }; var path2 = new Path(); path2.moveTo(30, 30); path2.lineTo(30, 60); path2.lineTo(60, 60); path2.lineTo(60, 30); path2.close(); canvas.drawPath(path2, paint2); var picture = pictureRecorder.endRecording(); var editorCanvas = new CommandBufferCanvas(this._renderTexture, Window.instance.devicePixelRatio, this._meshPool); editorCanvas.saveLayer( picture.paintBounds, new Paint { color = new Color(0xFFFFFFFF), }); editorCanvas.drawPicture(picture); editorCanvas.restore(); editorCanvas.saveLayer(Unity.UIWidgets.ui.Rect.fromLTWH(45, 45, 90, 90), new Paint { color = new Color(0xFFFFFFFF), backdrop = ImageFilter.blur(3f, 3f) }); editorCanvas.restore(); editorCanvas.flush(); }