diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-04-02 21:35:34 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-04-02 21:35:34 +0200 |
| commit | efc6b5d169d2b6eaabe7384141cec6054ae622a0 (patch) | |
| tree | 056fb3f24bcf0be7fb372106676349a1f5b644b8 /Private/Builtins | |
| parent | 96d7e324ae1657216e6bb49a82466977d43d9a89 (diff) | |
OS: Changes related to System API, breaking changes, also added HTMLLib.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/Builtins')
| -rw-r--r-- | Private/Builtins/Toolbox/Toolbox.hxx | 77 | ||||
| -rw-r--r-- | Private/Builtins/Toolbox/Utils.hxx | 70 |
2 files changed, 69 insertions, 78 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 |
