summaryrefslogtreecommitdiffhomepage
path: root/Kernel/Builtins
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-06-13 06:32:06 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-06-13 06:32:06 +0000
commit36ff25861676cd1f5fb94b901fa59b015c614bc5 (patch)
tree92d68c0e4ba1eeb0d608a917bfdc587909260e13 /Kernel/Builtins
parent4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (diff)
parenta0b3442fe9978093326dc29d0938f1116eadd147 (diff)
Merged in MHR-23 (pull request #15)
MHR-23
Diffstat (limited to 'Kernel/Builtins')
-rw-r--r--Kernel/Builtins/ACPI/ACPI.hxx2
-rw-r--r--Kernel/Builtins/ACPI/ACPIFactoryInterface.hxx2
-rw-r--r--Kernel/Builtins/AHCI/AHCI.hxx2
-rw-r--r--Kernel/Builtins/ATA/ATA.hxx2
-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.hxx2
-rw-r--r--Kernel/Builtins/MBCI/Interface.hxx2
-rw-r--r--Kernel/Builtins/MBCI/MBCI.hxx2
-rw-r--r--Kernel/Builtins/PS2/PS2MouseInterface.hxx2
-rw-r--r--Kernel/Builtins/ReadMe.txt2
-rw-r--r--Kernel/Builtins/SCSI/SCSI.hxx2
-rw-r--r--Kernel/Builtins/XHCI/Defines.hxx2
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.