aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkYUVSizeInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/SkYUVSizeInfo.h')
-rw-r--r--include/core/SkYUVSizeInfo.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/core/SkYUVSizeInfo.h b/include/core/SkYUVSizeInfo.h
new file mode 100644
index 0000000000..2c5a51d794
--- /dev/null
+++ b/include/core/SkYUVSizeInfo.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkYUVSizeInfo_DEFINED
+#define SkYUVSizeInfo_DEFINED
+
+struct SkYUVSizeInfo {
+ enum {
+ kY = 0,
+ kU = 1,
+ kV = 2,
+ };
+ SkISize fSizes[3];
+
+ /**
+ * While the widths of the Y, U, and V planes are not restricted, the
+ * implementation often requires that the width of the memory allocated
+ * for each plane be a multiple of 8.
+ *
+ * This struct allows us to inform the client how many "widthBytes"
+ * that we need. Note that we use the new idea of "widthBytes"
+ * because this idea is distinct from "rowBytes" (used elsewhere in
+ * Skia). "rowBytes" allow the last row of the allocation to not
+ * include any extra padding, while, in this case, every single row of
+ * the allocation must be at least "widthBytes".
+ */
+ size_t fWidthBytes[3];
+};
+
+#endif // SkYUVSizeInfo_DEFINED