diff options
Diffstat (limited to 'dev')
52 files changed, 228 insertions, 176 deletions
diff --git a/dev/BootLoader/BootKit/BootKit.h b/dev/BootLoader/BootKit/BootKit.h index 3a801ec8..90d6fae9 100644 --- a/dev/BootLoader/BootKit/BootKit.h +++ b/dev/BootLoader/BootKit/BootKit.h @@ -14,8 +14,8 @@ #include <BootKit/HW/ATA.h> #include <FirmwareKit/EPM.h> #include <CompilerKit/Version.h> -#include <Modules/FB/FB.h> -#include <Modules/FB/AppearanceMgr.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/AppearanceMgr.h> #include <BootKit/Rsrc/zka_disk.rsrc> #include <BootKit/Rsrc/zka_no_disk.rsrc> #include <BootKit/Rsrc/zka_has_disk.rsrc> @@ -323,9 +323,9 @@ namespace Boot if (fDiskDev.GetDiskSize() < kMinimumDiskSize) { - cg_init(); + fb_init(); - CGDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); EFI::ThrowError(L"Drive-Too-Tiny", L"Can't format a New Filesystem partition here."); return false; } @@ -382,8 +382,8 @@ namespace Boot } else { - cg_init(); - CGDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + fb_init(); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); EFI::ThrowError(L"Filesystem-Failure-Part", L"Filesystem couldn't be partitioned, this drive cannot be formatted as an explicit partition map."); } diff --git a/dev/BootLoader/src/BootFileReader.cc b/dev/BootLoader/src/BootFileReader.cc index 06b66314..3c085ac4 100644 --- a/dev/BootLoader/src/BootFileReader.cc +++ b/dev/BootLoader/src/BootFileReader.cc @@ -13,7 +13,7 @@ #include <BootKit/BootKit.h> #include <FirmwareKit/Handover.h> #include <FirmwareKit/EFI/API.h> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/TextMgr.h> /// @file BootFileReader /// @brief Bootloader File reader. diff --git a/dev/BootLoader/src/BootThread.cc b/dev/BootLoader/src/BootThread.cc index 68964084..6d78d0d1 100644 --- a/dev/BootLoader/src/BootThread.cc +++ b/dev/BootLoader/src/BootThread.cc @@ -13,7 +13,7 @@ #include <KernelKit/PE.h> #include <KernelKit/MSDOS.h> #include <CFKit/Utils.h> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/TextMgr.h> /// @brief External boot services symbol. EXTERN EfiBootServices* BS; diff --git a/dev/BootLoader/src/HEL/AMD64/BootMain.cc b/dev/BootLoader/src/HEL/AMD64/BootMain.cc index 1d0787cc..dd7528d8 100644 --- a/dev/BootLoader/src/HEL/AMD64/BootMain.cc +++ b/dev/BootLoader/src/HEL/AMD64/BootMain.cc @@ -5,8 +5,8 @@ ------------------------------------------- */ #include <BootKit/BootKit.h> -#include <Modules/FB/FB.h> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/TextMgr.h> #include <FirmwareKit/EFI.h> #include <FirmwareKit/EFI/API.h> #include <FirmwareKit/Handover.h> @@ -16,7 +16,7 @@ #include <NewKit/Macros.h> #include <NewKit/Ref.h> #include <BootKit/Thread.h> -#include <Modules/FB/FB.h> +#include <Modules/GfxMgr/FBMgr.h> // Makes the compiler shut up. #ifndef kMachineModel @@ -24,11 +24,11 @@ #endif // !kMachineModel #ifndef kExpectedWidth -#define kExpectedWidth (1920) +#define kExpectedWidth (1280) #endif #ifndef kExpectedHeight -#define kExpectedHeight (1080) +#define kExpectedHeight (720) #endif /** Graphics related. */ @@ -141,13 +141,13 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, kHandoverHeader = handover_hdr; - cg_init(); + fb_init(); - CG::ui_draw_background(); + UI::ui_draw_background(); - CGDrawBitMapInRegion(zka_disk, ZKA_DISK_HEIGHT, ZKA_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_DISK_HEIGHT) / 2); + FBDrawBitMapInRegion(zka_disk, ZKA_DISK_HEIGHT, ZKA_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_DISK_HEIGHT) / 2); - cg_fini(); + fb_fini(); UInt32 cnt_enabled = 0; UInt32 cnt_disabled = 0; @@ -168,11 +168,11 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, #ifdef ZKA_AUTO_FORMAT if (!partition_factory.IsPartitionValid()) { - CG::ui_draw_background(); + UI::ui_draw_background(); - CGDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); - cg_fini(); + fb_fini(); Boot::BDiskFormatFactory<BootDeviceATA>::BFileDescriptor root{}; @@ -183,11 +183,11 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, partition_factory.Format("FileSystem (A:)\0", &root, 1); - CG::ui_draw_background(); + UI::ui_draw_background(); - CGDrawBitMapInRegion(zka_has_disk, ZKA_HAS_DISK_HEIGHT, ZKA_HAS_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_HAS_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_HAS_DISK_HEIGHT) / 2); + FBDrawBitMapInRegion(zka_has_disk, ZKA_HAS_DISK_HEIGHT, ZKA_HAS_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_HAS_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_HAS_DISK_HEIGHT) / 2); - cg_fini(); + fb_fini(); } #endif // ZKA_AUTO_FORMAT @@ -288,8 +288,8 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, } else { - cg_init(); - CGDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + fb_init(); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); EFI::Stop(); } @@ -307,8 +307,8 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, } else { - cg_init(); - CGDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); + fb_init(); + FBDrawBitMapInRegion(zka_no_disk, ZKA_NO_DISK_HEIGHT, ZKA_NO_DISK_WIDTH, (kHandoverHeader->f_GOP.f_Width - ZKA_NO_DISK_WIDTH) / 2, (kHandoverHeader->f_GOP.f_Height - ZKA_NO_DISK_HEIGHT) / 2); EFI::Stop(); } diff --git a/dev/Kernel/FirmwareKit/EFI/API.h b/dev/Kernel/FirmwareKit/EFI/API.h index 7bb83ebf..218ca85a 100644 --- a/dev/Kernel/FirmwareKit/EFI/API.h +++ b/dev/Kernel/FirmwareKit/EFI/API.h @@ -21,7 +21,7 @@ class BTextWriter; #define __BOOTKIT_NO_INCLUDE__ 1 #include <BootKit/BootKit.h> -#include <Modules/FB/FB.h> +#include <Modules/GfxMgr/FBMgr.h> #endif // ifdef __ZBAOSLDR__ inline EfiSystemTable* ST = nullptr; diff --git a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc index 036593e5..aa1d66d7 100644 --- a/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc +++ b/dev/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc @@ -18,7 +18,7 @@ EXTERN_C void idt_handle_gpf(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); process.Leak().ProcessSignal.SignalIP = 0UL; process.Leak().ProcessSignal.SignalID = SIGKILL; @@ -30,7 +30,7 @@ EXTERN_C void idt_handle_gpf(Kernel::UIntPtr rsp) process.Leak().Crash(); - Kernel::ke_stop(RUNTIME_CHECK_POINTER); + Kernel::ke_panic(RUNTIME_CHECK_POINTER); } /// @brief Handle page fault. @@ -43,7 +43,7 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); process.Leak().ProcessSignal.SignalIP = 0UL; process.Leak().ProcessSignal.SignalID = SIGKILL; @@ -55,7 +55,7 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp) process.Leak().Crash(); - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); } /// @brief Handle scheduler interrupt. @@ -90,7 +90,7 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); process.Leak().ProcessSignal.SignalIP = 0UL; process.Leak().ProcessSignal.SignalID = SIGKILL; @@ -102,7 +102,7 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp) process.Leak().Crash(); - Kernel::ke_stop(RUNTIME_CHECK_UNEXCPECTED); + Kernel::ke_panic(RUNTIME_CHECK_UNEXCPECTED); } /// @brief Handle any generic fault. @@ -114,7 +114,7 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); process.Leak().ProcessSignal.SignalIP = 0UL; process.Leak().ProcessSignal.SignalID = SIGKILL; @@ -126,7 +126,7 @@ EXTERN_C void idt_handle_generic(Kernel::UIntPtr rsp) process.Leak().Crash(); - Kernel::ke_stop(RUNTIME_CHECK_UNEXCPECTED); + Kernel::ke_panic(RUNTIME_CHECK_UNEXCPECTED); } EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip) @@ -134,7 +134,7 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); kcout << "Kernel: Process RIP: " << Kernel::hex_number(rip) << endl; kcout << "Kernel: SIGTRAP set.\r"; @@ -158,7 +158,7 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp) auto process = Kernel::UserProcessScheduler::The().GetCurrentProcess(); if (!process) - Kernel::ke_stop(RUNTIME_CHECK_PAGE); + Kernel::ke_panic(RUNTIME_CHECK_PAGE); process.Leak().ProcessSignal.SignalIP = 0UL; process.Leak().ProcessSignal.SignalID = SIGKILL; @@ -170,7 +170,7 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp) process.Leak().Crash(); - Kernel::ke_stop(RUNTIME_CHECK_UNEXCPECTED); + Kernel::ke_panic(RUNTIME_CHECK_UNEXCPECTED); } /// @brief Enter syscall from assembly. diff --git a/dev/Kernel/HALKit/AMD64/HalCoreScheduler.cc b/dev/Kernel/HALKit/AMD64/HalCoreScheduler.cc index 02150f6e..ac103d0d 100644 --- a/dev/Kernel/HALKit/AMD64/HalCoreScheduler.cc +++ b/dev/Kernel/HALKit/AMD64/HalCoreScheduler.cc @@ -11,8 +11,8 @@ #include <KernelKit/Semaphore.h> #include <KernelKit/UserProcessScheduler.h> #include <KernelKit/Timer.h> -#include <Modules/FB/Text.h> -#include <NewKit/Stop.h> +#include <Modules/GfxMgr/TextMgr.h> +#include <NewKit/KernelPanic.h> // Needed for SMP. #include <KernelKit/HardwareThreadScheduler.h> diff --git a/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc b/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc index 6ae5859d..ce3690b3 100644 --- a/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc +++ b/dev/Kernel/HALKit/AMD64/HalDebugOutput.cc @@ -47,7 +47,7 @@ namespace Kernel // Check if serial is faulty (i.e: not same byte as sent) if (HAL::rt_in8(PORT) != 0xAE) { - ke_stop(RUNTIME_CHECK_HANDSHAKE); + ke_panic(RUNTIME_CHECK_HANDSHAKE); } kState = kStateReady; diff --git a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc index bf297d6a..75c41433 100644 --- a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc @@ -11,8 +11,8 @@ #include <Modules/ACPI/ACPIFactoryInterface.h> #include <NetworkKit/IPC.h> #include <CFKit/Property.h> -#include <Modules/FB/AppearanceMgr.h> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/AppearanceMgr.h> +#include <Modules/GfxMgr/TextMgr.h> EXTERN_C Kernel::VoidPtr kInterruptVectorTable[]; EXTERN_C Kernel::VoidPtr mp_user_switch_proc; @@ -79,12 +79,12 @@ EXTERN_C void hal_init_platform( Kernel::HAL::GDTLoader gdt_loader; gdt_loader.Load(gdt_reg); - Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP); + Kernel::ke_panic(RUNTIME_CHECK_BOOTSTRAP); } EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { - CG::ui_draw_background(); + UI::ui_draw_background(); auto str_proc = Kernel::rt_alloc_string("System"); Kernel::rtl_create_process(rtl_kernel_main, str_proc); diff --git a/dev/Kernel/HALKit/ARM64/HalKernelMain.cc b/dev/Kernel/HALKit/ARM64/HalKernelMain.cc index 3892e31b..ff4676e4 100644 --- a/dev/Kernel/HALKit/ARM64/HalKernelMain.cc +++ b/dev/Kernel/HALKit/ARM64/HalKernelMain.cc @@ -5,7 +5,7 @@ ------------------------------------------- */ #include <ArchKit/ArchKit.h> -#include <Modules/FB/FB.h> +#include <Modules/GfxMgr/FBMgr.h> #include <FirmwareKit/Handover.h> #include <KernelKit/FileMgr.h> #include <KernelKit/Heap.h> @@ -15,7 +15,7 @@ #include <KernelKit/CodeMgr.h> #include <Modules/ACPI/ACPIFactoryInterface.h> #include <NetworkKit/IPC.h> -#include <Modules/FB/AppearanceMgr.h> +#include <Modules/GfxMgr/AppearanceMgr.h> #include <CFKit/Property.h> Kernel::Void hal_real_init(Kernel::Void) noexcept; @@ -47,7 +47,7 @@ EXTERN_C void hal_init_platform( /// @note do initialize the interrupts after it. - CG::ui_draw_background(); + UI::ui_draw_background(); auto str_proc = Kernel::rt_alloc_string("System"); Kernel::rtl_create_process(rtl_kernel_main, str_proc); diff --git a/dev/Kernel/HALKit/ARM64/Storage/.gitkeep b/dev/Kernel/HALKit/ARM64/Storage/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/dev/Kernel/HALKit/ARM64/Storage/.gitkeep +++ /dev/null diff --git a/dev/Kernel/HALKit/ARM64/Storage/HalFlash.cc b/dev/Kernel/HALKit/ARM64/Storage/HalFlashMemory.cc index 9bd71b57..d5a9ecf4 100644 --- a/dev/Kernel/HALKit/ARM64/Storage/HalFlash.cc +++ b/dev/Kernel/HALKit/ARM64/Storage/HalFlashMemory.cc @@ -10,13 +10,13 @@ /// @file Flash.cc /// @brief Flash memory builtin. -#ifdef __USE_MBCI_FLASH__ +#ifdef ZKA_USE_MBCI_FLASH #define kMaxFlash (4U) namespace Kernel { - /// /:/BRIDGE/FLSH/1 + /// /Mount/Flash/n constexpr auto kFlashBridgeMagic = "FLSH"; constexpr auto kFlashBridgeRevision = 1; @@ -63,4 +63,4 @@ namespace Kernel } } // namespace Kernel -#endif // if __USE_MBCI_FLASH__ (Bridge) +#endif // if ZKA_USE_MBCI_FLASH (Bridge) diff --git a/dev/Kernel/KernelKit/DebugOutput.h b/dev/Kernel/KernelKit/DebugOutput.h index 42cd8748..af9c5b79 100644 --- a/dev/Kernel/KernelKit/DebugOutput.h +++ b/dev/Kernel/KernelKit/DebugOutput.h @@ -192,7 +192,7 @@ namespace Kernel #endif // ifdef kcout #define kcout \ - (Kernel::TerminalDevice::The() << "\e[0;31m [ " << __FILE__ << ": LINE: " << Kernel::number(__LINE__)); \ + (Kernel::TerminalDevice::The() << "\e[0;31m [ (" << __FILE__ << ") Line: " << Kernel::number(__LINE__)); \ (Kernel::TerminalDevice::The() << " ] \e[0m" \ << ": ") #define endl Kernel::TerminalDevice::The() << Kernel::end_line() diff --git a/dev/Kernel/KernelKit/Heap.h b/dev/Kernel/KernelKit/Heap.h index 6c7e04bd..90ed6266 100644 --- a/dev/Kernel/KernelKit/Heap.h +++ b/dev/Kernel/KernelKit/Heap.h @@ -11,7 +11,7 @@ // file: Heap.h // description: heap allocation support. -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <KernelKit/LPC.h> #include <HintKit/CompilerHint.h> diff --git a/dev/Kernel/NewKit/DriverMgr.h b/dev/Kernel/NewKit/DriverMgr.h new file mode 100644 index 00000000..a23ce4f2 --- /dev/null +++ b/dev/Kernel/NewKit/DriverMgr.h @@ -0,0 +1,19 @@ + +/* ------------------------------------------- + + Copyright (C) 2024, Theater Quality Inc, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <NewKit/Defines.h> + +/// @file DriverMgr.h +/// @brief Driver loader manager. + +namespace Kernel +{ + class UserDriver; + class KernelDriver; +}
\ No newline at end of file diff --git a/dev/Kernel/NewKit/KString.h b/dev/Kernel/NewKit/KString.h index a7020a10..9ea2f0e4 100644 --- a/dev/Kernel/NewKit/KString.h +++ b/dev/Kernel/NewKit/KString.h @@ -10,7 +10,7 @@ #include <NewKit/Defines.h> #include <NewKit/ErrorOr.h> #include <NewKit/Utils.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #define cMinimumStringSize 8196 diff --git a/dev/Kernel/NewKit/Stop.h b/dev/Kernel/NewKit/KernelPanic.h index 0d7bf27b..7fc2ab30 100644 --- a/dev/Kernel/NewKit/Stop.h +++ b/dev/Kernel/NewKit/KernelPanic.h @@ -57,7 +57,7 @@ namespace Kernel STATIC Void Recover() noexcept; }; - void ke_stop(const Int32& id); + void ke_panic(const Int32& id); } // namespace Kernel #ifdef TRY diff --git a/dev/Kernel/NewKit/New.h b/dev/Kernel/NewKit/New.h index eb6c33e4..8ee33232 100644 --- a/dev/Kernel/NewKit/New.h +++ b/dev/Kernel/NewKit/New.h @@ -4,11 +4,13 @@ Copyright (C) 2024, Theater Quality Inc, all rights reserved. ------------------------------------------- */ + #pragma once #include <KernelKit/Heap.h> -typedef __SIZE_TYPE__ size_t; // gcc will complain about that +/// @note compatible with tk too. +typedef __SIZE_TYPE__ size_t; void* operator new(size_t ptr); void* operator new[](size_t ptr); diff --git a/dev/Kernel/NewKit/NewKit.h b/dev/Kernel/NewKit/NewKit.h index e17c3465..e32e96b4 100644 --- a/dev/Kernel/NewKit/NewKit.h +++ b/dev/Kernel/NewKit/NewKit.h @@ -11,7 +11,7 @@ #include <NewKit/ArrayList.h> #include <NewKit/ErrorOr.h> #include <NewKit/Json.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <NewKit/MutableArray.h> #include <NewKit/New.h> #include <NewKit/OwnPtr.h> diff --git a/dev/Kernel/NewKit/OwnPtr.h b/dev/Kernel/NewKit/OwnPtr.h index 36d1cdea..4f1cec7a 100644 --- a/dev/Kernel/NewKit/OwnPtr.h +++ b/dev/Kernel/NewKit/OwnPtr.h @@ -8,7 +8,7 @@ #pragma once #include <NewKit/Defines.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <NewKit/Ref.h> namespace Kernel diff --git a/dev/Kernel/NewKit/Ref.h b/dev/Kernel/NewKit/Ref.h index 75500693..34b8891a 100644 --- a/dev/Kernel/NewKit/Ref.h +++ b/dev/Kernel/NewKit/Ref.h @@ -9,7 +9,7 @@ #define _NEWKIT_REF_H_ #include <NewKit/Defines.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <KernelKit/Heap.h> namespace Kernel diff --git a/dev/Kernel/NewKit/SwapMgr.h b/dev/Kernel/NewKit/SwapMgr.h new file mode 100644 index 00000000..822a1565 --- /dev/null +++ b/dev/Kernel/NewKit/SwapMgr.h @@ -0,0 +1,21 @@ + +/* ------------------------------------------- + + Copyright (C) 2024, Theater Quality Inc, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <NewKit/Defines.h> + +#define kSwapMgrBlockMaxSize mib_cast(16) +#define KSwapMgrBlockMagic "SWEP " + +/// @file SwapMgr.h +/// @brief Virtual memory swap API. + +namespace Kernel +{ + class UserSwapProcess; +}
\ No newline at end of file diff --git a/dev/Kernel/NewKit/ThreadMgr.h b/dev/Kernel/NewKit/ThreadMgr.h new file mode 100644 index 00000000..8148c28d --- /dev/null +++ b/dev/Kernel/NewKit/ThreadMgr.h @@ -0,0 +1,20 @@ + +/* ------------------------------------------- + + Copyright (C) 2024, Theater Quality Inc, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include <NewKit/Defines.h> + +/// @file ThreadMgr.h +/// @brief This file takes care of creating processes/threads from a subsystem context. + +namespace Kernel +{ + class UserSubsystem; + class UserEnvVar; + class UserEnv; +}
\ No newline at end of file diff --git a/dev/Kernel/src/ACPIFactoryInterface.cc b/dev/Kernel/src/ACPIFactoryInterface.cc index 424a951a..83890220 100644 --- a/dev/Kernel/src/ACPIFactoryInterface.cc +++ b/dev/Kernel/src/ACPIFactoryInterface.cc @@ -37,7 +37,7 @@ namespace Kernel if (num < 1) { /// stop here, we should have entries... - ke_stop(RUNTIME_CHECK_ACPI); + ke_panic(RUNTIME_CHECK_ACPI); return ErrorOr<voidPtr>{-1}; } diff --git a/dev/Kernel/src/BitMapMgr.cc b/dev/Kernel/src/BitMapMgr.cc index be9f73b8..f73ea911 100644 --- a/dev/Kernel/src/BitMapMgr.cc +++ b/dev/Kernel/src/BitMapMgr.cc @@ -13,7 +13,7 @@ #endif #include <NewKit/Defines.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #define kBitMapMagic (0x10210U) diff --git a/dev/Kernel/src/FS/HPFS.cc b/dev/Kernel/src/FS/HPFS.cc index 8aba73ac..98c41f23 100644 --- a/dev/Kernel/src/FS/HPFS.cc +++ b/dev/Kernel/src/FS/HPFS.cc @@ -12,7 +12,7 @@ #include <FSKit/HPFS.h> #include <KernelKit/LPC.h> #include <NewKit/Crc32.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <NewKit/KString.h> #include <NewKit/Utils.h> #include <FirmwareKit/EPM.h> diff --git a/dev/Kernel/src/FS/NeFS.cc b/dev/Kernel/src/FS/NeFS.cc index 1dd08e4f..650d42c3 100644 --- a/dev/Kernel/src/FS/NeFS.cc +++ b/dev/Kernel/src/FS/NeFS.cc @@ -14,7 +14,7 @@ #include <Modules/Flash/Flash.h> #include <KernelKit/LPC.h> #include <NewKit/Crc32.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <NewKit/KString.h> #include <NewKit/Utils.h> #include <KernelKit/UserProcessScheduler.h> diff --git a/dev/Kernel/src/Heap.cc b/dev/Kernel/src/Heap.cc index 77425670..2575bbcc 100644 --- a/dev/Kernel/src/Heap.cc +++ b/dev/Kernel/src/Heap.cc @@ -105,7 +105,7 @@ namespace Kernel return nullptr; kcout << "This function is not implemented by minOSKrnl, please use the BSD's realloc instead.\r"; - ke_stop(RUNTIME_CHECK_PROCESS); + ke_panic(RUNTIME_CHECK_PROCESS); return nullptr; } @@ -235,7 +235,7 @@ namespace Kernel { if (!heap_info_ptr->fUser) { - ke_stop(RUNTIME_CHECK_POINTER); + ke_panic(RUNTIME_CHECK_POINTER); } } } diff --git a/dev/Kernel/src/KernelMain.cc b/dev/Kernel/src/KernelMain.cc index cc889619..d3498f24 100644 --- a/dev/Kernel/src/KernelMain.cc +++ b/dev/Kernel/src/KernelMain.cc @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright ZKA Technologies + Copyright Theater Quality Inc File: Main.cxx Purpose: Main entrypoint of kernel. @@ -22,7 +22,7 @@ #include <NewKit/Utils.h> #include <KernelKit/CodeMgr.h> #include <CFKit/Property.h> -#include <Modules/FB/AppearanceMgr.h> +#include <Modules/GfxMgr/AppearanceMgr.h> #include <KernelKit/Timer.h> namespace Kernel::Detail diff --git a/dev/Kernel/src/Stop.cc b/dev/Kernel/src/KernelPanic.cc index a8974849..0fd2ec64 100644 --- a/dev/Kernel/src/Stop.cc +++ b/dev/Kernel/src/KernelPanic.cc @@ -4,15 +4,15 @@ ------------------------------------------- */ -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <ArchKit/ArchKit.h> #include <KernelKit/Timer.h> #include <KernelKit/DebugOutput.h> #include <NewKit/KString.h> #include <FirmwareKit/Handover.h> #include <KernelKit/FileMgr.h> -#include <Modules/FB/FB.h> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/TextMgr.h> #define kWebsiteURL "https://el-mahrouss-logic.com/products/help/" @@ -25,9 +25,9 @@ namespace Kernel /// @brief Stops execution of the kernel. /// @param id kernel stop ID. /***********************************************************************************/ - Void ke_stop(const Kernel::Int32& id) + Void ke_panic(const Kernel::Int32& id) { - cg_init(); + fb_init(); auto panic_text = RGB(0xff, 0xff, 0xff); @@ -41,7 +41,7 @@ namespace Kernel start_y += 10; - cg_fini(); + fb_fini(); // show text according to error id. @@ -124,7 +124,7 @@ namespace Kernel kcout << "FAILED: FILE: " << file << endl; kcout << "FAILED: LINE: " << line << endl; - ke_stop(RUNTIME_CHECK_FAILED); // Runtime Check failed + ke_panic(RUNTIME_CHECK_FAILED); // Runtime Check failed } } } // namespace Kernel diff --git a/dev/Kernel/src/LPC.cc b/dev/Kernel/src/LPC.cc index 07a7b982..f9a13796 100644 --- a/dev/Kernel/src/LPC.cc +++ b/dev/Kernel/src/LPC.cc @@ -5,7 +5,7 @@ ------------------------------------------- */ #include <KernelKit/LPC.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> namespace Kernel { @@ -18,7 +18,7 @@ namespace Kernel { if (kRaiseOnBugCheck) { - ke_stop(RUNTIME_CHECK_BAD_BEHAVIOR); + ke_panic(RUNTIME_CHECK_BAD_BEHAVIOR); } return No; diff --git a/dev/Kernel/src/PEFCodeMgr.cc b/dev/Kernel/src/PEFCodeMgr.cc index a27db7e3..a8205004 100644 --- a/dev/Kernel/src/PEFCodeMgr.cc +++ b/dev/Kernel/src/PEFCodeMgr.cc @@ -9,7 +9,7 @@ #include <KernelKit/PEFCodeMgr.h> #include <KernelKit/UserProcessScheduler.h> #include <NewKit/Defines.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <NewKit/OwnPtr.h> #include <NewKit/KString.h> diff --git a/dev/Kernel/src/User.cc b/dev/Kernel/src/User.cc index d45c8e1b..8d1bcac9 100644 --- a/dev/Kernel/src/User.cc +++ b/dev/Kernel/src/User.cc @@ -12,7 +12,7 @@ #include <KernelKit/User.h> #include <KernelKit/LPC.h> -#include <NewKit/Stop.h> +#include <NewKit/KernelPanic.h> #include <KernelKit/FileMgr.h> #include <KernelKit/UserProcessScheduler.h> #include <KernelKit/Heap.h> diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index 512b0c22..3904c222 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -256,7 +256,7 @@ namespace Kernel if (!success) { - ke_stop(RUNTIME_CHECK_PROCESS); + ke_panic(RUNTIME_CHECK_PROCESS); } this->DylibDelegate = nullptr; diff --git a/dev/Modules/FB/Math.h b/dev/Modules/FB/Math.h deleted file mode 100644 index 123e9914..00000000 --- a/dev/Modules/FB/Math.h +++ /dev/null @@ -1,26 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Technologies. - -------------------------------------------- */ - -#pragma once - -/// @file Math.h -/// @brief Linear interpolation implementation. - -#ifdef ZKA_FB_USE_DOUBLE -typedef double fb_real_t; -#else -typedef float fb_real_t; -#endif - -/// @brief Linear interpolation equation solver. -/// @param from where? -/// @param to to? -/// @param at which state we're at **to**. -inline fb_real_t fb_math_lerp(fb_real_t to, fb_real_t from, fb_real_t stat) -{ - fb_real_t difference = to - from; - return from + (difference * stat); -} diff --git a/dev/Modules/Flash/Flash.h b/dev/Modules/Flash/Flash.h index f549ef44..9f5d4117 100644 --- a/dev/Modules/Flash/Flash.h +++ b/dev/Modules/Flash/Flash.h @@ -6,7 +6,7 @@ #pragma once -#ifdef __USE_MBCI_FLASH__ +#ifdef ZKA_USE_MBCI_FLASH #include <NewKit/Defines.h> @@ -18,4 +18,4 @@ Kernel::SizeT drv_get_sector_count(); /// @return drive size Kernel::SizeT drv_get_size(); -#endif // ifdef __USE_MBCI_FLASH__ +#endif // ifdef ZKA_USE_MBCI_FLASH diff --git a/dev/Modules/FB/AccessibilityMgr.h b/dev/Modules/GfxMgr/AccessibilityMgr.h index 843ad9a7..7507f5c0 100644 --- a/dev/Modules/FB/AccessibilityMgr.h +++ b/dev/Modules/GfxMgr/AccessibilityMgr.h @@ -1,6 +1,6 @@ /* ------------------------------------------- - Copyright ZKA Technologies. + Copyright Theater Quality Inc. ------------------------------------------- */ @@ -9,11 +9,11 @@ #include <NewKit/NewKit.h> #include <KernelKit/LPC.h> -#include <Modules/FB/FB.h> -#include <Modules/FB/Math.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/MathMgr.h> #include <ArchKit/ArchKit.h> -namespace CG +namespace UI { using namespace Kernel; diff --git a/dev/Modules/FB/AppearanceMgr.h b/dev/Modules/GfxMgr/AppearanceMgr.h index ca6fff10..2318231d 100644 --- a/dev/Modules/FB/AppearanceMgr.h +++ b/dev/Modules/GfxMgr/AppearanceMgr.h @@ -1,22 +1,22 @@ /* ------------------------------------------- - Copyright ZKA Technologies. + Copyright Theater Quality Inc. ------------------------------------------- */ #pragma once -#include <Modules/FB/AccessibilityMgr.h> +#include <Modules/GfxMgr/AccessibilityMgr.h> #include <KernelKit/Heap.h> #include <KernelKit/UserProcessScheduler.h> #include <KernelKit/LPC.h> #include <NewKit/Defines.h> #include <NewKit/Utils.h> -#include <Modules/FB/FB.h> -#include <Modules/FB/Rsrc/WndControls.rsrc> -#include <Modules/FB/Text.h> +#include <Modules/GfxMgr/FBMgr.h> +#include <Modules/GfxMgr/Rsrc/Controls.rsrc> +#include <Modules/GfxMgr/TextMgr.h> -namespace CG +namespace UI { using namespace Kernel; @@ -57,12 +57,12 @@ namespace CG inline Void ui_draw_background() noexcept { - cg_init(); + fb_init(); - CGDrawInRegion(cg_get_clear_clr(), CG::UIAccessibilty::Height(), CG::UIAccessibilty::Width(), + FBDrawInRegion(fb_get_clear_clr(), UI::UIAccessibilty::Height(), UI::UIAccessibilty::Width(), 0, 0); - cg_fini(); + fb_fini(); } inline struct UIObject* ui_create_object(Int32 kind, const Char* obj_name, const Char* class_name, Int32 x, Int32 y, Int32 width, Int32 height, UIObject* parent = nullptr) @@ -142,7 +142,7 @@ namespace CG !obj->w_needs_repaint) return 1; - cg_init(); + fb_init(); obj->w_needs_repaint = false; @@ -181,26 +181,26 @@ namespace CG { if (obj->w_display_ptr) { - CGDrawInRegion(cg_color(0xDF, 0xDF, 0xDF), obj->w_h, obj->w_w, obj->w_x, obj->w_y); - CGDrawBitMapInRegion(obj->w_display_ptr, obj->w_display_ptr_h, obj->w_display_ptr_w, obj->w_x, obj->w_y); + FBDrawInRegion(fb_color(0xDF, 0xDF, 0xDF), obj->w_h, obj->w_w, obj->w_x, obj->w_y); + FBDrawBitMapInRegion(obj->w_display_ptr, obj->w_display_ptr_h, obj->w_display_ptr_w, obj->w_x, obj->w_y); } else { - CGDrawInRegion(cg_color(0xDF, 0xDF, 0xDF), obj->w_w, obj->w_h, obj->w_y, obj->w_x); + FBDrawInRegion(fb_color(0xDF, 0xDF, 0xDF), obj->w_w, obj->w_h, obj->w_y, obj->w_x); } - CGDrawInRegion(cg_color(0xFF, 0xFF, 0xFF), obj->w_w, FLAT_CONTROLS_HEIGHT, obj->w_y, obj->w_x); + FBDrawInRegion(fb_color(0xFF, 0xFF, 0xFF), obj->w_w, FLAT_CONTROLS_HEIGHT, obj->w_y, obj->w_x); if (obj->w_sub_type != kUIFlagHideCloseControl) { - CGDrawBitMapInRegion(zka_flat_controls, FLAT_CONTROLS_HEIGHT, FLAT_CONTROLS_WIDTH, obj->w_y, obj->w_x + obj->w_w - FLAT_CONTROLS_WIDTH); + FBDrawBitMapInRegion(zka_flat_controls, FLAT_CONTROLS_HEIGHT, FLAT_CONTROLS_WIDTH, obj->w_y, obj->w_x + obj->w_w - FLAT_CONTROLS_WIDTH); } else if (obj->w_sub_type == kUIFlagCloseControlSelect) { - CGDrawBitMapInRegion(zka_flat_controls_active, FLAT_CONTROLS_CLOSEHEIGHT, FLAT_CONTROLS_CLOSEWIDTH, obj->w_y, obj->w_x + obj->w_w - FLAT_CONTROLS_WIDTH); + FBDrawBitMapInRegion(zka_flat_controls_active, FLAT_CONTROLS_CLOSE_HEIGHT, FLAT_CONTROLS_CLOSE_WIDTH, obj->w_y, obj->w_x + obj->w_w - FLAT_CONTROLS_WIDTH); } - fb_render_string(obj->w_window_name, obj->w_x + 8, obj->w_y + 8, cg_color(0x00, 0x00, 0x00)); + fb_render_string(obj->w_window_name, obj->w_x + 8, obj->w_y + 8, fb_color(0x00, 0x00, 0x00)); } else { @@ -216,9 +216,9 @@ namespace CG if (!obj->w_display_custom_draw) { - CGDrawInRegion(cg_color(0xD3, 0x74, 0x00), obj->w_w + 1, obj->w_h + 1, obj->w_x, obj->w_y); - CGDrawInRegion(cg_color(0xFF, 0xFF, 0xFF), obj->w_w - 1, obj->w_h - 1, obj->w_x + 1, obj->w_y + 1); - ui_render_text(obj, obj->w_window_name, y_center, x_center, cg_color(0x00, 0x00, 0x00)); + FBDrawInRegion(fb_color(0xD3, 0x74, 0x00), obj->w_w + 1, obj->w_h + 1, obj->w_x, obj->w_y); + FBDrawInRegion(fb_color(0xFF, 0xFF, 0xFF), obj->w_w - 1, obj->w_h - 1, obj->w_x + 1, obj->w_y + 1); + ui_render_text(obj, obj->w_window_name, y_center, x_center, fb_color(0x00, 0x00, 0x00)); } else { @@ -232,9 +232,9 @@ namespace CG if (!obj->w_display_custom_draw) { - CGDrawInRegion(cg_color(0xDC, 0xDC, 0xDC), obj->w_w + 1, obj->w_h + 1, obj->w_y, obj->w_x); - CGDrawInRegion(cg_color(0xFF, 0xFF, 0xFF), obj->w_w - 1, obj->w_h - 1, obj->w_y + 1, obj->w_x + 1); - fb_render_string(obj->w_window_name, y_center, x_center, cg_color(0x00, 0x00, 0x00)); + FBDrawInRegion(fb_color(0xDC, 0xDC, 0xDC), obj->w_w + 1, obj->w_h + 1, obj->w_y, obj->w_x); + FBDrawInRegion(fb_color(0xFF, 0xFF, 0xFF), obj->w_w - 1, obj->w_h - 1, obj->w_y + 1, obj->w_x + 1); + fb_render_string(obj->w_window_name, y_center, x_center, fb_color(0x00, 0x00, 0x00)); } else { @@ -242,7 +242,7 @@ namespace CG } } - cg_fini(); + fb_fini(); // draw child windows and controls. // doesn't have to be a window, enabling then windows in windows. @@ -259,7 +259,7 @@ namespace CG ui_render_object(obj->w_child_elements[child]); } - cg_fini(); + fb_fini(); return 0; } diff --git a/dev/Modules/FB/FB.h b/dev/Modules/GfxMgr/FBMgr.h index 6a609255..f5cdf4d2 100644 --- a/dev/Modules/FB/FB.h +++ b/dev/Modules/GfxMgr/FBMgr.h @@ -8,18 +8,16 @@ #include <NewKit/Defines.h> -#define cg_init() Kernel::SizeT kCGCursor = 0 +#define fb_init() Kernel::SizeT kCGCursor = 0 -#define cg_color(R, G, B) RGB(R, G, B) +#define fb_color(R, G, B) RGB(R, G, B) -#define cg_get_clear_clr() cg_color(0x20, 0x20, 0x20) +#define fb_get_clear_clr() fb_color(0x20, 0x20, 0x20) -#define cg_fini() kCGCursor = 0 +#define fb_fini() kCGCursor = 0 /// @brief Performs OR drawing on the framebuffer. -#define CGDrawBitMapInRegionA(_BitMp, _Height, _Width, _BaseX, _BaseY) \ - kCGCursor = 0; \ - \ +#define FBDrawBitMapInRegionA(_BitMp, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \ { \ for (Kernel::SizeT u = _BaseY; u < (_Width + _BaseY); ++u) \ @@ -34,9 +32,7 @@ } /// @brief Draws a resource. -#define CGDrawBitMapInRegion(_BitMp, _Height, _Width, _BaseX, _BaseY) \ - kCGCursor = 0; \ - \ +#define FBDrawBitMapInRegion(_BitMp, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \ { \ for (Kernel::SizeT u = _BaseY; u < (_Width + _BaseY); ++u) \ @@ -50,9 +46,7 @@ } \ } -#define CGDrawBitMapInRegionToRgn(_Rgn, _BitMp, _Height, _Width, _BaseX, _BaseY) \ - kCGCursor = 0; \ - \ +#define FBDrawBitMapInRegionToRgn(_Rgn, _BitMp, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \ { \ for (Kernel::SizeT u = _BaseY; u < (_Width + _BaseY); ++u) \ @@ -68,7 +62,6 @@ /// @brief Cleans a resource. #define CGClearRegion(_Height, _Width, _BaseX, _BaseY) \ - \ for (Kernel::SizeT i = _BaseX; i < _Height + _BaseX; ++i) \ { \ for (Kernel::SizeT u = _BaseY; u < _Width + _BaseY; ++u) \ @@ -76,13 +69,12 @@ *(((volatile Kernel::UInt32*)(kHandoverHeader->f_GOP.f_The + \ 4 * kHandoverHeader->f_GOP.f_PixelPerLine * \ i + \ - 4 * u))) = cg_get_clear_clr(); \ + 4 * u))) = fb_get_clear_clr(); \ } \ } /// @brief Draws inside a zone. -#define CGDrawInRegion(_Clr, _Height, _Width, _BaseX, _BaseY) \ - \ +#define FBDrawInRegion(_Clr, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \ { \ for (Kernel::SizeT y_base = _BaseY; y_base < (_Height + _BaseY); ++y_base) \ @@ -95,9 +87,7 @@ } /// @brief Draws inside a zone. -#define CGDrawInRegionToRgn(_Rgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ - kCGCursor = 0; \ - \ +#define FBDrawInRegionToRgn(_Rgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \ { \ for (Kernel::SizeT y_base = _BaseY; y_base < (_Height + _BaseY); ++y_base) \ @@ -110,7 +100,7 @@ } \ } -#define CGDrawInRegionToVideoRgn(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ +#define FBDrawInRegionToVideoRgn(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ kCGCursor = 0; \ \ for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \ @@ -125,9 +115,7 @@ } \ } -#define CGDrawInRegionToVideoRgnA(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ - kCGCursor = 0; \ - \ +#define FBDrawInRegionToVideoRgnA(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \ { \ for (Kernel::SizeT y_base = _BaseY; y_base < (_Height + _BaseY); ++y_base) \ @@ -140,8 +128,7 @@ } \ } -#define CGDrawInRegionA(_Clr, _Height, _Width, _BaseX, _BaseY) \ - \ +#define FBDrawInRegionA(_Clr, _Height, _Width, _BaseX, _BaseY) \ for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \ { \ for (Kernel::SizeT y_base = _BaseY; y_base < (_Height + _BaseY); ++y_base) \ diff --git a/dev/Modules/GfxMgr/MathMgr.h b/dev/Modules/GfxMgr/MathMgr.h new file mode 100644 index 00000000..13e653a5 --- /dev/null +++ b/dev/Modules/GfxMgr/MathMgr.h @@ -0,0 +1,29 @@ +/* ------------------------------------------- + + Copyright Theater Quality Inc. + +------------------------------------------- */ + +#pragma once + +/// @file MathMgr.h +/// @brief Linear interpolation implementation. + +namespace UI +{ +#ifdef ZKA_FB_USE_DOUBLE + typedef double fb_real_t; +#else + typedef float fb_real_t; +#endif + + /// @brief Linear interpolation equation solver. + /// @param from where? + /// @param to to? + /// @param at which state we're at **to**. + inline fb_real_t fb_math_lerp(fb_real_t to, fb_real_t from, fb_real_t stat) + { + fb_real_t difference = to - from; + return from + (difference * stat); + } +} // namespace UI
\ No newline at end of file diff --git a/dev/Modules/FB/Rsrc/WndControls.rsrc b/dev/Modules/GfxMgr/Rsrc/Controls.rsrc index e571fcbf..1534656e 100644 --- a/dev/Modules/FB/Rsrc/WndControls.rsrc +++ b/dev/Modules/GfxMgr/Rsrc/Controls.rsrc @@ -29,8 +29,8 @@ static inline const unsigned int zka_flat_controls[] = { 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff }; -#define FLAT_CONTROLS_CLOSEHEIGHT 24 -#define FLAT_CONTROLS_CLOSEWIDTH 44 +#define FLAT_CONTROLS_CLOSE_HEIGHT 24 +#define FLAT_CONTROLS_CLOSE_WIDTH 44 // array size is 3168 static inline const unsigned int zka_flat_controls_active[] = { diff --git a/dev/Modules/FB/Rsrc/Cursor.rsrc b/dev/Modules/GfxMgr/Rsrc/Cursor.rsrc index 2283cb32..2283cb32 100644 --- a/dev/Modules/FB/Rsrc/Cursor.rsrc +++ b/dev/Modules/GfxMgr/Rsrc/Cursor.rsrc diff --git a/dev/Modules/FB/Text.h b/dev/Modules/GfxMgr/TextMgr.h index ba328314..970fbb8e 100644 --- a/dev/Modules/FB/Text.h +++ b/dev/Modules/GfxMgr/TextMgr.h @@ -7,7 +7,7 @@ #pragma once
#include <NewKit/Defines.h>
-#include <Modules/FB/FB.h>
+#include <Modules/GfxMgr/FBMgr.h>
#define FONT_SIZE_X 8
#define FONT_SIZE_Y 8
@@ -162,7 +162,7 @@ inline Kernel::Void fb_render_string_for_bitmap(const Kernel::UInt8* bitmap, con if (set)
{
- CGDrawInRegion(color, 1, 1, ((x_dst) + x), ((y_dst) + y));
+ FBDrawInRegion(color, 1, 1, ((x_dst) + x), ((y_dst) + y));
}
}
}
diff --git a/dev/SCIKit/GPU.h b/dev/SCIKit/GPU.h index a7e3dd92..8a1af4ca 100644 --- a/dev/SCIKit/GPU.h +++ b/dev/SCIKit/GPU.h @@ -10,7 +10,7 @@ Purpose: GFX System Calls. #ifndef SCIKIT_GPU_H #define SCIKIT_GPU_H -#include <SCIKit/SCI.h> +#include <SCI.h> // ------------------------------------------------------------------------------------------ // // GPU API. diff --git a/dev/SCIKit/LPC.h b/dev/SCIKit/LPC.h index b0e9e456..717c32ec 100644 --- a/dev/SCIKit/LPC.h +++ b/dev/SCIKit/LPC.h @@ -6,7 +6,7 @@ #pragma once -#include <SCIKit/Macros.h> +#include <Macros.h> /// @file LPC.h /// @brief Local Process Code type and values. diff --git a/dev/SCIKit/Macros.h b/dev/SCIKit/Macros.h index 9523725c..cbeb67eb 100644 --- a/dev/SCIKit/Macros.h +++ b/dev/SCIKit/Macros.h @@ -14,7 +14,7 @@ Purpose: SCIKit Macros header. /// @brief Macros and core types. /***********************************************************************************/ -#include <SCIKit/CompilerHint.h> +#include <CompilerHint.h> #define ATTRIBUTE(X) __attribute__((X)) #define IMPORT_CXX extern "C++" diff --git a/dev/SCIKit/SCI.h b/dev/SCIKit/SCI.h index 0eea032a..5b32a2fd 100644 --- a/dev/SCIKit/SCI.h +++ b/dev/SCIKit/SCI.h @@ -10,7 +10,7 @@ Purpose: System Calls. #ifndef SCIKIT_FOUNDATION_H
#define SCIKIT_FOUNDATION_H
-#include <SCIKit/Macros.h>
+#include <Macros.h>
// ------------------------------------------------------------------------------------------ //
/// @brief Dynamic Loader API.
diff --git a/dev/SCIKit/SysCalls.h b/dev/SCIKit/SysCalls.h index 1f87134a..3624dcc6 100644 --- a/dev/SCIKit/SysCalls.h +++ b/dev/SCIKit/SysCalls.h @@ -9,7 +9,7 @@ Purpose: SCIKit Macros header. #pragma once -#include <SCIKit/Macros.h> +#include <Macros.h> /// @brief In this file we define filesystem calls. diff --git a/dev/SCIKit/sci.json b/dev/SCIKit/sci.json index b0e267d2..44d00f87 100644 --- a/dev/SCIKit/sci.json +++ b/dev/SCIKit/sci.json @@ -1,7 +1,7 @@ { "compiler_path": "x86_64-w64-mingw32-g++", "compiler_std": "c++20", - "headers_path": ["../"], + "headers_path": ["../", "./"], "sources_path": ["src/*.cc", "src/*.o"], "output_name": "SCIKit.dylib", "compiler_flags": [ diff --git a/dev/SCIKit/src/GPU.cc b/dev/SCIKit/src/GPU.cc index cb21dae5..46e090e6 100644 --- a/dev/SCIKit/src/GPU.cc +++ b/dev/SCIKit/src/GPU.cc @@ -7,4 +7,4 @@ Purpose: GPU Interface. ------------------------------------------- */ -#include <SCIKit/LPC.h> +#include <LPC.h> diff --git a/dev/SCIKit/src/LPC.cc b/dev/SCIKit/src/LPC.cc index 2dcfc415..47f47ce6 100644 --- a/dev/SCIKit/src/LPC.cc +++ b/dev/SCIKit/src/LPC.cc @@ -7,4 +7,4 @@ Purpose: Local Procedure Codes. ------------------------------------------- */ -#include <SCIKit/LPC.h> +#include <LPC.h> diff --git a/dev/SCIKit/src/SCI.cc b/dev/SCIKit/src/SCI.cc index a5ccdc23..3437498c 100644 --- a/dev/SCIKit/src/SCI.cc +++ b/dev/SCIKit/src/SCI.cc @@ -4,7 +4,7 @@ ------------------------------------------- */
-#include <SCIKit/SCI.h>
+#include <SCI.h>
/// @file SCI.cc
/// @brief Source file for the memory functions of the SCI.
|
