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). Currently this has only been tested on SGI equipment. fl_draw_image() does not work in the overlay hardware.

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.

Fl_Overlay_Window::Fl_Overlay_Window(int W, int H, const char *l=0);
Fl_Overlay_Window::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 Fl_Overlay_Window::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 (use fl_xpixel() to get X colors).

void Fl_Overlay_Window::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().