static void dumpview(const SkView* view, int level, bool recurse) { tab(level); SkDebugf("<view"); show_if_nonzero(" x", view->locX()); show_if_nonzero(" y", view->locY()); show_if_nonzero(" width", view->width()); show_if_nonzero(" height", view->height()); if (recurse) { SkView::B2FIter iter(view); SkView* child; bool noChildren = true; while ((child = iter.next()) != nullptr) { if (noChildren) { SkDebugf(">\n"); } noChildren = false; dumpview(child, level + 1, true); } if (!noChildren) { tab(level); SkDebugf("</view>\n"); } else { goto ONELINER; } } else { ONELINER: SkDebugf(" />\n"); } }
void SkView::dump(bool recurse) const { dumpview(this, 0, recurse); }