\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
-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}
\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.
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.
\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}}
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}}
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}
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}
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}
\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}
}}
\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}
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}
\func{void}{SetFont}{\param{const wxFont\& }{font}}
-Sets the current font for the DC.
-
-If the argument is wxNullFont, the current font is selected out of the device
-context, and the original font restored, allowing the current font to
-be destroyed safely.
+Sets the current font for the DC. It must be a valid font, in particular you
+should not pass {\tt wxNullFont} to this method.
See also \helpref{wxFont}{wxfont}.