1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2017 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef GrCCClipProcessor_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define GrCCClipProcessor_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "GrFragmentProcessor.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "ccpr/GrCoverageCountingPathRenderer.h"
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass GrCCClipProcessor : public GrFragmentProcessor {
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    using ClipPath = GrCoverageCountingPathRenderer::ClipPath;
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    enum class MustCheckBounds : bool {
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        kNo = false,
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        kYes = true
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    };
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    GrCCClipProcessor(const ClipPath*, MustCheckBounds, SkPath::FillType overrideFillType);
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const char* name() const override { return "GrCCClipProcessor"; }
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    std::unique_ptr<GrFragmentProcessor> clone() const override;
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    bool onIsEqual(const GrFragmentProcessor&) const override;
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const ClipPath* const fClipPath;
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const bool fMustCheckBounds;
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const SkPath::FillType fOverrideFillType;
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    const TextureSampler fAtlasAccess;
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    class Impl;
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef GrFragmentProcessor INHERITED;
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
43