MCPcopy Create free account
hub / github.com/TheRedDeveloper/ply-engine / render_debug_view

Method render_debug_view

src/engine.rs:8279–8536  ·  view source on GitHub ↗

Main debug view rendering. Called from end_layout() when debug mode is enabled.

(&mut self)

Source from the content-addressed store, hash-verified

8277
8278 /// Main debug view rendering. Called from end_layout() when debug mode is enabled.
8279 fn render_debug_view(&mut self) {
8280 let initial_roots_length = self.layout_element_tree_roots.len();
8281 let initial_elements_length = self.layout_elements.len();
8282 let row_height = Self::DEBUG_VIEW_ROW_HEIGHT;
8283 let outer_padding = Self::DEBUG_VIEW_OUTER_PADDING;
8284 let debug_width = self.debug_view_width;
8285
8286 let info_text_config = self.store_text_element_config(TextConfig {
8287 color: Self::DEBUG_COLOR_4,
8288 font_size: 16,
8289 wrap_mode: WrapMode::None,
8290 ..Default::default()
8291 });
8292 let info_title_config = self.store_text_element_config(TextConfig {
8293 color: Self::DEBUG_COLOR_3,
8294 font_size: 16,
8295 wrap_mode: WrapMode::None,
8296 ..Default::default()
8297 });
8298
8299 // Determine scroll offset for the debug scroll pane
8300 let scroll_id = hash_string("Ply__DebugViewOuterScrollPane", 0);
8301 let mut scroll_y_offset: f32 = 0.0;
8302 // Only exclude the bottom 300px from tree interaction when the detail panel is shown
8303 let detail_panel_height = if self.debug_selected_element_id != 0 { 300.0 } else { 0.0 };
8304 let mut pointer_in_debug_view = self.pointer_info.position.y < self.layout_dimensions.height - detail_panel_height;
8305 for scd in &self.scroll_container_datas {
8306 if scd.element_id == scroll_id.id {
8307 if !self.external_scroll_handling_enabled {
8308 scroll_y_offset = scd.scroll_position.y;
8309 } else {
8310 pointer_in_debug_view = self.pointer_info.position.y + scd.scroll_position.y
8311 < self.layout_dimensions.height - detail_panel_height;
8312 }
8313 break;
8314 }
8315 }
8316
8317 let highlighted_row = if pointer_in_debug_view {
8318 ((self.pointer_info.position.y - scroll_y_offset) / row_height) as i32 - 1
8319 } else {
8320 -1
8321 };
8322 let highlighted_row = if self.pointer_info.position.x < self.layout_dimensions.width - debug_width {
8323 -1
8324 } else {
8325 highlighted_row
8326 };
8327
8328 // Main debug view panel (floating)
8329 self.debug_open_id("Ply__DebugView", &ElementDeclaration {
8330 layout: LayoutConfig {
8331 sizing: SizingConfig {
8332 width: SizingAxis {
8333 type_: SizingType::Fixed,
8334 min_max: SizingMinMax { min: debug_width, max: debug_width },
8335 ..Default::default()
8336 },

Callers 1

end_layoutMethod · 0.80

Calls 11

hash_stringFunction · 0.85
debug_open_idMethod · 0.80
debug_openMethod · 0.80
debug_textMethod · 0.80
close_elementMethod · 0.80
open_element_with_idMethod · 0.80
get_scroll_offsetMethod · 0.80

Tested by

no test coverage detected