From 83d870e58457a1d335a1d9b9966a6a1887cc297b Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 24 Nov 2025 03:02:43 +0100 Subject: feat! breaking changes on kernel sources. Signed-off-by: Amlal El Mahrouss --- src/kernel/GfxKit/FB.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/kernel/GfxKit/FB.h (limited to 'src/kernel/GfxKit') 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 + +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 { + 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 -- cgit v1.2.3