Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
render-configurator.hpp
Go to the documentation of this file.
1/*
2 RENDER-CONFIGURATOR.hpp - strategy to help building an actual render calculation stream
3
4 Copyright (C)
5 2011, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
26#ifndef STEAM_PLAY_RENDER_CONFIGURATOR_H
27#define STEAM_PLAY_RENDER_CONFIGURATOR_H
28
29
30#include "lib/error.hpp"
31#include "lib/nocopy.hpp"
32//#include "include/dummy-player-facade.h"
33//#include "include/display-facade.h"
34//#include "common/instancehandle.hpp"
35//#include "lib/singleton-ref.hpp"
41//#include "lib/iter-source.hpp"
42//#include "lib/util.hpp"
43
44#include <functional>
45#include <vector>
46//#include <string>
47
48
49namespace steam {
50namespace play {
51
52// using std::string;
53// using lumiera::Subsys;
54// using lumiera::Display;
55// using lumiera::DummyPlayer;
56// using util::isnil;
57 using std::function;
59
60// typedef steam::play::POutputManager POutputManager;
61// typedef lib::IterSource<ModelPort>::iterator ModelPorts;
62
63 namespace error = lumiera::error;
64
65
69 {
70
71 public:
72 virtual ~RenderConfigurator();
73
75
76 using ConnectFunction = function<Feed(ModelPort)>;
77
78 protected:
85 virtual OutputSlot& getOutputFor (ModelPort port) =0;
86
87
100
101 };
102
103
116 buildRenderConfiguration (POutputManager outputPossibilities, Timings playbackTimings);
117
118
119
120
121
122}} // namespace steam::play
123#endif
A core abstraction within the render engine to represent an ongoing calculation.
Handle designating a point within the model, where actually output data can be pulled.
Rendering data feed, corresponding to a single global pipe and to be delivered into a single OutputSl...
Interface: Generic output sink.
Strategy for configuring the render process.
function< Feed(ModelPort)> ConnectFunction
Feed buildActiveFeed(ModelPort)
Template Method: how to build an active render feed, pulling from the given exit point of the model a...
virtual OutputSlot & getOutputFor(ModelPort port)=0
retrieve a suitable output sink for the data to be produced at the given model exit point.
virtual ~RenderConfigurator()
this is an interface
virtual engine::CalcStreams buildCalculationStreams(ModelPort, OutputSlot &)=0
build active rendering connections, thereby delivering each channel of the given model port into the ...
Generic frame timing specification.
Definition timings.hpp:87
Any copy and copy construction prohibited.
Definition nocopy.hpp:38
Lumiera error handling (C++ interface).
Organising the output data calculation possibilities.
std::vector< CalcStream > CalcStreams
RenderConfigurator::ConnectFunction buildRenderConfiguration(POutputManager outputPossibilities, Timings playTimings)
Factory function to build a RenderConfigurator specifically tailored for a PlayProcess,...
shared_ptr< OutputManager > POutputManager
Steam-Layer implementation namespace root.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
A global service to handle all external output connections.
An (abstract) capability to send media data to an external output.
Organisational unit of an ongoing render- or playback process.