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) Lumiera.org
5  2011, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
50 #ifndef STEAM_PLAY_PLAY_PROCESS_H
51 #define STEAM_PLAY_PLAY_PROCESS_H
52 
53 
54 #include "lib/error.hpp"
55 #include "lib/nocopy.hpp"
56 //#include "include/dummy-player-facade.h"
57 //#include "include/display-facade.h"
58 //#include "common/instancehandle.hpp"
59 //#include "lib/singleton-ref.hpp"
62 #include "lib/iter-source.hpp"
63 #include "lib/util.hpp"
64 
65 #include <functional>
66 //#include <string>
67 #include <vector>
68 
69 
70 namespace steam {
71 namespace play {
72 
73 // using std::string;
74 // using lumiera::Subsys;
75 // using lumiera::Display;
76 // using lumiera::DummyPlayer;
77  using util::isnil;
79  using std::function;
80 
81  typedef lib::IterSource<ModelPort>::iterator ModelPorts;
82 
83  namespace error = lumiera::error;
84 
85 
86 
87 
94  class Feed
95  {
96  engine::CalcStreams renderStreams_;
97 
98  public:
99 
106  Feed (engine::CalcStreams const&);
107  };
108 
109  typedef function<Feed(ModelPort)> FeedBuilder;
110  typedef std::vector<Feed> OutputFeeds;
111 
112 
113  /**************************************************/
131  {
132  OutputFeeds outputFeeds_;
133 
134  PlayProcess (OutputFeeds feeds);
135 
136  public:
137  static PlayProcess*
138  initiate (ModelPorts dataGenerators, FeedBuilder);
139  };
140 
141 
142 
143 
144 }} // namespace steam::play
145 #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:46
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:104
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.