1// Copyright (c) 2011 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#ifndef PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ 6#define PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ 7 8#include "ppapi/c/pp_bool.h" 9#include "ppapi/c/ppb_image_data.h" 10#include "ppapi/shared_impl/ppapi_shared_export.h" 11 12namespace ppapi { 13 14// Contains the implementation of some simple image data functions that are 15// shared between the proxy and Chrome's implementation. Since these functions 16// are just lists of what we support, it's much easier to just have the same 17// code run in the plugin process than to proxy it. 18// 19// It's possible the implementation will get more complex. In this case, it's 20// probably best to have some kind of "configuration" message that the renderer 21// sends to the plugin process on startup that contains all of these kind of 22// settings. 23class PPAPI_SHARED_EXPORT PPB_ImageData_Shared { 24 public: 25 enum ImageDataType { 26 // An ImageData backed by a PlatformCanvas. You must create this type if 27 // you intend the ImageData to be usable in platform-specific APIs (like 28 // font rendering or rendering widgets like scrollbars). This type is not 29 // available in untrusted (NaCl) plugins. 30 PLATFORM, 31 // An ImageData that doesn't need access to the platform-specific canvas. 32 // This is backed by a simple shared memory buffer. This is the only type 33 // of ImageData that can be used by untrusted (NaCl) plugins. 34 SIMPLE 35 }; 36 37 static PP_ImageDataFormat GetNativeImageDataFormat(); 38 static PP_Bool IsImageDataFormatSupported(PP_ImageDataFormat format); 39 static PP_Bool IsImageDataDescValid(const PP_ImageDataDesc& desc); 40}; 41 42} // namespace ppapi 43 44#endif // PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ 45