diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-11-25 22:49:04 +0100 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-11-25 22:49:04 +0100 |
| commit | 3ec35b5abeb9765c419cf896338de7d95143bc9b (patch) | |
| tree | 39dcf783049a768bb0e401ebe79d8dd400e38b69 /kernel | |
| parent | 99ff317e5e314b42b7f1cb4400b9afaaeda9c5b1 (diff) | |
removing pointer arithmetic
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/include/graphics.h | 1 | ||||
| -rw-r--r-- | kernel/src/mem/paging.c | 1 | ||||
| -rw-r--r-- | kernel/src/misc/graphics.c | 10 |
3 files changed, 3 insertions, 9 deletions
diff --git a/kernel/include/graphics.h b/kernel/include/graphics.h index 4e4fc48..16805a6 100644 --- a/kernel/include/graphics.h +++ b/kernel/include/graphics.h @@ -23,7 +23,6 @@ extern volatile fb_t main_fb; #define WHITE 0x00ffffff #define BLACK 0x00000000 -uint32_t* pixel_offset(volatile fb_t fb, uint32_t x, uint32_t y); void fb_draw_pixel(volatile fb_t fb, int32_t x, int32_t y, uint32_t col); void fb_draw_line_low(volatile fb_t fb, int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t col); void fb_draw_line_high(volatile fb_t fb, int32_t x0, int32_t y0, int32_t x1, int32_t y1, uint32_t col); diff --git a/kernel/src/mem/paging.c b/kernel/src/mem/paging.c index d84c983..774c5d6 100644 --- a/kernel/src/mem/paging.c +++ b/kernel/src/mem/paging.c @@ -50,7 +50,6 @@ void init_paging(void) page_table_lvl2[i] = (uint64_t)0x0 + PAGE_SIZE * i + FLAG_PRESENT + FLAG_WRITABLE + FLAG_USER + FLAG_HUGE; } - load_pt_lvl4(page_table_lvl4); } diff --git a/kernel/src/misc/graphics.c b/kernel/src/misc/graphics.c index 9c8dc9a..7c68b36 100644 --- a/kernel/src/misc/graphics.c +++ b/kernel/src/misc/graphics.c @@ -8,18 +8,14 @@ volatile fb_t main_fb; -uint32_t* pixel_offset(volatile fb_t fb, uint32_t x, uint32_t y) -{ - return (uint32_t*)((char*)fb.addr + y * fb.pitch + x * fb.bpp / 8); -} - void fb_draw_pixel(volatile fb_t fb, int32_t x, int32_t y, uint32_t col) { if (x < 0 || y < 0) return; if (x >= (int32_t)fb.width || y >= (int32_t)fb.height) return; - uint32_t* fb_offset = pixel_offset(fb, (uint32_t)x, (uint32_t)y); - *fb_offset = col; + uint32_t fb_offset = (uint32_t)y * fb.pitch + (uint32_t)x * fb.bpp / 8; + uint32_t* fb_buff = (uint32_t*)fb.addr; + fb_buff[fb_offset / 4] = col; } /* https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm */ |
