Little colorful demo

This commit is contained in:
apio 2022-09-20 20:49:31 +02:00
parent 1dce3a0cf7
commit 29f0253e5b

View File

@ -70,28 +70,53 @@ extern "C" void _start()
kinfoln("Prepared scheduler");
Scheduler::add_kernel_task([]() {
int64_t x = 0;
int64_t y = 0;
int64_t xvel = 10;
int64_t yvel = 10;
while (1)
{
sleep(1000);
for (int i = 0; i < 5; i++) { Serial::println("woo!"); }
sleep(5);
uint32_t color = (uint32_t)Mersenne::get();
uint32_t* colptr = &color;
x += xvel;
y += yvel;
if ((x + 10) >= framebuffer0.width())
{
xvel = -xvel;
x = (framebuffer0.width() - 10);
}
if ((y + 10) >= framebuffer0.height())
{
yvel = -yvel;
y = (framebuffer0.height() - 10);
}
if (xvel < 0 && (x - 10) < 0)
{
xvel = -xvel;
x = 0;
}
if (yvel < 0 && (y - 10) < 0)
{
yvel = -yvel;
y = 0;
}
framebuffer0.paint_rect(x, y, 10, 10, *(Color*)colptr);
}
});
Scheduler::add_kernel_task([]() {
sleep(500);
while (1)
{
sleep(2000);
for (int i = 0; i < 6; i++) { Serial::println("boo!"); }
sleep(200);
uint32_t color = (uint32_t)Mersenne::get();
uint32_t* colptr = &color;
framebuffer0.paint_rect(Mersenne::get() % (framebuffer0.width() - 256),
Mersenne::get() % (framebuffer0.height() - 256), Mersenne::get() % 255,
Mersenne::get() % 255, *(Color*)colptr);
}
});
Scheduler::add_kernel_task([]() {
sleep(20000);
kinfoln("Here i am, the hard-to-get thread!");
while (1) Scheduler::yield();
});
kinfoln("Prepared scheduler tasks");
ACPI::SDTHeader* rootSDT = ACPI::GetRSDTOrXSDT();
@ -104,6 +129,5 @@ extern "C" void _start()
kinfoln("Interrupts enabled");
sleep(20000);
reboot();
while (1) Scheduler::sleep(200);
}