From f7fa21b2a2bfb032a12b8e74b6c5e6779438258b Mon Sep 17 00:00:00 2001 From: Aren Elchinyan Date: Sun, 29 Oct 2023 18:42:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA?= =?UTF-8?q?=D0=B0=202=D1=85=20=D0=B8=20=D0=B1=D0=BE=D0=BB=D0=B5=D0=B5=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=BD=D0=B8=D1=82=D0=BE=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/fb.h | 4 ++-- kernel/fb.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/include/fb.h b/include/fb.h index f607fff..38f5778 100644 --- a/include/fb.h +++ b/include/fb.h @@ -19,8 +19,8 @@ #define GET_TICK_lOW arch_get_tick_l( ) #define LOG(...) \ - fb_printf("[%u.%u]%s() (%s:%d) ", GET_TICK_BIG, GET_TICK_lOW, __func__, \ - __FILE__, __LINE__); \ + fb_printf("[%u]%s() (%s:%d) ", GET_TICK_BIG, __func__, __FILE__, \ + __LINE__); \ fb_printf(__VA_ARGS__) void fb_init( ); diff --git a/kernel/fb.c b/kernel/fb.c index aff5898..030e8f9 100644 --- a/kernel/fb.c +++ b/kernel/fb.c @@ -61,6 +61,20 @@ void fb_init( ) { for (uint64_t i = 0; i < width * height; i++) { fb_addr[i] = background; } LOG("0x%x %ux%u\n", fb_addr, width, height); + if (framebuffer_response->framebuffer_count == 1) { return; } + LOG("Инициализация дополнительных: %u мониторов\n", + framebuffer_response->framebuffer_count); + + for (uint64_t i = 1; i < framebuffer_response->framebuffer_count; i++) { + struct limine_framebuffer *framebuffer = + framebuffer_response->framebuffers[i]; + uint32_t *framebuffer_addr = (uint32_t *)framebuffer->address; + LOG("[%u]->0x%x %ux%u\n", i, framebuffer->address, framebuffer->width, + framebuffer->height); + for (uint64_t ij = 0; ij < width * height; ij++) { + framebuffer_addr[ij] = background; + } + } } // Отрисовка буффера по координатам (полезно для картинок)