During the early stage of the Project, at some point I attempted to »attack« the topic of Engine and Render Nodes following a ''top down path.'' This effort went into a dead end eventually — due to the total lack of tangible reference points to relate to. However, the implementation at that time prompted the development of several supporting facilities, which remain relevant until today. And it resulted in a ''free wheeling'' compound of implementation structures, which could even be operated through some highly convoluted unit test. This piece of implementation code was valuable as starting point for th »Playback Vertical Slice« in 2024 — resulting in a new design which was ''re-oriented'' towards a new degree of freedom (the »Domain Ontology«) while handling the configuration and connectivity of Render Nodes in a rather fixed and finite way. This new approach seems to be much more successful, as we're now able to build, connect and invoke Render Nodes, thereby mapping the processing through a functor binding into some arbitrary, external processing function (which will later be supplied by a media processing library — and thus be part of some »Domain Ontology«)
71 lines
2.4 KiB
C++
71 lines
2.4 KiB
C++
/*
|
||
RENDERGRAPH.hpp - render network corresponding to one segment of the timeline
|
||
|
||
Copyright (C)
|
||
2008, Hermann Vosseler <Ichthyostega@web.de>
|
||
|
||
**Lumiera** 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. See the file COPYING for further details.
|
||
|
||
*/
|
||
|
||
|
||
/** @file rendergraph.hpp
|
||
** @deprecated a pile of crap, leftovers and started drafts, stalled since 2011 -- but maybe here to stay...
|
||
** @todo 5/2025 the »Playback Vertical Slice« was not yet helpful to clarify
|
||
** how the top-level of the low-level-model will be organised.
|
||
** Some considerations were made regarding ExitNode, but nothing implemented yet.
|
||
** Might become relevant for the next »Vertical Slice«, where we want to add a clip
|
||
** and then actually invoke a real Builder implementation. Future work!
|
||
*/
|
||
|
||
|
||
#ifndef STEAM_ENGINE_RENDERGRAPH_H
|
||
#define STEAM_ENGINE_RENDERGRAPH_H
|
||
|
||
#include "steam/common.hpp"
|
||
#include "lib/time/timevalue.hpp"
|
||
|
||
|
||
/////////////////////////////TODO 7/11 this is a piece of debris, left over from the first attempt to complete the render nodes network.
|
||
/////////////////////////////TODO Meanwhile the intention is to treat the render nodes network more like a data structure,
|
||
/////////////////////////////TODO consequently this will become some kind of root or anchor point for this network
|
||
///////////////////////////////////////////////////////////////////////////////////TICKET #1367 : 5/25 left in tree for now; purpose unclear, maybe relevant for the next »Vertical Slice« ?
|
||
|
||
|
||
namespace steam {
|
||
namespace engine {
|
||
|
||
using lib::time::TimeSpan;
|
||
using lib::time::FSecs;
|
||
using lib::time::Time;
|
||
|
||
class ExitNode;
|
||
|
||
/**
|
||
* @todo likely to be reworked into the engine backbone /////////////TODO WIP as of 12/2010
|
||
*/
|
||
class RenderGraph
|
||
{
|
||
protected:
|
||
ExitNode * output;
|
||
|
||
/** timerange covered by this RenderGraph */
|
||
TimeSpan segment_;
|
||
|
||
public:
|
||
RenderGraph()
|
||
: output{nullptr}
|
||
, segment_(Time::ZERO, FSecs(5))
|
||
{
|
||
UNIMPLEMENTED ("anything regarding the Fixture datastructure");
|
||
}
|
||
|
||
};
|
||
|
||
|
||
|
||
}} // namespace steam::engine
|
||
#endif /*STEAM_ENGINE_RENDERGRAPH_H*/
|