Invocation: draft a simplified prototype for an invocation

...attempt to somehow get my foot into the door...
This commit is contained in:
Fischlurch 2024-07-09 21:06:38 +02:00
parent 3d6515acca
commit 0b938320ea
4 changed files with 79 additions and 34 deletions

View file

@ -49,7 +49,7 @@
** @see BufferProvider
** @see BufferProviderProtocol_test usage demonstration
** @see OutputSlot
** @see bufftable.hpp storage for the buffer table
** @see bufftable.hpp storage for the buffer table /////////////////////OOO where to point into the new structure for documentation?
** @see engine::RenderInvocation
*/

View file

@ -35,10 +35,13 @@
#include "lib/error.hpp"
#include "lib/nocopy.hpp"
#include "steam/engine/proc-node.hpp"
#include "lib/several.hpp"
//#include "steam/engine/proc-node.hpp"
#include "steam/engine/buffhandle.hpp"
#include "lib/uninitialised-storage.hpp"
//#include "lib/several.hpp"
//#include <utility>
//#include <array>
////////////////////////////////TICKET #826 will be reworked alltogether
@ -46,8 +49,8 @@
namespace steam {
namespace engine {
using std::pair;
using std::vector;
// using std::pair;
// using std::vector;
/**
@ -62,11 +65,18 @@ namespace engine {
*
* @todo WIP-WIP-WIP 7/24 now reworking the old design in the light of actual render engine requirements...
*/
template<uint N>
struct FeedManifold
: util::NonCopyable
{
using BuffS = lib::UninitialisedStorage<BuffHandle,N>;
BuffS inBuff;
BuffS outBuff;
};
}} // namespace steam::engine
#endif /*ENGINE_FEED_MANIFOLD_H*/

View file

@ -253,16 +253,49 @@ namespace engine {
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
class Turnout
: public Port
struct WeavingPatternBase
//////////////////////////////OOO non-copyable? move-only??
{
using Feed = FeedManifold<0>;
Feed mount() { return Feed{}; }
void pull (Feed&, TurnoutSystem&) { /* NOP */ }
void shed (Feed&) { /* NOP */ }
void weft (Feed&) { /* NOP */ }
void fix (Feed&) { /* NOP */ }
};
/**
* Processing structure to activate a Render Node and produce result data.
* @tparam PAT a _Weaving Pattern,_ which defines in detail how data is retrieved,
* combined and processed to yield the results; actually this implementation
* is assembled from several building blocks, in accordance to the specific
* situation as established by the _Builder_ for a given render node.
*/
template<class PAT>
class Turnout
: public Port
, public PAT
{
using Feed = typename PAT::Feed;
public:
/**
* Entrance point to the next recursive step of media processing.
* @param turnoutSys anchor context with parameters and services
* @return a BuffHandle exposing the generated result data
*/
BuffHandle
weave(TurnoutSystem&) override
weave (TurnoutSystem& turnoutSys) override
{
UNIMPLEMENTED ("generate next layer of the TurnoutSystem on the stack");
Feed feed = PAT::mount();
PAT::pull(feed, turnoutSys);
PAT::shed(feed);
PAT::weft(feed);
PAT::fix (feed);
return feed.result();
}
};

View file

@ -615,9 +615,7 @@
<node CREATED="1538264482902" ID="ID_838939814" MODIFIED="1557498707217" TEXT="Instantiiiere gui::ctrl::Facade im Stack-Frame von UiManager::performMainLoop()"/>
<node CREATED="1538264545797" ID="ID_1760435858" MODIFIED="1576282358160" TEXT="Synchronisation qua Dispatch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
zwar sind die Fasaden offen, bevor die Main-Loop l&#228;uft,
@ -658,9 +656,7 @@
</node>
<node COLOR="#435e98" CREATED="1617459426438" ID="ID_1892682204" MODIFIED="1617459482615">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
verbleibende Probleme sind <i>&quot;marginal&quot;</i>&#160;und besser im Subsystem-Runner zu addressieren
@ -700,9 +696,7 @@
</node>
<node CREATED="1481502257825" HGAP="24" ID="ID_232782099" MODIFIED="1576282358160" TEXT="Gefahr gering, aber gegeben" VSHIFT="11">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...weil unser Thread-Framework
@ -1791,9 +1785,7 @@
<icon BUILTIN="yes"/>
<node CREATED="1533608548408" ID="ID_154643654" MODIFIED="1533608602022" TEXT="man fragt einen Service: gib mir....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
es ist schon bekannt, da&#223; dieser Service der <b>ViewLocator</b>&#160;sein wird,
@ -3383,9 +3375,7 @@
</node>
<node CREATED="1538319701680" ID="ID_1856422179" MODIFIED="1538319729311" TEXT="...und beim Trigger ist er schon nicht mehr gesetzt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
der Handler im ProcDispatcher sorgt daf&#252;r
@ -4844,9 +4834,7 @@
<node CREATED="1483755331671" ID="ID_1913103415" MODIFIED="1518487921058" TEXT="wird im Visitor gebraucht">
<node CREATED="1483909964935" ID="ID_991182613" MODIFIED="1518487921058">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
will sagen: <i>in </i>den Visitor-Methoden-Implementierungen
@ -7038,9 +7026,7 @@
</node>
<node CREATED="1489544910395" ID="ID_82086808" MODIFIED="1576282358132" TEXT="enable Action">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...das ist eine Reaktion,
@ -10056,9 +10042,7 @@
</node>
<node CREATED="1512516613614" FOLDED="true" ID="ID_1415224184" MODIFIED="1512926193415">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
Konzept funktioniert nicht
@ -86936,6 +86920,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720539241548" ID="ID_1982591690" MODIFIED="1720539260269" TEXT="vereinfachte Struktur...">
<linktarget COLOR="#4a94bc" DESTINATION="ID_1982591690" ENDARROW="Default" ENDINCLINATION="-391;41;" ID="Arrow_ID_901019728" SOURCE="ID_1776676768" STARTARROW="None" STARTINCLINATION="-686;-39;"/>
<icon BUILTIN="forward"/>
<node CREATED="1720539330263" ID="ID_189580255" MODIFIED="1720540134864" TEXT="Turnout::weave() : virtueller Scope">
<arrowlink COLOR="#5f5c6d" DESTINATION="ID_956618382" ENDARROW="Default" ENDINCLINATION="-1093;60;" ID="Arrow_ID_278288527" STARTARROW="None" STARTINCLINATION="-669;-54;"/>
@ -87151,6 +87136,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1719882722633" ID="ID_669301844" MODIFIED="1719882760592" TEXT="eine sp&#xe4;ter zu findende Spezial-L&#xf6;sung mu&#xdf; dann auch einen random-access-Container bieten"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720481526745" ID="ID_723925333" MODIFIED="1720481549666" TEXT="ich verfolge die Buffer-Block-auf-dem-Heap-L&#xf6;sung">
<linktarget COLOR="#3563bc" DESTINATION="ID_723925333" ENDARROW="Default" ENDINCLINATION="-1;162;" ID="Arrow_ID_1608020834" SOURCE="ID_1380185144" STARTARROW="None" STARTINCLINATION="627;40;"/>
<icon BUILTIN="yes"/>
<node CREATED="1720481567643" ID="ID_938250433" MODIFIED="1720481584684" TEXT="und zwar direkt in ein Objekt-Template eingebunden"/>
<node CREATED="1720481585384" ID="ID_571277472" MODIFIED="1720481602261" TEXT="es gibt dann ein paar Standard-Gr&#xf6;&#xdf;en (compile-Time)"/>
@ -87709,10 +87695,26 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1720456999461" ID="ID_635796297" MODIFIED="1720458313426" TEXT="und jetzt wirds ernst: mu&#xdf; einen Turnout konstruieren">
<arrowlink COLOR="#ff0020" DESTINATION="ID_909255520" ENDARROW="Default" ENDINCLINATION="-494;717;" ID="Arrow_ID_99470151" STARTARROW="None" STARTINCLINATION="-675;-43;"/>
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1720458870491" ID="ID_342983817" MODIFIED="1720458909369" TEXT="Butter bei die Fische: was macht das Turnout-System?">
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1720458870491" ID="ID_342983817" MODIFIED="1720542680716" TEXT="Butter bei die Fische: was macht der Turnout?">
<icon BUILTIN="help"/>
<node CREATED="1720476854729" ID="ID_1464916632" MODIFIED="1720477066061" TEXT="es ruft f&#xfc;nf Schritt-Funktionen auf"/>
<node CREATED="1720476874803" ID="ID_1916596326" MODIFIED="1720477006893" TEXT="und gibt ihnen jeweils die FeedManifold"/>
<node CREATED="1720542689383" ID="ID_1776676768" MODIFIED="1720542743424" TEXT="habe jetzt konzeptionell die Aufrufe deutlich vereinfacht">
<arrowlink COLOR="#4a94bc" DESTINATION="ID_1982591690" ENDARROW="Default" ENDINCLINATION="-391;41;" ID="Arrow_ID_901019728" STARTARROW="None" STARTINCLINATION="-686;-39;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720542952204" ID="ID_1415309847" MODIFIED="1720542967130" TEXT="damit l&#xe4;&#xdf;t sich das Skelett der Aufrufe stubben">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720546461284" ID="ID_704402784" MODIFIED="1720546479593" TEXT="Skizze ins Unreine : eine Invocation">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720546405862" ID="ID_1380185144" MODIFIED="1720546513736" TEXT="Grundstruktur f&#xfc;r FeedManifold anlegen">
<arrowlink COLOR="#3563bc" DESTINATION="ID_723925333" ENDARROW="Default" ENDINCLINATION="-1;162;" ID="Arrow_ID_1608020834" STARTARROW="None" STARTINCLINATION="627;40;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720546521352" ID="ID_1680202759" MODIFIED="1720546544475" TEXT="ein einfaches WeavingPattern f&#xfc;r einen 1:1 Aufruf">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>