PixelFormat.cpp revision 5773d3f5b2694c647e010246dff99acc70131289
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) { 265773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_8888: 275773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBX_8888: 285773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_BGRA_8888: 295773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 4; 305773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGB_888: 315773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 3; 325773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGB_565: 335773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_5551: 345773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_4444: 355773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 2; 365773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCbCr_422_SP: 375773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCbCr_422_I: 385773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCrCb_420_SP: 395773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YV12: 405773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 1; 41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project } 425773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return BAD_VALUE; 43edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 44edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 455773d3f5b2694c647e010246dff99acc70131289Mathias Agopianssize_t bitsPerPixel(PixelFormat format) { 463db21640519541141137166ce55627cf76e1974bMathias Agopian switch (format) { 475773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_8888: 485773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBX_8888: 495773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_BGRA_8888: 505773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 32; 515773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGB_888: 525773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 24; 535773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGB_565: 545773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_5551: 555773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_RGBA_4444: 565773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCbCr_422_SP: 575773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCbCr_422_I: 585773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 16; 595773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YCrCb_420_SP: 605773d3f5b2694c647e010246dff99acc70131289Mathias Agopian case HAL_PIXEL_FORMAT_YV12: 615773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return 12; 623db21640519541141137166ce55627cf76e1974bMathias Agopian } 635773d3f5b2694c647e010246dff99acc70131289Mathias Agopian return BAD_VALUE; 64edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 65edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 6642e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ---------------------------------------------------------------------------- 67edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; // namespace android 6842e2458144778596281ea2c4a98ad671053234e0Mathias Agopian// ---------------------------------------------------------------------------- 69edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 70