Type BufferedDC
object
--+
|
Object
--+
|
DC
--+
|
WindowDC
--+
|
MemoryDC
--+
|
BufferedDC
- Known Subclasses:
-
BufferedPaintDC
This simple class provides a simple way to avoid flicker: when drawing
on it, everything is in fact first drawn on an in-memory buffer (a
wx.Bitmap
) and then copied to the screen only once, when this object
is destroyed. You can either provide a buffer bitmap yourself, and
reuse it the next time something needs painted, or you can let the
buffered DC create and provide a buffer bitmap itself.
Buffered DCs can be used in the same way as any other device context.
wx.BufferedDC itself typically replaces wx.ClientDC
, if you want to
use it in your EVT_PAINT handler, you should look at
wx.BufferedPaintDC
. You can also use a wx.BufferedDC without
providing a target DC. In this case the operations done on the dc
will only be written to the buffer bitmap and not to any window, so
you will want to have provided the buffer bitmap and then reuse it
when it needs painted to the window.
Please note that GTK+ 2.0 and OS X provide double buffering themselves
natively. You may want to use wx.Window.IsDoubleBuffered
to
determine whether you need to use buffering or not, or use
wx.AutoBufferedPaintDC
to avoid needless double buffering on systems
that already do it automatically.
Method Summary |
BufferedDC |
__init__ (self,
dc,
buffer,
style)
__init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC |
|
__del__(self)
|
int |
GetStyle(self)
|
|
SetStyle(self,
style)
|
|
UnMask (self)
Blits the buffer to the dc, and detaches the dc from the buffer (so it
can be effectively used once only). |
Property Summary |
|
thisown : The membership flag |
__init__(self,
dc,
buffer=NullBitmap,
style=BUFFER_CLIENT_AREA)
(Constructor)
__init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC
Constructs a buffered DC.
-
- Parameters:
dc -
The underlying DC: everything drawn to this object will
be flushed to this DC when this object is destroyed. You may
pass None in order to just initialize the buffer, and not
flush it.
(type=DC)
buffer -
If a wx.Size object is passed as the 2nd arg then
it is the size of the bitmap that will be created internally
and used for an implicit buffer. If the 2nd arg is a
wx.Bitmap then it is the explicit buffer that will be
used. Using an explicit buffer is the most efficient solution
as the bitmap doesn't have to be recreated each time but it
also requires more memory as the bitmap is never freed. The
bitmap should have appropriate size, anything drawn outside of
its bounds is clipped. If wx.NullBitmap is used then a new
buffer will be allocated that is the same size as the dc.
(type=Bitmap)
style -
The style parameter indicates whether the supplied buffer is
intended to cover the entire virtual size of a wx.ScrolledWindow or
if it only covers the client area. Acceptable values are
wx.BUFFER_VIRTUAL_AREA and wx.BUFFER_CLIENT_AREA.
(type=int)
- Returns:
-
BufferedDC
- Overrides:
wx.MemoryDC.__init__
|
UnMask(self)
Blits the buffer to the dc, and detaches the dc from the buffer (so it
can be effectively used once only). This is usually only called in
the destructor.
-
|
thisown
The membership flag
-
|