aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/SkLinearBitmapPipelineBench.cpp1
-rw-r--r--bench/Xfer4fBench.cpp2
-rw-r--r--bench/XferU64Bench.cpp1
-rw-r--r--gm/xfer4f.cpp1
-rw-r--r--gm/xfermodes.cpp3
-rw-r--r--gm/xferu64.cpp1
-rw-r--r--include/core/SkColor.h34
-rw-r--r--include/core/SkXfermode.h3
-rw-r--r--src/core/SkBlitter_PM4f.cpp1
-rw-r--r--src/core/SkColor.cpp1
-rw-r--r--src/core/SkColorFilter.cpp1
-rw-r--r--src/core/SkColorMatrixFilterRowMajor255.cpp1
-rw-r--r--src/core/SkColorShader.h1
-rw-r--r--src/core/SkColorSpace.cpp1
-rw-r--r--src/core/SkLinearBitmapPipeline.cpp1
-rw-r--r--src/core/SkModeColorFilter.cpp1
-rw-r--r--src/core/SkPM4f.h46
-rw-r--r--src/core/SkPM4fPriv.h1
-rw-r--r--src/core/SkPixmap.cpp1
-rw-r--r--src/core/SkXfermode.cpp1
-rw-r--r--tests/Float16Test.cpp1
-rw-r--r--tests/SkColor4fTest.cpp1
-rw-r--r--tests/SkLinearBitmapPipelineTest.cpp4
23 files changed, 72 insertions, 37 deletions
diff --git a/bench/SkLinearBitmapPipelineBench.cpp b/bench/SkLinearBitmapPipelineBench.cpp
index cc5d0850e8..89d4c79ba4 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 6b6bbc8d23..f2bcedc3ed 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 0cc2ba131a..75aada60d7 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 14927f2d1d..dc7196d399 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 fa4461712d..9e87c04455 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 03fc8864b5..fef1a44b93 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 101a9bdbed..a40e5f1f15 100644
--- a/include/core/SkColor.h
+++ b/include/core/SkColor.h
@@ -160,39 +160,7 @@ typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst);
///////////////////////////////////////////////////////////////////////////////////////////////////
-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 3b0f49d22e..94f49fac26 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -18,6 +18,9 @@ class GrTexture;
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 cec2361c06..3c13baa4c9 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 c0a3895bbe..d88950b5b0 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -102,6 +102,7 @@ SkColor SkHSVToColor(U8CPU a, const SkScalar hsv[3]) {
}
///////////////////////////////////////////////////////////////////////////////////////////////////
+#include "SkPM4f.h"
#include "SkNx.h"
#include "SkHalf.h"
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 72f5470b10..7d11163474 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 3b79d7f42c..de87913ace 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 1c07a3c124..eb55a07f13 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 bbb03c640a..6651abb3fc 100644
--- a/src/core/SkColorSpace.cpp
+++ b/src/core/SkColorSpace.cpp
@@ -174,6 +174,7 @@ SkColorSpace::Result SkColorSpace::Concat(const SkColorSpace* src, const SkColor
#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 d25335b0e7..edb0e88135 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 14e3fb7068..574c1ce9f0 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 0000000000..fb22783dcc
--- /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 81aff7013c..24d073639e 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 f28566871a..57bb194258 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 8b28f1b515..07c4e168b9 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 3b13533853..ef349c6cb6 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 b9dcd0d35e..46c10f18f8 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 db1fc2ab70..851b2014d8 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 "SkLinearBitmapPipeline.h"
#include "SkColor.h"
-
+#include "SkPM4f.h"
#include "Test.h"
struct SinkBilerpProcessor final : public PointProcessorInterface {