blob: 277df4a4b8c67b417def4316aed787353dc50f92 [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: include/core/SkXfermode.h Source File</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><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
<h1>include/core/SkXfermode.h</h1><a href="_sk_xfermode_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2006 The Android Open Source Project</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
<a name="l00005"></a>00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
<a name="l00006"></a>00006 <span class="comment"> * You may obtain a copy of the License at</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
<a name="l00011"></a>00011 <span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<a name="l00012"></a>00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00013"></a>00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
<a name="l00014"></a>00014 <span class="comment"> * limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment"> */</span>
<a name="l00016"></a>00016
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef SkXfermode_DEFINED</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define SkXfermode_DEFINED</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &quot;<a class="code" href="_sk_flattenable_8h.html">SkFlattenable.h</a>&quot;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;<a class="code" href="_sk_color_8h.html">SkColor.h</a>&quot;</span>
<a name="l00022"></a>00022
<a name="l00031"></a><a class="code" href="class_sk_xfermode.html">00031</a> <span class="keyword">class </span><a class="code" href="class_sk_xfermode.html">SkXfermode</a> : <span class="keyword">public</span> <a class="code" href="class_sk_flattenable.html">SkFlattenable</a> {
<a name="l00032"></a>00032 <span class="keyword">public</span>:
<a name="l00033"></a><a class="code" href="class_sk_xfermode.html#a2061d626f726c1f5bd660e3df14d618c">00033</a> <a class="code" href="class_sk_xfermode.html#a2061d626f726c1f5bd660e3df14d618c">SkXfermode</a>() {}
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_xfermode.html#a02a8c0186b0b05670deb677c31152fff">xfer32</a>(<a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00036"></a>00036 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00037"></a>00037 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_xfermode.html#a4d7eb3559e6975836315e3332cb0f920">xfer16</a>(uint16_t dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00038"></a>00038 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00039"></a>00039 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_xfermode.html#a2b674254aec828bd98b92166844c35b6">xfer4444</a>(uint16_t dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00040"></a>00040 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00041"></a>00041 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_xfermode.html#a42f60564908990cc95238bf6b544d9d1">xferA8</a>(<a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00042"></a>00042 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00043"></a>00043
<a name="l00046"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">00046</a> <span class="keyword">enum</span> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a> {
<a name="l00047"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ae9747aecb7032fc2aec5c7233e845a46">00047</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ae9747aecb7032fc2aec5c7233e845a46">kZero_Coeff</a>,
<a name="l00048"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a743ad24318d9f7c0e4d6c22991973b61">00048</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a743ad24318d9f7c0e4d6c22991973b61">kOne_Coeff</a>,
<a name="l00049"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a1211a9a893e1c478cfec0d162830c82d">00049</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a1211a9a893e1c478cfec0d162830c82d">kSC_Coeff</a>,
<a name="l00050"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a4ebc10129afdc98c49d791e008fef412">00050</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a4ebc10129afdc98c49d791e008fef412">kISC_Coeff</a>,
<a name="l00051"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ab9e9f6ccce46add2de23f0e6947a0bfe">00051</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ab9e9f6ccce46add2de23f0e6947a0bfe">kDC_Coeff</a>,
<a name="l00052"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ac12c339c41c76da2cbcb49547e2c49f1">00052</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42ac12c339c41c76da2cbcb49547e2c49f1">kIDC_Coeff</a>,
<a name="l00053"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a0be4baebd03cb2baec72c6e93758cca9">00053</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a0be4baebd03cb2baec72c6e93758cca9">kSA_Coeff</a>,
<a name="l00054"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a81c52d2b29e5672e2e6d794959c13e9a">00054</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a81c52d2b29e5672e2e6d794959c13e9a">kISA_Coeff</a>,
<a name="l00055"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a03c3a41805fc597f881f7033d2862535">00055</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a03c3a41805fc597f881f7033d2862535">kDA_Coeff</a>,
<a name="l00056"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a59abc889333ac7a21111c2b0754c6a5d">00056</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42a59abc889333ac7a21111c2b0754c6a5d">kIDA_Coeff</a>,
<a name="l00058"></a><a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42abd99dd1e14f02f9eb7a071c6d0ad626d">00058</a> <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42abd99dd1e14f02f9eb7a071c6d0ad626d">kCoeffCount</a>
<a name="l00059"></a>00059 };
<a name="l00060"></a>00060
<a name="l00076"></a>00076 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sk_xfermode.html#a3236676496fdb7d30881582ce2110ef5">asCoeff</a>(<a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a>* src, <a class="code" href="class_sk_xfermode.html#a4746add8b21d09d94bf01a7026384a42">Coeff</a>* dst);
<a name="l00077"></a>00077
<a name="l00086"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">00086</a> <span class="keyword">enum</span> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> {
<a name="l00087"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a6258d0a49a66252e2e79a1dfa03d5808">00087</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a6258d0a49a66252e2e79a1dfa03d5808" title="[0, 0]">kClear_Mode</a>,
<a name="l00088"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a02b9cda2d64bea196a268ef048f38319">00088</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a02b9cda2d64bea196a268ef048f38319" title="[Sa, Sc]">kSrc_Mode</a>,
<a name="l00089"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a35853096dbe7ff3ffbfabff4b77fec43">00089</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a35853096dbe7ff3ffbfabff4b77fec43" title="[Da, Dc]">kDst_Mode</a>,
<a name="l00090"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ad9ce55f93750f582bd1e2dbd1b4bc682">00090</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ad9ce55f93750f582bd1e2dbd1b4bc682" title="[Sa + Da - Sa*Da, Rc = Sc + (1 - Sa)*Dc]">kSrcOver_Mode</a>,
<a name="l00091"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ace07e61b45973fb2b02aabcbce9280fc">00091</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ace07e61b45973fb2b02aabcbce9280fc" title="[Sa + Da - Sa*Da, Rc = Dc + (1 - Da)*Sc]">kDstOver_Mode</a>,
<a name="l00092"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a9831704fe28c3286614d777eefb6e92c">00092</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a9831704fe28c3286614d777eefb6e92c" title="[Sa * Da, Sc * Da]">kSrcIn_Mode</a>,
<a name="l00093"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa809d24d17d806d3c225c7ccedd5cede">00093</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa809d24d17d806d3c225c7ccedd5cede" title="[Sa * Da, Sa * Dc]">kDstIn_Mode</a>,
<a name="l00094"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a5582f94bbe9678cf8a8664621a8d5726">00094</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a5582f94bbe9678cf8a8664621a8d5726" title="[Sa * (1 - Da), Sc * (1 - Da)]">kSrcOut_Mode</a>,
<a name="l00095"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40afb4d7c1d11c543182b9bb4e2c4a2a422">00095</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40afb4d7c1d11c543182b9bb4e2c4a2a422" title="[Da * (1 - Sa), Dc * (1 - Sa)]">kDstOut_Mode</a>,
<a name="l00096"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a78b45cdb6d82afff9a21aa87624941a1">00096</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a78b45cdb6d82afff9a21aa87624941a1" title="[Da, Sc * Da + (1 - Sa) * Dc]">kSrcATop_Mode</a>,
<a name="l00097"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ae1d6b61bd0d80cc6d33f2d8b982cf13b">00097</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ae1d6b61bd0d80cc6d33f2d8b982cf13b" title="[Sa, Sa * Dc + Sc * (1 - Da)]">kDstATop_Mode</a>,
<a name="l00098"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0a77d825a567a083adffbb384efe7de5">00098</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0a77d825a567a083adffbb384efe7de5" title="[Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]">kXor_Mode</a>,
<a name="l00099"></a>00099
<a name="l00100"></a>00100 <span class="comment">// these modes are defined in the SVG Compositing standard</span>
<a name="l00101"></a>00101 <span class="comment">// http://www.w3.org/TR/2009/WD-SVGCompositing-20090430/</span>
<a name="l00102"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a2fc7bd168c47d50f966a0d0291cdfda0">00102</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a2fc7bd168c47d50f966a0d0291cdfda0">kPlus_Mode</a>,
<a name="l00103"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a17aefb0bacf48a1b79239ae2749a0d74">00103</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a17aefb0bacf48a1b79239ae2749a0d74">kMultiply_Mode</a>,
<a name="l00104"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aca9a4502d0a5c306ccfd500b602346e9">00104</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aca9a4502d0a5c306ccfd500b602346e9">kScreen_Mode</a>,
<a name="l00105"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a1f31bcf0623f2368338d8047693afbf9">00105</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a1f31bcf0623f2368338d8047693afbf9">kOverlay_Mode</a>,
<a name="l00106"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40acaecaeae6b0c2bc320eeddd4941edc6e">00106</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40acaecaeae6b0c2bc320eeddd4941edc6e">kDarken_Mode</a>,
<a name="l00107"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ac6e471b1de65b645138f444c76adf196">00107</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ac6e471b1de65b645138f444c76adf196">kLighten_Mode</a>,
<a name="l00108"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa5ef311527a49eb22eb5ec0c7e4811cb">00108</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa5ef311527a49eb22eb5ec0c7e4811cb">kColorDodge_Mode</a>,
<a name="l00109"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ab847bca89f7224f996400d44e0e530cd">00109</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40ab847bca89f7224f996400d44e0e530cd">kColorBurn_Mode</a>,
<a name="l00110"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a3e7e31992fdfd0eb84e81bd6031b7926">00110</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a3e7e31992fdfd0eb84e81bd6031b7926">kHardLight_Mode</a>,
<a name="l00111"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a4cf89b0eafabc1e1b63fb328d2cc1685">00111</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a4cf89b0eafabc1e1b63fb328d2cc1685">kSoftLight_Mode</a>,
<a name="l00112"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a61a5c762c59d0337eb5dd9f980850fc0">00112</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a61a5c762c59d0337eb5dd9f980850fc0">kDifference_Mode</a>,
<a name="l00113"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383">00113</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383">kExclusion_Mode</a>,
<a name="l00114"></a>00114
<a name="l00115"></a><a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb">00115</a> <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb">kLastMode</a> = <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40a0b47fb4f340348dc968dc4e658972383">kExclusion_Mode</a>
<a name="l00116"></a>00116 };
<a name="l00117"></a>00117
<a name="l00120"></a>00120 <span class="keyword">static</span> <a class="code" href="class_sk_xfermode.html">SkXfermode</a>* <a class="code" href="class_sk_xfermode.html#a0537d5be65be00ef5c0322ace1cea0f9">Create</a>(<a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode);
<a name="l00121"></a>00121
<a name="l00125"></a>00125 <span class="keyword">static</span> <a class="code" href="_sk_color_8h.html#a470a9390037f83c8e7bfd23d67f765b2">SkXfermodeProc</a> <a class="code" href="class_sk_xfermode.html#afc8cf95373a7fcdd8c082ad2b505fe69">GetProc</a>(<a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode);
<a name="l00126"></a>00126
<a name="l00132"></a>00132 <span class="keyword">static</span> <a class="code" href="_sk_color_8h.html#ac2005c65c75a292e4f1a54cf986ec834">SkXfermodeProc16</a> <a class="code" href="class_sk_xfermode.html#a0d76cd38740117270842337ea55e8512">GetProc16</a>(<a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a> mode, <a class="code" href="_sk_color_8h.html#a84c81e6a24ff07a55333acf5603046a8">SkColor</a> srcColor);
<a name="l00133"></a>00133
<a name="l00139"></a>00139 <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_sk_xfermode.html#a715dfaa236d7d9c55a3e1220bb488a1d">IsMode</a>(<a class="code" href="class_sk_xfermode.html">SkXfermode</a>*, <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40">Mode</a>* mode);
<a name="l00140"></a>00140
<a name="l00141"></a>00141 <span class="keyword">protected</span>:
<a name="l00142"></a><a class="code" href="class_sk_xfermode.html#a5ab03bc4a8b1eab89b4e5194d87e7614">00142</a> <a class="code" href="class_sk_xfermode.html#a5ab03bc4a8b1eab89b4e5194d87e7614">SkXfermode</a>(<a class="code" href="class_sk_flattenable_read_buffer.html">SkFlattenableReadBuffer</a>&amp; rb) : <a class="code" href="class_sk_flattenable.html">SkFlattenable</a>(rb) {}
<a name="l00143"></a>00143
<a name="l00152"></a>00152 <span class="keyword">virtual</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> <a class="code" href="class_sk_xfermode.html#acfe486577509fa1d1c723819841f738a">xferColor</a>(<a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src, <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> dst);
<a name="l00153"></a>00153
<a name="l00154"></a>00154 <span class="keyword">private</span>:
<a name="l00155"></a>00155 <span class="keyword">enum</span> {
<a name="l00156"></a>00156 kModeCount = <a class="code" href="class_sk_xfermode.html#a73b1831c1491b0a841a20ecf445fff40aa0fc96110a4ff5158b6b85101740cabb">kLastMode</a> + 1
<a name="l00157"></a>00157 };
<a name="l00158"></a>00158 <span class="keyword">typedef</span> <a class="code" href="class_sk_flattenable.html">SkFlattenable</a> INHERITED;
<a name="l00159"></a>00159 };
<a name="l00160"></a>00160
<a name="l00162"></a>00162
<a name="l00168"></a><a class="code" href="class_sk_proc_xfermode.html">00168</a> <span class="keyword">class </span><a class="code" href="class_sk_proc_xfermode.html">SkProcXfermode</a> : <span class="keyword">public</span> <a class="code" href="class_sk_xfermode.html">SkXfermode</a> {
<a name="l00169"></a>00169 <span class="keyword">public</span>:
<a name="l00170"></a><a class="code" href="class_sk_proc_xfermode.html#a49960dab724e111773f650b907264626">00170</a> <a class="code" href="class_sk_proc_xfermode.html#a49960dab724e111773f650b907264626">SkProcXfermode</a>(<a class="code" href="_sk_color_8h.html#a470a9390037f83c8e7bfd23d67f765b2">SkXfermodeProc</a> proc) : fProc(proc) {}
<a name="l00171"></a>00171
<a name="l00172"></a>00172 <span class="comment">// overrides from SkXfermode</span>
<a name="l00173"></a>00173 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_proc_xfermode.html#a8d6e5b7a420b4f2884f3243a93049d25">xfer32</a>(<a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00174"></a>00174 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00175"></a>00175 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_proc_xfermode.html#aec4679933a73060858fec8ed7d9cb8d3">xfer16</a>(uint16_t dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00176"></a>00176 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00177"></a>00177 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_proc_xfermode.html#a5913f3d858a2ea5c60893b2b855bdc21">xfer4444</a>(uint16_t dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00178"></a>00178 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00179"></a>00179 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_proc_xfermode.html#a4546666228e3faf544f529cbfd9b2a40">xferA8</a>(<a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> dst[], <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a9ec12bd74c4b63b5da802b419106b8ea">SkPMColor</a> src[], <span class="keywordtype">int</span> count,
<a name="l00180"></a>00180 <span class="keyword">const</span> <a class="code" href="_sk_color_8h.html#a918cf5a3a68406ac8107f6be48fb906e">SkAlpha</a> aa[]);
<a name="l00181"></a>00181
<a name="l00182"></a>00182 <span class="comment">// overrides from SkFlattenable</span>
<a name="l00183"></a><a class="code" href="class_sk_proc_xfermode.html#a486c4cbea7900f9230aeeeb998c09f2b">00183</a> <span class="keyword">virtual</span> <a class="code" href="class_sk_flattenable.html#a66e7fa054ae7ef77e452e6e23c2650ad">Factory</a> <a class="code" href="class_sk_proc_xfermode.html#a486c4cbea7900f9230aeeeb998c09f2b">getFactory</a>() { <span class="keywordflow">return</span> CreateProc; }
<a name="l00184"></a>00184 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sk_proc_xfermode.html#a022b783cfe7237ac2797c517c86ea3b0">flatten</a>(<a class="code" href="class_sk_flattenable_write_buffer.html">SkFlattenableWriteBuffer</a>&amp;);
<a name="l00185"></a>00185
<a name="l00186"></a>00186 <span class="keyword">protected</span>:
<a name="l00187"></a>00187 <a class="code" href="class_sk_proc_xfermode.html#a49960dab724e111773f650b907264626">SkProcXfermode</a>(<a class="code" href="class_sk_flattenable_read_buffer.html">SkFlattenableReadBuffer</a>&amp;);
<a name="l00188"></a>00188
<a name="l00189"></a>00189 <span class="keyword">private</span>:
<a name="l00190"></a>00190 <a class="code" href="_sk_color_8h.html#a470a9390037f83c8e7bfd23d67f765b2">SkXfermodeProc</a> fProc;
<a name="l00191"></a>00191
<a name="l00192"></a>00192 <span class="keyword">static</span> <a class="code" href="class_sk_flattenable.html">SkFlattenable</a>* CreateProc(<a class="code" href="class_sk_flattenable_read_buffer.html">SkFlattenableReadBuffer</a>&amp; buffer) {
<a name="l00193"></a>00193 <span class="keywordflow">return</span> <a class="code" href="_sk_post_config_8h.html#a0c48722975753deeb7c51c3bc65169cc">SkNEW_ARGS</a>(<a class="code" href="class_sk_proc_xfermode.html">SkProcXfermode</a>, (buffer)); }
<a name="l00194"></a>00194
<a name="l00195"></a>00195 <span class="keyword">typedef</span> <a class="code" href="class_sk_xfermode.html">SkXfermode</a> INHERITED;
<a name="l00196"></a>00196 };
<a name="l00197"></a>00197
<a name="l00198"></a>00198 <span class="preprocessor">#endif</span>
<a name="l00199"></a>00199 <span class="preprocessor"></span>
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Oct 20 11:03:40 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>