lumiera_/src/steam/engine/node-factory.cpp
Ichthyostega 42af5bc4e7 Invocation: rearrange code and cut ties to obsolete implementation draft
The latest phase of conception and planning moved this integration effort a big step ahead.
It is now **basically settled how the invocation works** from top-down.

Thus a lot of ties to ''obsoleted pieces of implementation code'' from the first draft from 2009 / 2012 can be severed now.
 * instead of a `StateProxy` most state management has been broken down into implementation parts
 * instead of orchestrating generic invocation building blocks we will parametrise »weaving-patterns«
2024-12-13 05:13:51 +01:00

68 lines
2.5 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
NodeFactory - Service for creating processing nodes of various kinds
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 node-factory.cpp
** Implementation of render node setup and wiring
** @todo draft from the early days of the Lumiera project, reworked in 2009
** Development activity in that area as stalled ever since. In the end,
** it is highly likely we'll _indeed need_ a node factory though...
** @todo WIP-WIP 2024 to be reworked from ground up for the »Playback Vertical Slice«
*/
#include "steam/engine/exit-node.hpp"
#include "steam/engine/node-factory.hpp"
#include "steam/mobject/session/effect.hpp"
#include "lib/allocation-cluster.hpp"
//#include "steam/engine/nodewiring-obsolete.hpp"
namespace steam {
namespace engine {
/// storage for the »inactive« ExitNode marker
ExitNode ExitNode::NIL{};
namespace { // Details of node fabrication
////////////////////////////////////////////////TODO: still needed?
} // (END) Details of node fabrication
using mobject::Placement;
using mobject::session::Effect;
/** create a processing node able to render an effect
* @todo as of 2016 this is the only (placeholder) implementation
* to indicate how building and wiring of nodes was meant to happen
*/
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
PNode
NodeFactory::operator() (Placement<Effect> const& effect, WiringSituation& intendedWiring)
{
intendedWiring.resolveProcessor(effect->getProcAsset());
Connectivity& wiring = wiringFac_(intendedWiring);
ProcNode& newNode = alloc_.create<ProcNode> (wiring);
ENSURE (newNode.isValid());
return &newNode;
}
UNIMPLEMENTED ("Node Factory for reworked Render Node Connectivity");
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
}} // namespace engine