diff options
Diffstat (limited to 'Private')
| -rw-r--r-- | Private/Builtins/Toolbox/Toolbox.hxx | 77 | ||||
| -rw-r--r-- | Private/Builtins/Toolbox/Utils.hxx | 70 | ||||
| -rw-r--r-- | Private/KernelRsrc.rc | 25 | ||||
| -rw-r--r-- | Private/NewKit/Application.hxx | 2 | ||||
| -rw-r--r-- | Private/Root/Boot/kernel-logo.ico | bin | 0 -> 150570 bytes | |||
| -rw-r--r-- | Private/Root/Boot/kernel-logo.svg | 10 | ||||
| -rw-r--r-- | Private/makefile | 1 |
7 files changed, 106 insertions, 79 deletions
diff --git a/Private/Builtins/Toolbox/Toolbox.hxx b/Private/Builtins/Toolbox/Toolbox.hxx index f831acb5..2ac23267 100644 --- a/Private/Builtins/Toolbox/Toolbox.hxx +++ b/Private/Builtins/Toolbox/Toolbox.hxx @@ -8,11 +8,72 @@ #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(); - -#include <Builtins/Toolbox/Utils.hxx> +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 ToolboxInitRsrc() NewOS::SizeT uA = 0 + +#define kClearClr RGB(00, 00, 00) + +#define ToolboxClearRsrc() uA = 0 + +/// @brief Draws a resource. +#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \ + uA = 0; \ + \ + for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \ + for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \ + if (ImgPtr[uA] == 0) { \ + *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ + 4 * \ + kHandoverHeader->f_GOP \ + .f_PixelPerLine * \ + i + \ + 4 * u))) |= ImgPtr[uA]; \ + } else { \ + *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ + 4 * \ + kHandoverHeader->f_GOP \ + .f_PixelPerLine * \ + i + \ + 4 * u))) = ImgPtr[uA]; \ + } \ + \ + ++uA; \ + } \ + } + + +/// @brief Cleans a resource. +#define ToolboxClearZone(_Height, _Width, BaseX, BaseY) \ + \ + for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \ + for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \ + *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ + 4 * \ + kHandoverHeader->f_GOP \ + .f_PixelPerLine * \ + i + \ + 4 * u))) = kClearClr; \ + } \ + } + + +/// @brief Draws inside a zone. +#define ToolboxDrawZone(_Clr, _Height, _Width, BaseX, BaseY) \ + \ + for (NewOS::SizeT i = BaseX; i < _Width + BaseX; ++i) { \ + for (NewOS::SizeT u = BaseY; u < _Height + BaseY; ++u) { \ + *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ + 4 * \ + kHandoverHeader->f_GOP \ + .f_PixelPerLine * \ + i + \ + 4 * u))) = _Clr; \ + } \ + } + diff --git a/Private/Builtins/Toolbox/Utils.hxx b/Private/Builtins/Toolbox/Utils.hxx deleted file mode 100644 index 29ca585a..00000000 --- a/Private/Builtins/Toolbox/Utils.hxx +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __RSRC_UTIL__ -#define __RSRC_UTIL__ - -// Last Rev -// Sat Feb 24 CET 2024 - -#define ToolboxInitRsrc() NewOS::SizeT uA = 0 - -#define kClearClr RGB(00, 00, 00) - -#define ToolboxClearRsrc() uA = 0 - -/// @brief Draws a resource. -#define ToolboxDrawRsrc(ImgPtr, _Height, _Width, BaseX, BaseY) \ - uA = 0; \ - \ - for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \ - for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \ - if (ImgPtr[uA] == 0) { \ - *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * \ - kHandoverHeader->f_GOP \ - .f_PixelPerLine * \ - i + \ - 4 * u))) |= ImgPtr[uA]; \ - } else { \ - *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * \ - kHandoverHeader->f_GOP \ - .f_PixelPerLine * \ - i + \ - 4 * u))) = ImgPtr[uA]; \ - } \ - \ - ++uA; \ - } \ - } - - -/// @brief Cleans a resource. -#define ToolboxClearZone(_Height, _Width, BaseX, BaseY) \ - \ - for (NewOS::SizeT i = BaseX; i < _Height + BaseX; ++i) { \ - for (NewOS::SizeT u = BaseY; u < _Width + BaseY; ++u) { \ - *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * \ - kHandoverHeader->f_GOP \ - .f_PixelPerLine * \ - i + \ - 4 * u))) = kClearClr; \ - } \ - } - - -/// @brief Draws inside a zone. -#define ToolboxDrawZone(_Clr, _Height, _Width, BaseX, BaseY) \ - \ - for (NewOS::SizeT i = BaseX; i < _Width + BaseX; ++i) { \ - for (NewOS::SizeT u = BaseY; u < _Height + BaseY; ++u) { \ - *(((volatile NewOS::UInt32*)(kHandoverHeader->f_GOP.f_The + \ - 4 * \ - kHandoverHeader->f_GOP \ - .f_PixelPerLine * \ - i + \ - 4 * u))) = _Clr; \ - } \ - } - - -#endif diff --git a/Private/KernelRsrc.rc b/Private/KernelRsrc.rc new file mode 100644 index 00000000..3f5fffd3 --- /dev/null +++ b/Private/KernelRsrc.rc @@ -0,0 +1,25 @@ +1 ICON "Root/Boot/kernel-logo.ico" + +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "080904E4" + BEGIN + VALUE "CompanyName", "Mahrouss Logic" + VALUE "FileDescription", "NewOS Microkernel for AMD64" + VALUE "FileVersion", "1.0" + VALUE "InternalName", "NewKernel" + VALUE "LegalCopyright", "Mahrouss Logic" + VALUE "OriginalFilename", "NewKernel.exe" + VALUE "ProductName", "NewKernel" + VALUE "ProductVersion", "1.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x809, 1252 + END +END
\ No newline at end of file diff --git a/Private/NewKit/Application.hxx b/Private/NewKit/Application.hxx index 8075e8ac..f19dbd97 100644 --- a/Private/NewKit/Application.hxx +++ b/Private/NewKit/Application.hxx @@ -27,4 +27,4 @@ typedef struct Application final { NewOS::Void(*Query)(struct Application* Self, NewOS::VoidPtr* Dst, NewOS::SizeT SzDst, NewOS::XRN::GUIDSequence GuidOf); } Application, *ApplicationRef; -#define object_cast reinterpret_cast<ApplicationRef> +#define app_cast reinterpret_cast<ApplicationRef> diff --git a/Private/Root/Boot/kernel-logo.ico b/Private/Root/Boot/kernel-logo.ico Binary files differnew file mode 100644 index 00000000..945049b9 --- /dev/null +++ b/Private/Root/Boot/kernel-logo.ico diff --git a/Private/Root/Boot/kernel-logo.svg b/Private/Root/Boot/kernel-logo.svg new file mode 100644 index 00000000..751ec02c --- /dev/null +++ b/Private/Root/Boot/kernel-logo.svg @@ -0,0 +1,10 @@ +<svg width="61" height="61" viewBox="0 0 61 61" fill="none" xmlns="http://www.w3.org/2000/svg"> +<rect x="0.5" y="0.5" width="60" height="60" rx="9.5" fill="#302929" fill-opacity="0.7" stroke="#323232"/> +<circle cx="31" cy="30" r="14.5" fill="url(#paint0_radial_0_1)" stroke="#323232"/> +<defs> +<radialGradient id="paint0_radial_0_1" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(31 30) rotate(90) scale(15)"> +<stop stop-color="#820F0F"/> +<stop offset="1" stop-color="#FF0000" stop-opacity="0.52"/> +</radialGradient> +</defs> +</svg> diff --git a/Private/makefile b/Private/makefile index af311d44..0a47157a 100644 --- a/Private/makefile +++ b/Private/makefile @@ -43,6 +43,7 @@ MOVEALL=./MoveAll.sh .PHONY: h-core-amd64-epm h-core-amd64-epm: clean + windres KernelRsrc.rc -O coff -o KernelRsrc.obj $(CC) $(CCFLAGS) $(DISKDRIVER) $(DEBUG) $(wildcard Source/*.cxx HALKit/AMD64/Storage/*.cxx) $(wildcard HALKit/AMD64/PCI/*.cxx) $(wildcard Source/Network/*.cxx) $(wildcard Source/Storage/*.cxx) $(wildcard HALKit/AMD64/*.cxx) $(wildcard HALKit/AMD64/*.cpp) $(wildcard HALKit/AMD64/*.s) $(ASM) $(ASMFLAGS) HALKit/AMD64/HalInterruptAPI.asm $(ASM) $(ASMFLAGS) HALKit/AMD64/HalSMPCoreManager.asm |
