projects
/
goodguy
/
history.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2a37de8
)
rework transition picon drawing
author
Good Guy
<good1.2guy@gmail.com>
Fri, 28 Sep 2018 00:39:09 +0000
(18:39 -0600)
committer
Good Guy
<good1.2guy@gmail.com>
Fri, 28 Sep 2018 00:39:09 +0000
(18:39 -0600)
cinelerra-5.1/cinelerra/trackcanvas.C
patch
|
blob
|
history
diff --git
a/cinelerra-5.1/cinelerra/trackcanvas.C
b/cinelerra-5.1/cinelerra/trackcanvas.C
index 061545bac18728ba5f25be967788c789a304367f..ab558a5c705a8ed44cf705ad44fa6afc2fec3ca4 100644
(file)
--- a/
cinelerra-5.1/cinelerra/trackcanvas.C
+++ b/
cinelerra-5.1/cinelerra/trackcanvas.C
@@
-1392,11
+1392,18
@@
void TrackCanvas::get_transition_coords(Edit *edit,
int64_t &x, int64_t &y, int64_t &w, int64_t &h)
{
int transition_w = 30, transition_h = 30;
int64_t &x, int64_t &y, int64_t &w, int64_t &h)
{
int transition_w = 30, transition_h = 30;
-
- if( edit->track->show_titles() )
- y += mwindow->theme->get_image("title_bg_data")->get_h();
- if( edit->track->show_assets() )
- y += resource_h() / 2;
+ int has_titles = edit->track->show_titles();
+ int has_assets = edit->track->show_assets();
+ int title_bg_h = mwindow->theme->get_image("title_bg_data")->get_h();
+ int asset_h2 = resource_h() / 2;
+
+ int iy = has_titles ?
+ ( has_assets ? title_bg_h + asset_h2 : title_bg_h/2 ) :
+ ( has_assets ? asset_h2 : 0) ;
+ int title_h2 = mwindow->theme->title_h / 2;
+ if( iy < title_h2 )
+ iy = title_h2;
+ y += iy;
x -= transition_w / 2;
y -= transition_h / 2;
x -= transition_w / 2;
y -= transition_h / 2;
@@
-1837,32
+1844,32
@@
void TrackCanvas::draw_transitions()
for(Edit *edit = track->edits->first; edit; edit = edit->next) {
if(!edit->transition) continue;
edit_dimensions(edit, x, y, w, h);
for(Edit *edit = track->edits->first; edit; edit = edit->next) {
if(!edit->transition) continue;
edit_dimensions(edit, x, y, w, h);
- int strip_x = x, strip_y = y;
- if( track->show_titles() )
- strip_y += mwindow->theme->get_image("title_bg_data")->get_h();
+ int strip_x = x;
get_transition_coords(edit, x, y, w, h);
get_transition_coords(edit, x, y, w, h);
+ int strip_h = mwindow->theme->get_image("plugin_bg_data")->get_h();
+ int track_y = edit->edits->track->y_pixel;
+ int strip_y = y - strip_h;
+ if( strip_y < track_y ) strip_y = track_y;
+
int strip_w = Units::round(edit->track->from_units(edit->transition->length) *
mwindow->edl->session->sample_rate / mwindow->edl->local_session->zoom_sample);
if( MWindowGUI::visible(x, x + w, 0, get_w()) &&
int strip_w = Units::round(edit->track->from_units(edit->transition->length) *
mwindow->edl->session->sample_rate / mwindow->edl->local_session->zoom_sample);
if( MWindowGUI::visible(x, x + w, 0, get_w()) &&
- MWindowGUI::visible(y, y + h, 0, get_h()) )
- {
+ MWindowGUI::visible(y, y + h, 0, get_h()) ) {
PluginServer *server = mwindow->scan_plugindb(edit->transition->title,
track->data_type);
if( !server ) continue;
VFrame *picon = server->get_picon();
if( !picon ) continue;
PluginServer *server = mwindow->scan_plugindb(edit->transition->title,
track->data_type);
if( !server ) continue;
VFrame *picon = server->get_picon();
if( !picon ) continue;
- draw_vframe(picon, x, y, w, h, 0, 0, picon->get_w(), picon->get_h());
+ int picon_w = picon->get_w(), picon_h = picon->get_h();
+ int track_h = edit->track->vertical_span(mwindow->theme);
+ if( picon_h > track_h ) picon_h = track_h;
+ draw_vframe(picon, x, y, w, h, 0, 0, picon_w, picon_h);
}
if(MWindowGUI::visible(strip_x, strip_x + strip_w, 0, get_w()) &&
}
if(MWindowGUI::visible(strip_x, strip_x + strip_w, 0, get_w()) &&
- MWindowGUI::visible(strip_y, strip_y + h, 0, get_h()))
- {
+ MWindowGUI::visible(strip_y, strip_y + h, 0, get_h())) {
int x = strip_x, w = strip_w;
int x = strip_x, w = strip_w;
- if(x < 0)
- {
- w -= -x;
- x = 0;
- }
- if(w + x > get_w()) w -= (w + x) - get_w();
+ if( x < 0 ) { w -= -x; x = 0; }
+ if( w + x > get_w() ) w -= (w + x) - get_w();
draw_3segmenth( x, strip_y, w, strip_x, strip_w,
mwindow->theme->get_image("plugin_bg_data"), 0);
draw_3segmenth( x, strip_y, w, strip_x, strip_w,
mwindow->theme->get_image("plugin_bg_data"), 0);