pub fn render_frame(&mut self, frame: &mut Frame, area: Rect) {
        self.data.contents.compute_new_window(self.data.offset);
        // We check if we need to recompute the terminal size in the case that the saved off
        // variable differs from the current frame, which can occur when a terminal is resized
        // between an event handling and a rendering.
        if area != self.display.terminal_size {
            self.display.terminal_size = area;
            self.display.comp_layouts =
                ScreenHandler::calculate_dimensions(area, self.key_handler.as_ref());
            // We change the start_address here to ensure that 0 is ALWAYS the first start
            // address. We round to preventing constant resizing always moving to 0.
            self.data.start_address = (self.data.start_address
                + (self.display.comp_layouts.bytes_per_line / 2))
                / self.display.comp_layouts.bytes_per_line
                * self.display.comp_layouts.bytes_per_line;
        }
        ScreenHandler::render_frame(
            frame,
            self.display.terminal_size,
            &mut self.data,
            &self.labels,
            self.key_handler.as_ref(),
            &self.display.comp_layouts,
        );
    }
Renders a single frame for the given area.
src/app.rs