loader: implement framebuffer console
Create common (linear framebuffer based) graphical local console with our own terminal emulator.
The UEFI does provide the framebuffer as default (at least 800x600x32 as minimum resolution), if possible, set the same for BIOS.
Add TEM as terminal emulator.
Use built in 8x16 font for fall back, load "best font" when available (see /boot/fonts) and pass it to the kernel as module.
add loadfont command for manual font loading.
add screen-font variable to make it possible to set font size by name (set screen-font without the value will list the alternatives).
Implement few gfx primitives to support drawing the display elements, including the png image for logo. We currently only do put logo at right lower corner of the screen.
Draw black on white by default (it does look better with illumos phoenix and is nice otherwise).
User can set ansi colors (0-7 or by names) via tem.fg_color and tem.bg_color
Implement common framebuffer set | get | list | on | off to manage the FB.
Introduce some nice bugs we can fix later.
Updated by Electric Monk almost 2 years ago
- Status changed from In Progress to Closed
commit 9890ff8357a674572254e0be06b175a1e8eab4b0 Author: Toomas Soome <email@example.com> Date: 2019-01-07T09:11:18.000Z 10028 loader: implement framebuffer console 10029 common/font: create shared font.c 10030 import pnglite into usr/src/common/pnglite 8918 loader.efi: add vesa edid support 10031 loader: import tem for loader console 10032 loader: implement tem utf-8 support 10033 ficl: add simple gfx words 10034 loader: use term-drawrect for menu frame 10035 loader: add alpha blending for gfx_fb 10036 ficl: add fb-putimage 10037 loader: add illumos.png logo 10038 loader: replace gop and vesa with framebuffer 10039 loader: build rules for new font setup 10040 loader: gfx use GOP Blt() function in visual_io callbacks Reviewed by: Robert Mustacchi <firstname.lastname@example.org> Reviewed by: Gergő Mihály Doma <email@example.com> Approved by: Hans Rosenfeld <firstname.lastname@example.org>