| Index: webkit/glue/plugins/pepper_image_data.h
|
| ===================================================================
|
| --- webkit/glue/plugins/pepper_image_data.h (revision 69381)
|
| +++ webkit/glue/plugins/pepper_image_data.h (working copy)
|
| @@ -1,131 +0,0 @@
|
| -// Copyright (c) 2010 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_GLUE_PLUGINS_PEPPER_IMAGE_DATA_H_
|
| -#define WEBKIT_GLUE_PLUGINS_PEPPER_IMAGE_DATA_H_
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/scoped_ptr.h"
|
| -#include "ppapi/c/ppb_image_data.h"
|
| -#include "webkit/glue/plugins/pepper_plugin_delegate.h"
|
| -#include "webkit/glue/plugins/pepper_resource.h"
|
| -
|
| -namespace skia {
|
| -class PlatformCanvas;
|
| -}
|
| -
|
| -struct PPB_ImageDataTrusted;
|
| -class SkBitmap;
|
| -
|
| -namespace pepper {
|
| -
|
| -class ImageData : public Resource {
|
| - public:
|
| - explicit ImageData(PluginModule* module);
|
| - virtual ~ImageData();
|
| -
|
| - 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 is_mapped() const { return !!mapped_canvas_.get(); }
|
| -
|
| - PluginDelegate::PlatformImage2D* platform_image() const {
|
| - return platform_image_.get();
|
| - }
|
| -
|
| - // Returns a pointer to the interface implementing PPB_ImageData that is
|
| - // exposed to the plugin.
|
| - static const PPB_ImageData* GetInterface();
|
| - static const PPB_ImageDataTrusted* GetTrustedInterface();
|
| -
|
| - // Returns the image data format used by the browser. If the plugin uses the
|
| - // same format, there is no conversion. Otherwise the browser will be in
|
| - // charge of converting from a supported format to its native format.
|
| - static PP_ImageDataFormat GetNativeImageDataFormat();
|
| -
|
| - // Returns true if the format is supported by the browser.
|
| - static bool IsImageDataFormatSupported(PP_ImageDataFormat format);
|
| -
|
| - // Resource overrides.
|
| - virtual ImageData* AsImageData();
|
| -
|
| - // PPB_ImageData implementation.
|
| - bool Init(PP_ImageDataFormat format,
|
| - int width, int height,
|
| - bool init_to_zero);
|
| - void Describe(PP_ImageDataDesc* desc) const;
|
| - void* Map();
|
| - void Unmap();
|
| -
|
| - // PPB_ImageDataTrusted implementation.
|
| - int GetSharedMemoryHandle(uint32* byte_count) const;
|
| -
|
| - // The mapped bitmap and canvas will be NULL if the image is not mapped.
|
| - skia::PlatformCanvas* mapped_canvas() const { return mapped_canvas_.get(); }
|
| - const SkBitmap* GetMappedBitmap() const;
|
| -
|
| - // Swaps the guts of this image data with another.
|
| - void Swap(ImageData* other);
|
| -
|
| - private:
|
| - // This will be NULL before initialization, and if this ImageData is
|
| - // swapped with another.
|
| - scoped_ptr<PluginDelegate::PlatformImage2D> platform_image_;
|
| -
|
| - // When the device is mapped, this is the image. Null when umapped.
|
| - scoped_ptr<skia::PlatformCanvas> mapped_canvas_;
|
| -
|
| - PP_ImageDataFormat format_;
|
| - int width_;
|
| - int height_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ImageData);
|
| -};
|
| -
|
| -// 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:
|
| - ImageDataAutoMapper(ImageData* image_data) : image_data_(image_data) {
|
| - if (image_data_->is_mapped()) {
|
| - 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:
|
| - ImageData* image_data_;
|
| - bool is_valid_;
|
| - bool needs_unmap_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ImageDataAutoMapper);
|
| -};
|
| -
|
| -} // namespace pepper
|
| -
|
| -#endif // WEBKIT_GLUE_PLUGINS_PEPPER_IMAGE_DATA_H_
|
|
|