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

Unified Diff: third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h

Issue 2309013002: [GeometryInterface] Add fromFloat32Array & fromFloat64Array function (Closed)
Patch Set: [GeometryInterface] Add fromFloat32Array & fromFloat64Array function Created 4 years, 3 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
Index: third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h
diff --git a/third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h b/third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h
index cd19086fb95f05e087478c3ee094075bfa73a5c1..10c274be353f2078afa3ef7973055b98f1fbb628 100644
--- a/third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h
+++ b/third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.h
@@ -20,6 +20,9 @@ class DOMMatrixReadOnly : public GarbageCollectedFinalized<DOMMatrixReadOnly>, p
DEFINE_WRAPPERTYPEINFO();
public:
static DOMMatrixReadOnly* create(Vector<double>, ExceptionState&);
+ static DOMMatrixReadOnly* fromFloat32Array(DOMFloat32Array*, ExceptionState&);
+ static DOMMatrixReadOnly* fromFloat64Array(DOMFloat64Array*, ExceptionState&);
+
virtual ~DOMMatrixReadOnly();
double a() const { return m_matrix->m11(); }
@@ -72,15 +75,33 @@ public:
protected:
DOMMatrixReadOnly() {}
+
+ template <typename T>
+ DOMMatrixReadOnly(T sequence, int size)
+ {
+ if (size == 6) {
+ m_matrix = TransformationMatrix::create(
+ sequence[0], sequence[1], sequence[2], sequence[3],
+ sequence[4], sequence[5]);
+ m_is2D = true;
+ } else if (size == 16) {
+ m_matrix = TransformationMatrix::create(
+ sequence[0], sequence[1], sequence[2], sequence[3],
+ sequence[4], sequence[5], sequence[6], sequence[7],
+ sequence[8], sequence[9], sequence[10], sequence[11],
+ sequence[12], sequence[13], sequence[14], sequence[15]);
+ m_is2D = false;
+ } else {
+ NOTREACHED();
+ }
+ }
+
// TransformationMatrix needs to be 16-byte aligned. PartitionAlloc
// supports 16-byte alignment but Oilpan doesn't. So we use an std::unique_ptr
// to allocate TransformationMatrix on PartitionAlloc.
// TODO(oilpan): Oilpan should support 16-byte aligned allocations.
std::unique_ptr<TransformationMatrix> m_matrix;
bool m_is2D;
-
-private:
- DOMMatrixReadOnly(Vector<double> sequence);
};
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/dom/DOMMatrix.idl ('k') | third_party/WebKit/Source/core/dom/DOMMatrixReadOnly.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698