ClassPackage: cgToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.2
Moderately revised from 8.1.
8.1 version

bitmap-pane

A class of window that provides automatic backing-store. When things are drawn on a bitmap-pane, the window stores everything that has been drawn in an unseen memory bitmap (which is similar to a bitmap-stream). When the window is later uncovered, the built-in redisplay-window method for bitmap-panes copies the stored image back to the visible window.

This built-in behavior refreshes the window more quickly than would a non-trivial custom redisplay-window method that redraws everything from scratch. It also allows the application to add to the drawing at any time rather than encapsulating the drawing code into a custom redisplay-window method as usual. (An application should never add a redisplay-window method to a bitmap-pane class.)

The drawback is that significant memory is required for the memory bitmap. Usually it is best to instead use a more general type of window such as a frame-window or non-refreshing-window, unless the quicker redisplay provided by the backing-store is needed. Creating a bitmap-pane or increasing its page size with set-page-size could signal an error of type memory-bitmap-not-created if there is not enough memory for the memory bitmap.

A special technique for switching a bitmap-pane to a completely new drawing very quickly is described under with-delayed-redraw, with an example. An alternate technique for quick redisplay is the double-buffered property (which works with arbitrary windows, rather than with bitmap-panes only).

Typically this class is instantiated indirectly by creating a bitmap-window, whose frame-with-single-child features are recommended when a toolbar or status-bar is to be added to the window. Otherwise, a title-bar and/or border could be added directly to a standalone bitmap-pane if these options are explicitly specified when calling make-window.

A diagram of window and widget classes is shown in Widget and window classes in cgide.htm.


Copyright (c) 1998-2016, Franz Inc. Oakland, CA., USA. All rights reserved.
This page has had moderate revisions compared to the 8.1 page.
Created 2016.6.21.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.2
Moderately revised from 8.1.
8.1 version