summaryrefslogtreecommitdiffhomepage
path: root/dev/DLL/WRenderer
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-08-28 19:40:36 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-08-28 19:40:36 +0200
commitf0a3c583c80dc922edf70347cb493dff0bb5709a (patch)
treeb2d522852feb30b0f6aa0296c37a3e3b57914ddc /dev/DLL/WRenderer
parentc2e183b46a71e001683fd3b613ce49c9534460e2 (diff)
[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 <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/DLL/WRenderer')
-rw-r--r--dev/DLL/WRenderer/.keep0
-rw-r--r--dev/DLL/WRenderer/CoreDefs.hxx26
-rw-r--r--dev/DLL/WRenderer/ReadMe.md5
-rw-r--r--dev/DLL/WRenderer/Sources/UIRenderView.cxx34
-rw-r--r--dev/DLL/WRenderer/build.json20
5 files changed, 85 insertions, 0 deletions
diff --git a/dev/DLL/WRenderer/.keep b/dev/DLL/WRenderer/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/DLL/WRenderer/.keep
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 <Modules/CoreCG/FbRenderer.hxx>
+#include <Modules/CoreCG/WindowRenderer.hxx>
+
+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 <UIRenderView.hxx>
+
+/// @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"
+ ]
+}