ppb_image_data_shared.cc revision 3551c9c881056c480085172ff9840cab31610854
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ppapi/shared_impl/ppb_image_data_shared.h" 6 7#include "base/logging.h" 8#include "build/build_config.h" 9 10#if !defined(OS_NACL) && !defined(NACL_WIN64) 11#include "third_party/skia/include/core/SkTypes.h" 12#endif 13 14namespace ppapi { 15 16// static 17PP_ImageDataFormat PPB_ImageData_Shared::GetNativeImageDataFormat() { 18#if defined(OS_NACL) 19 // In NaCl, just default to something. If we're wrong, it will be converted 20 // later. 21 // TODO(dmichael): Really proxy this. 22 return PP_IMAGEDATAFORMAT_BGRA_PREMUL; 23#elif defined(NACL_WIN64) 24 // In the NaCl Win64 helper, this shouldn't be called. If we start building 25 // Chrome on Windows 64 for realz, we should really implement this. 26 NOTIMPLEMENTED(); 27 return PP_IMAGEDATAFORMAT_BGRA_PREMUL; 28#else 29 return PP_IMAGEDATAFORMAT_BGRA_PREMUL; 30#endif 31} 32 33// static 34PP_Bool PPB_ImageData_Shared::IsImageDataFormatSupported( 35 PP_ImageDataFormat format) { 36 return PP_FromBool(format == PP_IMAGEDATAFORMAT_BGRA_PREMUL || 37 format == PP_IMAGEDATAFORMAT_RGBA_PREMUL); 38} 39 40// static 41PP_Bool PPB_ImageData_Shared::IsImageDataDescValid( 42 const PP_ImageDataDesc& desc) { 43 return PP_FromBool(IsImageDataFormatSupported(desc.format) && 44 desc.size.width > 0 && 45 desc.size.height > 0 && 46 desc.stride > 0); 47} 48 49} // namespace ppapi 50