diff --git a/src/steam/engine/buffhandle.hpp b/src/steam/engine/buffhandle.hpp index f105f44c8..27b1f467b 100644 --- a/src/steam/engine/buffhandle.hpp +++ b/src/steam/engine/buffhandle.hpp @@ -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 */ diff --git a/src/steam/engine/feed-manifold.hpp b/src/steam/engine/feed-manifold.hpp index 8e3f46437..9bdfc92e5 100644 --- a/src/steam/engine/feed-manifold.hpp +++ b/src/steam/engine/feed-manifold.hpp @@ -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 +//#include ////////////////////////////////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 struct FeedManifold + : util::NonCopyable { + using BuffS = lib::UninitialisedStorage; + + BuffS inBuff; + BuffS outBuff; }; + }} // namespace steam::engine #endif /*ENGINE_FEED_MANIFOLD_H*/ diff --git a/src/steam/engine/turnout.hpp b/src/steam/engine/turnout.hpp index 2d9f8f0f6..278bbe9ca 100644 --- a/src/steam/engine/turnout.hpp +++ b/src/steam/engine/turnout.hpp @@ -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 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(); } }; diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 8a37dc985..b2b9d1e0a 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -615,9 +615,7 @@ - - - +

zwar sind die Fasaden offen, bevor die Main-Loop läuft, @@ -658,9 +656,7 @@ - - - +

verbleibende Probleme sind "marginal" und besser im Subsystem-Runner zu addressieren @@ -700,9 +696,7 @@ - - - +

...weil unser Thread-Framework @@ -1791,9 +1785,7 @@ - - - +

es ist schon bekannt, daß dieser Service der ViewLocator sein wird, @@ -3383,9 +3375,7 @@ - - - +

der Handler im ProcDispatcher sorgt dafür @@ -4844,9 +4834,7 @@ - - - +

will sagen: in den Visitor-Methoden-Implementierungen @@ -7038,9 +7026,7 @@ - - - +

...das ist eine Reaktion, @@ -10056,9 +10042,7 @@ - - - +

Konzept funktioniert nicht @@ -86936,6 +86920,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
+ @@ -87151,6 +87136,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
+ @@ -87709,10 +87695,26 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + + + + + + + + + + + + + + + + +