Package wx :: Class BufferedDC
[frames | no frames]

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

Method Details

__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.


Property Details

thisown

The membership flag


Generated by Epydoc 2.1.20050511.rpd on Thu Mar 22 12:07:09 2007 http://epydoc.sf.net