This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
hilbert-os/applications/init/source/main.cpp

28 lines
851 B
C++

#include <daguerre.hpp>
int main(int, char **) {
auto hfb = daguerre::get_hilbert_framebuffer();
daguerre::image<daguerre::rgb24> bim;
std::FILE *burdon = std::fopen("/assets/burden.ppm", "r");
daguerre::try_load_ppm(burdon, bim);
std::fclose(burdon);
unsigned width = bim.width < hfb.width ? bim.width : hfb.width;
unsigned height = bim.height < hfb.height ? bim.height : hfb.height;
unsigned x = (hfb.width - width) / 2;
unsigned y = (hfb.height - height) / 2;
while (1) {
daguerre::copy_region<>(hfb, bim, 0, 0, x, y, width, height);
while ((__euler_read_key_packet() & 0x0400ff) != 0x00005a)
;
for (unsigned i = 0; i < bim.width * bim.height; ++i) {
bim.buffer[i].r = 255 - bim.buffer[i].r;
bim.buffer[i].g = 255 - bim.buffer[i].g;
bim.buffer[i].b = 255 - bim.buffer[i].b;
}
}
}