diff options
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 |
