196880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt/*
296880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt * Copyright 2016 Google Inc.
396880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt *
496880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt * Use of this source code is governed by a BSD-style license that can be
596880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt * found in the LICENSE file.
696880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt */
796880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
81105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman#ifndef GrPathRenderingRenderTargetContext_DEFINED
91105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman#define GrPathRenderingRenderTargetContext_DEFINED
1096880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
116b20a559968e1ed0d3aa4ecbd6ddda9e681b4f86Hal Canary#include "text/GrStencilAndCoverTextContext.h"
1296880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
131105224f9701e57ec5ce0354d6a380b664f5c638Brian Osmanclass GrPathRenderingRenderTargetContext : public GrRenderTargetContext {
1496880d9e366d58e5960aa0ee6aa67260797679ebjoshualittpublic:
156f1d36cc54dc635f5e4d0f925ef79c14914342bbBrian Salomon    void drawText(const GrClip&, const SkPaint&, const SkMatrix& viewMatrix, const char text[],
166f1d36cc54dc635f5e4d0f925ef79c14914342bbBrian Salomon                  size_t byteLength, SkScalar x, SkScalar y, const SkIRect& clipBounds) override;
176f1d36cc54dc635f5e4d0f925ef79c14914342bbBrian Salomon    void drawPosText(const GrClip&, const SkPaint&, const SkMatrix& viewMatrix, const char text[],
186f1d36cc54dc635f5e4d0f925ef79c14914342bbBrian Salomon                     size_t byteLength, const SkScalar pos[], int scalarsPerPosition,
196f1d36cc54dc635f5e4d0f925ef79c14914342bbBrian Salomon                     const SkPoint& offset, const SkIRect& clipBounds) override;
2096880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt    void drawTextBlob(const GrClip&, const SkPaint&,
2196880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt                      const SkMatrix& viewMatrix, const SkTextBlob*,
2296880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt                      SkScalar x, SkScalar y,
2396880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt                      SkDrawFilter*, const SkIRect& clipBounds) override;
2496880d9e366d58e5960aa0ee6aa67260797679ebjoshualittprotected:
251105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman    GrPathRenderingRenderTargetContext(GrContext* ctx, GrDrawingManager* mgr,
26c7635fa374b87711e5ccd8222957a8fbdc772f7bRobert Phillips                                       sk_sp<GrRenderTargetProxy> rtp,
27c7635fa374b87711e5ccd8222957a8fbdc772f7bRobert Phillips                                       sk_sp<SkColorSpace> colorSpace,
281105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman                                       const SkSurfaceProps* surfaceProps, GrAuditTrail* at,
291105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman                                       GrSingleOwner* so)
30c7635fa374b87711e5ccd8222957a8fbdc772f7bRobert Phillips        : INHERITED(ctx, mgr, std::move(rtp), std::move(colorSpace), surfaceProps, at, so) {}
3196880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
3296880d9e366d58e5960aa0ee6aa67260797679ebjoshualittprivate:
33145dbcd165d9d27298eb8888bc240e2d06a95464Ben Wagner    std::unique_ptr<GrStencilAndCoverTextContext> fStencilAndCoverTextContext;
3496880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
3596880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt    friend class GrDrawingManager; // for ctor
3696880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
371105224f9701e57ec5ce0354d6a380b664f5c638Brian Osman    typedef GrRenderTargetContext INHERITED;
3896880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt};
3996880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt
4096880d9e366d58e5960aa0ee6aa67260797679ebjoshualitt#endif
41