diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-06-13 06:32:06 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-06-13 06:32:06 +0000 |
| commit | 36ff25861676cd1f5fb94b901fa59b015c614bc5 (patch) | |
| tree | 92d68c0e4ba1eeb0d608a917bfdc587909260e13 /Kernel/Builtins | |
| parent | 4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (diff) | |
| parent | a0b3442fe9978093326dc29d0938f1116eadd147 (diff) | |
Merged in MHR-23 (pull request #15)
MHR-23
Diffstat (limited to 'Kernel/Builtins')
| -rw-r--r-- | Kernel/Builtins/ACPI/ACPI.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/AHCI/AHCI.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/ATA/ATA.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/GX/GX (renamed from Kernel/Builtins/Toolbox/Toolbox.hxx) | 51 | ||||
| -rw-r--r-- | Kernel/Builtins/GX/Lerp (renamed from Kernel/Builtins/Toolbox/Lerp.hxx) | 10 | ||||
| -rw-r--r-- | Kernel/Builtins/GX/Rsrc/Cursor.rsrc (renamed from Kernel/Builtins/Toolbox/Rsrc/Cursor.rsrc) | 9 | ||||
| -rw-r--r-- | Kernel/Builtins/HPET/Defines.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/MBCI/Interface.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/MBCI/MBCI.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/PS2/PS2MouseInterface.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/ReadMe.txt | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/SCSI/SCSI.hxx | 2 | ||||
| -rw-r--r-- | Kernel/Builtins/XHCI/Defines.hxx | 2 |
14 files changed, 51 insertions, 41 deletions
diff --git a/Kernel/Builtins/ACPI/ACPI.hxx b/Kernel/Builtins/ACPI/ACPI.hxx index 430a39f4..019bcb11 100644 --- a/Kernel/Builtins/ACPI/ACPI.hxx +++ b/Kernel/Builtins/ACPI/ACPI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ diff --git a/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx b/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx index d894101e..7da42f33 100644 --- a/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx +++ b/Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ diff --git a/Kernel/Builtins/AHCI/AHCI.hxx b/Kernel/Builtins/AHCI/AHCI.hxx index fe31fb7a..a62d02cd 100644 --- a/Kernel/Builtins/AHCI/AHCI.hxx +++ b/Kernel/Builtins/AHCI/AHCI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation File: Defines.hxx Purpose: AHCI header. diff --git a/Kernel/Builtins/ATA/ATA.hxx b/Kernel/Builtins/ATA/ATA.hxx index 274a4321..98732c72 100644 --- a/Kernel/Builtins/ATA/ATA.hxx +++ b/Kernel/Builtins/ATA/ATA.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation File: Defines.hxx Purpose: ATA header. diff --git a/Kernel/Builtins/Toolbox/Toolbox.hxx b/Kernel/Builtins/GX/GX index e65da9d2..62fdb006 100644 --- a/Kernel/Builtins/Toolbox/Toolbox.hxx +++ b/Kernel/Builtins/GX/GX @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ @@ -8,22 +8,15 @@ #include <NewKit/Defines.hpp> -EXTERN_C NewOS::Void _hal_init_mouse(); -EXTERN_C NewOS::Boolean _hal_draw_mouse(); -EXTERN_C NewOS::Void _hal_handle_mouse(); -EXTERN_C NewOS::Boolean _hal_left_button_pressed(); -EXTERN_C NewOS::Boolean _hal_middle_button_pressed(); -EXTERN_C NewOS::Boolean _hal_right_button_pressed(); +#define GXInit() NewOS::SizeT __GXCursor = 0 -#define ToolboxInitRsrc() NewOS::SizeT __ToolboxCursor = 0 +#define gxClearClr RGB(00, 00, 00) -#define kClearClr RGB(00, 00, 00) - -#define ToolboxClearRsrc() __ToolboxCursor = 0 +#define GXFini() __GXCursor = 0 /// @brief Performs OR drawing on the framebuffer. -#define ToolboxDrawOrRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \ - __ToolboxCursor = 0; \ +#define GXDrawAlphaImg(ImgPtr, _Height, _Width, BaseX, BaseY) \ + __GXCursor = 0; \ \ for (NewOS::SizeT i = BaseX; i < (_Height + BaseX); ++i) \ { \ @@ -32,15 +25,15 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed(); *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ i + \ - 4 * u))) |= ImgPtr[__ToolboxCursor]; \ + 4 * u))) |= ImgPtr[__GXCursor]; \ \ - ++__ToolboxCursor; \ + ++__GXCursor; \ } \ } /// @brief Draws a resource. -#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \ - __ToolboxCursor = 0; \ +#define GXDrawImg(ImgPtr, _Height, _Width, BaseX, BaseY) \ + __GXCursor = 0; \ \ for (NewOS::SizeT i = BaseX; i < (_Height + BaseX); ++i) \ { \ @@ -49,14 +42,14 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed(); *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ i + \ - 4 * u))) = ImgPtr[__ToolboxCursor]; \ + 4 * u))) = ImgPtr[__GXCursor]; \ \ - ++__ToolboxCursor; \ + ++__GXCursor; \ } \ } /// @brief Cleans a resource. -#define ToolboxClearZone(_Height, _Width, BaseX, BaseY) \ +#define GXClear(_Height, _Width, BaseX, BaseY) \ \ for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) \ { \ @@ -65,12 +58,12 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed(); *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ i + \ - 4 * u))) = kClearClr; \ + 4 * u))) = gxClearClr; \ } \ } /// @brief Draws inside a zone. -#define ToolboxDrawZone(_Clr, _Height, _Width, BaseX, BaseY) \ +#define GXDraw(_Clr, _Height, _Width, BaseX, BaseY) \ \ for (NewOS::SizeT i = BaseX; i < (_Width + BaseX); ++i) \ { \ @@ -82,3 +75,17 @@ EXTERN_C NewOS::Boolean _hal_right_button_pressed(); 4 * u))) = _Clr; \ } \ } + +/// This is enabled if Cairo is compiled with GX. +#ifdef __CG_USE_GX__ +/// @brief This function creates a new framebuffer for GX. +/// @return +inline cairo_surface_t* GXCreateFramebufferCairo() +{ + cairo_format_t format = CAIRO_FORMAT_ARGB32; + + NewOS::Int32 stride = cairo_format_stride_for_width(format, kHandoverHeader->f_GOP.f_Width); + + return cairo_image_surface_create_for_data((unsigned char *)kHandoverHeader->f_GOP.f_The, format, kHandoverHeader->f_GOP.f_Width, kHandoverHeader->f_GOP.f_Height, stride); +} +#endif diff --git a/Kernel/Builtins/Toolbox/Lerp.hxx b/Kernel/Builtins/GX/Lerp index f987457f..eff198ee 100644 --- a/Kernel/Builtins/Toolbox/Lerp.hxx +++ b/Kernel/Builtins/GX/Lerp @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ @@ -9,12 +9,14 @@ /// @file Lerp.hxx /// @brief Linear interpolation implementation. +typedef float GXReal; + /// @brief Linear interpolation equation solver. /// @param from where? /// @param to to? /// @param at which state we're at **to**. -inline int Lerp(int from, int to, float percent) noexcept +inline GXReal GXLerp(GXReal to, GXReal from, GXReal stat) { - int difference = to - from; - return from + (difference * percent); + register GXReal difference = to - from; + return from + (difference * stat); } diff --git a/Kernel/Builtins/Toolbox/Rsrc/Cursor.rsrc b/Kernel/Builtins/GX/Rsrc/Cursor.rsrc index 7943b805..2283cb32 100644 --- a/Kernel/Builtins/Toolbox/Rsrc/Cursor.rsrc +++ b/Kernel/Builtins/GX/Rsrc/Cursor.rsrc @@ -1,8 +1,9 @@ -#define CURSOR_HEIGHT 57 -#define CURSOR_WIDTH 53 +#define cCurHeight (57) +#define cCurWidth (53) -// array size is 9063 -static const unsigned int Cursor[] = { +#define cCurLength (3021) + +static const unsigned int Cursor[cCurLength] = { 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, diff --git a/Kernel/Builtins/HPET/Defines.hxx b/Kernel/Builtins/HPET/Defines.hxx index e070624b..697eee65 100644 --- a/Kernel/Builtins/HPET/Defines.hxx +++ b/Kernel/Builtins/HPET/Defines.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation File: HPET.hxx Purpose: HPET builtin. diff --git a/Kernel/Builtins/MBCI/Interface.hxx b/Kernel/Builtins/MBCI/Interface.hxx index 071ba708..3c504376 100644 --- a/Kernel/Builtins/MBCI/Interface.hxx +++ b/Kernel/Builtins/MBCI/Interface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ diff --git a/Kernel/Builtins/MBCI/MBCI.hxx b/Kernel/Builtins/MBCI/MBCI.hxx index dbffa7d0..ab5dabf1 100644 --- a/Kernel/Builtins/MBCI/MBCI.hxx +++ b/Kernel/Builtins/MBCI/MBCI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ diff --git a/Kernel/Builtins/PS2/PS2MouseInterface.hxx b/Kernel/Builtins/PS2/PS2MouseInterface.hxx index 9e1054bb..124d4380 100644 --- a/Kernel/Builtins/PS2/PS2MouseInterface.hxx +++ b/Kernel/Builtins/PS2/PS2MouseInterface.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation File: PS2MouseInterface.hxx Purpose: PS/2 mouse. diff --git a/Kernel/Builtins/ReadMe.txt b/Kernel/Builtins/ReadMe.txt index b090b2e5..b0a5a327 100644 --- a/Kernel/Builtins/ReadMe.txt +++ b/Kernel/Builtins/ReadMe.txt @@ -14,6 +14,6 @@ Maintainers/Authors ACPIFactoryInterface: Amlal EL Mahrouss. AHCI: Amlal EL Mahrouss. -Toolbox: Amlal EL Mahrouss. +GX: Amlal EL Mahrouss. PS2: Amlal EL Mahrouss ATA: Amlal EL Mahrouss
\ No newline at end of file diff --git a/Kernel/Builtins/SCSI/SCSI.hxx b/Kernel/Builtins/SCSI/SCSI.hxx index b6fb9c71..a0feb649 100644 --- a/Kernel/Builtins/SCSI/SCSI.hxx +++ b/Kernel/Builtins/SCSI/SCSI.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation ------------------------------------------- */ diff --git a/Kernel/Builtins/XHCI/Defines.hxx b/Kernel/Builtins/XHCI/Defines.hxx index 56f228dd..91147a58 100644 --- a/Kernel/Builtins/XHCI/Defines.hxx +++ b/Kernel/Builtins/XHCI/Defines.hxx @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright SoftwareLabs + Copyright Zeta Electronics Corporation File: Defines.hxx Purpose: XHCI (and backwards) header. |
