summaryrefslogtreecommitdiff
path: root/applications/init/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'applications/init/main.cpp')
-rw-r--r--applications/init/main.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/applications/init/main.cpp b/applications/init/main.cpp
new file mode 100644
index 0000000..7aa2a38
--- /dev/null
+++ b/applications/init/main.cpp
@@ -0,0 +1,24 @@
+#include <mercury/syscall.hpp>
+
+using mercury::syscall::encoded_color;
+using mercury::syscall::color;
+
+encoded_color *fb;
+uint32_t fb_width;
+uint32_t fb_height;
+uint32_t fb_pitch;
+
+int main(int, char **) {
+ mercury::syscall::get_framebuffer(fb, fb_width, fb_height, fb_pitch);
+ for (uint32_t y = 0; y < fb_height; ++y)
+ for (uint32_t x = 0; x < fb_width; ++x) {
+ color c = {
+ .r = 0,
+ .g = (uint8_t)(y * 255 / fb_height),
+ .b = (uint8_t)(x * 255 / fb_width)
+ };
+ fb[y * fb_pitch + x] = mercury::syscall::encode_color(c);
+ }
+ mercury::syscall::draw_framebuffer();
+ return 0;
+}