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

Side by Side Diff: third_party/WebKit/Source/core/html/Float32ImageData.h

Issue 2555213002: Implement color management for ImageData (Closed)
Patch Set: Fixing ImageData::validateConstructorArguments Created 3 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 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 Float32ImageData_h
6 #define Float32ImageData_h
7
8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "core/CoreExport.h"
10 #include "core/dom/DOMTypedArray.h"
11 #include "core/html/ImageData.h"
12 #include "core/imagebitmap/ImageBitmapSource.h"
13 #include "platform/geometry/IntRect.h"
14 #include "platform/geometry/IntSize.h"
15 #include "platform/heap/Handle.h"
16 #include "wtf/Compiler.h"
17 #include "wtf/text/WTFString.h"
18
19 namespace blink {
20
21 class ExceptionState;
22
23 class CORE_EXPORT Float32ImageData final
24 : public GarbageCollectedFinalized<Float32ImageData>,
25 public ScriptWrappable {
26 DEFINE_WRAPPERTYPEINFO();
27
28 public:
29 static Float32ImageData* create(const IntSize&);
30 static Float32ImageData* create(const IntSize&, DOMFloat32Array*);
31 static Float32ImageData* create(unsigned width,
32 unsigned height,
33 ExceptionState&);
34 static Float32ImageData* create(unsigned width,
35 unsigned height,
36 String colorSpace,
37 ExceptionState&);
38 static Float32ImageData* create(DOMFloat32Array*,
39 unsigned width,
40 ExceptionState&);
41 static Float32ImageData* create(DOMFloat32Array*,
42 unsigned width,
43 String colorSpace,
44 ExceptionState&);
45 static Float32ImageData* create(DOMFloat32Array*,
46 unsigned width,
47 unsigned height,
48 ExceptionState&);
49 static Float32ImageData* create(DOMFloat32Array*,
50 unsigned width,
51 unsigned height,
52 String colorSpace,
53 ExceptionState&);
54
55 IntSize size() const { return m_size; }
56 int width() const { return m_size.width(); }
57 int height() const { return m_size.height(); }
58 String colorSpace() const {
59 return ImageData::getImageDataColorSpaceName(m_colorSpace);
60 }
61 ImageDataColorSpace imageDataColorSpace() { return m_colorSpace; }
62 const DOMFloat32Array* data() const { return m_data.get(); }
63 DOMFloat32Array* data() { return m_data.get(); }
64
65 DEFINE_INLINE_TRACE() { visitor->trace(m_data); }
66
67 WARN_UNUSED_RESULT v8::Local<v8::Object> associateWithWrapper(
68 v8::Isolate*,
69 const WrapperTypeInfo*,
70 v8::Local<v8::Object> wrapper) override;
71
72 private:
73 Float32ImageData(const IntSize&,
74 DOMFloat32Array*,
75 String = kLinearRGBImageDataColorSpaceName);
76
77 IntSize m_size;
78 ImageDataColorSpace m_colorSpace;
79 Member<DOMFloat32Array> m_data;
80
81 static bool validateConstructorArguments(const unsigned&,
82 const IntSize* = nullptr,
83 const unsigned& = 0,
84 const unsigned& = 0,
85 const DOMFloat32Array* = nullptr,
86 const String* = nullptr,
87 ExceptionState* = nullptr);
88
89 static DOMFloat32Array* allocateAndValidateFloat32Array(
90 const unsigned&,
91 ExceptionState* = nullptr);
92 };
93
94 } // namespace blink
95
96 #endif // Float32ImageData_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/BUILD.gn ('k') | third_party/WebKit/Source/core/html/Float32ImageData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698