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