X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcanvas.h;h=53f6ee8b1b4f9672c92c41495ca3f4a78d94a677;hb=cbe947d378de6eaa11f38ec58b4f71c5c47f72bc;hp=1a65426064bbecc2da026e18dedaf72f97538bd2;hpb=47f71d004db08fb289428240fb87ce97c64382d2;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/canvas.h b/cinelerra-5.1/cinelerra/canvas.h index 1a654260..53f6ee8b 100644 --- a/cinelerra-5.1/cinelerra/canvas.h +++ b/cinelerra-5.1/cinelerra/canvas.h @@ -44,11 +44,9 @@ public: void calculate_sizes(float aspect_ratio, int output_w, int output_h, float zoom, int &w, int &h); -// Lock access to the canvas pointer. -// Must be called before get_canvas or locking the canvas. - void lock_canvas(const char *location); +// Lock canvas pointer and window + BC_WindowBase *lock_canvas(const char *loc); void unlock_canvas(); - int is_locked(); void create_objects(EDL *edl); void set_cursor(int cursor); @@ -87,8 +85,9 @@ public: virtual void draw_overlays() {} virtual void toggle_controls() {} virtual int get_cwindow_controls() { return 0; } - virtual int get_fullscreen() { return 0; } - virtual void set_fullscreen(int value) {} + virtual int get_fullscreen(); + virtual int get_clear_color() { return 0; } + virtual void set_fullscreen(int value); int cursor_leave_event_base(BC_WindowBase *caller); int cursor_enter_event_base(BC_WindowBase *caller); @@ -134,7 +133,7 @@ public: void update_refresh(VideoDevice *device, VFrame *output_frame); // Redraws the refresh_frame virtual void draw_refresh(int flush = 1) {}; - virtual void clear(int flush=1); + virtual void clear(int flash=1); // Get top left offset of canvas relative to output. // Normally negative. Can be positive if output is smaller than canvas. @@ -173,6 +172,9 @@ public: int get_buttonpress(); // Gets whatever video surface is enabled BC_WindowBase* get_canvas(); +// draw_refresh, with/without locks + int refresh(int flush); + int redraw(int flush); // The owner of the canvas BC_WindowBase *subwindow; @@ -200,6 +202,7 @@ public: // For cases where video is not enabled on the canvas but processing is // occurring for a single frame, this causes the status to update. int is_processing; + int is_fullscreen; // Cursor is inside video surface int cursor_inside; int view_x; @@ -214,7 +217,8 @@ public: private: void get_scrollbars(EDL *edl, int &canvas_x, int &canvas_y, int &canvas_w, int &canvas_h); - Mutex *canvas_lock; +// Lock access to the canvas pointer. + Condition *canvas_lock; };