add fb_clear(), just clear to solid bluish color for now
This commit is contained in:
parent
70b4db9dbb
commit
fb88595dec
22
src/fb.c
22
src/fb.c
@ -17,28 +17,18 @@ static inline void fb_set_pixel(int x, int y, uint8_t r, uint8_t g, uint8_t b)
|
||||
fb[fb_pitch * y / 4u + x] = build_pixel(r, g, b);
|
||||
}
|
||||
|
||||
static void fb_clear(void)
|
||||
{
|
||||
memset32(fb, 0x002C55u, fb_pitch * fb_height / 4u);
|
||||
}
|
||||
|
||||
void fb_init(uint32_t * addr, uint32_t width, uint32_t height, uint32_t pitch)
|
||||
{
|
||||
fb = addr;
|
||||
fb_width = width;
|
||||
fb_height = height;
|
||||
fb_pitch = pitch;
|
||||
for (uint32_t row = 0u; row < fb_height; row++)
|
||||
{
|
||||
for (uint32_t col = 0u; col < fb_width; col++)
|
||||
{
|
||||
uint32_t er = (col * fb_height) / fb_width;
|
||||
int32_t dr = (int32_t)row - (int32_t)er;
|
||||
if (dr < 0)
|
||||
{
|
||||
dr = -dr;
|
||||
}
|
||||
uint8_t r = 255u - ((uint32_t)dr * 256u / fb_height);
|
||||
uint8_t g = col * 256u / fb_width;
|
||||
uint8_t b = row * 256u / fb_height;
|
||||
fb[fb_pitch * row / 4u + col] = (r << 16u) | (g << 8u) | b;
|
||||
}
|
||||
}
|
||||
fb_clear();
|
||||
}
|
||||
|
||||
bool fb_ready(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user