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