diff options
| author | Amlal <amlal@el-mahrouss-logic.com> | 2024-08-28 19:40:36 +0200 |
|---|---|---|
| committer | Amlal <amlal@el-mahrouss-logic.com> | 2024-08-28 19:40:36 +0200 |
| commit | f0a3c583c80dc922edf70347cb493dff0bb5709a (patch) | |
| tree | b2d522852feb30b0f6aa0296c37a3e3b57914ddc /dev | |
| parent | c2e183b46a71e001683fd3b613ce49c9534460e2 (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')
| -rw-r--r-- | dev/DLL/EncryptFS/EncryptFS.hxx (renamed from dev/DLL/EFS/EncryptFS.hxx) | 0 | ||||
| -rw-r--r-- | dev/DLL/EncryptFS/ReadMe.md (renamed from dev/DLL/EFS/ReadMe.md) | 0 | ||||
| -rw-r--r-- | dev/DLL/EncryptFS/Sources/EncryptBlock.cxx (renamed from dev/DLL/EFS/Sources/EncryptBlock.cxx) | 0 | ||||
| -rw-r--r-- | dev/DLL/EncryptFS/Sources/Key.cxx (renamed from dev/DLL/EFS/Sources/Key.cxx) | 0 | ||||
| -rw-r--r-- | dev/DLL/EncryptFS/build.json (renamed from dev/DLL/EFS/build.json) | 0 | ||||
| -rw-r--r-- | dev/DLL/EncryptFS/source_deploy.xml (renamed from dev/DLL/EFS/source_deploy.xml) | 0 | ||||
| -rw-r--r-- | dev/DLL/MakeFS/.keepme (renamed from dev/DLL/OSHS/.keepme) | 0 | ||||
| -rw-r--r-- | dev/DLL/OSHS/build.json | 20 | ||||
| -rw-r--r-- | dev/DLL/OSSS/build.json | 20 | ||||
| -rw-r--r-- | dev/DLL/RDR/Renderer.hxx | 28 | ||||
| -rw-r--r-- | dev/DLL/RDR/Sources/Renderer.cxx | 16 | ||||
| -rw-r--r-- | dev/DLL/ReadMe.md | 6 | ||||
| -rw-r--r-- | dev/DLL/RunDLL64/Sources/LauncherMain.cxx | 22 | ||||
| -rw-r--r-- | dev/DLL/RunDLL64/Sources/compile_flags.txt | 1 | ||||
| -rw-r--r-- | dev/DLL/RunDLL64/build.json | 19 | ||||
| -rw-r--r-- | dev/DLL/RunSCM/Sources/LauncherMain.cxx | 25 | ||||
| -rw-r--r-- | dev/DLL/RunSCM/Sources/compile_flags.txt | 1 | ||||
| -rw-r--r-- | dev/DLL/RunSCM/build.json | 19 | ||||
| -rw-r--r-- | dev/DLL/Security/.keep (renamed from dev/DLL/RDR/.keep) | 0 | ||||
| -rw-r--r-- | dev/DLL/Security/build.json (renamed from dev/DLL/SEC/build.json) | 1 | ||||
| -rw-r--r-- | dev/DLL/WRenderer/.keep (renamed from dev/DLL/SEC/.keep) | 0 | ||||
| -rw-r--r-- | dev/DLL/WRenderer/CoreDefs.hxx | 26 | ||||
| -rw-r--r-- | dev/DLL/WRenderer/ReadMe.md (renamed from dev/DLL/RDR/ReadMe.md) | 0 | ||||
| -rw-r--r-- | dev/DLL/WRenderer/Sources/UIRenderView.cxx | 34 | ||||
| -rw-r--r-- | dev/DLL/WRenderer/build.json (renamed from dev/DLL/RDR/build.json) | 0 | ||||
| -rw-r--r-- | dev/DLL/ZKAVer/.keepme (renamed from dev/DLL/OSSS/.keepme) | 0 | ||||
| -rw-r--r-- | dev/SCI/Sources/sci_base.cxx (renamed from dev/SCI/Sources/base.cxx) | 0 | ||||
| -rw-r--r-- | dev/SCI/sci_base.hxx | 12 | ||||
| -rw-r--r-- | dev/SCI/scm-design.drawio | 2 | ||||
| -rw-r--r-- | dev/SCI/scm_core.hxx | 12 |
30 files changed, 163 insertions, 101 deletions
diff --git a/dev/DLL/EFS/EncryptFS.hxx b/dev/DLL/EncryptFS/EncryptFS.hxx index 4aa82666..4aa82666 100644 --- a/dev/DLL/EFS/EncryptFS.hxx +++ b/dev/DLL/EncryptFS/EncryptFS.hxx diff --git a/dev/DLL/EFS/ReadMe.md b/dev/DLL/EncryptFS/ReadMe.md index 69968538..69968538 100644 --- a/dev/DLL/EFS/ReadMe.md +++ b/dev/DLL/EncryptFS/ReadMe.md diff --git a/dev/DLL/EFS/Sources/EncryptBlock.cxx b/dev/DLL/EncryptFS/Sources/EncryptBlock.cxx index 09b8c0d9..09b8c0d9 100644 --- a/dev/DLL/EFS/Sources/EncryptBlock.cxx +++ b/dev/DLL/EncryptFS/Sources/EncryptBlock.cxx diff --git a/dev/DLL/EFS/Sources/Key.cxx b/dev/DLL/EncryptFS/Sources/Key.cxx index 457ce1b8..457ce1b8 100644 --- a/dev/DLL/EFS/Sources/Key.cxx +++ b/dev/DLL/EncryptFS/Sources/Key.cxx diff --git a/dev/DLL/EFS/build.json b/dev/DLL/EncryptFS/build.json index 3c611a95..3c611a95 100644 --- a/dev/DLL/EFS/build.json +++ b/dev/DLL/EncryptFS/build.json diff --git a/dev/DLL/EFS/source_deploy.xml b/dev/DLL/EncryptFS/source_deploy.xml index 9bd360df..9bd360df 100644 --- a/dev/DLL/EFS/source_deploy.xml +++ b/dev/DLL/EncryptFS/source_deploy.xml diff --git a/dev/DLL/OSHS/.keepme b/dev/DLL/MakeFS/.keepme index e69de29b..e69de29b 100644 --- a/dev/DLL/OSHS/.keepme +++ b/dev/DLL/MakeFS/.keepme diff --git a/dev/DLL/OSHS/build.json b/dev/DLL/OSHS/build.json deleted file mode 100644 index a407db54..00000000 --- a/dev/DLL/OSHS/build.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compiler_path": "x86_64-w64-mingw32-g++", - "compiler_std": "c++20", - "headers_path": ["../", "./"], - "sources_path": ["*.cxx"], - "output_name": "oshs.dll", - "compiler_flags": [ - "-ffreestanding", - "-shared", - "-fno-rtti", - "-fno-exceptions", - " -Wl,--subsystem=17" - ], - "cpp_macros": [ - "__OSHS_AMD64__", - "cOSHSVersion=0x0100", - "cOSHSVersionHighest=0x0100", - "cOSHSVersionLowest=0x0100" - ] -} diff --git a/dev/DLL/OSSS/build.json b/dev/DLL/OSSS/build.json deleted file mode 100644 index 2d804db5..00000000 --- a/dev/DLL/OSSS/build.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compiler_path": "x86_64-w64-mingw32-g++", - "compiler_std": "c++20", - "headers_path": ["../", "./"], - "sources_path": ["*.cxx"], - "output_name": "osss.dll", - "compiler_flags": [ - "-ffreestanding", - "-shared", - "-fno-rtti", - "-fno-exceptions", - " -Wl,--subsystem=17" - ], - "cpp_macros": [ - "__OSSS_AMD64__", - "cOSSSVersion=0x0100", - "cOSSSVersionHighest=0x0100", - "cOSSSVersionLowest=0x0100" - ] -} diff --git a/dev/DLL/RDR/Renderer.hxx b/dev/DLL/RDR/Renderer.hxx deleted file mode 100644 index 4c965cca..00000000 --- a/dev/DLL/RDR/Renderer.hxx +++ /dev/null @@ -1,28 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Technologies. - -------------------------------------------- */ - -#pragma once - -#include <Modules/CoreCG/FbRenderer.hxx> -#include <Modules/CoreCG/WindowRenderer.hxx> - -namespace System -{ - using namespace Kernel; - - class UIRenderEffect; - class UIRenderCanvas; - class UIRenderView; // phone desktop, computer desktop, remote desktop. - - enum - { - eDesktopInvalid, - eDesktopPC, - eDesktopMobile, - eDestkopRemote, - eDesktopCount, - }; -} diff --git a/dev/DLL/RDR/Sources/Renderer.cxx b/dev/DLL/RDR/Sources/Renderer.cxx deleted file mode 100644 index 7826326a..00000000 --- a/dev/DLL/RDR/Sources/Renderer.cxx +++ /dev/null @@ -1,16 +0,0 @@ -/* -------------------------------------------
-
- Copyright ZKA Technologies.
-
-------------------------------------------- */
-
-#include <Renderer.hxx>
-#include <gx_core.hxx>
-
-/// @file Renderer.cxx
-/// @brief 2D UI renderer, using GX APIs.
-
-namespace System
-{
-
-}
diff --git a/dev/DLL/ReadMe.md b/dev/DLL/ReadMe.md index 75d86d81..df73d757 100644 --- a/dev/DLL/ReadMe.md +++ b/dev/DLL/ReadMe.md @@ -1,5 +1,5 @@ -# ZKA User DLLs.
+# ZKA User DLLs/Programs.
-- Used to provide features to a program from the sci.dll
+- Used to provide features to a program from the sci.dll.
-###### Copyright ZKA Technologies, all rights reserved.
\ No newline at end of file +###### Copyright ZKA Technologies, all rights reserved.
diff --git a/dev/DLL/RunDLL64/Sources/LauncherMain.cxx b/dev/DLL/RunDLL64/Sources/LauncherMain.cxx new file mode 100644 index 00000000..0d64b654 --- /dev/null +++ b/dev/DLL/RunDLL64/Sources/LauncherMain.cxx @@ -0,0 +1,22 @@ +#include <SCI/sci_base.hxx> + +typedef int (*main_t)(int, char**); + +int WinMain(int argc, char* argv[]) +{ + if (argc < 3) + return -1; + + auto mainDll = LdrOpenDLL(argv[1], argv[2]); + + int (*entrypointOff)(int, char**) = (main_t)LdrGetDLLProc(argv[3], mainDll); + + if (!entrypointOff) + return -1; + + int ret = entrypointOff(argc, argv); + + LdrCloseDLL(mainDll); + + return ret; +} diff --git a/dev/DLL/RunDLL64/Sources/compile_flags.txt b/dev/DLL/RunDLL64/Sources/compile_flags.txt new file mode 100644 index 00000000..53118879 --- /dev/null +++ b/dev/DLL/RunDLL64/Sources/compile_flags.txt @@ -0,0 +1 @@ +-I../../SCI diff --git a/dev/DLL/RunDLL64/build.json b/dev/DLL/RunDLL64/build.json new file mode 100644 index 00000000..50c083d5 --- /dev/null +++ b/dev/DLL/RunDLL64/build.json @@ -0,0 +1,19 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": ["../", "./", "../../"], + "sources_path": ["Sources/*.cxx"], + "output_name": "rundll64.exe", + "compiler_flags": [ + "-ffreestanding", + "-fno-rtti", + "-fno-exceptions", + " -Wl,--subsystem=17" + ], + "cpp_macros": [ + "__RUNDLL_AMD64__", + "cRunDLLVersion=0x0100", + "cRunDLLVersionHighest=0x0100", + "cRunDLLVersionLowest=0x0100" + ] +} diff --git a/dev/DLL/RunSCM/Sources/LauncherMain.cxx b/dev/DLL/RunSCM/Sources/LauncherMain.cxx new file mode 100644 index 00000000..51894df1 --- /dev/null +++ b/dev/DLL/RunSCM/Sources/LauncherMain.cxx @@ -0,0 +1,25 @@ +#include <SCI/sci_base.hxx> + +typedef int (*rpc_call_t)(IUnknown*); + +int WinMain(int argc, char* argv[]) +{ + if (argc < 4) + return -1; + + auto mainDll = LdrOpenDLL(argv[1], argv[2]); + + IUnknown* interface = (IUnknown*)LdrGetDLLProc(argv[3], mainDll); + rpc_call_t dllRpc = (rpc_call_t)LdrGetDLLProc(argv[4], mainDll); + + if (!dllRpc) + return -1; + if (!interface) + return -1; + + auto ret = dllRpc(interface); + + LdrCloseDLL(mainDll); + + return ret; +} diff --git a/dev/DLL/RunSCM/Sources/compile_flags.txt b/dev/DLL/RunSCM/Sources/compile_flags.txt new file mode 100644 index 00000000..53118879 --- /dev/null +++ b/dev/DLL/RunSCM/Sources/compile_flags.txt @@ -0,0 +1 @@ +-I../../SCI diff --git a/dev/DLL/RunSCM/build.json b/dev/DLL/RunSCM/build.json new file mode 100644 index 00000000..14aae6af --- /dev/null +++ b/dev/DLL/RunSCM/build.json @@ -0,0 +1,19 @@ +{ + "compiler_path": "x86_64-w64-mingw32-g++", + "compiler_std": "c++20", + "headers_path": ["../", "./", "../../"], + "sources_path": ["Sources/*.cxx"], + "output_name": "runscm.exe", + "compiler_flags": [ + "-ffreestanding", + "-fno-rtti", + "-fno-exceptions", + " -Wl,--subsystem=17" + ], + "cpp_macros": [ + "__SCM_AMD64__", + "cSCMVersion=0x0100", + "cSCMVersionHighest=0x0100", + "cSCMVersionLowest=0x0100" + ] +} diff --git a/dev/DLL/RDR/.keep b/dev/DLL/Security/.keep index e69de29b..e69de29b 100644 --- a/dev/DLL/RDR/.keep +++ b/dev/DLL/Security/.keep diff --git a/dev/DLL/SEC/build.json b/dev/DLL/Security/build.json index a22d0f1f..5877cdf6 100644 --- a/dev/DLL/SEC/build.json +++ b/dev/DLL/Security/build.json @@ -5,7 +5,6 @@ "sources_path": ["Sources/*.cxx"], "output_name": "sec.dll", "compiler_flags": [ - "-fPIC", "-ffreestanding", "-shared", "-fno-rtti", diff --git a/dev/DLL/SEC/.keep b/dev/DLL/WRenderer/.keep index e69de29b..e69de29b 100644 --- a/dev/DLL/SEC/.keep +++ 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/RDR/ReadMe.md b/dev/DLL/WRenderer/ReadMe.md index 53c2ba24..53c2ba24 100644 --- a/dev/DLL/RDR/ReadMe.md +++ b/dev/DLL/WRenderer/ReadMe.md 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/RDR/build.json b/dev/DLL/WRenderer/build.json index 7a166044..7a166044 100644 --- a/dev/DLL/RDR/build.json +++ b/dev/DLL/WRenderer/build.json diff --git a/dev/DLL/OSSS/.keepme b/dev/DLL/ZKAVer/.keepme index e69de29b..e69de29b 100644 --- a/dev/DLL/OSSS/.keepme +++ b/dev/DLL/ZKAVer/.keepme diff --git a/dev/SCI/Sources/base.cxx b/dev/SCI/Sources/sci_base.cxx index 6963a624..6963a624 100644 --- a/dev/SCI/Sources/base.cxx +++ b/dev/SCI/Sources/sci_base.cxx diff --git a/dev/SCI/sci_base.hxx b/dev/SCI/sci_base.hxx index a6719500..9a3038dc 100644 --- a/dev/SCI/sci_base.hxx +++ b/dev/SCI/sci_base.hxx @@ -77,16 +77,16 @@ public: };
template <typename FnSign, typename ClsID>
-class EventListenerInterface : public ClsID
+class IEventListener : public ClsID
{
public:
- explicit EventListenerInterface() = default;
- virtual ~EventListenerInterface() = default;
+ explicit IEventListener() = default;
+ virtual ~IEventListener() = default;
- EventListenerInterface& operator=(const EventListenerInterface&) = default;
- EventListenerInterface(const EventListenerInterface&) = default;
+ IEventListener& operator=(const IEventListener&) = default;
+ IEventListener(const IEventListener&) = default;
- virtual EventListenerInterface& operator +=(FnSign arg) = 0;
+ virtual IEventListener& operator +=(FnSign arg) = 0;
};
#endif
diff --git a/dev/SCI/scm-design.drawio b/dev/SCI/scm-design.drawio index a8abf083..be77883c 100644 --- a/dev/SCI/scm-design.drawio +++ b/dev/SCI/scm-design.drawio @@ -19,7 +19,7 @@ <mxCell id="eRehIIeIVOPW1y23kRkx-8" value="Program #2<div>Is a web browser, it uses an HTML parser component.</div>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> <mxGeometry x="253" y="570" width="120" height="60" as="geometry"/> </mxCell> - <mxCell id="eRehIIeIVOPW1y23kRkx-10" value="<h1 style="margin-top: 0px;">System Component/Call Model/Interface</h1><p>SCM is a standardized way of sharing code within DLLs in NewOS.</p><p>All classes are based upon&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">IUnknown</span></p><p>It is also used to register and call code using&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">EventListenerInterface</span></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> + <mxCell id="eRehIIeIVOPW1y23kRkx-10" value="<h1 style="margin-top: 0px;">System Component/Call Model/Interface</h1><p>SCM is a standardized way of sharing code within DLLs in NewOS.</p><p>All classes are based upon&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">IUnknown</span></p><p>It is also used to register and call code using&nbsp;<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px;">IEventListener</span></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1"> <mxGeometry x="450" y="240" width="320" height="240" as="geometry"/> </mxCell> </root> diff --git a/dev/SCI/scm_core.hxx b/dev/SCI/scm_core.hxx index ef0a8b5b..db3b9c69 100644 --- a/dev/SCI/scm_core.hxx +++ b/dev/SCI/scm_core.hxx @@ -70,16 +70,16 @@ inline SInt32 ScmReleaseClass(TCLS** cls) }
template <typename FnSign, typename ClsID>
-protocol EventListenerInterface : public ClsID
+protocol IEventListener : public ClsID
{
public:
- explicit EventListenerInterface() = default;
- virtual ~EventListenerInterface() = default;
+ explicit IEventListener() = default;
+ virtual ~IEventListener() = default;
- EventListenerInterface& operator=(const EventListenerInterface&) = default;
- EventListenerInterface(const EventListenerInterface&) = default;
+ IEventListener& operator=(const IEventListener&) = default;
+ IEventListener(const IEventListener&) = default;
- virtual EventListenerInterface& operator +=(FnSign arg)
+ virtual IEventListener& operator +=(FnSign arg)
{
this->AddEventListener(arg);
return *this;
|
