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