Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: webkit/plugins/ppapi/ppb_image_data_impl.h

Issue 20165002: Move webkit/plugins/ppapi to content/renderer/pepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: more more clang fun Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/plugins/ppapi/ppb_graphics_3d_impl.cc ('k') | webkit/plugins/ppapi/ppb_image_data_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppb_image_data_impl.h
===================================================================
--- webkit/plugins/ppapi/ppb_image_data_impl.h (revision 213561)
+++ webkit/plugins/ppapi/ppb_image_data_impl.h (working copy)
@@ -1,196 +0,0 @@
-// Copyright (c) 2012 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 WEBKIT_PLUGINS_PPAPI_PPB_IMAGE_DATA_IMPL_H_
-#define WEBKIT_PLUGINS_PPAPI_PPB_IMAGE_DATA_IMPL_H_
-
-#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/shared_impl/ppb_image_data_shared.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-#include "third_party/skia/include/core/SkCanvas.h"
-#include "webkit/plugins/ppapi/plugin_delegate.h"
-#include "webkit/plugins/webkit_plugins_export.h"
-
-class SkBitmap;
-class SkCanvas;
-
-namespace webkit {
-namespace ppapi {
-
-class WEBKIT_PLUGINS_EXPORT PPB_ImageData_Impl
- : public ::ppapi::Resource,
- public ::ppapi::PPB_ImageData_Shared,
- public NON_EXPORTED_BASE(::ppapi::thunk::PPB_ImageData_API) {
- public:
- // We delegate most of our implementation to a back-end class that either uses
- // a PlatformCanvas (for most trusted stuff) or bare shared memory (for use by
- // NaCl, or trusted plugins when the PlatformCanvas isn't needed). This makes
- // it cheap & easy to implement Swap.
- class Backend {
- public:
- virtual ~Backend() {};
- virtual bool Init(PPB_ImageData_Impl* impl, PP_ImageDataFormat format,
- int width, int height, bool init_to_zero) = 0;
- virtual bool IsMapped() const = 0;
- virtual PluginDelegate::PlatformImage2D* PlatformImage() const = 0;
- virtual void* Map() = 0;
- virtual void Unmap() = 0;
- virtual int32_t GetSharedMemory(int* handle, uint32_t* byte_count) = 0;
- virtual SkCanvas* GetPlatformCanvas() = 0;
- virtual SkCanvas* GetCanvas() = 0;
- virtual const SkBitmap* GetMappedBitmap() const = 0;
- };
-
- // If you call this constructor, you must also call Init before use. Normally
- // you should use the static Create function, but this constructor is needed
- // for some internal uses of ImageData (like Graphics2D).
- PPB_ImageData_Impl(PP_Instance instance,
- PPB_ImageData_Shared::ImageDataType type);
- virtual ~PPB_ImageData_Impl();
-
- bool Init(PP_ImageDataFormat format,
- int width, int height,
- bool init_to_zero);
-
- static PP_Resource Create(PP_Instance pp_instance,
- PPB_ImageData_Shared::ImageDataType type,
- PP_ImageDataFormat format,
- const PP_Size& size,
- PP_Bool init_to_zero);
-
- int width() const { return width_; }
- int height() const { return height_; }
-
- // Returns the image format.
- PP_ImageDataFormat format() const { return format_; }
-
- // Returns true if this image is mapped. False means that the image is either
- // invalid or not mapped. See ImageDataAutoMapper below.
- bool IsMapped() const;
- PluginDelegate::PlatformImage2D* PlatformImage() const;
-
- // Resource override.
- virtual ::ppapi::thunk::PPB_ImageData_API* AsPPB_ImageData_API() OVERRIDE;
-
- // PPB_ImageData_API implementation.
- virtual PP_Bool Describe(PP_ImageDataDesc* desc) OVERRIDE;
- virtual void* Map() OVERRIDE;
- virtual void Unmap() OVERRIDE;
- virtual int32_t GetSharedMemory(int* handle, uint32_t* byte_count) OVERRIDE;
- virtual SkCanvas* GetPlatformCanvas() OVERRIDE;
- virtual SkCanvas* GetCanvas() OVERRIDE;
- virtual void SetIsCandidateForReuse() OVERRIDE;
-
- const SkBitmap* GetMappedBitmap() const;
-
- private:
- PP_ImageDataFormat format_;
- int width_;
- int height_;
- scoped_ptr<Backend> backend_;
-
- DISALLOW_COPY_AND_ASSIGN(PPB_ImageData_Impl);
-};
-
-class ImageDataPlatformBackend : public PPB_ImageData_Impl::Backend {
- public:
- ImageDataPlatformBackend();
- virtual ~ImageDataPlatformBackend();
-
- // PPB_ImageData_Impl::Backend implementation.
- virtual bool Init(PPB_ImageData_Impl* impl, PP_ImageDataFormat format,
- int width, int height, bool init_to_zero) OVERRIDE;
- virtual bool IsMapped() const OVERRIDE;
- virtual PluginDelegate::PlatformImage2D* PlatformImage() const OVERRIDE;
- virtual void* Map() OVERRIDE;
- virtual void Unmap() OVERRIDE;
- virtual int32_t GetSharedMemory(int* handle, uint32_t* byte_count) OVERRIDE;
- virtual SkCanvas* GetPlatformCanvas() OVERRIDE;
- virtual SkCanvas* GetCanvas() OVERRIDE;
- virtual const SkBitmap* GetMappedBitmap() const OVERRIDE;
-
- private:
- // This will be NULL before initialization, and if this PPB_ImageData_Impl is
- // swapped with another.
- scoped_ptr<PluginDelegate::PlatformImage2D> platform_image_;
-
- // When the device is mapped, this is the image. Null when umapped.
- scoped_ptr<SkCanvas> mapped_canvas_;
-
- DISALLOW_COPY_AND_ASSIGN(ImageDataPlatformBackend);
-};
-
-class ImageDataSimpleBackend : public PPB_ImageData_Impl::Backend {
- public:
- ImageDataSimpleBackend();
- virtual ~ImageDataSimpleBackend();
-
- // PPB_ImageData_Impl::Backend implementation.
- bool Init(PPB_ImageData_Impl* impl, PP_ImageDataFormat format,
- int width, int height, bool init_to_zero) OVERRIDE;
- virtual bool IsMapped() const OVERRIDE;
- PluginDelegate::PlatformImage2D* PlatformImage() const OVERRIDE;
- virtual void* Map() OVERRIDE;
- virtual void Unmap() OVERRIDE;
- virtual int32_t GetSharedMemory(int* handle, uint32_t* byte_count) OVERRIDE;
- virtual SkCanvas* GetPlatformCanvas() OVERRIDE;
- virtual SkCanvas* GetCanvas() OVERRIDE;
- virtual const SkBitmap* GetMappedBitmap() const OVERRIDE;
-
- private:
- scoped_ptr<base::SharedMemory> shared_memory_;
- // skia_bitmap_ is backed by shared_memory_.
- SkBitmap skia_bitmap_;
- scoped_ptr<SkCanvas> skia_canvas_;
- uint32 map_count_;
-
- DISALLOW_COPY_AND_ASSIGN(ImageDataSimpleBackend);
-};
-
-// Manages mapping an image resource if necessary. Use this to ensure the
-// image is mapped. The destructor will put the image back into the previous
-// state. You must check is_valid() to make sure the image was successfully
-// mapped before using it.
-//
-// Example:
-// ImageDataAutoMapper mapper(image_data);
-// if (!mapper.is_valid())
-// return utter_failure;
-// image_data->mapped_canvas()->blah(); // Guaranteed valid.
-class ImageDataAutoMapper {
- public:
- explicit ImageDataAutoMapper(PPB_ImageData_Impl* image_data)
- : image_data_(image_data) {
- if (image_data_->IsMapped()) {
- is_valid_ = true;
- needs_unmap_ = false;
- } else {
- is_valid_ = needs_unmap_ = !!image_data_->Map();
- }
- }
-
- ~ImageDataAutoMapper() {
- if (needs_unmap_)
- image_data_->Unmap();
- }
-
- // Check this to see if the image was successfully mapped. If this is false,
- // the image could not be mapped and is unusable.
- bool is_valid() const { return is_valid_; }
-
- private:
- PPB_ImageData_Impl* image_data_;
- bool is_valid_;
- bool needs_unmap_;
-
- DISALLOW_COPY_AND_ASSIGN(ImageDataAutoMapper);
-};
-
-} // namespace ppapi
-} // namespace webkit
-
-#endif // WEBKIT_PLUGINS_PPAPI_PPB_IMAGE_DATA_IMPL_H_
« no previous file with comments | « webkit/plugins/ppapi/ppb_graphics_3d_impl.cc ('k') | webkit/plugins/ppapi/ppb_image_data_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698