class Fl_Overlay_Window : public Fl_Double_Window
This window provides double buffering and also the ability to draw the
"overlay" which is another picture placed on top of the main image.
The overlay is designed to be a rapidly-changing but simple graphic
such as a mouse selection box.
This will use overlay hardware if available on your X server (look
for a SERVER_OVERLAY_VISUALS
property of the root window).
If no hardware support is found the overlay is simulated by drawing
directly into the on-screen copy of the double-buffered window, and
"erased" by copying the backbuffer over it again. This means the
overlay will blink if you change the image in the window.
To allow your program to be portable to machines with overlay
hardware, your draw_overlay() method should limit the colors it uses
to FL_BLACK (0), FL_WHITE (7), and FL_RED (1), and it may be best to
assumme these could all be the same, arbitrary, color.
Fl_Overlay_Window(int W, int H, const char *l=0);
Fl_Overlay_Window(int X, int Y, int W, int H, const char *l);
Exactly the same constructors are provided as for Fl_Window.
virtual void draw_overlay() = 0;
You must subclass Fl_Overlay_Window and provide this method. It is
just like a draw() method, except it draws the overlay. The overlay
will have already been "cleared" when this is called. You can use any
of the routines described in <FL/fl_draw.H>, or X
directly.
void redraw_overlay();
Call this to indicate that the overlay data has changed and needs to
be redrawn. The overlay will be clear until the first time this is
called, so if you want an initial display you must call this after
calling show().