projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
splashgui text clr, faders/speed keyframe popup slider rework, reticle rework
[goodguy/history.git]
/
cinelerra-5.1
/
cinelerra
/
canvas.C
diff --git
a/cinelerra-5.1/cinelerra/canvas.C
b/cinelerra-5.1/cinelerra/canvas.C
index 9f3ddc3b6e7d6cac46b5520164eda2419e5603a0..2a478d41a93c5ab04b3902001ee04d3870caf794 100644
(file)
--- a/
cinelerra-5.1/cinelerra/canvas.C
+++ b/
cinelerra-5.1/cinelerra/canvas.C
@@
-739,23
+739,8
@@
void Canvas::create_canvas()
wdw->stop_video();
}
wdw->stop_video();
}
- int x = subwindow->get_screen_x(0, -1);
- int y = subwindow->get_screen_y(0, -1);
- int w = root_w;
- int h = root_h;
- if( mwindow->screens == 1 && root_w > scr_w0 ) {
- // Xinerama
- if( subwindow->get_x() >= scr_w0 ) {
- // assumes right side is the big one
- w = root_w - scr_w0;
- h = root_h;
- }
- else {
- // use same aspect ratio to compute left height
- w = scr_w0;
- h = (w*root_h) / (root_w-scr_w0);
- }
- }
+ int x, y, w, h;
+ wdw->get_fullscreen_geometry(x, y, w, h);
if( canvas_fullscreen )
{
if( canvas_fullscreen )
{
@@
-788,6
+773,10
@@
void Canvas::create_canvas()
if(video_on) get_canvas()->start_video();
if(video_on) get_canvas()->start_video();
+ get_canvas()->lock_window("Canvas::create_canvas 2");
+ get_canvas()->focus();
+ get_canvas()->unlock_window();
+
unlock_canvas();
}
unlock_canvas();
}
@@
-823,7
+812,6
@@
int Canvas::button_press_event_base(BC_WindowBase *caller)
int Canvas::keypress_event(BC_WindowBase *caller)
{
int Canvas::keypress_event(BC_WindowBase *caller)
{
- int caller_is_canvas = (caller == get_canvas());
int key = caller->get_keypress();
switch( key ) {
case 'f':
int key = caller->get_keypress();
switch( key ) {
case 'f':
@@
-832,13
+820,13
@@
int Canvas::keypress_event(BC_WindowBase *caller)
stop_fullscreen();
else
start_fullscreen();
stop_fullscreen();
else
start_fullscreen();
-
if(!caller_is_canvas)
caller->lock_window("Canvas::keypress_event 1");
+ caller->lock_window("Canvas::keypress_event 1");
break;
case ESC:
caller->unlock_window();
if(get_fullscreen())
stop_fullscreen();
break;
case ESC:
caller->unlock_window();
if(get_fullscreen())
stop_fullscreen();
-
if(!caller_is_canvas)
caller->lock_window("Canvas::keypress_event 2");
+ caller->lock_window("Canvas::keypress_event 2");
break;
default:
return 0;
break;
default:
return 0;
@@
-851,15
+839,17
@@
void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
int best_color_model = output_frame->get_color_model();
int use_opengl =
device->out_config->driver == PLAYBACK_X11_GL &&
int best_color_model = output_frame->get_color_model();
int use_opengl =
device->out_config->driver == PLAYBACK_X11_GL &&
- output_frame->get_opengl_state()
== VFrame::SCREEN
;
+ output_frame->get_opengl_state()
!= VFrame::RAM
;
// OpenGL does YUV->RGB in the compositing step
if( use_opengl )
best_color_model = BC_RGB888;
// OpenGL does YUV->RGB in the compositing step
if( use_opengl )
best_color_model = BC_RGB888;
+ int out_w = output_frame->get_w();
+ int out_h = output_frame->get_h();
if( refresh_frame &&
if( refresh_frame &&
- (refresh_frame->get_w() !=
device->
out_w ||
- refresh_frame->get_h() !=
device->
out_h ||
+ (refresh_frame->get_w() != out_w ||
+ refresh_frame->get_h() != out_h ||
refresh_frame->get_color_model() != best_color_model ) ) {
// x11 direct render uses BC_BGR8888, use tranfer_from to remap
delete refresh_frame; refresh_frame = 0;
refresh_frame->get_color_model() != best_color_model ) ) {
// x11 direct render uses BC_BGR8888, use tranfer_from to remap
delete refresh_frame; refresh_frame = 0;
@@
-867,7
+857,7
@@
void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
if( !refresh_frame ) {
refresh_frame =
if( !refresh_frame ) {
refresh_frame =
- new VFrame(
device->out_w, device->
out_h, best_color_model);
+ new VFrame(
out_w,
out_h, best_color_model);
}
if( use_opengl ) {
}
if( use_opengl ) {
@@
-879,10
+869,20
@@
void Canvas::update_refresh(VideoDevice *device, VFrame *output_frame)
get_canvas()->lock_window(" Canvas::output_refresh");
}
else
get_canvas()->lock_window(" Canvas::output_refresh");
}
else
- refresh_frame->
transfer
_from(output_frame);
+ refresh_frame->
copy
_from(output_frame);
}
}
+void Canvas::clear(int flush)
+{
+ if( refresh_frame )
+ refresh_frame->clear_frame();
+ BC_WindowBase *wdw = get_canvas();
+ if( !wdw ) return;
+ wdw->set_bg_color(BLACK);
+ wdw->clear_box(0,0, wdw->get_w(), wdw->get_h());
+ wdw->flash(flush);
+}
@@
-902,17
+902,17
@@
CanvasOutput::~CanvasOutput()
int CanvasOutput::cursor_leave_event()
{
int CanvasOutput::cursor_leave_event()
{
- return canvas->cursor_leave_event_base(
this
);
+ return canvas->cursor_leave_event_base(
canvas->get_canvas()
);
}
int CanvasOutput::cursor_enter_event()
{
}
int CanvasOutput::cursor_enter_event()
{
- return canvas->cursor_enter_event_base(
this
);
+ return canvas->cursor_enter_event_base(
canvas->get_canvas()
);
}
int CanvasOutput::button_press_event()
{
}
int CanvasOutput::button_press_event()
{
- return canvas->button_press_event_base(
this
);
+ return canvas->button_press_event_base(
canvas->get_canvas()
);
}
int CanvasOutput::button_release_event()
}
int CanvasOutput::button_release_event()
@@
-927,31
+927,13
@@
int CanvasOutput::cursor_motion_event()
int CanvasOutput::keypress_event()
{
int CanvasOutput::keypress_event()
{
- return canvas->keypress_event(
this
);
+ return canvas->keypress_event(
canvas->get_canvas()
);
}
}
-
-
-
-
-
-
-
-
-
-
-CanvasFullScreen::CanvasFullScreen(Canvas *canvas,
- int w,
- int h)
- : BC_FullScreen(canvas->subwindow,
- w,
- h,
- BLACK,
- 0,
- 0,
- 0)
+CanvasFullScreen::CanvasFullScreen(Canvas *canvas, int w, int h)
+ : BC_FullScreen(canvas->subwindow, w, h, BLACK, 0, 0, 0)
{
this->canvas = canvas;
}
{
this->canvas = canvas;
}
@@
-961,32
+943,9
@@
CanvasFullScreen::~CanvasFullScreen()
}
}
-
-
-
-
-
-
-
-
-
-
-
-CanvasXScroll::CanvasXScroll(EDL *edl,
- Canvas *canvas,
- int x,
- int y,
- int length,
- int position,
- int handle_length,
- int pixels)
- : BC_ScrollBar(x,
- y,
- SCROLL_HORIZ,
- pixels,
- length,
- position,
- handle_length)
+CanvasXScroll::CanvasXScroll(EDL *edl, Canvas *canvas, int x, int y,
+ int length, int position, int handle_length, int pixels)
+ : BC_ScrollBar(x, y, SCROLL_HORIZ, pixels, length, position, handle_length)
{
this->canvas = canvas;
}
{
this->canvas = canvas;
}
@@
-1004,25
+963,9
@@
int CanvasXScroll::handle_event()
}
}
-
-
-
-
-CanvasYScroll::CanvasYScroll(EDL *edl,
- Canvas *canvas,
- int x,
- int y,
- int length,
- int position,
- int handle_length,
- int pixels)
- : BC_ScrollBar(x,
- y,
- SCROLL_VERT,
- pixels,
- length,
- position,
- handle_length)
+CanvasYScroll::CanvasYScroll(EDL *edl, Canvas *canvas, int x, int y,
+ int length, int position, int handle_length, int pixels)
+ : BC_ScrollBar(x, y, SCROLL_VERT, pixels, length, position, handle_length)
{
this->canvas = canvas;
}
{
this->canvas = canvas;
}
@@
-1040,10
+983,6
@@
int CanvasYScroll::handle_event()
}
}
-
-
-
-
CanvasFullScreenPopup::CanvasFullScreenPopup(Canvas *canvas)
: BC_PopupMenu(0, 0, 0, "", 0)
{
CanvasFullScreenPopup::CanvasFullScreenPopup(Canvas *canvas)
: BC_PopupMenu(0, 0, 0, "", 0)
{
@@
-1078,12
+1017,6
@@
int CanvasSubWindowItem::handle_event()
}
}
-
-
-
-
-
-
CanvasPopup::CanvasPopup(Canvas *canvas)
: BC_PopupMenu(0, 0, 0, "", 0)
{
CanvasPopup::CanvasPopup(Canvas *canvas)
: BC_PopupMenu(0, 0, 0, "", 0)
{
@@
-1159,7
+1092,7
@@
int CanvasPopupSize::handle_event()
CanvasPopupResetCamera::CanvasPopupResetCamera(Canvas *canvas)
CanvasPopupResetCamera::CanvasPopupResetCamera(Canvas *canvas)
- : BC_MenuItem(_("Reset camera"))
+ : BC_MenuItem(_("Reset camera")
, "F11", KEY_F11
)
{
this->canvas = canvas;
}
{
this->canvas = canvas;
}
@@
-1172,7
+1105,7
@@
int CanvasPopupResetCamera::handle_event()
CanvasPopupResetProjector::CanvasPopupResetProjector(Canvas *canvas)
CanvasPopupResetProjector::CanvasPopupResetProjector(Canvas *canvas)
- : BC_MenuItem(_("Reset projector"))
+ : BC_MenuItem(_("Reset projector")
, "F12", KEY_F12
)
{
this->canvas = canvas;
}
{
this->canvas = canvas;
}