Files
Arch-R/scripts/splash/fbsplash.h
Douglas Teles 06dc2d16f3 Add system scripts, services, and boot splash
System daemons: hotkeys (volume/brightness), automount, bluetooth agent,
memory manager, sleep/suspend, USB gadget mode, save-config persistence.

Boot splash: initramfs SVG renderer (fbsplash + svg_parser) for 0.7s splash.

Panel tools: generate-panel-dtbos.sh rewrite, convert-panel.py for ROCKNIX
panel data extraction, archr-dtbo.py for runtime overlay management.

Input: archr-gptokeyb.c gamepad-to-keyboard mapper via uinput.

Launch wrappers: emulationstation.sh and retroarch-launch.sh updated for
KMS/DRM + Mesa 26 Panfrost environment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 17:22:30 -03:00

34 lines
850 B
C

#ifndef FBSPLASH_H
#define FBSPLASH_H
#include <stdint.h>
#include <linux/fb.h>
typedef struct {
int fd;
uint8_t *buffer;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
size_t screensize;
} Framebuffer;
typedef struct {
uint32_t screen_width;
uint32_t screen_height;
uint32_t svg_width;
uint32_t svg_height;
uint32_t x_offset;
uint32_t y_offset;
float base_svg_width;
float base_svg_height;
} DisplayInfo;
Framebuffer* fb_init(const char *fb_device);
void fb_cleanup(Framebuffer *fb);
void set_pixel(Framebuffer *fb, uint32_t x, uint32_t y, uint32_t color);
void blend_pixel(Framebuffer *fb, uint32_t x, uint32_t y, uint32_t color, float alpha);
void fb_flush(Framebuffer *fb);
DisplayInfo* calculate_display_info(Framebuffer *fb, float base_width, float base_height);
#endif