4 #include "fadeengine.inc"
5 #include "maskengine.inc"
7 #include "renderengine.inc"
9 #include "virtualnode.h"
10 #include "vrender.inc"
12 class VirtualVNode
: public VirtualNode
15 // construct as a module or a plugin
16 VirtualVNode(RenderEngine
*renderengine
,
17 VirtualConsole
*vconsole
,
21 VirtualNode
*parent_module
);
26 VirtualNode
* create_module(Plugin
*real_plugin
,
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
,
41 // Read data from what comes before this node.
42 int read_data(VFrame
*output_temp
,
43 int64_t start_position
,
48 int render_as_module(VFrame
*video_out
,
50 int64_t start_position
,
53 void render_as_plugin(VFrame
*output_temp
,
54 int64_t start_position
,
58 int render_projector(VFrame
*input
,
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
69 void render_mask(VFrame
*output_temp
,
70 int64_t start_position_project
,