projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove v4l/lml/buz, add symbolic folders, more xlat update, yuyv fixes, v4l2 upgrades
[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 141a2a0c7b461197bf8ed528740538a0986ce681..f8c032a16715a02b0fb1ea4cb15a1a36b25e2bb4 100644
(file)
--- a/
cinelerra-5.1/cinelerra/virtualvnode.C
+++ b/
cinelerra-5.1/cinelerra/virtualvnode.C
@@
-353,17
+353,21
@@
void VirtualVNode::render_mask(VFrame *output_temp,
return;
}
return;
}
- if(use_opengl)
- {
+ if(use_opengl) {
+ 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(
((VDeviceX11*)((VirtualVConsole*)vconsole)->get_vdriver())->do_mask(
-
output_temp, start_position_projec
t,
-
keyframe_set,
keyframe, keyframe);
+
output_temp, start_position_project, keyframe_se
t,
+
keyframe, keyframe);
}
}
- else
- {
+ else {
// Revert to software
masker->do_mask(output_temp, start_position_project,
// Revert to software
masker->do_mask(output_temp, start_position_project,
- keyframe_set, keyframe, keyframe);
+
keyframe_set, keyframe, keyframe);
}
}
}
}
@@
-387,8
+391,9
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
if(output)
{
if(output)
{
- ((VTrack*)track)->calculate_output_transfer(start_position_project,
- renderengine->command->get_direction(),
+ int direction = renderengine->command->get_direction();
+ ((VTrack*)track)->calculate_output_transfer(
+ start_position_project, direction,
in_x1, in_y1, in_x2, in_y2,
out_x1, out_y1, out_x2, out_y2);
in_x1, in_y1, in_x2, in_y2,
out_x1, out_y1, out_x2, out_y2);
@@
-401,11
+406,10
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
if(out_x2 > out_x1 && out_y2 > out_y1 &&
in_x2 > in_x1 && in_y2 > in_y1)
{
if(out_x2 > out_x1 && out_y2 > out_y1 &&
in_x2 > in_x1 && in_y2 > in_y1)
{
- int direction = renderengine->command->get_direction();
- 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,
direction, (Auto* &)mode
_keyframe);
+ start_position_project,
PLAY_FORWARD, auto
_keyframe);
int mode = mode_keyframe->value;
int mode = mode_keyframe->value;
@@
-414,7
+418,7
@@
int VirtualVNode::render_projector(VFrame *input, VFrame *output,
// can do dissolves, although a blend equation is still required for 3 component
// colormodels since fractional translation requires blending.
// can do dissolves, although a blend equation is still required for 3 component
// colormodels since fractional translation requires blending.
-// If this is the first playable video track and the mode_keyframe is "src
_over
"
+// If this is the first playable video track and the mode_keyframe is "src"
if(mode == TRANSFER_NORMAL &&
vconsole->current_exit_node == vconsole->total_exit_nodes - 1)
mode = TRANSFER_SRC;
if(mode == TRANSFER_NORMAL &&
vconsole->current_exit_node == vconsole->total_exit_nodes - 1)
mode = TRANSFER_SRC;