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 PixelFormat
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
21a696f5d667227365da732481770767dcb330dd23Mathias Agopian    /* these constants need to match those in hardware/hardware.h */
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int UNKNOWN     = 0;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** System chooses a format that supports translucency (many alpha bits) */
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TRANSLUCENT = -3;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * System chooses a format that supports transparency
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * (at least 1 alpha bit)
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int TRANSPARENT = -2;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** System chooses an opaque format (no alpha bits required) */
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int OPAQUE      = -1;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGBA_8888   = 1;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGBX_8888   = 2;
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGB_888     = 3;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGB_565     = 4;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
42e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian    @Deprecated
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGBA_5551   = 6;
44e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian    @Deprecated
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGBA_4444   = 7;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int A_8         = 8;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int L_8         = 9;
48e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian    @Deprecated
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LA_88       = 0xA;
50e9d4c71f47f74ee9a4a490f62769ad010a17d19bMathias Agopian    @Deprecated
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int RGB_332     = 0xB;
52a696f5d667227365da732481770767dcb330dd23Mathias Agopian
53a696f5d667227365da732481770767dcb330dd23Mathias Agopian
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
55a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * @deprecated use {@link android.graphics.ImageFormat#NV16
56a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * ImageFormat.NV16} instead.
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
58a696f5d667227365da732481770767dcb330dd23Mathias Agopian    @Deprecated
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int YCbCr_422_SP= 0x10;
60df4578e8ab7008a7e528d5af2ae761b33cf2bdf4Scott Main
61a696f5d667227365da732481770767dcb330dd23Mathias Agopian    /**
62a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * @deprecated use {@link android.graphics.ImageFormat#NV21
63a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * ImageFormat.NV21} instead.
64df4578e8ab7008a7e528d5af2ae761b33cf2bdf4Scott Main     */
65a696f5d667227365da732481770767dcb330dd23Mathias Agopian    @Deprecated
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int YCbCr_420_SP= 0x11;
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
68a696f5d667227365da732481770767dcb330dd23Mathias Agopian    /**
69a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * @deprecated use {@link android.graphics.ImageFormat#YUY2
70a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * ImageFormat.YUY2} instead.
71eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang     */
72a696f5d667227365da732481770767dcb330dd23Mathias Agopian    @Deprecated
73eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang    public static final int YCbCr_422_I = 0x14;
74eb68c46a40c773eb56ef7bcf8e7ece5c6a5a8d23Chih-Chung Chang
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
76a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * @deprecated use {@link android.graphics.ImageFormat#JPEG
77a696f5d667227365da732481770767dcb330dd23Mathias Agopian     * ImageFormat.JPEG} instead.
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
79a696f5d667227365da732481770767dcb330dd23Mathias Agopian    @Deprecated
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int JPEG        = 0x100;
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /*
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * We use a class initializer to allow the native code to cache some
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * field offsets.
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    native private static void nativeClassInit();
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    static { nativeClassInit(); }
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static native void getPixelFormatInfo(int format, PixelFormat info);
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static boolean formatHasAlpha(int format) {
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        switch (format) {
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.A_8:
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.LA_88:
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.RGBA_4444:
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.RGBA_5551:
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.RGBA_8888:
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.TRANSLUCENT:
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            case PixelFormat.TRANSPARENT:
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return true;
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return false;
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int  bytesPerPixel;
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int  bitsPerPixel;
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
107