| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |
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-pane
s 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-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |