From ed98984164254aaaf53c5529c18d4e7d31591687 Mon Sep 17 00:00:00 2001 From: Eric-Paul I Date: Thu, 9 Mar 2023 12:58:59 +0100 Subject: [PATCH] Starting new graphics subsystem --- kernel/inc/drivers/graphics/color.h | 55 ---- kernel/inc/drivers/graphics/commands.h | 312 ---------------------- kernel/inc/drivers/graphics/font.h | 38 --- kernel/inc/drivers/graphics/framebuffer.h | 41 --- kernel/inc/drivers/graphics/renderer.h | 62 ----- kernel/src/drivers/graphics/color.c | 45 ---- kernel/src/drivers/graphics/font.c | 184 ------------- kernel/src/drivers/graphics/renderer.c | 29 -- 8 files changed, 766 deletions(-) delete mode 100644 kernel/inc/drivers/graphics/color.h delete mode 100644 kernel/inc/drivers/graphics/commands.h delete mode 100644 kernel/inc/drivers/graphics/font.h delete mode 100644 kernel/inc/drivers/graphics/framebuffer.h delete mode 100644 kernel/inc/drivers/graphics/renderer.h delete mode 100644 kernel/src/drivers/graphics/color.c delete mode 100644 kernel/src/drivers/graphics/font.c delete mode 100644 kernel/src/drivers/graphics/renderer.c diff --git a/kernel/inc/drivers/graphics/color.h b/kernel/inc/drivers/graphics/color.h deleted file mode 100644 index 66f8add..0000000 --- a/kernel/inc/drivers/graphics/color.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef NOX_COLOR_H -#define NOX_COLOR_H - -#include "utils/stdtypes.h" - -// Colors from https://gogh-co.github.io/Gogh/ -typedef enum { - COLOR_PAL_GREY_DARK, - COLOR_PAL_PINK, - COLOR_PAL_GREEN_SIGNAL, - COLOR_PAL_ORANGE, - COLOR_PAL_BLUE, - COLOR_PAL_PURPLE, - COLOR_PAL_GREEN, - COLOR_PAL_GREY_LIGHT, - COLOR_PAL_RED, - - COLOR_PAL_ENUM_END -} color_palette_E; - -typedef struct { - uint8_t red; - uint8_t green; - uint8_t blue; - uint8_t alpha; -} color_rgba_T; - -extern color_rgba_T g_color_palette[COLOR_PAL_ENUM_END]; - -color_rgba_T color_rgba_blend_alpha(color_rgba_T background, color_rgba_T foreground); - -#endif //NOX_COLOR_H diff --git a/kernel/inc/drivers/graphics/commands.h b/kernel/inc/drivers/graphics/commands.h deleted file mode 100644 index 0fa84c9..0000000 --- a/kernel/inc/drivers/graphics/commands.h +++ /dev/null @@ -1,312 +0,0 @@ -// -// Copyright (c) 2023 by The NOXOS Authors -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the “Software”), to deal in -// the Software without restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the -// Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// - -#include -#include - -typedef struct graphics_data_buffer graphics_data_buffer_T; -typedef struct graphics_command graphics_command_T; -typedef struct graphics_command_queue graphics_command_queue_T; - -// graphics_draw_pixel_T: A pixel struct that is meant to be for drawing on the screen -// through one of the functions. This could have more functionality, but not yet. -typedef struct { - - // The position is relative to the start point *of the pixel buffer*, - math_vector_2i_T position; - - // color: The actual layout of this depends on the state at the time of drawing. - uint64_t color; - -} graphics_draw_pixel_T; - -typedef struct { - - math_vector_2i_T start; - math_vector_2i_T end; - - uint64_t color; - -} graphics_draw_line_T; - -typedef struct { - - math_vector_2i_T start; - math_vector_2i_T size; - - uint64_t color; - -} graphics_draw_rectangle_T; - - - -typedef enum { - - GRAPHICS_COLOR_FORMAT_RGB = 0x0101, - GRAPHICS_COLOR_FORMAT_RGBA = 0x0102 - -} graphics_color_order_E; - -typedef enum { - - // Buffer Functions - - GRAPHICS_COMMAND_NEW_DATA_BUFFER = 0x0111, - GRAPHICS_COMMAND_FILL_BUFFER_DATA = 0x0112, - GRAPHICS_COMMAND_CLEAR_BUFFER_DATA = 0x0112, - GRAPHICS_COMMAND_MAP_BUFFER_DATA_MAPPING = 0x0113, - GRAPHICS_COMMAND_SYNC_BUFFER_DATA = 0x0114, - - GRAPHICS_COMMAND_NEW_PIXEL_BUFFER = 0x0121, - GRAPHICS_COMMAND_CLEAR_PIXEL_BUFFER = 0x0122, - GRAPHICS_COMMAND_MAP_PIXEL_BUFFER = 0x0123, - GRAPHICS_COMMAND_SYNC_PIXEL_BUFFER_MAPPING = 0x0124, - GRAPHICS_COMMAND_SHOW_PIXEL_BUFFER = 0x0125, - - // Basic Draws/Fills & Retrieves - - GRAPHICS_COMMAND_DRAW_PIXELS = 0x0211, - GRAPHICS_COMMAND_DRAW_LINES = 0x0212, - GRAPHICS_COMMAND_DRAW_PIXEL_BUFFER = 0x0213, // TODO - - GRAPHICS_COMMAND_OUTLINE_RECTANGLES = 0x0221, - GRAPHICS_COMMAND_FILL_RECTANGLES = 0x0222, - - GRAPHICS_COMMAND_RETRIEVE_PIXEL = 0x0231, - GRAPHICS_COMMAND_RETRIEVE_AREA = 0x0232, - - // Text Features - - GRAPHICS_COMMAND_DRAW_RUNE = 0x0311, - GRAPHICS_COMMAND_DRAW_TEXT = 0x0312, - - // Implementation-relative - - GRAPHICS_COMMAND_SWITCH_IMPLEMENTATION = 0x0411, - GRAPHICS_COMMAND_GET_IMPLEMENTATION_INFO = 0x0412, - GRAPHICS_COMMAND_SET_IMPLEMENTATION_INFO = 0x0413, - GRAPHICS_COMMAND_GET_SPECIFIC_FUNCTION = 0x0414 - -} graphics_command_E; - -union graphics_command_data { - - struct graphics_command_new_data_buffer { - - uint32_t related_state_id; - uint32_t wanted_buffer_id; - } new_data_buffer; - - struct graphics_command_fill_data_buffer { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t len_new_data; - void *new_data; - } fill_data_buffer; - - struct graphics_command_clear_data_buffer { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t first_output; - uint32_t num_bytes; - - uint32_t len_value; - void *value; - } clear_data_buffer; - - struct graphics_command_map_data_buffer { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t wanted_mapping_id; - - uint32_t len_buffer_area; - uint32_t first_buffer_byte; - void *virtual_map_address; - } map_data_buffer; - - struct graphics_command_sync_data_buffer_mapping { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t mapping_id; - - uint32_t len_sync_area; - uint32_t first_sync_byte; - } sync_data_buffer_mapping; - - - - struct graphics_command_new_pixel_buffer { - - uint32_t related_state_id; - uint32_t wanted_buffer_id; - - uint32_t start_x; - uint32_t start_y; - uint32_t width; - uint32_t height; - - graphics_color_order_E color_format; - - // The number of bits for depth can be 16 at most! - uint8_t red_bits; - uint8_t green_bits; - uint8_t blue_bits; - uint8_t alpha_bits; - } new_pixel_buffer; - - struct graphics_command_clear_pixel_buffer { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t first_output; - uint32_t num_bytes; - - uint32_t len_value; - void *value; - } clear_pixel_buffer; - - struct graphics_command_map_pixel_buffer { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t wanted_mapping_id; - - uint32_t len_buffer_area; - uint32_t first_buffer_byte; - void *virtual_map_address; - } map_pixel_buffer; - - struct graphics_command_sync_pixel_buffer_mapping { - - uint32_t related_state_id; - uint32_t buffer_id; - - uint32_t mapping_id; - - uint32_t len_sync_area; - uint32_t first_sync_byte; - } sync_pixel_buffer; - - - - struct graphics_command_draw_pixels { - - uint32_t related_state_id; - uint32_t used_pixel_buffer; - - uint32_t num_pixels; - graphics_draw_pixel_T *pixels; - } draw_pixels; - - struct graphics_command_draw_lines { - - uint32_t related_state_id; - uint32_t used_pixel_buffer; - - uint32_t num_pixels; - graphics_draw_pixel_T *pixels; - } draw_lines; - - struct graphics_command_draw_pixel_buffer { - - // TODO - - } draw_pixel_buffer; - - - - struct graphics_command_outline_rectangles { - - uint32_t related_state_id; - uint32_t used_pixel_buffer; - - uint32_t num_pixels; - graphics_draw_rectangle_T *pixels; - } outline_rectangles; - - struct graphics_command_fill_rectangles { - - uint32_t related_state_id; - uint32_t used_pixel_buffer; - - uint32_t num_pixels; - graphics_draw_rectangle_T *pixels; - } fill_rectangles; - - - - struct graphics_command_draw_rune { - - uint32_t related_state_id; - uint32_t used_pixel_buffer; - - uint32_t rune; - uint16_t height; - // If the width is 0, it is calculated from the aspect - // ratio defined in the font and the given height. - uint16_t width; - - uint64_t color; - } draw_rune; - - struct graphics_command_draw_text { - - uint32_t len_text; - // text: This should be encoded in UTF-8. - char *text; - - uint32_t rune; - uint16_t height; - // TODO: Width as bias from the defined one and maximum rendered length. - - uint64_t color; - } draw_text; -}; - - -struct graphics_command { - - graphics_command_T *next; - graphics_command_T *previous; - - graphics_command_E type; -}; - -struct graphics_command_queue { - uint64_t command_cap; - uint64_t num_commands; - graphics_command_T *command_pool; - - bool is_busy; -}; - diff --git a/kernel/inc/drivers/graphics/font.h b/kernel/inc/drivers/graphics/font.h deleted file mode 100644 index 7341525..0000000 --- a/kernel/inc/drivers/graphics/font.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef NOX_FONT_H -#define NOX_FONT_H - -#include "utils/stdtypes.h" - -typedef struct { - uint8_t width; - uint8_t height; - uint8_t glyph_size; - uint8_t* buffer; -} font_T; - -extern font_T g_font; - -#endif //NOX_FONT_H diff --git a/kernel/inc/drivers/graphics/framebuffer.h b/kernel/inc/drivers/graphics/framebuffer.h deleted file mode 100644 index d1991a6..0000000 --- a/kernel/inc/drivers/graphics/framebuffer.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef NOX_FRAMEBUFFER_H -#define NOX_FRAMEBUFFER_H - -#include "utils/stdtypes.h" - -typedef struct { - void* address; - uint64_t width; - uint64_t height; - uint64_t pitch; - uint16_t bits_per_pixel; - uint8_t bytes_per_pixel; - uint8_t shift_red; - uint8_t shift_green; - uint8_t shift_blue; -} framebuffer_T; - -#endif //NOX_FRAMEBUFFER_H diff --git a/kernel/inc/drivers/graphics/renderer.h b/kernel/inc/drivers/graphics/renderer.h deleted file mode 100644 index d729dc4..0000000 --- a/kernel/inc/drivers/graphics/renderer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef NOX_RENDERER_H -#define NOX_RENDERER_H - -#include "utils/stdtypes.h" -#include "utils/string.h" -#include "utils/math.h" -#include "drivers/graphics/color.h" -#include "drivers/graphics/font.h" -#include "drivers/graphics/framebuffer.h" -#include "boot/boot_info.h" - -// TODO: Descriptions - -typedef struct graphics_pixel_buffer graphics_pixel_buffer_T; -typedef struct graphics_implementation graphics_implementation_T; -typedef struct graphics_renderer graphics_renderer_T; - -typedef void (*graphics_fn_handle_command) - (graphics_driver *driver, graphics_command command); - -struct graphics_pixel_buffer { - - - -}; - -struct graphics_implementation { - - - -} - -struct graphics_renderer { - - - -} - -#endif //NOX_RENDERER_H diff --git a/kernel/src/drivers/graphics/color.c b/kernel/src/drivers/graphics/color.c deleted file mode 100644 index 2c500e8..0000000 --- a/kernel/src/drivers/graphics/color.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "drivers/graphics/color.h" - -color_argb_T g_color_palette[COLOR_PAL_ENUM_END] = { - {0xFF, 0x36, 0x36, 0x36}, // GREY_DARK - {0xFF, 0xFF, 0x08, 0x83}, // PINK - {0xFF, 0x83, 0xff, 0x08}, // GREEN_SIGNAL - {0xFF, 0xFF, 0x83, 0x08}, // ORANGE - {0xFF, 0x08, 0x83, 0xFF}, // BLUE - {0xFF, 0x83, 0x08, 0xFF}, // PURPLE - {0xFF, 0x08, 0xFF, 0x83}, // GREEN - {0xFF, 0xB6, 0xB6, 0xB6}, // GREY_LIGHT - {0xFF, 0xFF, 0x00, 0x00}, // RED -}; - -color_argb_T color_argb_blend_alpha(color_argb_T background, color_argb_T foreground) { - color_argb_T color; - color.red = ((foreground.red * foreground.alpha) + (background.red * (0xFF - foreground.alpha))) / 0xFF; - color.green = ((foreground.green * foreground.alpha) + (background.green * (0xFF - foreground.alpha))) / 0xFF; - color.blue = ((foreground.blue * foreground.alpha) + (background.blue * (0xFF - foreground.alpha))) / 0xFF; - - return color; -} diff --git a/kernel/src/drivers/graphics/font.c b/kernel/src/drivers/graphics/font.c deleted file mode 100644 index c9e71e6..0000000 --- a/kernel/src/drivers/graphics/font.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -// Font copyright header: - -/** - * 8x8 monochrome bitmap fonts for rendering - * Author: Daniel Hepper - * - * License: Public Domain - * - * Based on: - * // Summary: font8x8.h - * // 8x8 monochrome bitmap fonts for rendering - * // - * // Author: - * // Marcel Sondaar - * // International Business Machines (public domain VGA fonts) - * // - * // License: - * // Public Domain - * - * Fetched from: http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm - **/ - -#include "drivers/graphics/font.h" - -uint8_t font8x8_basic[128][8] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul) - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0001 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0002 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0003 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0004 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0005 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0006 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0007 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0008 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0009 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000A - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000B - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000C - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000D - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000E - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+000F - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0010 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0011 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0012 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0013 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0014 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0015 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0016 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0017 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0018 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0019 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001A - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001B - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001C - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001D - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001E - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+001F - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0020 (space) - { 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00}, // U+0021 (!) - { 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0022 (") - { 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00}, // U+0023 (#) - { 0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00}, // U+0024 ($) - { 0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00}, // U+0025 (%) - { 0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00}, // U+0026 (&) - { 0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0027 (') - { 0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00}, // U+0028 (() - { 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00}, // U+0029 ()) - { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*) - { 0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00}, // U+002B (+) - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+002C (,) - { 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, // U+002D (-) - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+002E (.) - { 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00}, // U+002F (/) - { 0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00}, // U+0030 (0) - { 0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00}, // U+0031 (1) - { 0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00}, // U+0032 (2) - { 0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00}, // U+0033 (3) - { 0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00}, // U+0034 (4) - { 0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00}, // U+0035 (5) - { 0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00}, // U+0036 (6) - { 0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00}, // U+0037 (7) - { 0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00}, // U+0038 (8) - { 0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00}, // U+0039 (9) - { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00}, // U+003A (:) - { 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06}, // U+003B (;) - { 0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00}, // U+003C (<) - { 0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00}, // U+003D (=) - { 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, // U+003E (>) - { 0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00}, // U+003F (?) - { 0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00}, // U+0040 (@) - { 0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00}, // U+0041 (A) - { 0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00}, // U+0042 (B) - { 0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00}, // U+0043 (C) - { 0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00}, // U+0044 (D) - { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00}, // U+0045 (E) - { 0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00}, // U+0046 (F) - { 0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00}, // U+0047 (G) - { 0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00}, // U+0048 (H) - { 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0049 (I) - { 0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00}, // U+004A (J) - { 0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00}, // U+004B (K) - { 0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00}, // U+004C (L) - { 0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00}, // U+004D (M) - { 0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00}, // U+004E (N) - { 0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00}, // U+004F (O) - { 0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00}, // U+0050 (P) - { 0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00}, // U+0051 (Q) - { 0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00}, // U+0052 (R) - { 0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00}, // U+0053 (S) - { 0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0054 (T) - { 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00}, // U+0055 (U) - { 0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0056 (V) - { 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, // U+0057 (W) - { 0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00}, // U+0058 (X) - { 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00}, // U+0059 (Y) - { 0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00}, // U+005A (Z) - { 0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00}, // U+005B ([) - { 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, // U+005C (\) - { 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, // U+005D (]) - { 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00}, // U+005E (^) - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_) - { 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0060 (`) - { 0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00}, // U+0061 (a) - { 0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00}, // U+0062 (b) - { 0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00}, // U+0063 (c) - { 0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00}, // U+0064 (d) - { 0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00}, // U+0065 (e) - { 0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00}, // U+0066 (f) - { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0067 (g) - { 0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00}, // U+0068 (h) - { 0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+0069 (i) - { 0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E}, // U+006A (j) - { 0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00}, // U+006B (k) - { 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00}, // U+006C (l) - { 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, // U+006D (m) - { 0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00}, // U+006E (n) - { 0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00}, // U+006F (o) - { 0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F}, // U+0070 (p) - { 0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78}, // U+0071 (q) - { 0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00}, // U+0072 (r) - { 0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00}, // U+0073 (s) - { 0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00}, // U+0074 (t) - { 0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00}, // U+0075 (u) - { 0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00}, // U+0076 (v) - { 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00}, // U+0077 (w) - { 0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00}, // U+0078 (x) - { 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F}, // U+0079 (y) - { 0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00}, // U+007A (z) - { 0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00}, // U+007B ({) - { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00}, // U+007C (|) - { 0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00}, // U+007D (}) - { 0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+007E (~) - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // U+007F -}; - -font_T g_font = { - 8, - 8, - 8, - (uint8_t*)font8x8_basic -}; \ No newline at end of file diff --git a/kernel/src/drivers/graphics/renderer.c b/kernel/src/drivers/graphics/renderer.c deleted file mode 100644 index 62344a9..0000000 --- a/kernel/src/drivers/graphics/renderer.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2023 Antifallobst - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the “Software”), to deal in - * the Software without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the - * Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#include "drivers/graphics/renderer.h" -#include "utils/memory.h" -#include "utils/core.h" - -graphics_renderer_T g_renderer; -