Commit Graph

13 Commits

Author SHA1 Message Date
d37f632344 [Refactor] Implement batched shape rendering.
This mirrors the previous refactor of the TextRenderer. All calls to
draw_rect and draw_triangle now buffer vertex data (position and color).
A begin()/flush() system is introduced to manage batching.
2025-10-05 00:44:23 +01:00
c3316b3da1 [Refactor] Implement batched text rendering.
Overhauls text rendering to improve performance.

Renderer was really ineffient, sending a separate GPU draw call for
every character rendered. This created a bottleneck, especially with
text-heavy UI stuff like the wallpaper.

- The 'TextRenderer' now generates a single texture atlas for all font
  glyhs on load so all characters share a single texture.
- 'begin()' / 'flush()' was added to the 'TextRenderer'. Calls to
  'render_text' now buffer vertex data (position, texture coords,
colour) instead of drawing immediately. A single 'flush()' call at the
end of a pass draws all buffered text in one draw call.
- A simple batching introduced some shitty visual layering bugs. to
  solve this, a staged flushing architecture has been implemented. Each
logical UI component is now responsible for managing its own rendering
passes, beginning and flushing text batches as needed to ensure correct
back-to-front layering.
2025-10-04 18:32:35 +01:00
6876cbff95 [Add] Implement system boot sequence screen. 2025-09-28 03:10:12 +01:00
e72cc987ff [Add] Not your boring main menu. 2025-09-28 02:21:34 +01:00
e06d6eec37 [Refactor] Implement scriptable Lua API
Large architecture refactor of the scripting system.

Previous implementation required Lua scripts to return "action
tables" which were interpreted by a large and not very flexible at all
if-else ladder in C++. While fine for the initial implementation, it's
not scalable, and it makes it impossible for players to write their own
meaningful tools.
2025-09-27 21:18:05 +01:00
fde6879720 [Add] Implement nmap network scanner. 2025-09-27 00:13:56 +01:00
5f648440c5 [Add] Implement file I/O and remote CoW. 2025-09-26 23:50:01 +01:00
a80764a70e [Add] Implemented 'cat' command 2025-09-26 21:45:40 +01:00
bb17cf3473 [Add] Implement remote sessions and server exit. 2025-09-26 21:32:08 +01:00
388c6429cf [Change] Remove hybrid local/remote network model
Client architecture has been refactored to be fully
server-authoritative, remove the previous "hybrid" model that supported
both local and remote command execution, that was a stupid idea.

- Client now connects to server on startup.
- The local command processor and VFS have been removed from the
  Terminal class.
- All command processing is now handled by the server.
- The client is now just a thin client essentially

I'll in the future enable single player mode by running the server on
the local machine in a separate thread.
2025-09-23 20:54:39 +01:00
a502fa64cf [Add] Load command scripts from filesystem. 2025-09-22 19:24:44 +01:00
a0c5eab1cf [Add] Implement basic UI windowing system. 2025-09-20 12:30:57 +01:00
f86015736d [Add] Text rendering. 2025-09-20 03:16:59 +01:00