From 405b9468d5d3e962b09bc679292284f8d55f2320 Mon Sep 17 00:00:00 2001 From: Nigel Date: Thu, 2 Dec 2021 21:01:33 +0100 Subject: [PATCH] Graphics: Moved VBE/VESA driver to drivers folder --- src/kernel/{ => drivers/vesa}/vesa.cpp | 12 ++++++++++-- src/kernel/{ => drivers/vesa}/vesa.h | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) rename src/kernel/{ => drivers/vesa}/vesa.cpp (94%) rename src/kernel/{ => drivers/vesa}/vesa.h (96%) diff --git a/src/kernel/vesa.cpp b/src/kernel/drivers/vesa/vesa.cpp similarity index 94% rename from src/kernel/vesa.cpp rename to src/kernel/drivers/vesa/vesa.cpp index 9b87df4..4bb05f8 100644 --- a/src/kernel/vesa.cpp +++ b/src/kernel/drivers/vesa/vesa.cpp @@ -15,13 +15,13 @@ void initVBEDevice(multiboot_info_t* mbt){ } void putPixel( int x, int y , uint32_t colour){ - printf_serial("putPixel x: %d, y: %d\n", x, y); + // printf_serial("putPixel x: %d, y: %d\n", x, y); ///fb + mbt->framebuffer_pitch * y + 4 * x ,NOTE: this calculation is very important *(uint32_t*) ( VbeModeInfo->framebuffer + VbeModeInfo->pitch * y + 4 * x ) = colour; } void drawLine(int x1, int y1, int x2, int y2, uint32_t colour ){ print_serial("drawline\n"); - // Bresenham's line algorithm?? + // See Bresenham's line algorithm int deltaX = x2 - x1; int deltaY = y2 - y1; int D = 2 * deltaY - deltaX; @@ -41,6 +41,14 @@ void drawLine(int x1, int y1, int x2, int y2, uint32_t colour ){ } void drawRect ( int x, int y, int width, int height, uint32_t colour ){ print_serial("drawRect\n"); + for ( int i = x; i < x + width; i ++) + { + for(int j = y; j < y + height; j++){ + + putPixel(i,j, colour); + } + } + } diff --git a/src/kernel/vesa.h b/src/kernel/drivers/vesa/vesa.h similarity index 96% rename from src/kernel/vesa.h rename to src/kernel/drivers/vesa/vesa.h index 30bd2a8..9420ea1 100644 --- a/src/kernel/vesa.h +++ b/src/kernel/drivers/vesa/vesa.h @@ -1,7 +1,7 @@ #pragma once #include -#include "bootloader/multiboot.h" -#include "serial.h" +#include "../../bootloader/multiboot.h" +#include "../../serial.h" struct vbe_mode_info_structure{ uint16_t attributes;