1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/*
2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
3edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project *
4edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * you may not use this file except in compliance with the License.
6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * You may obtain a copy of the License at
7edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project *
8edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project *
10edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * See the License for the specific language governing permissions and
14edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * limitations under the License.
15edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */
16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <ui/PixelFormat.h>
183db21640519541141137166ce55627cf76e1974bMathias Agopian#include <hardware/hardware.h>
19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
2042e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectnamespace android {
2242e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
23edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
245773d3f5b2694c647e010246dff99acc70131289Mathias Agopianssize_t bytesPerPixel(PixelFormat format) {
255773d3f5b2694c647e010246dff99acc70131289Mathias Agopian    switch (format) {
26c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_8888:
27c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBX_8888:
28c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_BGRA_8888:
296a5d35dd5cd8710c6c9f100076e62ffbdb0b868bDan Stoza        case PIXEL_FORMAT_sRGB_A_8888:
306a5d35dd5cd8710c6c9f100076e62ffbdb0b868bDan Stoza        case PIXEL_FORMAT_sRGB_X_8888:
315773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 4;
32c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_888:
335773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 3;
34c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_565:
35c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_5551:
36c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_4444:
375773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 2;
38edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    }
395773d3f5b2694c647e010246dff99acc70131289Mathias Agopian    return BAD_VALUE;
40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
425773d3f5b2694c647e010246dff99acc70131289Mathias Agopianssize_t bitsPerPixel(PixelFormat format) {
433db21640519541141137166ce55627cf76e1974bMathias Agopian    switch (format) {
44c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_8888:
45c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBX_8888:
46c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_BGRA_8888:
475773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 32;
48c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_888:
495773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 24;
50c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_565:
51c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_5551:
52c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_4444:
535773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 16;
543db21640519541141137166ce55627cf76e1974bMathias Agopian    }
555773d3f5b2694c647e010246dff99acc70131289Mathias Agopian    return BAD_VALUE;
56edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
57edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
5842e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; // namespace android
6042e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
61edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
62