19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.graphics;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class PorterDuff {
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // these value must match their native equivalents. See SkPorterDuff.h
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public enum Mode {
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [0, 0] */
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        CLEAR       (0),
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa, Sc] */
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SRC         (1),
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Da, Dc] */
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DST         (2),
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] */
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SRC_OVER    (3),
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc] */
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DST_OVER    (4),
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa * Da, Sc * Da] */
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SRC_IN      (5),
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa * Da, Sa * Dc] */
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DST_IN      (6),
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa * (1 - Da), Sc * (1 - Da)] */
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SRC_OUT     (7),
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Da * (1 - Sa), Dc * (1 - Sa)] */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DST_OUT     (8),
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Da, Sc * Da + (1 - Sa) * Dc] */
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SRC_ATOP    (9),
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa, Sa * Dc + Sc * (1 - Da)] */
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DST_ATOP    (10),
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc] */
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        XOR         (11),
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + Da - Sa*Da,
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project             Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] */
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        DARKEN      (12),
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + Da - Sa*Da,
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project             Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] */
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        LIGHTEN     (13),
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa * Da, Sc * Dc] */
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        MULTIPLY    (14),
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] */
56bb2890d40bba7f690055bf8ee7bda749171a3a53Romain Guy        SCREEN      (15),
57bb2890d40bba7f690055bf8ee7bda749171a3a53Romain Guy        /** Saturate(S + D) */
58bb2890d40bba7f690055bf8ee7bda749171a3a53Romain Guy        ADD         (16),
59bb2890d40bba7f690055bf8ee7bda749171a3a53Romain Guy        OVERLAY     (17);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Mode(int nativeInt) {
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            this.nativeInt = nativeInt;
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6485bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy
6585bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy        /**
6685bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy         * @hide
6785bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy         */
6885bf02fc16784d935fb9eebfa9cb20fe46ff7951Romain Guy        public final int nativeInt;
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
71