[ 1574592 ] Documentation for wxBufferedDC improvements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -19,14 +19,14 @@ object is destroyed.
|
||||
It can be used in the same way as any other device context. wxBufferedDC itself
|
||||
typically replaces \helpref{wxClientDC}{wxclientdc}, if you want to use it in
|
||||
your \texttt{OnPaint()} handler, you should look at
|
||||
\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}.
|
||||
\helpref{wxBufferedPaintDC}{wxbufferedpaintdc} or \helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc}.
|
||||
|
||||
Please note that GTK+ 2.0 as well as OS X provide double buffering themselves
|
||||
natively so this class should normally not be used there.
|
||||
natively. wxBufferedDC is aware of this however, and will bypass the buffering
|
||||
unless explicit buffer bitmap is given.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxMemoryDC}{wxmemorydc}\\
|
||||
\helpref{wxDC}{wxdc}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
@@ -36,7 +36,10 @@ natively so this class should normally not be used there.
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDC}{wxdc}
|
||||
\helpref{wxDC}{wxdc},\rtfsp
|
||||
\helpref{wxMemoryDC}{wxmemorydc},\rtfsp
|
||||
\helpref{wxBufferedPaintDC}{wxbufferedpaintdc},\rtfsp
|
||||
\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc}
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
@@ -45,10 +48,10 @@ natively so this class should normally not be used there.
|
||||
|
||||
\func{}{wxBufferedDC}{\void}
|
||||
|
||||
\func{}{wxBufferedDC}{\param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
\func{}{wxBufferedDC}{\param{wxDC *}{dc}, \param{const wxBitmap\& }{buffer}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
\func{}{wxBufferedDC}{\param{wxWindow*}{window}, \param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
If you use the first, default, constructor, you must call one of the
|
||||
\helpref{Init}{wxbuffereddcinit} methods later in order to use the object.
|
||||
|
||||
@@ -61,6 +64,10 @@ must not be called after using them.
|
||||
flushed to this DC when this object is destroyed. You may pass NULL
|
||||
in order to just initialize the buffer, and not flush it.}
|
||||
|
||||
\docparam{window}{The window on which the dc paints. May be NULL, but
|
||||
you should normally specify this so that the DC can be aware whether the
|
||||
surface is natively double-buffered or not.}
|
||||
|
||||
\docparam{area}{The size of the bitmap to be used for buffering (this bitmap is
|
||||
created internally when it is not given explicitly).}
|
||||
|
||||
@@ -76,10 +83,10 @@ device context).}
|
||||
|
||||
\membersection{wxBufferedDC::Init}\label{wxbuffereddcinit}
|
||||
|
||||
\func{void}{Init}{\param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
\func{void}{Init}{\param{wxDC *}{dc}, \param{const wxBitmap\& }{buffer}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
\func{void}{Init}{\param{wxWindow*}{window}, \param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}}
|
||||
|
||||
These functions initialize the object created using the default constructor.
|
||||
Please see \helpref{constructors documentation}{wxbuffereddcctor} for details.
|
||||
|
||||
@@ -99,15 +106,16 @@ this object, if any.
|
||||
|
||||
This is a subclass of \helpref{wxBufferedDC}{wxbuffereddc} which can be used
|
||||
inside of an \texttt{OnPaint()} event handler. Just create an object of this class instead
|
||||
of \helpref{wxPaintDC}{wxpaintdc} and that's all you have to do to (mostly)
|
||||
avoid flicker. The only thing to watch out for is that if you are using this
|
||||
class together with \helpref{wxScrolledWindow}{wxscrolledwindow}, you probably
|
||||
of \helpref{wxPaintDC}{wxpaintdc} and make sure \helpref{wxWindow::SetBackgroundStyle}{wxwindowgetbackgroundstyle}
|
||||
is called with wxBG\_STYLE\_CUSTOM somewhere in the class initialization code, and that's all
|
||||
you have to do to (mostly) avoid flicker. The only thing to watch out for is that if you are
|
||||
using this class together with \helpref{wxScrolledWindow}{wxscrolledwindow}, you probably
|
||||
do \textbf{not} want to call \helpref{PrepareDC}{wxscrolledwindowpreparedc} on it as it
|
||||
already does this internally for the real underlying wxPaintDC.
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxMemoryDC}{wxmemorydc}\\
|
||||
\helpref{wxBufferedDC}{wxbuffereddc}\\
|
||||
\helpref{wxDC}{wxdc}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
@@ -115,6 +123,12 @@ already does this internally for the real underlying wxPaintDC.
|
||||
|
||||
<wx/dcbuffer.h>
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDC}{wxdc},\rtfsp
|
||||
\helpref{wxBufferedDC}{wxbuffereddc},\rtfsp
|
||||
\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc}
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
@@ -139,3 +153,43 @@ Copies everything drawn on the DC so far to the window associated with this
|
||||
object, using a \helpref{wxPaintDC}{wxpaintdc}.
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{\class{wxAutoBufferedPaintDC}}\label{wxautobufferedpaintdc}
|
||||
|
||||
This wxDC derivative can be used inside of an \texttt{OnPaint()} event handler to achieve
|
||||
double-buffered drawing. Just create an object of this class instead of \helpref{wxPaintDC}{wxpaintdc}
|
||||
and make sure \helpref{wxWindow::SetBackgroundStyle}{wxwindowgetbackgroundstyle} is called
|
||||
with wxBG\_STYLE\_CUSTOM somewhere in the class initialization code, and that's all you have
|
||||
to do to (mostly) avoid flicker.
|
||||
|
||||
The difference between \helpref{wxBufferedPaintDC}{wxbufferedpaintdc} and this class,
|
||||
is the lightweigthness - on platforms which have native double-buffering, wxAutoBufferedPaintDC is simply
|
||||
a typedef of wxPaintDC. Otherwise, it is a typedef of wxBufferedPaintDC.
|
||||
|
||||
|
||||
\wxheading{Derived from}
|
||||
|
||||
\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}\\
|
||||
\helpref{wxPaintDC}{wxpaintdc}\\
|
||||
\helpref{wxDC}{wxdc}\\
|
||||
\helpref{wxObject}{wxobject}
|
||||
|
||||
\wxheading{Include files}
|
||||
|
||||
<wx/dcbuffer.h>
|
||||
|
||||
\wxheading{See also}
|
||||
|
||||
\helpref{wxDC}{wxdc},\rtfsp
|
||||
\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}
|
||||
|
||||
|
||||
\latexignore{\rtfignore{\wxheading{Members}}}
|
||||
|
||||
\membersection{wxAutoBufferedPaintDC::wxAutoBufferedPaintDC}\label{wxautobufferedpaintdcctor}
|
||||
|
||||
\func{}{wxAutoBufferedPaintDC}{\param{wxWindow *}{window}}
|
||||
|
||||
Constructor. Pass a pointer to the window on which you wish to paint.
|
||||
|
||||
|
@@ -188,6 +188,7 @@ by passing different device contexts.
|
||||
|
||||
\twocolwidtha{6cm}
|
||||
\begin{twocollist}\itemsep=0pt
|
||||
\twocolitem{\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc}}{A helper device context for double buffered drawing inside \textbf{OnPaint}.}
|
||||
\twocolitem{\helpref{wxBufferedDC}{wxbuffereddc}}{A helper device context for double buffered drawing.}
|
||||
\twocolitem{\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}}{A helper device context for double buffered drawing inside \textbf{OnPaint}.}
|
||||
\twocolitem{\helpref{wxClientDC}{wxclientdc}}{A device context to access the client area outside {\bf OnPaint} events}
|
||||
|
Reference in New Issue
Block a user