| Index: third_party/WebKit/Source/core/html/ImageData.h
|
| diff --git a/third_party/WebKit/Source/core/html/ImageData.h b/third_party/WebKit/Source/core/html/ImageData.h
|
| index 246a4cf85b0998060150d1977261f9bc0692c9b4..392ad60055bfb4e7547e39ad08982383115795d2 100644
|
| --- a/third_party/WebKit/Source/core/html/ImageData.h
|
| +++ b/third_party/WebKit/Source/core/html/ImageData.h
|
| @@ -30,9 +30,11 @@
|
| #define ImageData_h
|
|
|
| #include "bindings/core/v8/ScriptWrappable.h"
|
| +#include "bindings/core/v8/Uint8ClampedArrayOrUint16ArrayOrFloat32Array.h"
|
| #include "core/CoreExport.h"
|
| -#include "core/dom/DOMArrayBufferView.h"
|
| #include "core/dom/DOMTypedArray.h"
|
| +#include "core/html/ImageDataColorSettings.h"
|
| +#include "core/html/canvas/CanvasRenderingContext.h"
|
| #include "core/imagebitmap/ImageBitmapSource.h"
|
| #include "platform/geometry/IntRect.h"
|
| #include "platform/geometry/IntSize.h"
|
| @@ -47,28 +49,24 @@ namespace blink {
|
| class ExceptionState;
|
| class ImageBitmapOptions;
|
|
|
| +typedef Uint8ClampedArrayOrUint16ArrayOrFloat32Array ImageDataArray;
|
| +
|
| enum ConstructorParams {
|
| kParamSize = 1,
|
| kParamWidth = 1 << 1,
|
| kParamHeight = 1 << 2,
|
| kParamData = 1 << 3,
|
| - kParamColorSpace = 1 << 4,
|
| -};
|
| -
|
| -enum ImageDataType {
|
| - kUint8ClampedImageData,
|
| - kFloat32ImageData,
|
| };
|
|
|
| -enum ImageDataColorSpace {
|
| - kLegacyImageDataColorSpace,
|
| - kSRGBImageDataColorSpace,
|
| - kLinearRGBImageDataColorSpace,
|
| +enum ImageDataStorageFormat {
|
| + kUint8ClampedArrayStorageFormat,
|
| + kUint16ArrayStorageFormat,
|
| + kFloat32ArrayStorageFormat,
|
| };
|
|
|
| -const char* const kLinearRGBImageDataColorSpaceName = "linear-rgb";
|
| -const char* const kSRGBImageDataColorSpaceName = "srgb";
|
| -const char* const kLegacyImageDataColorSpaceName = "legacy-srgb";
|
| +constexpr const char* kUint8ClampedArrayStorageFormatName = "uint8";
|
| +constexpr const char* kUint16ArrayStorageFormatName = "uint16";
|
| +constexpr const char* kFloat32ArrayStorageFormatName = "float32";
|
|
|
| class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
| public ScriptWrappable,
|
| @@ -78,9 +76,7 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
| public:
|
| static ImageData* create(const IntSize&);
|
| static ImageData* create(const IntSize&, DOMUint8ClampedArray*);
|
| - static ImageData* create(const IntSize&,
|
| - DOMUint8ClampedArray*,
|
| - const String&);
|
| +
|
| static ImageData* create(unsigned width, unsigned height, ExceptionState&);
|
| static ImageData* create(DOMUint8ClampedArray*,
|
| unsigned width,
|
| @@ -94,30 +90,31 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
|
|
| ImageData* createImageData(unsigned width,
|
| unsigned height,
|
| - String colorSpace,
|
| + const ImageDataColorSettings&,
|
| ExceptionState&);
|
| - ImageData* createImageData(DOMUint8ClampedArray*,
|
| - unsigned width,
|
| - String colorSpace,
|
| - ExceptionState&);
|
| - ImageData* createImageData(DOMUint8ClampedArray*,
|
| + ImageData* createImageData(ImageDataArray&,
|
| unsigned width,
|
| unsigned height,
|
| - String colorSpace,
|
| + const ImageDataColorSettings&,
|
| ExceptionState&);
|
|
|
| - static ImageDataColorSpace getImageDataColorSpace(String);
|
| - static String getImageDataColorSpaceName(ImageDataColorSpace);
|
| - static sk_sp<SkColorSpace> imageDataColorSpaceToSkColorSpace(
|
| - ImageDataColorSpace);
|
| + static ImageDataStorageFormat getImageDataStorageFormat(const String&);
|
|
|
| IntSize size() const { return m_size; }
|
| int width() const { return m_size.width(); }
|
| int height() const { return m_size.height(); }
|
| - String colorSpace() const { return getImageDataColorSpaceName(m_colorSpace); }
|
| - ImageDataColorSpace imageDataColorSpace() { return m_colorSpace; }
|
| - const DOMUint8ClampedArray* data() const { return m_data.get(); }
|
| - DOMUint8ClampedArray* data() { return m_data.get(); }
|
| +
|
| + DOMUint8ClampedArray* data();
|
| + const DOMUint8ClampedArray* data() const;
|
| + ImageDataArray& dataUnion() { return m_dataUnion; }
|
| + const ImageDataArray& dataUnion() const { return m_dataUnion; }
|
| + void dataUnion(ImageDataArray& result) { result = m_dataUnion; };
|
| + const ImageDataColorSettings& colorSettings() const {
|
| + return m_colorSettings;
|
| + }
|
| + void colorSettings(ImageDataColorSettings& result) {
|
| + result = m_colorSettings;
|
| + };
|
|
|
| sk_sp<SkColorSpace> getSkColorSpace();
|
|
|
| @@ -129,34 +126,35 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
| const ImageBitmapOptions&,
|
| ExceptionState&) override;
|
|
|
| - DEFINE_INLINE_TRACE() { visitor->trace(m_data); }
|
| + void trace(Visitor*);
|
|
|
| WARN_UNUSED_RESULT v8::Local<v8::Object> associateWithWrapper(
|
| v8::Isolate*,
|
| const WrapperTypeInfo*,
|
| v8::Local<v8::Object> wrapper) override;
|
|
|
| - static bool validateConstructorArguments(
|
| - const unsigned&,
|
| - const IntSize* = nullptr,
|
| - const unsigned& = 0,
|
| - const unsigned& = 0,
|
| - const DOMArrayBufferView* = nullptr,
|
| - const String* = nullptr,
|
| - ExceptionState* = nullptr,
|
| - ImageDataType = kUint8ClampedImageData);
|
| + static bool validateConstructorArguments(const unsigned&,
|
| + const IntSize* = nullptr,
|
| + const unsigned& = 0,
|
| + const unsigned& = 0,
|
| + const DOMArrayBufferView* = nullptr,
|
| + ExceptionState* = nullptr);
|
|
|
| private:
|
| ImageData(const IntSize&,
|
| - DOMUint8ClampedArray*,
|
| - String = kLegacyImageDataColorSpaceName);
|
| + DOMArrayBufferView*,
|
| + const ImageDataColorSettings* = nullptr);
|
|
|
| IntSize m_size;
|
| - ImageDataColorSpace m_colorSpace;
|
| + ImageDataColorSettings m_colorSettings;
|
| + ImageDataArray m_dataUnion;
|
| Member<DOMUint8ClampedArray> m_data;
|
| + Member<DOMUint16Array> m_dataU16;
|
| + Member<DOMFloat32Array> m_dataF32;
|
|
|
| - static DOMUint8ClampedArray* allocateAndValidateUint8ClampedArray(
|
| + static DOMArrayBufferView* allocateAndValidateDataArray(
|
| const unsigned&,
|
| + ImageDataStorageFormat,
|
| ExceptionState* = nullptr);
|
| };
|
|
|
|
|