状态更新:2024 年 10 月

  • October Progress on Building Ica: Continued exploration towards building Ica, a GUI code editor. Figured out rendering strategy at the end of last month and now designing a framework/engine on top of the rendering layer dealing with element trees, event listeners, and effect observers.
  • Challenges of Writing a GUI System in Rust: Difficult and complex. Rust's borrow checker makes implementing mutable, bi-directional trees non-trivial. Many GUI frameworks are being developed in the Rust ecosystem, like those catalogued by Raph Levien.
  • GUI Frameworks Under Consideration: Looking at Xilem, Flutter, and GPUI. GPUI is of particular interest as it's used in Zed GUI code editor. Its EntityMap is a solution for mutable trees with an interesting lease-pattern.
  • Inspired by GPUI: Added a conceptual implementation of an EntityMap and effect system.
  • New Approach for Building Ica: Shifting to build a GUI replica of antirez's Kilo terminal code editor. Calling this project Tera to focus on GUI systems first. Secondary goal is to write a tutorial series on building a hardware-accelerated GUI code editor without Electron, Skia, or an established framework.
  • Current State of Tera: Has a conceptual GUI system with hardware-accelerated rendering, retained entities, mouse event handling, window focus, and keyboard event dispatching. Video shows prototype highlighting keyboard and mouse events. Still has many problems to solve at the GUI system level.
  • Upcoming Plans: Flying to Sydney for a couple of weeks. Will start by mapping out Kilo's features and then build Tera properly. Will catch up on reading articles in Pinto reading list in the meantime.
阅读 4
0 条评论