From dd86ef6a4416a9af8ed45d6b5dc8a31c52132ae0 Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Sun, 13 Apr 2025 14:40:44 -0400 Subject: [PATCH] Meta: Add some layout debugging stuff --- System/Libraries/Html/Renderer.HC | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/System/Libraries/Html/Renderer.HC b/System/Libraries/Html/Renderer.HC index b90273c..8c67364 100644 --- a/System/Libraries/Html/Renderer.HC +++ b/System/Libraries/Html/Renderer.HC @@ -690,6 +690,8 @@ U0 @render_node_text(@html_dom_node* node, HtmlRenderer* renderer) I64 text_width; Context2DWidget* fragment_widget; + U32 fragment_bounding_box_color = Color(0x00, 0xff, 0x00); + for (i = 0; i < fragment_count; i++) { if (fragments[i] && *fragments[i]) { text_width = @get_truetype_text_width(node->parentNode->fontFamily, node->parentNode->fontSize, fragments[i]); @@ -699,6 +701,14 @@ U0 @render_node_text(@html_dom_node* node, HtmlRenderer* renderer) U64_MAX, U64_MAX, 0, 0); fragment_widget->data = node; fragment_widget->ctx = NewContext2D(text_width, ToI64(node->parentNode->fontSize * 1.2))->fill(node->parentNode->backgroundColor)->text(node->parentNode->fontFamily, 0, 0, node->parentNode->fontSize, node->parentNode->color, fragments[i]); + + if (renderer->debug && fragment_widget->ctx) { + fragment_widget->ctx->line(0, 0, fragment_widget->ctx->width - 1, 0, fragment_bounding_box_color); + fragment_widget->ctx->line(0, fragment_widget->ctx->height - 1, fragment_widget->ctx->width - 1, fragment_widget->ctx->height - 1, fragment_bounding_box_color); + fragment_widget->ctx->line(0, 0, 0, fragment_widget->ctx->height - 1, fragment_bounding_box_color); + fragment_widget->ctx->line(fragment_widget->ctx->width - 1, 0, fragment_widget->ctx->width - 1, fragment_widget->ctx->height - 1, fragment_bounding_box_color); + } + fragment_widget->width = fragment_widget->ctx->width; fragment_widget->height = fragment_widget->ctx->height; }