diff options
author | senorblanco@chromium.org <senorblanco@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-13 13:16:52 +0000 |
---|---|---|
committer | senorblanco@chromium.org <senorblanco@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-13 13:16:52 +0000 |
commit | d5282e72b2da0b27b2a487d8376c44ad795736dc (patch) | |
tree | 7296767f5fcfa3b1cdd46f122e14dfaca1dd7e4a /skia/include/SkPorterDuff.h | |
parent | 3ac3f51f8261910dbc38ccfa4cdf3d491ba7ecdb (diff) | |
download | chromium_src-d5282e72b2da0b27b2a487d8376c44ad795736dc.zip chromium_src-d5282e72b2da0b27b2a487d8376c44ad795736dc.tar.gz chromium_src-d5282e72b2da0b27b2a487d8376c44ad795736dc.tar.bz2 |
This CL updates chrome to the latest version of skia, retrieved via DEPS, and
placed in third_party. All relevant skia changes (for all 3 platforms) have
been upstreamed.
Most of this CL is mind-numbingly repetitive. Things of interest are: skia.gyp
(now points at third_party versions), DEPS, and SkUserConfig.h. stdint.h: Skia
now requires C99 integer types, which MSVC doesn't support natively. I have put
typedefs in config/win/stdint.h.
Note that the new version of skia appears to render rects whose coordinates
are "backwards" (ie., x2 < x1 or y2 < y1), which were formerly culled. There
were a couple obvious instances of this in the code which I fixed, but there may
be more.
There were ~35 layout test failures due to minor pixel differences which I
rebaselined on Windows and Linux, and 8 genuine failures related to masks and
stroked text, which I have put in text_expectations.txt and assigned to
myself. (There was another change which broke ~1700 tests on each platform,
but I put that change behind an #ifdef for now).
R=brettw
Review URL: http://codereview.chromium.org/65012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15949 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/include/SkPorterDuff.h')
-rw-r--r-- | skia/include/SkPorterDuff.h | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/skia/include/SkPorterDuff.h b/skia/include/SkPorterDuff.h deleted file mode 100644 index 44c5477..0000000 --- a/skia/include/SkPorterDuff.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SkPorterDuff_DEFINED -#define SkPorterDuff_DEFINED - -#include "SkColor.h" - -class SkXfermode; - -class SkPorterDuff { -public: - /** List of predefined xfermodes. In general, 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. - */ - enum Mode { - kClear_Mode, //!< [0, 0] - kSrc_Mode, //!< [Sa, Sc] - kDst_Mode, //!< [Da, Dc] - kSrcOver_Mode, //!< [Sa + Da - Sa*Da, Rc = Sc + (1 - Sa)*Dc] - kDstOver_Mode, //!< [Sa + Da - Sa*Da, Rc = Dc + (1 - Da)*Sc] - kSrcIn_Mode, //!< [Sa * Da, Sc * Da] - kDstIn_Mode, //!< [Sa * Da, Sa * Dc] - kSrcOut_Mode, //!< [Sa * (1 - Da), Sc * (1 - Da)] - kDstOut_Mode, //!< [Da * (1 - Sa), Dc * (1 - Sa)] - kSrcATop_Mode, //!< [Da, Sc * Da + (1 - Sa) * Dc] - kDstATop_Mode, //!< [Sa, Sa * Dc + Sc * (1 - Da)] - kXor_Mode, //!< [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc] - kDarken_Mode, //!< [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] - kLighten_Mode, //!< [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] - kMultiply_Mode, //!< [Sa * Da, Sc * Dc] - kScreen_Mode, //!< [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] - kAdd_Mode, //!< Saturate(S + D) - - kModeCount - }; - /** Return an SkXfermode object for the specified mode. - */ - static SkXfermode* CreateXfermode(Mode mode); - - /** Return a function pointer to a routine that applies the specified - porter-duff transfer mode. - */ - static SkXfermodeProc GetXfermodeProc(Mode mode); - - /** 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. - */ - static SkXfermodeProc16 GetXfermodeProc16(Mode mode, SkColor srcColor); - - /** If the specified xfermode advertises itself as one of the porterduff - modes (via SkXfermode::Coeff), 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. - */ - static bool IsMode(SkXfermode*, Mode* mode); -}; - -#endif - |