diff options
author | Robert Phillips <robertphillips@google.com> | 2018-06-12 10:11:12 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-12 14:43:03 +0000 |
commit | 7c525e62d405d57ae7a7742cf607b9770a83a0ab (patch) | |
tree | 8dabe9ed08bddd398b8fac935decaf2743f5a6f7 /src/gpu/ops/GrTextureOp.cpp | |
parent | 7deacf4833dcdb6c1101a18a2b46a8c516a96f9a (diff) |
Plumb GrContext everywhere
There is no good way to split the monster CL up. This breaks out
the GrContext plumbing but doesn't use it.
Change-Id: I90856d428d372bcec3f8821e6364667b367927d4
Reviewed-on: https://skia-review.googlesource.com/133382
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/ops/GrTextureOp.cpp')
-rw-r--r-- | src/gpu/ops/GrTextureOp.cpp | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp index 68a5851afe..2301930e93 100644 --- a/src/gpu/ops/GrTextureOp.cpp +++ b/src/gpu/ops/GrTextureOp.cpp @@ -8,8 +8,11 @@ #include "GrTextureOp.h" #include "GrAppliedClip.h" #include "GrCaps.h" +#include "GrContext.h" +#include "GrContextPriv.h" #include "GrDrawOpTest.h" #include "GrGeometryProcessor.h" +#include "GrMemoryPool.h" #include "GrMeshDrawOp.h" #include "GrOpFlushState.h" #include "GrQuad.h" @@ -608,10 +611,14 @@ static void tessellate_quad(const GrPerspQuad& devQuad, const SkRect& srcRect, G */ class TextureOp final : public GrMeshDrawOp { public: - static std::unique_ptr<GrDrawOp> Make(sk_sp<GrTextureProxy> proxy, - GrSamplerState::Filter filter, GrColor color, - const SkRect& srcRect, const SkRect& dstRect, - GrAAType aaType, SkCanvas::SrcRectConstraint constraint, + static std::unique_ptr<GrDrawOp> Make(GrContext* context, + sk_sp<GrTextureProxy> proxy, + GrSamplerState::Filter filter, + GrColor color, + const SkRect& srcRect, + const SkRect& dstRect, + GrAAType aaType, + SkCanvas::SrcRectConstraint constraint, const SkMatrix& viewMatrix, sk_sp<GrColorSpaceXform> csxf) { return std::unique_ptr<GrDrawOp>(new TextureOp(std::move(proxy), filter, color, srcRect, @@ -684,6 +691,7 @@ public: DEFINE_OP_CLASS_ID private: + friend class ::GrOpMemoryPool; // This is used in a heursitic for choosing a code path. We don't care what happens with // really large rects, infs, nans, etc. @@ -1026,12 +1034,18 @@ constexpr int TextureOp::kMaxTextures; namespace GrTextureOp { -std::unique_ptr<GrDrawOp> Make(sk_sp<GrTextureProxy> proxy, GrSamplerState::Filter filter, - GrColor color, const SkRect& srcRect, const SkRect& dstRect, - GrAAType aaType, SkCanvas::SrcRectConstraint constraint, - const SkMatrix& viewMatrix, sk_sp<GrColorSpaceXform> csxf) { - return TextureOp::Make(std::move(proxy), filter, color, srcRect, dstRect, aaType, constraint, - viewMatrix, std::move(csxf)); +std::unique_ptr<GrDrawOp> Make(GrContext* context, + sk_sp<GrTextureProxy> proxy, + GrSamplerState::Filter filter, + GrColor color, + const SkRect& srcRect, + const SkRect& dstRect, + GrAAType aaType, + SkCanvas::SrcRectConstraint constraint, + const SkMatrix& viewMatrix, + sk_sp<GrColorSpaceXform> csxf) { + return TextureOp::Make(context, std::move(proxy), filter, color, srcRect, dstRect, aaType, + constraint, viewMatrix, std::move(csxf)); } } // namespace GrTextureOp @@ -1079,8 +1093,8 @@ GR_DRAW_OP_TEST_DEFINE(TextureOp) { } auto constraint = random->nextBool() ? SkCanvas::kStrict_SrcRectConstraint : SkCanvas::kFast_SrcRectConstraint; - return GrTextureOp::Make(std::move(proxy), filter, color, srcRect, rect, aaType, constraint, - viewMatrix, std::move(csxf)); + return GrTextureOp::Make(context, std::move(proxy), filter, color, srcRect, rect, aaType, + constraint, viewMatrix, std::move(csxf)); } #endif |