From d2d6b4cb728e3e80c10d6e3bbd72e6f7b3dfea9b Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Sat, 23 Nov 2024 08:44:49 +0100 Subject: META: Morning bump. Signed-off-by: Amlal EL Mahrouss --- dev/Modules/FB/WS.h | 24 ++++++++++++++++-------- dev/Modules/WSGL/WSGL.h | 26 ++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) (limited to 'dev/Modules') diff --git a/dev/Modules/FB/WS.h b/dev/Modules/FB/WS.h index d8c5c991..60c7a78c 100644 --- a/dev/Modules/FB/WS.h +++ b/dev/Modules/FB/WS.h @@ -7,18 +7,21 @@ #pragma once #include -#include -#include #include /// @file WS.h -/// @brief WindowServer's endpoint implementation. (within the zka-dev subsystem) +/// @brief WindowServer's window ownership implementation. +/// It is used to draw within a window. + +#define rtl_allocate_backbuffer(width, height) new WS::WSBackBufferKind[width * height] +#define rtl_compute_fb_geometry(width, height) (width * height) namespace WS { using namespace Kernel; - struct WSWindowContainer; + class WSWindowTexture; + class WSWindowContainer; typedef UInt32* WSBackBufferKind; @@ -31,7 +34,7 @@ namespace WS 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) + BOOL Fill(WSBackBufferKind contents_buf, SizeT contents_len) { if (contents_len > BackBufferLength) return NO; @@ -47,11 +50,16 @@ namespace WS return YES; } + BOOL Fill(WSWindowContainer* container) + { + if (!container) + return NO; + + return this->Fill(container->BackBuffer, container->BackBufferLength); + } + public: WSBackBufferKind BackBuffer{nullptr}; SizeT BackBufferLength{0UL}; }; } // namespace WS - -#define rtl_allocate_backbuffer(width, height) new WS::WSBackBufferKind[width * height] -#define rtl_compute_fb_geometry(width, height) (width * height) diff --git a/dev/Modules/WSGL/WSGL.h b/dev/Modules/WSGL/WSGL.h index 47bf402f..59cf6f5c 100644 --- a/dev/Modules/WSGL/WSGL.h +++ b/dev/Modules/WSGL/WSGL.h @@ -7,3 +7,29 @@ #pragma once #include +#include + +namespace WS +{ + /// @brief GPU texture class. + class WSWindowTexture final + { + public: + explicit WSWindowTexture() = default; + ~WSWindowTexture() = default; + + ZKA_COPY_DEFAULT(WSWindowTexture); + + VoidPtr InputData{nullptr}; + VoidPtr ProcessUnit{nullptr}; + BOOL* IsDone{nullptr}; + + const BOOL TryIsDone() + { + if (IsDone && *IsDone) + return YES; + + return NO; + } + }; +} // namespace WS -- cgit v1.2.3