blob: 0a719f80e984e91f4c47f23fb679e5231214b696 [file] [log] [blame]
Chris Daltona32a3c32017-12-05 10:05:21 -07001/*
2 * Copyright 2017 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
Chris Dalton383a2ef2018-01-08 17:21:41 -05008#ifndef GrCCClipProcessor_DEFINED
9#define GrCCClipProcessor_DEFINED
Chris Daltona32a3c32017-12-05 10:05:21 -070010
Mike Kleinc0bd9f92019-04-23 12:05:21 -050011#include "src/gpu/GrFragmentProcessor.h"
Chris Dalton5ba36ba2018-05-09 01:08:38 -060012
13class GrCCClipPath;
Chris Daltona32a3c32017-12-05 10:05:21 -070014
Chris Dalton383a2ef2018-01-08 17:21:41 -050015class GrCCClipProcessor : public GrFragmentProcessor {
Chris Daltona32a3c32017-12-05 10:05:21 -070016public:
Chris Daltonc3318f02019-07-19 14:20:53 -060017 enum class IsCoverageCount : bool {
18 kNo = false,
19 kYes = true
20 };
21
Chris Daltona32a3c32017-12-05 10:05:21 -070022 enum class MustCheckBounds : bool {
23 kNo = false,
24 kYes = true
25 };
26
Chris Daltonc3318f02019-07-19 14:20:53 -060027 GrCCClipProcessor(const GrCCClipPath*, IsCoverageCount, MustCheckBounds);
Chris Daltona32a3c32017-12-05 10:05:21 -070028
Chris Dalton383a2ef2018-01-08 17:21:41 -050029 const char* name() const override { return "GrCCClipProcessor"; }
Chris Daltona32a3c32017-12-05 10:05:21 -070030 std::unique_ptr<GrFragmentProcessor> clone() const override;
31 void onGetGLSLProcessorKey(const GrShaderCaps&, GrProcessorKeyBuilder*) const override;
32 bool onIsEqual(const GrFragmentProcessor&) const override;
33 GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;
Brian Salomonf7dcd762018-07-30 14:48:15 -040034 const TextureSampler& onTextureSampler(int) const override { return fAtlasAccess; }
Chris Daltona32a3c32017-12-05 10:05:21 -070035
36private:
Chris Dalton5ba36ba2018-05-09 01:08:38 -060037 const GrCCClipPath* const fClipPath;
Chris Daltonc3318f02019-07-19 14:20:53 -060038 const bool fIsCoverageCount;
Chris Daltona32a3c32017-12-05 10:05:21 -070039 const bool fMustCheckBounds;
Chris Daltona32a3c32017-12-05 10:05:21 -070040 const TextureSampler fAtlasAccess;
41
42 class Impl;
43
44 typedef GrFragmentProcessor INHERITED;
45};
46
47#endif