r956: README.BUILD - add more library recommendations
[cinelerra_cv/ct.git] / cinelerra / virtualvnode.h
blob461e0bf2c0a09ded709512ac997550e6677a8f28
1 #ifndef VIRTUALVNODE_H
2 #define VIRTUALVNODE_H
4 #include "fadeengine.inc"
5 #include "maskengine.inc"
6 #include "plugin.inc"
7 #include "renderengine.inc"
8 #include "vframe.inc"
9 #include "virtualnode.h"
10 #include "vrender.inc"
12 class VirtualVNode : public VirtualNode
14 public:
15 // construct as a module or a plugin
16 VirtualVNode(RenderEngine *renderengine,
17 VirtualConsole *vconsole,
18 Module *real_module,
19 Plugin *real_plugin,
20 Track *track,
21 VirtualNode *parent_module);
23 ~VirtualVNode();
25 // expansions
26 VirtualNode* create_module(Plugin *real_plugin,
27 Module *real_module,
28 Track *track);
29 VirtualNode* create_plugin(Plugin *real_plugin);
30 void arm_attachmentpoint();
32 // Called by VirtualVConsole::process_buffer to process exit nodes.
33 // start_position - end of frame if reverse. start of frame if forward.
34 // frame_rate - rate start_position is relative to
35 // use_opengl - if opengl is available for this step
36 int render(VFrame *output_temp,
37 int64_t start_position,
38 double frame_rate,
39 int use_opengl);
41 // Read data from what comes before this node.
42 int read_data(VFrame *output_temp,
43 int64_t start_position,
44 double frame_rate,
45 int use_opengl);
47 private:
48 int render_as_module(VFrame *video_out,
49 VFrame *output_temp,
50 int64_t start_position,
51 double frame_rate,
52 int use_opengl);
53 void render_as_plugin(VFrame *output_temp,
54 int64_t start_position,
55 double frame_rate,
56 int use_opengl);
58 int render_projector(VFrame *input,
59 VFrame *output,
60 int64_t start_position,
61 double frame_rate); // Start of input fragment in project if forward. End of input fragment if reverse.
63 int render_fade(VFrame *output, // start of output fragment
64 int64_t start_position, // start of input fragment in project if forward / end of input fragment if reverse
65 double frame_rate,
66 Autos *autos,
67 int direction);
69 void render_mask(VFrame *output_temp,
70 int64_t start_position_project,
71 int use_opengl);
73 FadeEngine *fader;
77 #endif