From e0f14e3719973a7a8c1f1fd8eac546ccadd3cc3c Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Fri, 14 Aug 2015 09:54:30 -0700 Subject: [PATCH] Add debug painting for layer borders This patch makes it easier to debug layerization issues. --- packages/flutter/lib/base/debug.dart | 3 +++ packages/flutter/lib/rendering/layer.dart | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/flutter/lib/base/debug.dart b/packages/flutter/lib/base/debug.dart index 7b584e5b90..f025e9959e 100644 --- a/packages/flutter/lib/base/debug.dart +++ b/packages/flutter/lib/base/debug.dart @@ -23,6 +23,9 @@ bool debugPaintBaselinesEnabled = false; const sky.Color debugPaintAlphabeticBaselineColor = const sky.Color(0xFF00FF00); const sky.Color debugPaintIdeographicBaselineColor = const sky.Color(0xFFFFD000); +bool debugPaintLayerBordersEnabled = false; +const sky.Color debugPaintLayerBordersColor = const sky.Color(0xFFFF9800); + bool debugPaintBoundsEnabled = false; double timeDilation = 1.0; diff --git a/packages/flutter/lib/rendering/layer.dart b/packages/flutter/lib/rendering/layer.dart index 429d650331..c11a973374 100644 --- a/packages/flutter/lib/rendering/layer.dart +++ b/packages/flutter/lib/rendering/layer.dart @@ -5,6 +5,7 @@ import 'dart:sky' as sky; import 'dart:sky' show Point, Offset, Size, Rect, Color, Paint, Path; +import 'package:sky/base/debug.dart'; import 'package:vector_math/vector_math.dart'; abstract class Layer { @@ -36,9 +37,21 @@ class PictureLayer extends Layer { Size size; sky.Picture picture; + bool _debugPaintLayerBorder(sky.Canvas canvas) { + if (debugPaintLayerBordersEnabled) { + Paint border = new Paint() + ..color = debugPaintLayerBordersColor + ..strokeWidth = 2.0 + ..setStyle(sky.PaintingStyle.stroke); + canvas.drawRect(Point.origin & size, border); + } + return true; + } + void paint(sky.Canvas canvas) { canvas.translate(offset.dx, offset.dy); canvas.drawPicture(picture); + assert(_debugPaintLayerBorder(canvas)); canvas.translate(-offset.dx, -offset.dy); } }