blob: 522ec4363dff1af4ea35a54836da3db58452fccc [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Skia: SkXfermode Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>SkXfermode Class Reference</h1><!-- doxytag: class="SkXfermode" --><!-- doxytag: inherits="SkFlattenable" -->
<p><code>#include &lt;<a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>&gt;</code></p>
<p>Inherits <a class="el" href="class_sk_flattenable.html">SkFlattenable</a>.</p>
<p>Inherited by <a class="el" href="class_sk_avoid_xfermode.html">SkAvoidXfermode</a>, <a class="el" href="class_sk_pixel_xor_xfermode.html">SkPixelXorXfermode</a>, and <a class="el" href="class_sk_proc_xfermode.html">SkProcXfermode</a>.</p>
<div class="dynheader">
Collaboration diagram for SkXfermode:</div>
<div class="dynsection">
<div class="center"><img src="class_sk_xfermode__coll__graph.png" border="0" usemap="#_sk_xfermode_coll__map" alt="Collaboration graph"/></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<p><a href="class_sk_xfermode-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> { <br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ae9747aecb7032fc2aec5c7233e845a46">kZero_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a743ad24318d9f7c0e4d6c22991973b61">kOne_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a1211a9a893e1c478cfec0d162830c82d">kSC_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a4ebc10129afdc98c49d791e008fef412">kISC_Coeff</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ab9e9f6ccce46add2de23f0e6947a0bfe">kDC_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ac12c339c41c76da2cbcb49547e2c49f1">kIDC_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a0be4baebd03cb2baec72c6e93758cca9">kSA_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a81c52d2b29e5672e2e6d794959c13e9a">kISA_Coeff</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a03c3a41805fc597f881f7033d2862535">kDA_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a59abc889333ac7a21111c2b0754c6a5d">kIDA_Coeff</a>,
<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42abd99dd1e14f02f9eb7a071c6d0ad626d">kCoeffCount</a>
<br/>
}</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> { <br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a6258d0a49a66252e2e79a1dfa03d5808">kClear_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a02b9cda2d64bea196a268ef048f38319">kSrc_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a35853096dbe7ff3ffbfabff4b77fec43">kDst_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ad9ce55f93750f582bd1e2dbd1b4bc682">kSrcOver_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ace07e61b45973fb2b02aabcbce9280fc">kDstOver_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a9831704fe28c3286614d777eefb6e92c">kSrcIn_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa809d24d17d806d3c225c7ccedd5cede">kDstIn_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a5582f94bbe9678cf8a8664621a8d5726">kSrcOut_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40afb4d7c1d11c543182b9bb4e2c4a2a422">kDstOut_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a78b45cdb6d82afff9a21aa87624941a1">kSrcATop_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ae1d6b61bd0d80cc6d33f2d8b982cf13b">kDstATop_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0a77d825a567a083adffbb384efe7de5">kXor_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a2fc7bd168c47d50f966a0d0291cdfda0">kPlus_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a17aefb0bacf48a1b79239ae2749a0d74">kMultiply_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aca9a4502d0a5c306ccfd500b602346e9">kScreen_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a1f31bcf0623f2368338d8047693afbf9">kOverlay_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40acaecaeae6b0c2bc320eeddd4941edc6e">kDarken_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ac6e471b1de65b645138f444c76adf196">kLighten_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa5ef311527a49eb22eb5ec0c7e4811cb">kColorDodge_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ab847bca89f7224f996400d44e0e530cd">kColorBurn_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a3e7e31992fdfd0eb84e81bd6031b7926">kHardLight_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a4cf89b0eafabc1e1b63fb328d2cc1685">kSoftLight_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a61a5c762c59d0337eb5dd9f980850fc0">kDifference_Mode</a>,
<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383">kExclusion_Mode</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb">kLastMode</a> = kExclusion_Mode
<br/>
}</td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a2061d626f726c1f5bd660e3df14d618c">SkXfermode</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a02a8c0186b0b05670deb677c31152fff">xfer32</a> (<a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> dst[], const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], int count, const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[])</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a4d7eb3559e6975836315e3332cb0f920">xfer16</a> (uint16_t dst[], const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], int count, const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[])</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a2b674254aec828bd98b92166844c35b6">xfer4444</a> (uint16_t dst[], const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], int count, const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[])</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a42f60564908990cc95238bf6b544d9d1">xferA8</a> (<a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> dst[], const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], int count, const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[])</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a3236676496fdb7d30881582ce2110ef5">asCoeff</a> (<a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> *src, <a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> *dst)</td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_sk_xfermode.html">SkXfermode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a0537d5be65be00ef5c0322ace1cea0f9">Create</a> (<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="_sk_color_8h.html#a470a9390037f83c8e7bfd23d67f765b2">SkXfermodeProc</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#afc8cf95373a7fcdd8c082ad2b505fe69">GetProc</a> (<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="_sk_color_8h.html#ac2005c65c75a292e4f1a54cf986ec834">SkXfermodeProc16</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a0d76cd38740117270842337ea55e8512">GetProc16</a> (<a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode, <a class="el" href="_sk_color_8h.html#a84c81e6a24ff07a55333acf5603046a8">SkColor</a> srcColor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a715dfaa236d7d9c55a3e1220bb488a1d">IsMode</a> (<a class="el" href="class_sk_xfermode.html">SkXfermode</a> *, <a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> *mode)</td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#a5ab03bc4a8b1eab89b4e5194d87e7614">SkXfermode</a> (<a class="el" href="class_sk_flattenable_read_buffer.html">SkFlattenableReadBuffer</a> &amp;rb)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sk_xfermode.html#acfe486577509fa1d1c723819841f738a">xferColor</a> (<a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src, <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> dst)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="class_sk_xfermode.html">SkXfermode</a> is the base class for objects that are called to implement custom "transfer-modes" in the drawing pipeline. The static function Create(Modes) can be called to return an instance of any of the predefined subclasses as specified in the Modes enum. When an <a class="el" href="class_sk_xfermode.html">SkXfermode</a> is assigned to an <a class="el" href="class_sk_paint.html">SkPaint</a>, then objects drawn with that paint have the xfermode applied. </p>
<p>Definition at line <a class="el" href="_sk_xfermode_8h_source.html#l00031">31</a> of file <a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>.</p>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a4746add8b21d09d94bf01a7026384a42"></a><!-- doxytag: member="SkXfermode::Coeff" ref="a4746add8b21d09d94bf01a7026384a42" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">SkXfermode::Coeff</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enum of possible coefficients to describe some xfermodes </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42ae9747aecb7032fc2aec5c7233e845a46"></a><!-- doxytag: member="kZero_Coeff" ref="a4746add8b21d09d94bf01a7026384a42ae9747aecb7032fc2aec5c7233e845a46" args="" -->kZero_Coeff</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a743ad24318d9f7c0e4d6c22991973b61"></a><!-- doxytag: member="kOne_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a743ad24318d9f7c0e4d6c22991973b61" args="" -->kOne_Coeff</em>&nbsp;</td><td>
<p>0 </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a1211a9a893e1c478cfec0d162830c82d"></a><!-- doxytag: member="kSC_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a1211a9a893e1c478cfec0d162830c82d" args="" -->kSC_Coeff</em>&nbsp;</td><td>
<p>1 </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a4ebc10129afdc98c49d791e008fef412"></a><!-- doxytag: member="kISC_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a4ebc10129afdc98c49d791e008fef412" args="" -->kISC_Coeff</em>&nbsp;</td><td>
<p>src color </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42ab9e9f6ccce46add2de23f0e6947a0bfe"></a><!-- doxytag: member="kDC_Coeff" ref="a4746add8b21d09d94bf01a7026384a42ab9e9f6ccce46add2de23f0e6947a0bfe" args="" -->kDC_Coeff</em>&nbsp;</td><td>
<p>inverse src color (i.e. 1 - sc) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42ac12c339c41c76da2cbcb49547e2c49f1"></a><!-- doxytag: member="kIDC_Coeff" ref="a4746add8b21d09d94bf01a7026384a42ac12c339c41c76da2cbcb49547e2c49f1" args="" -->kIDC_Coeff</em>&nbsp;</td><td>
<p>dst color </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a0be4baebd03cb2baec72c6e93758cca9"></a><!-- doxytag: member="kSA_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a0be4baebd03cb2baec72c6e93758cca9" args="" -->kSA_Coeff</em>&nbsp;</td><td>
<p>inverse dst color (i.e. 1 - dc) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a81c52d2b29e5672e2e6d794959c13e9a"></a><!-- doxytag: member="kISA_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a81c52d2b29e5672e2e6d794959c13e9a" args="" -->kISA_Coeff</em>&nbsp;</td><td>
<p>src alpha </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a03c3a41805fc597f881f7033d2862535"></a><!-- doxytag: member="kDA_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a03c3a41805fc597f881f7033d2862535" args="" -->kDA_Coeff</em>&nbsp;</td><td>
<p>inverse src alpha (i.e. 1 - sa) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42a59abc889333ac7a21111c2b0754c6a5d"></a><!-- doxytag: member="kIDA_Coeff" ref="a4746add8b21d09d94bf01a7026384a42a59abc889333ac7a21111c2b0754c6a5d" args="" -->kIDA_Coeff</em>&nbsp;</td><td>
<p>dst alpha </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4746add8b21d09d94bf01a7026384a42abd99dd1e14f02f9eb7a071c6d0ad626d"></a><!-- doxytag: member="kCoeffCount" ref="a4746add8b21d09d94bf01a7026384a42abd99dd1e14f02f9eb7a071c6d0ad626d" args="" -->kCoeffCount</em>&nbsp;</td><td>
<p>inverse dst alpha (i.e. 1 - da) </p>
</td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="_sk_xfermode_8h_source.html#l00046">46</a> of file <a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>.</p>
</div>
</div>
<a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40"></a><!-- doxytag: member="SkXfermode::Mode" ref="a73b1831c1491b0a841a20ecf445fff40" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">SkXfermode::Mode</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>List of predefined xfermodes. The algebra for the modes uses the following symbols: Sa, Sc - source alpha and color Da, Dc - destination alpha and color (before compositing) [a, c] - Resulting (alpha, color) values For these equations, the colors are in premultiplied state. If no xfermode is specified, kSrcOver is assumed. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a6258d0a49a66252e2e79a1dfa03d5808"></a><!-- doxytag: member="kClear_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a6258d0a49a66252e2e79a1dfa03d5808" args="" -->kClear_Mode</em>&nbsp;</td><td>
<p>[0, 0] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a02b9cda2d64bea196a268ef048f38319"></a><!-- doxytag: member="kSrc_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a02b9cda2d64bea196a268ef048f38319" args="" -->kSrc_Mode</em>&nbsp;</td><td>
<p>[Sa, Sc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a35853096dbe7ff3ffbfabff4b77fec43"></a><!-- doxytag: member="kDst_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a35853096dbe7ff3ffbfabff4b77fec43" args="" -->kDst_Mode</em>&nbsp;</td><td>
<p>[Da, Dc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40ad9ce55f93750f582bd1e2dbd1b4bc682"></a><!-- doxytag: member="kSrcOver_Mode" ref="a73b1831c1491b0a841a20ecf445fff40ad9ce55f93750f582bd1e2dbd1b4bc682" args="" -->kSrcOver_Mode</em>&nbsp;</td><td>
<p>[Sa + Da - Sa*Da, Rc = Sc + (1 - Sa)*Dc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40ace07e61b45973fb2b02aabcbce9280fc"></a><!-- doxytag: member="kDstOver_Mode" ref="a73b1831c1491b0a841a20ecf445fff40ace07e61b45973fb2b02aabcbce9280fc" args="" -->kDstOver_Mode</em>&nbsp;</td><td>
<p>[Sa + Da - Sa*Da, Rc = Dc + (1 - Da)*Sc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a9831704fe28c3286614d777eefb6e92c"></a><!-- doxytag: member="kSrcIn_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a9831704fe28c3286614d777eefb6e92c" args="" -->kSrcIn_Mode</em>&nbsp;</td><td>
<p>[Sa * Da, Sc * Da] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40aa809d24d17d806d3c225c7ccedd5cede"></a><!-- doxytag: member="kDstIn_Mode" ref="a73b1831c1491b0a841a20ecf445fff40aa809d24d17d806d3c225c7ccedd5cede" args="" -->kDstIn_Mode</em>&nbsp;</td><td>
<p>[Sa * Da, Sa * Dc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a5582f94bbe9678cf8a8664621a8d5726"></a><!-- doxytag: member="kSrcOut_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a5582f94bbe9678cf8a8664621a8d5726" args="" -->kSrcOut_Mode</em>&nbsp;</td><td>
<p>[Sa * (1 - Da), Sc * (1 - Da)] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40afb4d7c1d11c543182b9bb4e2c4a2a422"></a><!-- doxytag: member="kDstOut_Mode" ref="a73b1831c1491b0a841a20ecf445fff40afb4d7c1d11c543182b9bb4e2c4a2a422" args="" -->kDstOut_Mode</em>&nbsp;</td><td>
<p>[Da * (1 - Sa), Dc * (1 - Sa)] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a78b45cdb6d82afff9a21aa87624941a1"></a><!-- doxytag: member="kSrcATop_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a78b45cdb6d82afff9a21aa87624941a1" args="" -->kSrcATop_Mode</em>&nbsp;</td><td>
<p>[Da, Sc * Da + (1 - Sa) * Dc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40ae1d6b61bd0d80cc6d33f2d8b982cf13b"></a><!-- doxytag: member="kDstATop_Mode" ref="a73b1831c1491b0a841a20ecf445fff40ae1d6b61bd0d80cc6d33f2d8b982cf13b" args="" -->kDstATop_Mode</em>&nbsp;</td><td>
<p>[Sa, Sa * Dc + Sc * (1 - Da)] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a0a77d825a567a083adffbb384efe7de5"></a><!-- doxytag: member="kXor_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a0a77d825a567a083adffbb384efe7de5" args="" -->kXor_Mode</em>&nbsp;</td><td>
<p>[Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc] </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a2fc7bd168c47d50f966a0d0291cdfda0"></a><!-- doxytag: member="kPlus_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a2fc7bd168c47d50f966a0d0291cdfda0" args="" -->kPlus_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a17aefb0bacf48a1b79239ae2749a0d74"></a><!-- doxytag: member="kMultiply_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a17aefb0bacf48a1b79239ae2749a0d74" args="" -->kMultiply_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40aca9a4502d0a5c306ccfd500b602346e9"></a><!-- doxytag: member="kScreen_Mode" ref="a73b1831c1491b0a841a20ecf445fff40aca9a4502d0a5c306ccfd500b602346e9" args="" -->kScreen_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a1f31bcf0623f2368338d8047693afbf9"></a><!-- doxytag: member="kOverlay_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a1f31bcf0623f2368338d8047693afbf9" args="" -->kOverlay_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40acaecaeae6b0c2bc320eeddd4941edc6e"></a><!-- doxytag: member="kDarken_Mode" ref="a73b1831c1491b0a841a20ecf445fff40acaecaeae6b0c2bc320eeddd4941edc6e" args="" -->kDarken_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40ac6e471b1de65b645138f444c76adf196"></a><!-- doxytag: member="kLighten_Mode" ref="a73b1831c1491b0a841a20ecf445fff40ac6e471b1de65b645138f444c76adf196" args="" -->kLighten_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40aa5ef311527a49eb22eb5ec0c7e4811cb"></a><!-- doxytag: member="kColorDodge_Mode" ref="a73b1831c1491b0a841a20ecf445fff40aa5ef311527a49eb22eb5ec0c7e4811cb" args="" -->kColorDodge_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40ab847bca89f7224f996400d44e0e530cd"></a><!-- doxytag: member="kColorBurn_Mode" ref="a73b1831c1491b0a841a20ecf445fff40ab847bca89f7224f996400d44e0e530cd" args="" -->kColorBurn_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a3e7e31992fdfd0eb84e81bd6031b7926"></a><!-- doxytag: member="kHardLight_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a3e7e31992fdfd0eb84e81bd6031b7926" args="" -->kHardLight_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a4cf89b0eafabc1e1b63fb328d2cc1685"></a><!-- doxytag: member="kSoftLight_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a4cf89b0eafabc1e1b63fb328d2cc1685" args="" -->kSoftLight_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a61a5c762c59d0337eb5dd9f980850fc0"></a><!-- doxytag: member="kDifference_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a61a5c762c59d0337eb5dd9f980850fc0" args="" -->kDifference_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383"></a><!-- doxytag: member="kExclusion_Mode" ref="a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383" args="" -->kExclusion_Mode</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb"></a><!-- doxytag: member="kLastMode" ref="a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb" args="" -->kLastMode</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="class_sk_avoid_xfermode.html#afdf68f1c7d7ee715bcfa0243720ff5f0">SkAvoidXfermode</a>.</p>
<p>Definition at line <a class="el" href="_sk_xfermode_8h_source.html#l00086">86</a> of file <a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>.</p>
</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2061d626f726c1f5bd660e3df14d618c"></a><!-- doxytag: member="SkXfermode::SkXfermode" ref="a2061d626f726c1f5bd660e3df14d618c" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SkXfermode::SkXfermode </td>
<td>(</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_sk_xfermode_8h_source.html#l00033">33</a> of file <a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5ab03bc4a8b1eab89b4e5194d87e7614"></a><!-- doxytag: member="SkXfermode::SkXfermode" ref="a5ab03bc4a8b1eab89b4e5194d87e7614" args="(SkFlattenableReadBuffer &amp;rb)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">SkXfermode::SkXfermode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_flattenable_read_buffer.html">SkFlattenableReadBuffer</a> &amp;&nbsp;</td>
<td class="paramname"> <em>rb</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Definition at line <a class="el" href="_sk_xfermode_8h_source.html#l00142">142</a> of file <a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a>.</p>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3236676496fdb7d30881582ce2110ef5"></a><!-- doxytag: member="SkXfermode::asCoeff" ref="a3236676496fdb7d30881582ce2110ef5" args="(Coeff *src, Coeff *dst)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual bool SkXfermode::asCoeff </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> *&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> *&nbsp;</td>
<td class="paramname"> <em>dst</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>If the xfermode can be expressed as an equation using the coefficients in Coeff, then <a class="el" href="class_sk_xfermode.html#a3236676496fdb7d30881582ce2110ef5">asCoeff()</a> returns true, and sets (if not null) src and dst accordingly.</p>
<p>result = src_coeff * src_color + dst_coeff * dst_color;</p>
<p>As examples, here are some of the porterduff coefficients</p>
<p>MODE SRC_COEFF DST_COEFF clear zero zero src one zero dst zero one srcover one isa dstover ida one </p>
</div>
</div>
<a class="anchor" id="a0537d5be65be00ef5c0322ace1cea0f9"></a><!-- doxytag: member="SkXfermode::Create" ref="a0537d5be65be00ef5c0322ace1cea0f9" args="(Mode mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="class_sk_xfermode.html">SkXfermode</a>* SkXfermode::Create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a>&nbsp;</td>
<td class="paramname"> <em>mode</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return an <a class="el" href="class_sk_xfermode.html">SkXfermode</a> object for the specified mode. </p>
</div>
</div>
<a class="anchor" id="afc8cf95373a7fcdd8c082ad2b505fe69"></a><!-- doxytag: member="SkXfermode::GetProc" ref="afc8cf95373a7fcdd8c082ad2b505fe69" args="(Mode mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="_sk_color_8h.html#a470a9390037f83c8e7bfd23d67f765b2">SkXfermodeProc</a> SkXfermode::GetProc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a>&nbsp;</td>
<td class="paramname"> <em>mode</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return a function pointer to a routine that applies the specified porter-duff transfer mode. </p>
</div>
</div>
<a class="anchor" id="a0d76cd38740117270842337ea55e8512"></a><!-- doxytag: member="SkXfermode::GetProc16" ref="a0d76cd38740117270842337ea55e8512" args="(Mode mode, SkColor srcColor)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="_sk_color_8h.html#ac2005c65c75a292e4f1a54cf986ec834">SkXfermodeProc16</a> SkXfermode::GetProc16 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a>&nbsp;</td>
<td class="paramname"> <em>mode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_sk_color_8h.html#a84c81e6a24ff07a55333acf5603046a8">SkColor</a>&nbsp;</td>
<td class="paramname"> <em>srcColor</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Return a function pointer to a routine that applies the specified porter-duff transfer mode and srcColor to a 16bit device color. Note, if the mode+srcColor might return a non-opaque color, then there is not 16bit proc, and this will return NULL. </p>
</div>
</div>
<a class="anchor" id="a715dfaa236d7d9c55a3e1220bb488a1d"></a><!-- doxytag: member="SkXfermode::IsMode" ref="a715dfaa236d7d9c55a3e1220bb488a1d" args="(SkXfermode *, Mode *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static bool SkXfermode::IsMode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html">SkXfermode</a> *&nbsp;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> *&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>If the specified xfermode advertises itself as one of the porterduff modes (via <a class="el" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">SkXfermode::Coeff</a>), return true and if not null, set mode to the corresponding porterduff mode. If it is not recognized as a one, return false and ignore the mode parameter. </p>
</div>
</div>
<a class="anchor" id="a4d7eb3559e6975836315e3332cb0f920"></a><!-- doxytag: member="SkXfermode::xfer16" ref="a4d7eb3559e6975836315e3332cb0f920" args="(uint16_t dst[], const SkPMColor src[], int count, const SkAlpha aa[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void SkXfermode::xfer16 </td>
<td>(</td>
<td class="paramtype">uint16_t&nbsp;</td>
<td class="paramname"> <em>dst</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>src</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a>&nbsp;</td>
<td class="paramname"> <em>aa</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented in <a class="el" href="class_sk_proc_xfermode.html#aec4679933a73060858fec8ed7d9cb8d3">SkProcXfermode</a>, and <a class="el" href="class_sk_avoid_xfermode.html#a59884f646974d601e26b0529a7367bf9">SkAvoidXfermode</a>.</p>
</div>
</div>
<a class="anchor" id="a02a8c0186b0b05670deb677c31152fff"></a><!-- doxytag: member="SkXfermode::xfer32" ref="a02a8c0186b0b05670deb677c31152fff" args="(SkPMColor dst[], const SkPMColor src[], int count, const SkAlpha aa[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void SkXfermode::xfer32 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>dst</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>src</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a>&nbsp;</td>
<td class="paramname"> <em>aa</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented in <a class="el" href="class_sk_proc_xfermode.html#a8d6e5b7a420b4f2884f3243a93049d25">SkProcXfermode</a>, and <a class="el" href="class_sk_avoid_xfermode.html#a1cd8cb1026e29ddf4e5995dbff63099f">SkAvoidXfermode</a>.</p>
</div>
</div>
<a class="anchor" id="a2b674254aec828bd98b92166844c35b6"></a><!-- doxytag: member="SkXfermode::xfer4444" ref="a2b674254aec828bd98b92166844c35b6" args="(uint16_t dst[], const SkPMColor src[], int count, const SkAlpha aa[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void SkXfermode::xfer4444 </td>
<td>(</td>
<td class="paramtype">uint16_t&nbsp;</td>
<td class="paramname"> <em>dst</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>src</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a>&nbsp;</td>
<td class="paramname"> <em>aa</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented in <a class="el" href="class_sk_proc_xfermode.html#a5913f3d858a2ea5c60893b2b855bdc21">SkProcXfermode</a>, and <a class="el" href="class_sk_avoid_xfermode.html#a9fb3837107eb29022a7373131fcfe335">SkAvoidXfermode</a>.</p>
</div>
</div>
<a class="anchor" id="a42f60564908990cc95238bf6b544d9d1"></a><!-- doxytag: member="SkXfermode::xferA8" ref="a42f60564908990cc95238bf6b544d9d1" args="(SkAlpha dst[], const SkPMColor src[], int count, const SkAlpha aa[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void SkXfermode::xferA8 </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a>&nbsp;</td>
<td class="paramname"> <em>dst</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>src</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a>&nbsp;</td>
<td class="paramname"> <em>aa</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented in <a class="el" href="class_sk_proc_xfermode.html#a4546666228e3faf544f529cbfd9b2a40">SkProcXfermode</a>, and <a class="el" href="class_sk_avoid_xfermode.html#a267d47070e8ddd789780e6fe8cae6e0f">SkAvoidXfermode</a>.</p>
</div>
</div>
<a class="anchor" id="acfe486577509fa1d1c723819841f738a"></a><!-- doxytag: member="SkXfermode::xferColor" ref="acfe486577509fa1d1c723819841f738a" args="(SkPMColor src, SkPMColor dst)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> SkXfermode::xferColor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a>&nbsp;</td>
<td class="paramname"> <em>dst</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The default implementation of xfer32/xfer16/xferA8 in turn call this method, 1 color at a time (upscaled to a SkPMColor). The default implmentation of this method just returns dst. If performance is important, your subclass should override xfer32/xfer16/xferA8 directly.</p>
<p>This method will not be called directly by the client, so it need not be implemented if your subclass has overridden xfer32/xfer16/xferA8 </p>
<p>Reimplemented in <a class="el" href="class_sk_pixel_xor_xfermode.html#adb3a116e84bf58fbdd8354b5c1a971a8">SkPixelXorXfermode</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/core/<a class="el" href="_sk_xfermode_8h_source.html">SkXfermode.h</a></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Oct 20 11:03:42 2009 for Skia by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>