fill in framebuffer with more exciting pattern - working in qemu BIOS but lost graphics in qemu EFI

This commit is contained in:
Josh Holtrop 2020-10-18 13:47:35 -04:00
parent d08d54ecbf
commit 21afa93c4b

View File

@ -4,10 +4,23 @@ void kernel_main(uint32_t mbinfo)
{ {
volatile uint32_t * mbi = (volatile uint32_t *)mbinfo; volatile uint32_t * mbi = (volatile uint32_t *)mbinfo;
volatile uint32_t * fb = (volatile uint32_t *)mbi[88 / 4]; volatile uint32_t * fb = (volatile uint32_t *)mbi[88 / 4];
uint32_t c = 0u; uint32_t pitch = mbi[96 / 4];
for (uint32_t i = 0u; i < 800u * 600u; i++) uint32_t width = mbi[100 / 4];
uint32_t height = mbi[104 / 4];
for (uint32_t row = 0u; row < height; row++)
{ {
c++; for (uint32_t col = 0u; col < width; col++)
fb[i] = (c << 28u) | 0x00669900u | ((c << 4u) & 0xFFu); {
uint32_t er = (col * height) / width;
int32_t dr = (int32_t)row - (int32_t)er;
if (dr < 0)
{
dr = -dr;
}
uint8_t r = 255u - ((uint32_t)dr * 256u / height);
uint8_t g = col * 256u / width;
uint8_t b = row * 256u / height;
fb[pitch * row / 4u + col] = (r << 16u) | (g << 8u) | b;
}
} }
} }