PixelFormat.cpp revision c2414bb0989763641ca57cf72c11ef6d86565a23
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:
295773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 4;
30c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_888:
315773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 3;
32c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_565:
33c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_5551:
34c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_4444:
355773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 2;
36edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    }
375773d3f5b2694c647e010246dff99acc70131289Mathias Agopian    return BAD_VALUE;
38edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
39edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
405773d3f5b2694c647e010246dff99acc70131289Mathias Agopianssize_t bitsPerPixel(PixelFormat format) {
413db21640519541141137166ce55627cf76e1974bMathias Agopian    switch (format) {
42c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_8888:
43c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBX_8888:
44c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_BGRA_8888:
455773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 32;
46c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_888:
475773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 24;
48c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGB_565:
49c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_5551:
50c2414bb0989763641ca57cf72c11ef6d86565a23Mathias Agopian        case PIXEL_FORMAT_RGBA_4444:
515773d3f5b2694c647e010246dff99acc70131289Mathias Agopian            return 16;
523db21640519541141137166ce55627cf76e1974bMathias Agopian    }
535773d3f5b2694c647e010246dff99acc70131289Mathias Agopian    return BAD_VALUE;
54edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
55edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
5642e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
57edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; // namespace android
5842e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ----------------------------------------------------------------------------
59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
60