]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/dc.tex
wxFont can now raelly use the native fonts
[wxWidgets.git] / docs / latex / wx / dc.tex
index a090adaae7d337ebd5109cbbfc97da1d2a21d404..5bb946f363f2b0ea638dbcb09bb1d511e0a5aa6c 100644 (file)
@@ -61,11 +61,11 @@ released for each drawing operation.
 
 \func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
   \param{wxDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{int}{ logicalFunc = wxCOPY},
 
 \func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
   \param{wxDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{int}{ logicalFunc = wxCOPY},
-  \param{bool }{useMask = FALSE}}
+  \param{bool }{useMask = FALSE}, \param{wxCoord}{ xsrcMask = -1}, \param{wxCoord}{ ysrcMask = -1}}
 
 Copy from a source DC to this DC, specifying the destination
 
 Copy from a source DC to this DC, specifying the destination
-coordinates, size of area to copy, source DC, source coordinates, and
-logical function.
+coordinates, size of area to copy, source DC, source coordinates,
+logical function, whether to use a bitmap mask, and mask source position.
 
 \wxheading{Parameters}
 
 
 \wxheading{Parameters}
 
@@ -86,7 +86,7 @@ logical function.
 \docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.}
 
 \docparam{useMask}{If TRUE, Blit does a transparent blit using the mask that is associated with the bitmap
 \docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.}
 
 \docparam{useMask}{If TRUE, Blit does a transparent blit using the mask that is associated with the bitmap
-selected into the source device context. The Windows implementation does the following:
+selected into the source device context. The Windows implementation does the following if MaskBlt cannot be used:
 
 \begin{enumerate}
 \item Creates a temporary bitmap and copies the destination area into it.
 
 \begin{enumerate}
 \item Creates a temporary bitmap and copies the destination area into it.
@@ -103,8 +103,21 @@ and the background colour set to WHITE.
 
 This sequence of operations ensures that the source's transparent area need not be black,
 and logical functions are supported.
 
 This sequence of operations ensures that the source's transparent area need not be black,
 and logical functions are supported.
+
+{\bf Note:} on Windows, blitting with masks can be speeded up considerably by compiling
+wxWindows with the wxUSE\_DC\_CACHE option enabled. You can also influence whether MaskBlt
+or the explicit mask blitting code above is used, by using \helpref{wxSystemOptions}{wxsystemoptions} and
+setting the {\bf no-maskblt} option to 1.
+
 }
 
 }
 
+\docparam{xsrcMask}{Source x position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc
+will be assumed for the mask source position. Currently only implemented on Windows.}
+
+\docparam{ysrcMask}{Source y position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc
+will be assumed for the mask source position. Currently only implemented on Windows.}
+
+
 \wxheading{Remarks}
 
 There is partial support for Blit in wxPostScriptDC, under X.
 \wxheading{Remarks}
 
 There is partial support for Blit in wxPostScriptDC, under X.
@@ -115,6 +128,24 @@ See \helpref{wxMemoryDC}{wxmemorydc} for typical usage.
 
 \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask}
 
 
 \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask}
 
+\begin{comment}
+\membersection{wxDC::CacheEnabled}\label{wxdccacheenabled}
+
+\func{static bool}{CacheEnabled}{\void}
+
+On supported platforms (currently only Windows), returns TRUE
+if the DC cache is enabled. The DC cache
+can speed up the \helpref{Blit}{wxdcblit} operation when
+drawing a large number of masked bitmaps.
+
+If using the cache functions in your code, please test for the
+wxUSE\_DC\_CACHEING preprocessor symbol for portability.
+
+\wxheading{See also}
+
+\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::ClearCache}
+\end{comment}
+
 \membersection{wxDC::CalcBoundingBox}\label{wxdccalcboundingbox}
 
 \func{void}{CalcBoundingBox}{\param{wxCoord }{x}, \param{wxCoord }{y}}
 \membersection{wxDC::CalcBoundingBox}\label{wxdccalcboundingbox}
 
 \func{void}{CalcBoundingBox}{\param{wxCoord }{x}, \param{wxCoord }{y}}
@@ -133,6 +164,26 @@ Adds the specified point to the bounding box which can be retrieved with
 
 Clears the device context using the current background brush.
 
 
 Clears the device context using the current background brush.
 
+\begin{comment}
+\membersection{wxDC::ClearCache}\label{wxdcclearcache}
+
+\func{static void}{ClearCache}{\void}
+
+On supported platforms (currently only Windows), clears
+the contents of the DC cache (one bitmap and two Windows device contexts). The DC cache
+can speed up the \helpref{Blit}{wxdcblit} operation when
+drawing a large number of masked bitmaps. You should
+call ClearCache at the end of length DC operations if you wish to only use
+the cache transiently; you should also call it as your application exits.
+
+If using the cache functions in your code, please test for the
+wxUSE\_DC\_CACHEING preprocessor symbol for portability.
+
+\wxheading{See also}
+
+\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::CacheEnabled}
+\end{comment}
+
 \membersection{wxDC::CrossHair}\label{wxdccrosshair}
 
 \func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
 \membersection{wxDC::CrossHair}\label{wxdccrosshair}
 
 \func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
@@ -313,6 +364,11 @@ for filling the shape.
 
 Draws the text rotated by {\it angle} degrees.
 
 
 Draws the text rotated by {\it angle} degrees.
 
+{\bf NB:} Under Win9x only TrueType fonts can be drawn by this function. In
+particular, a font different from {\tt wxNORMAL\_FONT} should be used as the
+latter is not a TrueType font. {\tt wxSWISS\_FONT} is an example of a font
+which is.
+
 \wxheading{See also}
 
 \helpref{DrawText}{wxdcdrawtext}
 \wxheading{See also}
 
 \helpref{DrawText}{wxdcdrawtext}
@@ -370,6 +426,23 @@ text more precisely.
 but it is ignored by wxMSW. Thus, you should avoid using logical functions
 with this function in portable programs.
 
 but it is ignored by wxMSW. Thus, you should avoid using logical functions
 with this function in portable programs.
 
+\begin{comment}
+\membersection{wxDC::EnableCache}\label{wxdcenablecache}
+
+\func{static void}{EnableCache}{\param{bool}{ enableCache}}
+
+On supported platforms (currently only Windows), enables the DC cache
+which can speed up the \helpref{Blit}{wxdcblit} operation when
+drawing a large number of masked bitmaps.
+
+If using the cache functions in your code, please test for the
+wxUSE\_DC\_CACHEING preprocessor symbol for portability.
+
+\wxheading{See also}
+
+\helpref{wxDC::CacheEnabled}{wxdccacheenabled}, \helpref{wxDC::ClearCache}
+\end{comment}
+
 \membersection{wxDC::EndDoc}\label{wxdcenddoc}
 
 \func{void}{EndDoc}{\void}
 \membersection{wxDC::EndDoc}\label{wxdcenddoc}
 
 \func{void}{EndDoc}{\void}
@@ -452,7 +525,7 @@ Gets the rectangle surrounding the current clipping region.
 rectangle are returned as a tuple.}
 
 \perlnote{This method takes no arguments and returns a four element list
 rectangle are returned as a tuple.}
 
 \perlnote{This method takes no arguments and returns a four element list
-{\tt ( \$x, \$y, \$width, \$height )}}
+{\tt ( x, y, width, height )}}
 
 \membersection{wxDC::GetFont}\label{wxdcgetfont}
 
 
 \membersection{wxDC::GetFont}\label{wxdcgetfont}
 
@@ -536,7 +609,7 @@ implements the following methods:\par
 \indented{2cm}{\begin{twocollist}
 \twocolitem{{\bf GetSize()}}{Returns a Wx::Size}
 \twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list
 \indented{2cm}{\begin{twocollist}
 \twocolitem{{\bf GetSize()}}{Returns a Wx::Size}
 \twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list
-  {\tt ( \$width, \$height )}}
+  {\tt ( width, height )}}
 \end{twocollist}
 }}
 
 \end{twocollist}
 }}
 
@@ -577,7 +650,7 @@ See also \helpref{wxFont}{wxfont}, \helpref{wxDC::SetFont}{wxdcsetfont}.
 
 \perlnote{In wxPerl this method is implemented as 
   {\bf GetTextExtent( string, font = undef )} returning a four element
 
 \perlnote{In wxPerl this method is implemented as 
   {\bf GetTextExtent( string, font = undef )} returning a four element
-  array {\tt ( \$width, \$height, \$descent, \$externalLeading )}
+  array {\tt ( width, height, descent, externalLeading )}
 }
 
 \membersection{wxDC::GetTextForeground}\label{wxdcgettextforeground}
 }
 
 \membersection{wxDC::GetTextForeground}\label{wxdcgettextforeground}
@@ -596,7 +669,7 @@ Gets the current text foreground colour (see \helpref{wxDC::SetTextForeground}{w
 Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetuserscale}).
 
 \perlnote{In wxPerl this method takes no arguments and returna a two element
 Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetuserscale}).
 
 \perlnote{In wxPerl this method takes no arguments and returna a two element
- array {\tt ( \$x, \$y )}}
+ array {\tt ( x, y )}}
 
 \membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex}
 
 
 \membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex}
 
@@ -870,3 +943,38 @@ Message is a message to show whilst printing.
 
 Starts a document page (only relevant when outputting to a printer).
 
 
 Starts a document page (only relevant when outputting to a printer).
 
+\section{\class{wxDCClipper}}\label{wxdcclipper}
+
+This is a small helper class which sets the specified to its constructor
+clipping region and then automatically destroyes it in its destructor. Using
+it ensures that unwanted clipping region is not left set on the DC.
+
+\wxheading{Derived from}
+
+No base class
+
+\wxheading{Include files}
+
+<wx/dc.h>
+
+\wxheading{See also}
+
+\helpref{wxDC}{wxdc}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxDCClipper::wxDCClipper}
+
+\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{wxCoord }{x},\param{wxCoord }{y},\param{wxCoord }{w},\param{wxCoord }{h},}
+
+\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{const wxRect\&}{ rect}}
+
+Constructor: sets the the clipping region for the given device context to the
+specified rectangle.
+
+\membersection{wxDCClipper::\destruct{wxDCClipper}}
+
+\func{}{\destruct{wxDCClipper}}{\void}
+
+Destructor: destroyes the clipping region set in the constructor.
+