From dc008570233d0dbfac32eb87367b7e4a08302e32 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 21 Nov 2024 10:19:17 +0100 Subject: META: 10:00 AM bump. --- dev/Modules/FB/WS.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 dev/Modules/FB/WS.h (limited to 'dev/Modules/FB') diff --git a/dev/Modules/FB/WS.h b/dev/Modules/FB/WS.h new file mode 100644 index 00000000..72259eb4 --- /dev/null +++ b/dev/Modules/FB/WS.h @@ -0,0 +1,58 @@ +/* ------------------------------------------- + + Copyright (C) 2024, EL Mahrouss Logic, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include +#include +#include +#include + +/// @file WS.h +/// @brief WindowServer's endpoint implementation. (within the zka-dev subsystem) + +namespace WS +{ + using namespace Kernel; + + struct WSWindowContainer; + + typedef UInt32* WSBackBufferKind; + + class WSWindowContainer final + { + public: + WSWindowContainer() = default; + ~WSWindowContainer() = default; + + ZKA_COPY_DEFAULT(WSWindowContainer); + + /// @note the trick is, it could be GPU processed data, that's the cool thing. + BOOL PopulateWindow(WSBackBufferKind contents_buf, SizeT contents_len) + { + if (contents_len > BackBufferLength) + return NO; + + if (!contents_buf) + return NO; + + if (!BackBuffer || + !BackBufferLength) + return NO; + + rt_copy_memory(contents_buf, BackBuffer, contents_len); + return YES; + } + + public: + WSBackBufferKind BackBuffer{nullptr}; + SizeT BackBufferLength{0UL}; + + }; +} + +#define rtl_allocate_backbuffer(width, height) new WS::WSBackBufferKind[width * height] +#define rtl_compute_fb_geometry(width, height) (width * height) -- cgit v1.2.3