| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ |
| #define PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ |
| |
| #include "ppapi/c/pp_bool.h" |
| #include "ppapi/c/ppb_image_data.h" |
| #include "ppapi/shared_impl/ppapi_shared_export.h" |
| |
| namespace ppapi { |
| |
| // Contains the implementation of some simple image data functions that are |
| // shared between the proxy and Chrome's implementation. Since these functions |
| // are just lists of what we support, it's much easier to just have the same |
| // code run in the plugin process than to proxy it. |
| // |
| // It's possible the implementation will get more complex. In this case, it's |
| // probably best to have some kind of "configuration" message that the renderer |
| // sends to the plugin process on startup that contains all of these kind of |
| // settings. |
| class PPAPI_SHARED_EXPORT PPB_ImageData_Shared { |
| public: |
| enum ImageDataType { |
| // An ImageData backed by a PlatformCanvas. You must create this type if |
| // you intend the ImageData to be usable in platform-specific APIs (like |
| // font rendering or rendering widgets like scrollbars). This type is not |
| // available in untrusted (NaCl) plugins. |
| PLATFORM, |
| // An ImageData that doesn't need access to the platform-specific canvas. |
| // This is backed by a simple shared memory buffer. This is the only type |
| // of ImageData that can be used by untrusted (NaCl) plugins. |
| SIMPLE |
| }; |
| |
| static PP_ImageDataFormat GetNativeImageDataFormat(); |
| static PP_Bool IsImageDataFormatSupported(PP_ImageDataFormat format); |
| static PP_Bool IsImageDataDescValid(const PP_ImageDataDesc& desc); |
| }; |
| |
| } // namespace ppapi |
| |
| #endif // PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_ |