From f0a3c583c80dc922edf70347cb493dff0bb5709a Mon Sep 17 00:00:00 2001 From: Amlal Date: Wed, 28 Aug 2024 19:40:36 +0200 Subject: [IMP] RunSCM, RunDLL64 programs, needs SCI.dll to implement these functions though. [WIP] WRenderer DLL, which takes care of Window rendering, add UIRenderView class. - Note that this DLL is used internally by the shell, it shouldn't be linked with. Signed-off-by: Amlal --- dev/DLL/WRenderer/.keep | 0 dev/DLL/WRenderer/CoreDefs.hxx | 26 +++++++++++++++++++++++ dev/DLL/WRenderer/ReadMe.md | 5 +++++ dev/DLL/WRenderer/Sources/UIRenderView.cxx | 34 ++++++++++++++++++++++++++++++ dev/DLL/WRenderer/build.json | 20 ++++++++++++++++++ 5 files changed, 85 insertions(+) create mode 100644 dev/DLL/WRenderer/.keep create mode 100644 dev/DLL/WRenderer/CoreDefs.hxx create mode 100644 dev/DLL/WRenderer/ReadMe.md create mode 100644 dev/DLL/WRenderer/Sources/UIRenderView.cxx create mode 100644 dev/DLL/WRenderer/build.json (limited to 'dev/DLL/WRenderer') diff --git a/dev/DLL/WRenderer/.keep b/dev/DLL/WRenderer/.keep new file mode 100644 index 00000000..e69de29b diff --git a/dev/DLL/WRenderer/CoreDefs.hxx b/dev/DLL/WRenderer/CoreDefs.hxx new file mode 100644 index 00000000..28eff7ef --- /dev/null +++ b/dev/DLL/WRenderer/CoreDefs.hxx @@ -0,0 +1,26 @@ +/* ------------------------------------------- + + Copyright ZKA Technologies. + +------------------------------------------- */ + +#pragma once + +#include +#include + +namespace System +{ + class UIRenderEffect; + class UIRenderCanvas; + class UIRenderView; // phone desktop, computer desktop, remote desktop. + + enum + { + eDesktopInvalid, + eDesktopPC, + eDesktopMobile, + eDestkopRemote, + eDesktopCount, + }; +} // namespace System diff --git a/dev/DLL/WRenderer/ReadMe.md b/dev/DLL/WRenderer/ReadMe.md new file mode 100644 index 00000000..53c2ba24 --- /dev/null +++ b/dev/DLL/WRenderer/ReadMe.md @@ -0,0 +1,5 @@ +# ZKA Window Renderer. + +Acts as the main rendering engine of the UI stack. + +###### (c) ZKA Technologies, all rights reserved. diff --git a/dev/DLL/WRenderer/Sources/UIRenderView.cxx b/dev/DLL/WRenderer/Sources/UIRenderView.cxx new file mode 100644 index 00000000..0091cef4 --- /dev/null +++ b/dev/DLL/WRenderer/Sources/UIRenderView.cxx @@ -0,0 +1,34 @@ +/* ------------------------------------------- + + Copyright ZKA Technologies. + +------------------------------------------- */ + +#include + +/// @file Renderer.cxx +/// @brief 2D UI renderer, using GX APIs. + +namespace System +{ + UIRenderView::UIRenderView() = default; + UIRenderView::~UIRenderView() = default; + + UIRenderEffect* UIRenderView::GetEffect(const SizeT& at) + { + if (!this->fEffects->Contains(at)) + { + return nullptr; + } + + return this->fEffects[at]; + } + + SizeT UIRenderView::AddEffect(const UIRenderEffect* effect) + { + if (!effect) + return (SizeT)-1; + + return this->fEffects->Add(effect); + } +} // namespace System diff --git a/dev/DLL/WRenderer/build.json b/dev/DLL/WRenderer/build.json new file mode 100644 index 00000000..7a166044 --- /dev/null +++ b/dev/DLL/WRenderer/build.json @@ -0,0 +1,20 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": ["../"], + "sources_path": ["Sources/*.cxx"], + "output_name": "wrenderer.dll", + "compiler_flags": [ + "-ffreestanding", + "-shared", + "-fno-rtti", + "-fno-exceptions", + "-Wl,--subsystem=17" + ], + "cpp_macros": [ + "__WRENDER_IMPL__", + "cWRVersion=0x0100", + "cWRVersionHighest=0x0100", + "cWRVersionLowest=0x0100" + ] +} -- cgit v1.2.3