make SkPM4f private
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713653002
Review URL: https://codereview.chromium.org/1713653002
diff --git a/bench/SkLinearBitmapPipelineBench.cpp b/bench/SkLinearBitmapPipelineBench.cpp
index cc5d085..89d4c79 100644
--- a/bench/SkLinearBitmapPipelineBench.cpp
+++ b/bench/SkLinearBitmapPipelineBench.cpp
@@ -8,6 +8,7 @@
#include <memory>
#include "SkColor.h"
#include "SkLinearBitmapPipeline.h"
+#include "SkPM4f.h"
#include "Benchmark.h"
#include "SkShader.h"
#include "SkImage.h"
diff --git a/bench/Xfer4fBench.cpp b/bench/Xfer4fBench.cpp
index 6b6bbc8..f2bcedc 100644
--- a/bench/Xfer4fBench.cpp
+++ b/bench/Xfer4fBench.cpp
@@ -1,4 +1,3 @@
-
/*
* Copyright 2016 Google Inc.
*
@@ -7,6 +6,7 @@
*/
#include "Benchmark.h"
+#include "SkPM4f.h"
#include "SkString.h"
#include "SkXfermode.h"
diff --git a/bench/XferU64Bench.cpp b/bench/XferU64Bench.cpp
index 0cc2ba1..75aada6 100644
--- a/bench/XferU64Bench.cpp
+++ b/bench/XferU64Bench.cpp
@@ -6,6 +6,7 @@
*/
#include "Benchmark.h"
+#include "SkPM4f.h"
#include "SkString.h"
#include "SkXfermode.h"
diff --git a/gm/xfer4f.cpp b/gm/xfer4f.cpp
index 14927f2..dc7196d 100644
--- a/gm/xfer4f.cpp
+++ b/gm/xfer4f.cpp
@@ -9,6 +9,7 @@
#include "SkCanvas.h"
#include "SkImageInfo.h"
#include "SkXfermode.h"
+#include "SkPM4f.h"
static void draw_rect(SkCanvas* canvas, const SkRect& r, SkColor c, SkColorProfileType profile,
const SkAlpha aa[]) {
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index fa44617..9e87c04 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -1,14 +1,15 @@
-
/*
* Copyright 2011 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
+
#include "gm.h"
#include "SkBitmap.h"
#include "SkShader.h"
#include "SkXfermode.h"
+#include "SkPM4f.h"
enum SrcType {
//! A WxH image with a rectangle in the lower right.
diff --git a/gm/xferu64.cpp b/gm/xferu64.cpp
index 03fc886..fef1a44 100644
--- a/gm/xferu64.cpp
+++ b/gm/xferu64.cpp
@@ -11,6 +11,7 @@
#include "SkXfermode.h"
#include "SkHalf.h"
#include "SkImage.h"
+#include "SkPM4f.h"
static SkPMColor f16_to_pmcolor(uint64_t src) {
SkPMColor dst;
diff --git a/include/core/SkColor.h b/include/core/SkColor.h
index 101a9bd..a40e5f1 100644
--- a/include/core/SkColor.h
+++ b/include/core/SkColor.h
@@ -160,39 +160,7 @@
///////////////////////////////////////////////////////////////////////////////////////////////////
-struct SkColor4f;
-
-/*
- * The float values are 0...1 premultiplied
- */
-struct SkPM4f {
- enum {
- A = SK_A32_SHIFT/8,
- R = SK_R32_SHIFT/8,
- G = SK_G32_SHIFT/8,
- B = SK_B32_SHIFT/8,
- };
- float fVec[4];
-
- float a() const { return fVec[A]; }
-
- SkColor4f unpremul() const;
-
- static SkPM4f FromPMColor(SkPMColor);
-
- // half-float routines
- void toF16(uint16_t[4]) const;
- uint64_t toF16() const; // 4 float16 values packed into uint64_t
- static SkPM4f FromF16(const uint16_t[4]);
-
-#ifdef SK_DEBUG
- void assertIsUnit() const;
-#else
- void assertIsUnit() const {}
-#endif
-};
-
-typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
+struct SkPM4f;
/*
* The float values are 0...1 unpremultiplied
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h
index 3b0f49d..94f49fa 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -18,6 +18,9 @@
class GrXPFactory;
class SkString;
+struct SkPM4f;
+typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
+
/** \class SkXfermode
*
* SkXfermode is the base class for objects that are called to implement custom
diff --git a/src/core/SkBlitter_PM4f.cpp b/src/core/SkBlitter_PM4f.cpp
index cec2361..3c13baa 100644
--- a/src/core/SkBlitter_PM4f.cpp
+++ b/src/core/SkBlitter_PM4f.cpp
@@ -12,6 +12,7 @@
#include "SkXfermode.h"
#include "SkBlitMask.h"
#include "SkTemplates.h"
+#include "SkPM4f.h"
template <typename State> class SkState_Blitter : public SkRasterBlitter {
typedef SkRasterBlitter INHERITED;
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index c0a3895..d88950b 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -102,6 +102,7 @@
}
///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "SkPM4f.h"
#include "SkNx.h"
#include "SkHalf.h"
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 72f5470..7d11163 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -12,6 +12,7 @@
#include "SkTDArray.h"
#include "SkUnPreMultiply.h"
#include "SkWriteBuffer.h"
+#include "SkPM4f.h"
#if SK_SUPPORT_GPU
#include "GrFragmentProcessor.h"
diff --git a/src/core/SkColorMatrixFilterRowMajor255.cpp b/src/core/SkColorMatrixFilterRowMajor255.cpp
index 3b79d7f..de87913 100644
--- a/src/core/SkColorMatrixFilterRowMajor255.cpp
+++ b/src/core/SkColorMatrixFilterRowMajor255.cpp
@@ -12,6 +12,7 @@
#include "SkWriteBuffer.h"
#include "SkUnPreMultiply.h"
#include "SkString.h"
+#include "SkPM4f.h"
#define SK_PMORDER_INDEX_A (SK_A32_SHIFT / 8)
#define SK_PMORDER_INDEX_R (SK_R32_SHIFT / 8)
diff --git a/src/core/SkColorShader.h b/src/core/SkColorShader.h
index 1c07a3c..eb55a07 100644
--- a/src/core/SkColorShader.h
+++ b/src/core/SkColorShader.h
@@ -9,6 +9,7 @@
#define SkColorShader_DEFINED
#include "SkShader.h"
+#include "SkPM4f.h"
/** \class SkColorShader
A Shader that represents a single color. In general, this effect can be
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp
index bbb03c6..6651abb 100644
--- a/src/core/SkColorSpace.cpp
+++ b/src/core/SkColorSpace.cpp
@@ -174,6 +174,7 @@
#include "SkColor.h"
#include "SkNx.h"
+#include "SkPM4f.h"
void SkApply3x3ToPM4f(const SkFloat3x3& m, const SkPM4f src[], SkPM4f dst[], int count) {
SkASSERT(1 == SkPM4f::G);
diff --git a/src/core/SkLinearBitmapPipeline.cpp b/src/core/SkLinearBitmapPipeline.cpp
index d25335b..edb0e88 100644
--- a/src/core/SkLinearBitmapPipeline.cpp
+++ b/src/core/SkLinearBitmapPipeline.cpp
@@ -6,6 +6,7 @@
*/
#include "SkLinearBitmapPipeline.h"
+#include "SkPM4f.h"
struct X {
explicit X(SkScalar val) : fVal{val} { }
diff --git a/src/core/SkModeColorFilter.cpp b/src/core/SkModeColorFilter.cpp
index 14e3fb7..574c1ce 100644
--- a/src/core/SkModeColorFilter.cpp
+++ b/src/core/SkModeColorFilter.cpp
@@ -14,6 +14,7 @@
#include "SkUtils.h"
#include "SkString.h"
#include "SkValidationUtils.h"
+#include "SkPM4f.h"
//////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkPM4f.h b/src/core/SkPM4f.h
new file mode 100644
index 0000000..fb22783
--- /dev/null
+++ b/src/core/SkPM4f.h
@@ -0,0 +1,46 @@
+/*
+ * 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 SkPM4f_DEFINED
+#define SkPM4f_DEFINED
+
+#include "SkColorPriv.h"
+
+/*
+ * The float values are 0...1 premultiplied
+ */
+struct SkPM4f {
+ enum {
+ A = SK_A32_SHIFT/8,
+ R = SK_R32_SHIFT/8,
+ G = SK_G32_SHIFT/8,
+ B = SK_B32_SHIFT/8,
+ };
+ float fVec[4];
+
+ float a() const { return fVec[A]; }
+
+ SkColor4f unpremul() const;
+
+ static SkPM4f FromPMColor(SkPMColor);
+
+ // half-float routines
+ void toF16(uint16_t[4]) const;
+ uint64_t toF16() const; // 4 float16 values packed into uint64_t
+ static SkPM4f FromF16(const uint16_t[4]);
+
+#ifdef SK_DEBUG
+ void assertIsUnit() const;
+#else
+ void assertIsUnit() const {}
+#endif
+};
+
+typedef SkPM4f (*SkXfermodeProc4f)(const SkPM4f& src, const SkPM4f& dst);
+
+
+#endif
diff --git a/src/core/SkPM4fPriv.h b/src/core/SkPM4fPriv.h
index 81aff70..24d0736 100644
--- a/src/core/SkPM4fPriv.h
+++ b/src/core/SkPM4fPriv.h
@@ -5,6 +5,7 @@
* found in the LICENSE file.
*/
+#include "SkPM4f.h"
#include "SkColorPriv.h"
#include "SkNx.h"
diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp
index f285668..57bb194 100644
--- a/src/core/SkPixmap.cpp
+++ b/src/core/SkPixmap.cpp
@@ -11,6 +11,7 @@
#include "SkMask.h"
#include "SkPixmap.h"
#include "SkUtils.h"
+#include "SkPM4f.h"
void SkAutoPixmapUnlock::reset(const SkPixmap& pm, void (*unlock)(void*), void* ctx) {
SkASSERT(pm.addr() != nullptr);
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
index 8b28f1b..07c4e16 100644
--- a/src/core/SkXfermode.cpp
+++ b/src/core/SkXfermode.cpp
@@ -14,6 +14,7 @@
#include "SkReadBuffer.h"
#include "SkString.h"
#include "SkWriteBuffer.h"
+#include "SkPM4f.h"
#define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b)
diff --git a/tests/Float16Test.cpp b/tests/Float16Test.cpp
index 3b13533..ef349c6 100644
--- a/tests/Float16Test.cpp
+++ b/tests/Float16Test.cpp
@@ -10,6 +10,7 @@
#include "SkHalf.h"
#include "SkOpts.h"
#include "SkPixmap.h"
+#include "SkPM4f.h"
#include "SkRandom.h"
static bool eq_within_half_float(float a, float b) {
diff --git a/tests/SkColor4fTest.cpp b/tests/SkColor4fTest.cpp
index b9dcd0d..46c10f1 100644
--- a/tests/SkColor4fTest.cpp
+++ b/tests/SkColor4fTest.cpp
@@ -9,6 +9,7 @@
#include "SkColorMatrixFilter.h"
#include "SkGradientShader.h"
#include "SkImage.h"
+#include "SkPM4f.h"
#include "SkShader.h"
#include "Test.h"
diff --git a/tests/SkLinearBitmapPipelineTest.cpp b/tests/SkLinearBitmapPipelineTest.cpp
index db1fc2a..851b201 100644
--- a/tests/SkLinearBitmapPipelineTest.cpp
+++ b/tests/SkLinearBitmapPipelineTest.cpp
@@ -4,10 +4,10 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
+
#include "SkLinearBitmapPipeline.h"
-
#include "SkColor.h"
-
+#include "SkPM4f.h"
#include "Test.h"
struct SinkBilerpProcessor final : public PointProcessorInterface {