Lumiera  0.pre.03
»edit your freedom«
play-process.hpp
Go to the documentation of this file.
1 /*
2  PLAY-PROCESS.hpp - state frame for an ongoing play/render process
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 
41 #ifndef STEAM_PLAY_PLAY_PROCESS_H
42 #define STEAM_PLAY_PLAY_PROCESS_H
43 
44 
45 #include "lib/error.hpp"
46 #include "lib/nocopy.hpp"
47 //#include "include/dummy-player-facade.h"
48 //#include "include/display-facade.h"
49 //#include "common/instancehandle.hpp"
50 //#include "lib/singleton-ref.hpp"
53 #include "lib/iter-source.hpp"
54 #include "lib/util.hpp"
55 
56 #include <functional>
57 //#include <string>
58 #include <vector>
59 
60 
61 namespace steam {
62 namespace play {
63 
64 // using std::string;
65 // using lumiera::Subsys;
66 // using lumiera::Display;
67 // using lumiera::DummyPlayer;
68  using util::isnil;
70  using std::function;
71 
72  typedef lib::IterSource<ModelPort>::iterator ModelPorts;
73 
74  namespace error = lumiera::error;
75 
76 
77 
78 
85  class Feed
86  {
87  engine::CalcStreams renderStreams_;
88 
89  public:
90 
97  Feed (engine::CalcStreams const&);
98  };
99 
100  typedef function<Feed(ModelPort)> FeedBuilder;
101  typedef std::vector<Feed> OutputFeeds;
102 
103 
104  /**************************************************/
122  {
123  OutputFeeds outputFeeds_;
124 
125  PlayProcess (OutputFeeds feeds);
126 
127  public:
128  static PlayProcess*
129  initiate (ModelPorts dataGenerators, FeedBuilder);
130  };
131 
132 
133 
134 
135 }} // namespace steam::play
136 #endif
Organising the output data calculation possibilities.
Feed(engine::CalcStreams const &)
building a Feed effectively requires the definition of a rendering plan through the EngineService...
Any copy and copy construction prohibited.
Definition: nocopy.hpp:37
Steam-Layer implementation namespace root.
Playback/Render process within the Lumiera Player.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
A core abstraction within the render engine to represent an ongoing calculation.
Lumiera error handling (C++ interface).
Handle designating a point within the model, where actually output data can be pulled.
Definition: model-port.hpp:95
Rendering data feed, corresponding to a single global pipe and to be delivered into a single OutputSl...
Extension module to build an opaque data source, accessible as Lumiera Forward Iterator.