ClassicOS/src/gui/README.md

42 lines
1.5 KiB
Markdown

# GUI
Use QEMU for emulation during development
Implement efficient memory allocation for GUI elements.
Develop drivers and event systems for keyboard and mouse input handling
Choose between bitmap fonts or implement a basic vector font renderer.
Decide on a compositing strategy for overlapping windows.
Implement blitting and compositing in optimized assembly.
Implement performance-critical routines in assembly.
Implement a simple compositing system. Use a z-order list to manage window stacking and redraw only changed areas for efficiency.
the development environment will be in
debian 10 buster with kernel Linux gregbowne 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux and gnu 8.3.0 and yes using gcc and nasm
on vscode
Implement basic clipping to improve rendering performance.
Implement double buffering to reduce screen flicker.
Start with simple widgets like buttons and text fields.
Gradually add more complex elements like scrollbars and menus.
Optimize critical paths using inline assembly or full assembly routines.
Implement double buffering to reduce screen flicker.
Use a simple event system for GUI interactions.
Implement modes:
VGA/SVGA Mode
Use VGA mode 13h (320x200, 256 colors) for maximum compatibility.
Implement VESA VBE support for higher resolutions on capable hardware.
Framebuffer
Set up a linear framebuffer in protected mode for more flexible graphics.
Use SIMD operations.