clay/renderers
Seintian 97c1a797c4 [renderers/ncurses] Refactor Ncurses renderer and example with atomic functions and Doxygen docs
Major refactor of the Ncurses renderer and example application to improve code readability, maintainability, and documentation coverage.

**Ncurses Renderer (`renderers/ncurses/clay_renderer_ncurses.c`):**
*   **Atomic Rendering Functions**: Decomposed the monolithic `Clay_Ncurses_Render` function into specialized handlers:
    *   `Clay_Ncurses_RenderRectangle`
    *   `Clay_Ncurses_RenderText`
    *   `Clay_Ncurses_RenderBorder`
*   **Scissor Management**: Encapsulated scissor stack operations into `Clay_Ncurses_PushScissor` and `Clay_Ncurses_PopScissor`.
*   **Visibility Logic**: Extracted visibility/clipping checks into `Clay_Ncurses_GetVisibleRect` for cleaner reuse.
*   **Documentation**: Added comprehensive Doxygen documentation for file headers, internal state, constants, and all functions.

**Ncurses Example (`examples/ncurses-example/main.c`):**
*   **Architecture Refactor**: Implementation split into clear "App State", "Input Processing", and "UI Components" sections.
*   **UI Componentization**: Renamed and organized UI functions with a consistent `UI_` prefix (e.g., `UI_Sidebar`, `UI_FeedPost`, `UI_HelpModal`).
*   **State Management**: Introduced `AppState` struct to centralize application state (sidebar visibility, scroll delta, etc.).
*   **Input Handling**: Centralized input logic in `App_ProcessInput` loop.
*   **Documentation**: Added full Doxygen documentation for the example source.

This refactor maintains identical runtime behavior while significantly improving the codebase's "spoken english" readability and modularity. loop.
*   **Documentation**: Added full Doxygen documentation for the example source.

This refactor maintains identical runtime behavior while significantly improving the codebase's  readability and modularity.
2025-12-28 18:39:25 +01:00
..
cairo [Renderers/Cairo] Fix cairo renderer and example (#416) 2025-05-19 11:36:08 +12:00
ncurses [renderers/ncurses] Refactor Ncurses renderer and example with atomic functions and Doxygen docs 2025-12-28 18:39:25 +01:00
playdate [Renderers/Playdate] Playdate console example (#404) 2025-05-19 11:46:39 +12:00
raylib [Renderers/Raylib] Fix element float distortion (#430) 2025-06-05 10:49:26 +10:00
SDL2 [Renderers/SDL] Font sizing is ignored (#444) 2025-06-23 09:30:14 +10:00
SDL3 [Renderers/SDL3] Fix border position calculated incorrectly (#446) 2025-06-23 10:43:08 +10:00
sokol [Renderers/Sokol] allow usage of images with sokol renderer (#489) 2025-09-08 11:35:18 +10:00
termbox2 [Renderers/termbox] fixed horizontal text culling bug (#525) 2025-10-23 12:58:39 +11:00
terminal [Renderers/Terminal] Add initial implementation of terminal renderer (#91) 2025-05-22 12:45:52 +12:00
web [Renderers/Web] treat RenderCommand.commandType as uint8_t instead of uint32_t (#162) 2025-01-05 14:34:16 +13:00
win32_gdi [Renderers/WinGDI] Working on Win32 GDI renderer and example (#344) 2025-04-09 11:31:33 +12:00