diff options
Diffstat (limited to 'graphics/java/android/graphics/PixelFormat.java')
-rw-r--r-- | graphics/java/android/graphics/PixelFormat.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/PixelFormat.java b/graphics/java/android/graphics/PixelFormat.java new file mode 100644 index 0000000..159accc --- /dev/null +++ b/graphics/java/android/graphics/PixelFormat.java @@ -0,0 +1,86 @@ +/* + * 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. + */ + +package android.graphics; + +public class PixelFormat +{ + /* these constants need to match those + in ui/PixelFormat.h & pixelflinger/format.h */ + + public static final int UNKNOWN = 0; + + /** System chooses a format that supports translucency (many alpha bits) */ + public static final int TRANSLUCENT = -3; + + /** + * System chooses a format that supports transparency + * (at least 1 alpha bit) + */ + public static final int TRANSPARENT = -2; + + /** System chooses an opaque format (no alpha bits required) */ + public static final int OPAQUE = -1; + + public static final int RGBA_8888 = 1; + public static final int RGBX_8888 = 2; + public static final int RGB_888 = 3; + public static final int RGB_565 = 4; + + public static final int RGBA_5551 = 6; + public static final int RGBA_4444 = 7; + public static final int A_8 = 8; + public static final int L_8 = 9; + public static final int LA_88 = 0xA; + public static final int RGB_332 = 0xB; + + /** + * YCbCr formats, used for video. These are not necessarily supported + * by the hardware. + */ + public static final int YCbCr_422_SP= 0x10; + public static final int YCbCr_420_SP= 0x11; + + /** + * Encoded formats. These are not necessarily supported by the hardware. + */ + public static final int JPEG = 0x100; + + /* + * We use a class initializer to allow the native code to cache some + * field offsets. + */ + native private static void nativeClassInit(); + static { nativeClassInit(); } + + public static native void getPixelFormatInfo(int format, PixelFormat info); + public static boolean formatHasAlpha(int format) { + switch (format) { + case PixelFormat.A_8: + case PixelFormat.LA_88: + case PixelFormat.RGBA_4444: + case PixelFormat.RGBA_5551: + case PixelFormat.RGBA_8888: + case PixelFormat.TRANSLUCENT: + case PixelFormat.TRANSPARENT: + return true; + } + return false; + } + + public int bytesPerPixel; + public int bitsPerPixel; +} |