Invocation: draft setup for engine context and config
Prototyping and analysis revealed that some aspects of the render node wiring refers to effectively global services and can thus be taken out of the picture by relying on classical ''Dependency Injection'' Consequently, `EngineCtx` needs a default implementation, which brings up a simplistic fall-back version of those services in support for prototyping. Moreover, dedicated lifecycle functionality must be provided to bring up and shut down the actual service instances intended for operational use.
This commit is contained in:
parent
a02873a015
commit
4a83f97c9e
6 changed files with 266 additions and 64 deletions
|
|
@ -46,7 +46,7 @@
|
|||
#include "lib/symbol.hpp"
|
||||
#include "lib/hash-value.h"
|
||||
#include "steam/engine/buffhandle.hpp"
|
||||
#include "steam/engine/engine-ctx.hpp"
|
||||
//#include "steam/engine/engine-ctx.hpp"
|
||||
#include "steam/engine/type-handler.hpp"
|
||||
#include "steam/engine/buffer-local-tag.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
|
|
|
|||
77
src/steam/engine/engine-ctx-facilities.cpp
Normal file
77
src/steam/engine/engine-ctx-facilities.cpp
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
EngineCtxFacilities - Implementation of global render engine operational services
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2024, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
* *****************************************************/
|
||||
|
||||
|
||||
/** @file engine-ctx-facilities.hpp
|
||||
** Implementation parts of render engine operational services.
|
||||
** @warning as of 10/2024 a preliminary integration of Render-Engine underway ////////////////////////////////////////TICKET #1367
|
||||
*/
|
||||
|
||||
|
||||
#include "steam/engine/engine-ctx-facilities.hpp"
|
||||
|
||||
//#include <string>
|
||||
//#include <memory>
|
||||
//#include <functional>
|
||||
|
||||
|
||||
|
||||
namespace steam {
|
||||
namespace engine{
|
||||
|
||||
// using std::string;
|
||||
// using lumiera::Subsys;
|
||||
// using std::function;
|
||||
// using std::bind;
|
||||
// using std::ref;
|
||||
|
||||
|
||||
namespace { // hidden local details of the service implementation....
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Temp Placeholder
|
||||
BufferProvider* kabooom{nullptr};
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Temp Placeholder
|
||||
} // (End) hidden service impl details
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** storage for the EngineService interface object */
|
||||
lib::Depend<EngineCtx> EngineCtx::access;
|
||||
|
||||
|
||||
|
||||
/** */
|
||||
EngineCtx::EngineCtx()
|
||||
: mem{*kabooom}
|
||||
, cache{*kabooom}
|
||||
{ }
|
||||
|
||||
|
||||
|
||||
/** core operation: blah blubb....
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}} // namespace steam::engine
|
||||
62
src/steam/engine/engine-ctx-facilities.hpp
Normal file
62
src/steam/engine/engine-ctx-facilities.hpp
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
ENGINE-CTX-FACILITIES.hpp - Implementation of global render engine operational services
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2024, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/** @file engine-ctx-facilities.hpp
|
||||
** Implementation of render engine operational configuration and services.
|
||||
** Without further setup, [dependency injection](\ref depend.hpp) will establish a
|
||||
** minimalistic default instantiation of these services, sufficient for demonstration
|
||||
** and tests. For the real render engine however, dedicated service instances will be
|
||||
** created and managed actively.
|
||||
** @todo and we'll have yet to »figure out« what specifically to do for these
|
||||
** services and how to start an active render engine for productive use.
|
||||
** @todo WIP-WIP 10/2024 strive at first complete prototypical engine usage ////////////////////////////////////////TICKET #1367
|
||||
**
|
||||
** @see engine-ctx.hpp
|
||||
** @see weaving-pattern-builder.hpp
|
||||
*/
|
||||
|
||||
#ifndef STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
|
||||
#define STEAM_ENGINE_ENGINE_CTX_FACILITIES_H
|
||||
|
||||
|
||||
#include "steam/engine/engine-ctx.hpp"
|
||||
|
||||
//#include <utility>
|
||||
//#include <memory>
|
||||
|
||||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
|
||||
// using lib::Literal;
|
||||
// using std::unique_ptr;
|
||||
// using std::forward;
|
||||
|
||||
class EngineCtx::Facilities
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
|
||||
|
||||
}} // namespace steam::engine
|
||||
#endif /*STEAM_ENGINE_ENGINE_CTX_FACILITIES_H*/
|
||||
|
|
@ -26,11 +26,13 @@
|
|||
** render node connectivity, where they are used for each invocation of a render job.
|
||||
**
|
||||
** The EngineCtx itself is meant to be [dependency injected](\ref lib::Depend), so that
|
||||
** tests can use suitably adapted variants for verifications.
|
||||
** tests can use suitably adapted variants for verifications. The default instantiation
|
||||
** provides a naive self-contained implementation suitable for demonstration and test.
|
||||
** @todo who is responsible for setup of the services for the actual render engine?
|
||||
** Might be closely related to brining up façade interfaces.
|
||||
** @todo WIP 8/2024 provide render node structures
|
||||
** @todo WIP-WIP 10/2024 provide render node structures
|
||||
**
|
||||
** @see engine-ctx-facilities.hpp implementation
|
||||
** @see buffer-provider.hpp
|
||||
** @see buffhandle.hpp
|
||||
*/
|
||||
|
|
@ -44,14 +46,14 @@
|
|||
#include "lib/nocopy.hpp"
|
||||
|
||||
//#include <utility>
|
||||
#include <memory>
|
||||
//#include <memory>
|
||||
|
||||
|
||||
namespace steam {
|
||||
namespace engine {
|
||||
|
||||
// using lib::Literal;
|
||||
using std::unique_ptr;
|
||||
// using std::unique_ptr;
|
||||
// using std::forward;
|
||||
|
||||
class EngineCtx
|
||||
|
|
@ -60,11 +62,16 @@ namespace engine {
|
|||
public:
|
||||
BufferProvider& mem;
|
||||
BufferProvider& cache;
|
||||
BufferProvider& output;
|
||||
// BufferProvider& output; /////////////////////////OOO presumably no longer necessary
|
||||
|
||||
class Services;
|
||||
class Facilities;
|
||||
|
||||
static lib::Depend<EngineCtx> access;
|
||||
|
||||
private:
|
||||
EngineCtx();
|
||||
|
||||
friend class lib::DependencyFactory<EngineCtx>;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -280,9 +280,9 @@ namespace engine {
|
|||
* the input and output data feeds (buffers) into a processing function.
|
||||
* @tparam CONF a configuration / policy base class
|
||||
* @note assumptions made regarding the overall structure
|
||||
* - CONF::Feed defines an _invocation adapter_ for the processing function
|
||||
* - CONF::buildFeed is a functor to (repeatedly) build `Feed` instances
|
||||
* - this adapter in turn embeds a `FeedManifold<N>` to hold
|
||||
* - `CONF::Feed` defines an _invocation adapter_ for the processing function
|
||||
* - `CONF::buildFeed()` is a functor to (repeatedly) build `Feed` instances
|
||||
* - the _invocation adapter_ in turn embeds a `FeedManifold<N>` to hold
|
||||
* + an array of input buffer pointers
|
||||
* + an array of output buffer pointers
|
||||
* + `CONF::MAX_SIZ` limits both arrays
|
||||
|
|
|
|||
|
|
@ -7199,9 +7199,7 @@
|
|||
<node CREATED="1506180752104" ID="ID_534962278" MODIFIED="1506180752104" TEXT="extend the path by ...creates uncovered extension sequence"/>
|
||||
<node CREATED="1506180752104" ID="ID_552405160" MODIFIED="1576282358128" TEXT="create suitable children">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...halten wir besser raus aus diesem Design.
|
||||
|
|
@ -7255,9 +7253,7 @@
|
|||
</node>
|
||||
<node CREATED="1504458255403" FOLDED="true" HGAP="41" ID="ID_246632028" MODIFIED="1576282358127" TEXT="Fälle" VSHIFT="9">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...was für verschiedene Arten von Zugriff
|
||||
|
|
@ -7292,9 +7288,7 @@
|
|||
<arrowlink COLOR="#535189" DESTINATION="ID_1448696607" ENDARROW="Default" ENDINCLINATION="-391;179;" ID="Arrow_ID_1194909838" STARTARROW="None" STARTINCLINATION="691;-200;"/>
|
||||
<node CREATED="1504479456449" ID="ID_959239388" MODIFIED="1518487921063">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
mögliche
|
||||
|
|
@ -7404,9 +7398,7 @@
|
|||
<node CREATED="1508109233808" ID="ID_816587529" MODIFIED="1518487921064" TEXT="erfordert gemeinsames Interface"/>
|
||||
<node CREATED="1508109252574" ID="ID_1185099286" MODIFIED="1518487921064">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
betrachte ich als <i>ungesund</i>
|
||||
|
|
@ -7483,9 +7475,7 @@
|
|||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1507940046234" ID="ID_577613088" MODIFIED="1561827464792">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
auf welche Eigenschaften
|
||||
|
|
@ -8012,9 +8002,7 @@
|
|||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1508539226014" ID="ID_1714773115" MODIFIED="1576282358122" TEXT="informell...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Tiefensuche über die reale UI-Topologie
|
||||
|
|
@ -8513,9 +8501,7 @@
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510446221317" HGAP="52" ID="ID_1590483406" MODIFIED="1535892751360" VSHIFT="42">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
sind Monaden
|
||||
|
|
@ -9674,9 +9660,7 @@
|
|||
<icon BUILTIN="idea"/>
|
||||
<node CREATED="1512440307185" ID="ID_1513737160" MODIFIED="1512440431319" TEXT="weil das doch nicht gecheckt werden kann">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...ohne daß die Funktionen auch virtuell sind,
|
||||
|
|
@ -11847,9 +11831,7 @@
|
|||
<node CREATED="1514340273349" ID="ID_1117812340" MODIFIED="1514908827230" TEXT="kein match"/>
|
||||
<node BACKGROUND_COLOR="#e2f2c8" CREATED="1514340293010" ID="ID_108821287" MODIFIED="1514908880409">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ist <i>keine </i>Lösung
|
||||
|
|
@ -15774,9 +15756,7 @@
|
|||
<node CREATED="1504479807066" ID="ID_1318651039" MODIFIED="1518487921072" TEXT="mäßig komplex"/>
|
||||
<node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1576282358111" TEXT="ehr effizient">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<ul>
|
||||
<li>
|
||||
|
|
@ -85795,15 +85775,25 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1714181482947" ID="ID_845562088" MODIFIED="1714181555132" TEXT="Ticket #905 als Anker verwenden">
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1714181482947" ID="ID_845562088" LINK="https://issues.lumiera.org/ticket/905" MODIFIED="1728656690658" TEXT="Ticket #905 als Anker verwenden">
|
||||
<linktarget COLOR="#c80a37" DESTINATION="ID_845562088" ENDARROW="Default" ENDINCLINATION="-130;10;" ID="Arrow_ID_66382855" SOURCE="ID_943908122" STARTARROW="None" STARTINCLINATION="42;-31;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node COLOR="#435e98" CREATED="1714181927456" ID="ID_7655935" MODIFIED="1714181946722" TEXT="Tracking-Ticket #1364 »Render Node Network«">
|
||||
<node COLOR="#435e98" CREATED="1714181927456" ID="ID_7655935" LINK="https://issues.lumiera.org/ticket/1364" MODIFIED="1728656675946" TEXT="Tracking-Ticket #1364 »Render Node Network«">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718845242691" ID="ID_377937950" MODIFIED="1718845248435" TEXT="#1367 build a node invocation">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728656618228" ID="ID_562698637" LINK="https://issues.lumiera.org/ticket/826" MODIFIED="1728656658677" TEXT="#826 render nodes invocation sequence">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1718845256006" ID="ID_130047105" MODIFIED="1718845263388" TEXT="als direkter Treiber für die nächsten Arbeiten"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1718845242691" ID="ID_377937950" LINK="https://issues.lumiera.org/ticket/1367" MODIFIED="1728656683891" TEXT="#1367 build a node invocation">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1718845256006" ID="ID_130047105" MODIFIED="1718845263388" TEXT="als direkter Treiber für die nächsten Arbeiten">
|
||||
<node CREATED="1728657539476" ID="ID_953218363" MODIFIED="1728657553150" TEXT="muß den NodeBuilder und PortBuilder konstruieren können"/>
|
||||
<node CREATED="1728657554481" ID="ID_1763878258" MODIFIED="1728658107738" TEXT="brauche ein Default-Setup für EngineCtx">
|
||||
<arrowlink COLOR="#496d98" DESTINATION="ID_980783783" ENDARROW="Default" ENDINCLINATION="-1507;-94;" ID="Arrow_ID_11368875" STARTARROW="None" STARTINCLINATION="392;28;"/>
|
||||
</node>
|
||||
<node CREATED="1728657599660" ID="ID_1919244666" MODIFIED="1728657606815" TEXT="muß einfache Node bauen können"/>
|
||||
<node CREATED="1728657607703" ID="ID_1131573155" MODIFIED="1728657612430" TEXT="muß Node aufrufen können"/>
|
||||
</node>
|
||||
<node CREATED="1718845263947" ID="ID_1747091374" MODIFIED="1718845332197" TEXT="Ziel: den NodeLinkage_test aufbauen">
|
||||
<arrowlink COLOR="#fe018a" DESTINATION="ID_673154392" ENDARROW="Default" ENDINCLINATION="3;-16;" ID="Arrow_ID_894402730" STARTARROW="None" STARTINCLINATION="-151;11;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -88425,8 +88415,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1721834025376" ID="ID_853984700" MODIFIED="1721834036731" TEXT="aus zusätzlichen Überlegungen zum Caching"/>
|
||||
<node CREATED="1721834044974" ID="ID_1751951250" MODIFIED="1721834055712" TEXT="und als Fallback: ein generischer Memory-Buffer-Provider"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721835912891" ID="ID_174258961" MODIFIED="1721835947007" TEXT="Aufgabe für die Builder-Mechanik">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1721835912891" ID="ID_174258961" MODIFIED="1728654004568" TEXT="Aufgabe für die Builder-Mechanik">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1721835960018" ID="ID_393730575" MODIFIED="1721835975204" TEXT="der BufferDescriptor gilt als opaques Handle"/>
|
||||
<node CREATED="1721835976166" ID="ID_1045731243" MODIFIED="1721835984813" TEXT="er ist implizit an den BufferProvider gebunden">
|
||||
<node COLOR="#5b280f" CREATED="1721835986478" ID="ID_131800806" MODIFIED="1721836014435" TEXT="man könnte das lockern">
|
||||
|
|
@ -88454,7 +88444,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1721838715106" ID="ID_742042797" MODIFIED="1721838751008" TEXT="unangenehme Konsequenz ⟹ Provider muß vor derm Descriptor festgelegt sein">
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1721838715106" ID="ID_742042797" MODIFIED="1728654001444" TEXT="unangenehme Konsequenz ⟹ Provider muß vor derm Descriptor festgelegt sein">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1721838753885" ID="ID_117794585" MODIFIED="1721838768742" TEXT="das widerspricht unimttelbar der Builder-API-Logik"/>
|
||||
<node CREATED="1721838769522" ID="ID_230120050" MODIFIED="1721838872487" TEXT="und stellt eine lästige / problematische Einschränkung dar">
|
||||
|
|
@ -88547,7 +88537,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="forward"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842271062" ID="ID_957156267" MODIFIED="1721842285156" TEXT="zweite Lösung gemäß YAGNI">
|
||||
<node COLOR="#435e98" CREATED="1721842271062" ID="ID_957156267" MODIFIED="1728653995190" TEXT="zweite Lösung gemäß YAGNI">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -88557,7 +88547,9 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node COLOR="#338800" CREATED="1721842328021" ID="ID_1494182835" MODIFIED="1721844743382" TEXT="selectOutputSlot()">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node CREATED="1721842335404" ID="ID_1250028316" MODIFIED="1721842383194" TEXT="setAllCached()"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842335404" ID="ID_1250028316" MODIFIED="1728654030097" TEXT="setAllCached()">
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
<node CREATED="1721842384902" ID="ID_533404449" MODIFIED="1721842395765" TEXT="setCached(i...i)"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721842523924" ID="ID_1665424296" MODIFIED="1721842678142" TEXT="zudem: »Service-Kontext« bereitstellen">
|
||||
|
|
@ -88566,8 +88558,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274451779" ID="ID_1072443707" LINK="https://issues.lumiera.org/ticket/1373" MODIFIED="1722274484633" TEXT="#1373 Default-BufferProvider">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274502942" ID="ID_1076067994" LINK="https://issues.lumiera.org/ticket/1374" MODIFIED="1722275936824" TEXT="#1374 Output-BufferProvider">
|
||||
<arrowlink COLOR="#861f49" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" STARTARROW="None" STARTINCLINATION="1006;82;"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1722274502942" ID="ID_1076067994" LINK="https://issues.lumiera.org/ticket/1374" MODIFIED="1728653444493" TEXT="#1374 Output-BufferProvider">
|
||||
<arrowlink COLOR="#1f4486" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" STARTARROW="None" STARTINCLINATION="1006;82;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -88597,7 +88589,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink COLOR="#426b9b" DESTINATION="ID_1427714372" ENDARROW="Default" ENDINCLINATION="-959;175;" ID="Arrow_ID_770296022" STARTARROW="None" STARTINCLINATION="-446;-54;"/>
|
||||
<node CREATED="1719162514087" ID="ID_416948245" MODIFIED="1719162521740" TEXT="für Working Buffers"/>
|
||||
<node CREATED="1719162522590" ID="ID_545575789" MODIFIED="1719162528681" TEXT="als Front-End für den Cache"/>
|
||||
<node CREATED="1720485474864" ID="ID_1518497515" MODIFIED="1720485489986" TEXT="als Front-End für OutputSlot / DataSink"/>
|
||||
<node COLOR="#5b280f" CREATED="1720485474864" ID="ID_1518497515" MODIFIED="1728653276605" TEXT="als Front-End für OutputSlot / DataSink">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
nein! jetzt direkt im Aufruf gelöst
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1721059527488" ID="ID_824337184" MODIFIED="1721059685476" TEXT="tatsächlich liegt diese Info bereits im BufferDescriptor">
|
||||
<arrowlink COLOR="#516883" DESTINATION="ID_562004793" ENDARROW="Default" ENDINCLINATION="-1136;1066;" ID="Arrow_ID_1799901944" STARTARROW="None" STARTINCLINATION="-504;-31;"/>
|
||||
|
|
@ -88612,7 +88615,17 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1721866481394" ID="ID_1853457963" MODIFIED="1721866534078" TEXT="zu klären: Scope zur Verdrahtung dieser Services">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1721866537521" ID="ID_1964460392" MODIFIED="1721866548867" TEXT="sie sind effektiv global"/>
|
||||
<node CREATED="1721866551423" ID="ID_779602459" MODIFIED="1721866584882" TEXT="problematisch dabei: der Output-BufferProivder">
|
||||
<node COLOR="#5b280f" CREATED="1721866551423" ID="ID_779602459" MODIFIED="1728654358835" TEXT="problematisch dabei: der Output-BufferProivder">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ja: ist problematisch — und genau deshalb ziehe ich jetzt vor, den Output-Buffer direkt über den Aufruf bereitzustellen; dieser Aspekt spielt damit für das Thema Dependency-Injection keine Rolle mehr
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1721866589257" ID="ID_1094487880" MODIFIED="1721866862199" TEXT="dieser muß allerdings einen konkreten Bezug herstellen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
|
|
@ -88679,7 +88692,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#5b280f" CREATED="1721956892200" ID="ID_1451110951" MODIFIED="1722470788939" TEXT="strukturell wäre das Spezial-Tag die beste Lösung">
|
||||
<node COLOR="#5b280f" CREATED="1721956892200" FOLDED="true" ID="ID_1451110951" MODIFIED="1722470788939" TEXT="strukturell wäre das Spezial-Tag die beste Lösung">
|
||||
<arrowlink COLOR="#4395d3" DESTINATION="ID_1329080039" ENDARROW="Default" ENDINCLINATION="-105;0;" ID="Arrow_ID_1999279188" STARTARROW="None" STARTINCLINATION="6;-21;"/>
|
||||
<arrowlink COLOR="#414bc3" DESTINATION="ID_603785440" ENDARROW="Default" ENDINCLINATION="-465;-28;" ID="Arrow_ID_1386315858" STARTARROW="None" STARTINCLINATION="-31;500;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -88776,12 +88789,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1722005561810" ID="ID_605283552" MODIFIED="1722005604557" TEXT="zu dem Zeitpunkt haben wir einen Buffer-Descriptor vorliegen">
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722006966966" ID="ID_80799942" MODIFIED="1722275926136" TEXT="neues API benötigt">
|
||||
<linktarget COLOR="#861f49" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" SOURCE="ID_1076067994" STARTARROW="None" STARTINCLINATION="1006;82;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node COLOR="#338800" CREATED="1722006966966" ID="ID_80799942" MODIFIED="1728653437446" TEXT="neues API benötigt">
|
||||
<linktarget COLOR="#1f4486" DESTINATION="ID_80799942" ENDARROW="Default" ENDINCLINATION="-75;-520;" ID="Arrow_ID_1180739231" SOURCE="ID_1076067994" STARTARROW="None" STARTINCLINATION="1006;82;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1722006974253" ID="ID_1472014079" MODIFIED="1722006984025" TEXT="aufrufbar auf/mit einem BufferDescriptor"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722006984755" ID="ID_1802025811" MODIFIED="1722092863044" TEXT="kann ein LocalTag setzen">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#435e98" CREATED="1722006984755" ID="ID_1802025811" MODIFIED="1728653433016" TEXT="kann ein LocalTag setzen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1722092776817" ID="ID_1178263086" MODIFIED="1722092793427" TEXT="Bezugspunkt: BufferMetadata::lock()">
|
||||
<node CREATED="1722092795833" ID="ID_444477764" MODIFIED="1722092803241" TEXT="konstruiert einen abgeleiteten Entry"/>
|
||||
<node CREATED="1722092804037" ID="ID_696205920" MODIFIED="1722092813545" TEXT="konstruiert dabei einen abgeleiteten Key"/>
|
||||
|
|
@ -89070,10 +89084,11 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1722384533324" ID="ID_128884200" MODIFIED="1722392116636" TEXT="API-Ergänzung: LocalTag durchreichen">
|
||||
<node COLOR="#435e98" CREATED="1722384533324" ID="ID_128884200" MODIFIED="1728654385202" TEXT="API-Ergänzung: LocalTag durchreichen">
|
||||
<arrowlink COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" STARTARROW="None" STARTINCLINATION="-367;0;"/>
|
||||
<linktarget COLOR="#8e30c2" DESTINATION="ID_128884200" ENDARROW="Default" ENDINCLINATION="53;-3;" ID="Arrow_ID_182326182" SOURCE="ID_70781847" STARTARROW="None" STARTINCLINATION="-9;58;"/>
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1722392284686" ID="ID_1073120762" MODIFIED="1722392451719" TEXT="muß das wohl doch in den Buffer-Descriptor einbauen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
|
|
@ -89085,6 +89100,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1722392313295" ID="ID_854136592" MODIFIED="1722392349478" TEXT="allerdings nur transient — damit eine andere Type-ID ankommt"/>
|
||||
<node CREATED="1728654390651" ID="ID_1271433973" LINK="#ID_475931392" MODIFIED="1728654403283" TEXT="(letzten Endes anders gelöst)"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89117,9 +89133,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<linktarget COLOR="#8c1444" DESTINATION="ID_450967698" ENDARROW="Default" ENDINCLINATION="-313;-10;" ID="Arrow_ID_414353144" SOURCE="ID_128884200" STARTARROW="None" STARTINCLINATION="-367;0;"/>
|
||||
</node>
|
||||
<node CREATED="1722445242908" ID="ID_1389873312" MODIFIED="1722445279859" TEXT="allerdings wird dieses speziell präparierte BuffHandle besser direkt eingefügt"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1722384890441" ID="ID_438526459" MODIFIED="1722385120612" TEXT="zu klären bleibt: wie wird diese Info genau eingebunden?">
|
||||
<node COLOR="#5b280f" CREATED="1722384890441" ID="ID_438526459" MODIFIED="1728653318306" TEXT="zu klären bleibt: wie wird diese Info genau eingebunden?">
|
||||
<arrowlink COLOR="#932840" DESTINATION="ID_657216791" ENDARROW="Default" ENDINCLINATION="103;-2;" ID="Arrow_ID_1546346335" STARTARROW="None" STARTINCLINATION="-431;18;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1728653320962" ID="ID_965156506" MODIFIED="1728653416812" TEXT="Antwort: gar nicht"/>
|
||||
<node CREATED="1728653327912" ID="ID_475931392" LINK="#ID_1963170563" MODIFIED="1728654411295" TEXT="hab dann letztlich diese Lösung doch verworfen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...es ist zwar gut, daß es das LocalTag gibt, aber für diesen Fall ist das eine unsinnige Trickserei; es ist viel besser, an der einzigen Stelle, wo das benötigt wird (nämlich auf top-Level) explizit eine Flag zu setzen und dann den Buffer zu entnehmen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89136,12 +89165,15 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1722612598373" ID="ID_1824837145" MODIFIED="1722612697640" TEXT="Fazit: damit ist ein globaler Scope möglich">
|
||||
<node CREATED="1722612598373" ID="ID_1824837145" MODIFIED="1728654533346" TEXT="Fazit: damit ist ein globaler Scope möglich">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Den OutputBufferProvider handhaben wir jetzt eine Ebene höher, und dort können wir direkt ein LocalTag setzen und dann ein zugehöriges BuffHandle erstellen, das nur an einen bestimmten Buffer im Output-system gebunden ist. Alle anderen Use-Cases (Memory-Blöcke und Cache) sind ohnehin global für die gesamte RenderEngine
|
||||
Den OutputBufferProvider handhaben wir jetzt eine Ebene höher; genauer, wir hanhaben ihn direkt, denn es ist nur ein einziger Buffer auf top-Level.
|
||||
</p>
|
||||
<p>
|
||||
Alle anderen Use-Cases (Memory-Blöcke und Cache) sind ohnehin global für die gesamte RenderEngine, und damit handhabbar mit den normalen DI-Mechanismen
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
|
|
@ -89164,6 +89196,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
<node CREATED="1722647413798" ID="ID_1607895967" MODIFIED="1722647418305" TEXT="Struktur">
|
||||
<linktarget COLOR="#626f93" DESTINATION="ID_1607895967" ENDARROW="Default" ENDINCLINATION="54;426;" ID="Arrow_ID_1301744172" SOURCE="ID_478319632" STARTARROW="None" STARTINCLINATION="720;24;"/>
|
||||
<node CREATED="1722647419605" ID="ID_1700431737" MODIFIED="1722647426928" TEXT="ein Front-End mit Referenzen"/>
|
||||
<node CREATED="1722647429699" ID="ID_1374967687" MODIFIED="1722647484152" TEXT="ein (opaque) Services-Objekt"/>
|
||||
<node CREATED="1722647819006" ID="ID_1544083902" MODIFIED="1722647825463" TEXT="Anforderungen">
|
||||
|
|
@ -89180,6 +89213,22 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1722648096856" ID="ID_1675656022" MODIFIED="1722648117988" TEXT="kann explizit einen Kontext für die RenderEngine hochfahren"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728654667677" ID="ID_202980797" MODIFIED="1728654672230" TEXT="Implementierung">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1728654679810" ID="ID_180965419" MODIFIED="1728654697576" TEXT="Header: steam/engine/engine-ctx.hpp">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728655382477" ID="ID_980783783" MODIFIED="1728658107738" TEXT="Implementierung: engine-ctx-facilities.hpp|cpp">
|
||||
<linktarget COLOR="#496d98" DESTINATION="ID_980783783" ENDARROW="Default" ENDINCLINATION="-1507;-94;" ID="Arrow_ID_11368875" SOURCE="ID_1763878258" STARTARROW="None" STARTINCLINATION="392;28;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728658365910" ID="ID_831264983" MODIFIED="1728658406545" TEXT="brauche Lösung um die Referenz-Member direkt auf eine Service-Instanz zu binden">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728658390507" ID="ID_1131398613" MODIFIED="1728658406545" TEXT="Implementierung vom default-ctor muß eine Dummy-Impl hochziehen">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -89270,6 +89319,13 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1722445400526" ID="ID_270562222" MODIFIED="1722445411968" TEXT="dafür ist nur ein einziger Eingriff in shed() notwendig"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1728653092345" ID="ID_670416401" MODIFIED="1728653095731" TEXT="Fazit">
|
||||
<node CREATED="1728653097295" ID="ID_1497905125" MODIFIED="1728653116584" TEXT="der Ausgabepuffer wird direkt über den Aufruf herausgeführt"/>
|
||||
<node CREATED="1728653130694" ID="ID_1242564198" MODIFIED="1728653148596" TEXT="das ganze Konzept des OutputBufferProvider wird damit hinfällig"/>
|
||||
<node CREATED="1728653149728" ID="ID_478319632" MODIFIED="1728653219457" TEXT="unabhängig davon bleibt Dependency-Injection notwendig für Cache und Buffer-Service">
|
||||
<arrowlink COLOR="#626f93" DESTINATION="ID_1607895967" ENDARROW="Default" ENDINCLINATION="54;426;" ID="Arrow_ID_1301744172" STARTARROW="None" STARTINCLINATION="720;24;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1721003681836" ID="ID_536010685" MODIFIED="1721061587708" TEXT="erst mal: Bulk-Konfig für alle">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue