Switch GPU blur code over to using GrRecordingContext
This is split out of: https://skia-review.googlesource.com/c/skia/+/191287 (Move DrawingManager to RecordingContext)
Change-Id: I305249f1e63bd4720264b0531733a219c79fe10a
Reviewed-on: https://skia-review.googlesource.com/c/192686
Auto-Submit: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrBlurUtils.cpp b/src/gpu/GrBlurUtils.cpp
index 816801a..9ff53b6 100644
--- a/src/gpu/GrBlurUtils.cpp
+++ b/src/gpu/GrBlurUtils.cpp
@@ -8,10 +8,10 @@
#include "GrBlurUtils.h"
#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
#include "GrFixedClip.h"
#include "GrProxyProvider.h"
+#include "GrRecordingContext.h"
+#include "GrRecordingContextPriv.h"
#include "GrRenderTargetContext.h"
#include "GrRenderTargetContextPriv.h"
#include "GrShape.h"
@@ -58,7 +58,7 @@
SkMask::FreeImage(addr);
}
-static bool sw_draw_with_mask_filter(GrContext* context,
+static bool sw_draw_with_mask_filter(GrRecordingContext* context,
GrRenderTargetContext* renderTargetContext,
const GrClip& clipData,
const SkMatrix& viewMatrix,
@@ -170,7 +170,7 @@
}
// Create a mask of 'shape' and place the result in 'mask'.
-static sk_sp<GrTextureProxy> create_mask_GPU(GrContext* context,
+static sk_sp<GrTextureProxy> create_mask_GPU(GrRecordingContext* context,
const SkIRect& maskRect,
const SkMatrix& origViewMatrix,
const GrShape& shape,
@@ -249,7 +249,7 @@
return true;
}
-static void draw_shape_with_mask_filter(GrContext* context,
+static void draw_shape_with_mask_filter(GrRecordingContext* context,
GrRenderTargetContext* renderTargetContext,
const GrClip& clip,
GrPaint&& paint,
@@ -430,7 +430,7 @@
maskFilter, *boundsForClip, std::move(paint), maskKey);
}
-void GrBlurUtils::drawShapeWithMaskFilter(GrContext* context,
+void GrBlurUtils::drawShapeWithMaskFilter(GrRecordingContext* context,
GrRenderTargetContext* renderTargetContext,
const GrClip& clip,
const GrShape& shape,
diff --git a/src/gpu/GrBlurUtils.h b/src/gpu/GrBlurUtils.h
index 6db3cd2..bb7adbf 100644
--- a/src/gpu/GrBlurUtils.h
+++ b/src/gpu/GrBlurUtils.h
@@ -13,6 +13,7 @@
class GrClip;
class GrContext;
class GrPaint;
+class GrRecordingContext;
class GrRenderTarget;
class GrRenderTargetContext;
class GrShape;
@@ -43,7 +44,7 @@
* Draw a shape handling the mask filter. The mask filter is not optional.
* The GrPaint will be modified after return.
*/
- void drawShapeWithMaskFilter(GrContext*,
+ void drawShapeWithMaskFilter(GrRecordingContext*,
GrRenderTargetContext*,
const GrClip&,
const GrShape&,
diff --git a/src/gpu/effects/GrRRectBlurEffect.cpp b/src/gpu/effects/GrRRectBlurEffect.cpp
index e84fae2..6f1f62b 100644
--- a/src/gpu/effects/GrRRectBlurEffect.cpp
+++ b/src/gpu/effects/GrRRectBlurEffect.cpp
@@ -10,7 +10,8 @@
**************************************************************************************************/
#include "GrRRectBlurEffect.h"
-std::unique_ptr<GrFragmentProcessor> GrRRectBlurEffect::Make(GrContext* context, float sigma,
+std::unique_ptr<GrFragmentProcessor> GrRRectBlurEffect::Make(GrRecordingContext* context,
+ float sigma,
float xformedSigma,
const SkRRect& srcRRect,
const SkRRect& devRRect) {
diff --git a/src/gpu/effects/GrRRectBlurEffect.fp b/src/gpu/effects/GrRRectBlurEffect.fp
index 698851b..8289d56 100644
--- a/src/gpu/effects/GrRRectBlurEffect.fp
+++ b/src/gpu/effects/GrRRectBlurEffect.fp
@@ -14,10 +14,10 @@
@header {
#include "GrClip.h"
- #include "GrContext.h"
- #include "GrContextPriv.h"
#include "GrPaint.h"
#include "GrProxyProvider.h"
+ #include "GrRecordingContext.h"
+ #include "GrRecordingContextPriv.h"
#include "GrRenderTargetContext.h"
#include "GrStyle.h"
#include "SkBlurMaskFilter.h"
@@ -27,7 +27,7 @@
}
@class {
- static sk_sp<GrTextureProxy> find_or_create_rrect_blur_mask(GrContext* context,
+ static sk_sp<GrTextureProxy> find_or_create_rrect_blur_mask(GrRecordingContext* context,
const SkRRect& rrectToDraw,
const SkISize& size,
float xformedSigma) {
@@ -105,14 +105,16 @@
}
@make {
- static std::unique_ptr<GrFragmentProcessor> Make(GrContext* context, float sigma,
+ static std::unique_ptr<GrFragmentProcessor> Make(GrRecordingContext* context,
+ float sigma,
float xformedSigma,
const SkRRect& srcRRect,
const SkRRect& devRRect);
}
@cpp {
- std::unique_ptr<GrFragmentProcessor> GrRRectBlurEffect::Make(GrContext* context, float sigma,
+ std::unique_ptr<GrFragmentProcessor> GrRRectBlurEffect::Make(GrRecordingContext* context,
+ float sigma,
float xformedSigma,
const SkRRect& srcRRect,
const SkRRect& devRRect) {
diff --git a/src/gpu/effects/GrRRectBlurEffect.h b/src/gpu/effects/GrRRectBlurEffect.h
index ae43a33..720167d 100644
--- a/src/gpu/effects/GrRRectBlurEffect.h
+++ b/src/gpu/effects/GrRRectBlurEffect.h
@@ -13,10 +13,10 @@
#include "SkTypes.h"
#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
#include "GrPaint.h"
#include "GrProxyProvider.h"
+#include "GrRecordingContext.h"
+#include "GrRecordingContextPriv.h"
#include "GrRenderTargetContext.h"
#include "GrStyle.h"
#include "SkBlurMaskFilter.h"
@@ -27,7 +27,7 @@
#include "GrCoordTransform.h"
class GrRRectBlurEffect : public GrFragmentProcessor {
public:
- static sk_sp<GrTextureProxy> find_or_create_rrect_blur_mask(GrContext* context,
+ static sk_sp<GrTextureProxy> find_or_create_rrect_blur_mask(GrRecordingContext* context,
const SkRRect& rrectToDraw,
const SkISize& size,
float xformedSigma) {
@@ -102,8 +102,10 @@
const SkRect& rect() const { return fRect; }
float cornerRadius() const { return fCornerRadius; }
- static std::unique_ptr<GrFragmentProcessor> Make(GrContext* context, float sigma,
- float xformedSigma, const SkRRect& srcRRect,
+ static std::unique_ptr<GrFragmentProcessor> Make(GrRecordingContext* context,
+ float sigma,
+ float xformedSigma,
+ const SkRRect& srcRRect,
const SkRRect& devRRect);
GrRRectBlurEffect(const GrRRectBlurEffect& src);
std::unique_ptr<GrFragmentProcessor> clone() const override;