projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fullscreen tweaks, vwdw refresh frame scale, cleanup
[goodguy/history.git]
/
cinelerra-5.1
/
cinelerra
/
virtualvnode.C
diff --git
a/cinelerra-5.1/cinelerra/virtualvnode.C
b/cinelerra-5.1/cinelerra/virtualvnode.C
index e3c69f1e755086abc84c5a011bbce0798e2c4386..bd32638c35e5ba5ad4f41fc34c519a9ee7c81c4e 100644
(file)
--- a/
cinelerra-5.1/cinelerra/virtualvnode.C
+++ b/
cinelerra-5.1/cinelerra/virtualvnode.C
@@
-203,7
+203,8
@@
int VirtualVNode::render_as_module(VFrame *video_out,
int64_t start_position_project = (int64_t)(start_position *
edl_rate /
frame_rate);
int64_t start_position_project = (int64_t)(start_position *
edl_rate /
frame_rate);
- if(direction == PLAY_REVERSE) start_position_project--;
+ if(direction == PLAY_REVERSE && start_position_project > 0 )
+ start_position_project--;
// speed curve
// speed curve
@@
-263,12
+264,6
@@
int VirtualVNode::render_as_module(VFrame *video_out,
//printf("VirtualVNode::render_as_module\n");
//output_temp->dump_stacks();
//printf("VirtualVNode::render_as_module\n");
//output_temp->dump_stacks();
- Edit *edit = 0;
- if(renderengine->show_tc)
- renderengine->vrender->insert_timecode(edit,
- start_position,
- output_temp);
-
return 0;
}
return 0;
}
@@
-357,7
+352,7
@@
void VirtualVNode::render_mask(VFrame *output_temp,
if( !((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->can_mask(
start_position_project, keyframe_set) )
use_opengl = 0;
if( !((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->can_mask(
start_position_project, keyframe_set) )
use_opengl = 0;
-
+
}
if(use_opengl) {
((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->do_mask(
}
if(use_opengl) {
((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->do_mask(
@@
-372,7
+367,7
@@
void VirtualVNode::render_mask(VFrame *output_temp,
}
}
-// Start of input fragment in project if forward.
+// Start of input fragment in project if forward.
// End of input fragment if reverse.
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
int64_t start_position, double frame_rate,
// End of input fragment if reverse.
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
int64_t start_position, double frame_rate,
@@
-381,12
+376,12
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
float in_x1, in_y1, in_x2, in_y2;
float out_x1, out_y1, out_x2, out_y2;
double edl_rate = renderengine->get_edl()->session->frame_rate;
float in_x1, in_y1, in_x2, in_y2;
float out_x1, out_y1, out_x2, out_y2;
double edl_rate = renderengine->get_edl()->session->frame_rate;
- int64_t start_position_project = (int64_t)(start_position *
+ int64_t start_position_project = (int64_t)(start_position *
edl_rate /
frame_rate);
VRender *vrender = ((VirtualVConsole*)vconsole)->vrender;
edl_rate /
frame_rate);
VRender *vrender = ((VirtualVConsole*)vconsole)->vrender;
- if(vconsole->debug_tree)
- printf(" VirtualVNode::render_projector input=%p output=%p cmodel=%d title=%s\n",
+ if(vconsole->debug_tree)
+ printf(" VirtualVNode::render_projector input=%p output=%p cmodel=%d title=%s\n",
input, output, output->get_color_model(), track->title);
if(output)
input, output, output->get_color_model(), track->title);
if(output)
@@
-402,14
+397,14
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
//for(int j = 0; j < input->get_w() * 3 * 5; j++)
// input->get_rows()[0][j] = 255;
//for(int j = 0; j < input->get_w() * 3 * 5; j++)
// input->get_rows()[0][j] = 255;
-//
- if(out_x2 > out_x1 && out_y2 > out_y1 &&
+//
+ if(out_x2 > out_x1 && out_y2 > out_y1 &&
in_x2 > in_x1 && in_y2 > in_y1)
{
in_x2 > in_x1 && in_y2 > in_y1)
{
-
IntAuto *mode
_keyframe = 0;
- mode_keyframe =
+
Auto *auto
_keyframe = 0;
+ IntAuto *mode_keyframe =
(IntAuto*)track->automation->autos[AUTOMATION_MODE]->get_prev_auto(
(IntAuto*)track->automation->autos[AUTOMATION_MODE]->get_prev_auto(
- start_position_project, PLAY_FORWARD,
(Auto* &)mode
_keyframe);
+ start_position_project, PLAY_FORWARD,
auto
_keyframe);
int mode = mode_keyframe->value;
int mode = mode_keyframe->value;
@@
-425,24
+420,19
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
if(use_opengl)
{
if(use_opengl)
{
-// Nested EDL's overlay on a PBuffer instead of a screen
-// is_nested < 0 ? flatten alpha channel, last draw before driver render
- int is_nested = renderengine->is_nested ? 1 :
- vconsole->current_exit_node == 0 ? -1 : 0;
((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->overlay(
output, input,
in_x1, in_y1, in_x2, in_y2,
((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->overlay(
output, input,
in_x1, in_y1, in_x2, in_y2,
- out_x1, out_y1, out_x2, out_y2,
- alpha, mode,
- renderengine->get_edl(),
- is_nested);
+ out_x1, out_y1, out_x2, out_y2,
+ alpha, mode, renderengine->get_edl(),
+ renderengine->is_nested);
}
else
{
vrender->overlayer->overlay(output, input,
in_x1, in_y1, in_x2, in_y2,
}
else
{
vrender->overlayer->overlay(output, input,
in_x1, in_y1, in_x2, in_y2,
- out_x1, out_y1, out_x2, out_y2,
- alpha, mode,
+ out_x1, out_y1, out_x2, out_y2,
+ alpha, mode,
renderengine->get_edl()->session->interpolation_type);
}
}
renderengine->get_edl()->session->interpolation_type);
}
}