diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-24 03:02:43 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-24 03:02:43 +0100 |
| commit | 83d870e58457a1d335a1d9b9966a6a1887cc297b (patch) | |
| tree | 72888f88c7728c82f3f6df1f4f70591de15eab36 /src/kernel/GfxKit | |
| parent | ab37adbacf0f33845804c788b39680cd754752a8 (diff) | |
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/GfxKit')
| -rw-r--r-- | src/kernel/GfxKit/FB.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/kernel/GfxKit/FB.h b/src/kernel/GfxKit/FB.h new file mode 100644 index 00000000..c8a2dc4b --- /dev/null +++ b/src/kernel/GfxKit/FB.h @@ -0,0 +1,52 @@ +/* ======================================== + + Copyright (C) 2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +======================================== */ + +#pragma once + +#include <KernelKit/DeviceMgr.h> + +namespace Kernel { +class FBDeviceInterface; +struct FBDevicePacket; + +typedef UInt32 FBCoord2x2; +typedef UInt32 FBDim2x2; +typedef UInt32 FBColorProfile; +typedef UInt32 FBFlags; + +/// @brief Framebuffer device interface packet. +/// @details This structure is used to send and receive data from the framebuffer device. +/// @note The structure is packed to ensure that the data is aligned correctly for the device. +struct PACKED FBDevicePacket final { + FBCoord2x2 fX; + FBCoord2x2 fY; + FBDim2x2 fWidth; + FBDim2x2 fHeight; + FBColorProfile fColor; + FBFlags fFlags; +}; + +/// @brief Framebuffer device interface. +/// @details This class is used to send and receive data from the framebuffer device. +/// @note The class is derived from the DeviceInterface class. +class FBDeviceInterface NE_DEVICE<FBDevicePacket*> { + public: + explicit FBDeviceInterface(void (*out)(DeviceInterface* self, FBDevicePacket* out), + void (*in)(DeviceInterface* self, FBDevicePacket* in)); + + virtual ~FBDeviceInterface() override; + + public: + FBDeviceInterface& operator=(const FBDeviceInterface&) = default; + FBDeviceInterface(const FBDeviceInterface&) = default; + + const Char* Name() const override; + + public: + FBDeviceInterface& operator<<(FBDevicePacket* dat) override; + FBDeviceInterface& operator>>(FBDevicePacket* dat) override; +}; +} // namespace Kernel |
