1/* 2 * Copyright 2019 Google LLC. 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 8#ifndef TessellationPathRenderer_DEFINED 9#define TessellationPathRenderer_DEFINED 10 11#include "include/gpu/GrTypes.h" 12#include "src/gpu/v1/PathRenderer.h" 13 14class GrCaps; 15 16namespace skgpu::v1 { 17 18// This is the tie-in point for path rendering via PathTessellateOp. This path renderer draws 19// paths using a hybrid Red Book "stencil, then cover" method. Curves get linearized by GPU 20// tessellation shaders. This path renderer doesn't apply analytic AA, so it requires MSAA if AA is 21// desired. 22class TessellationPathRenderer final : public PathRenderer { 23public: 24 static bool IsSupported(const GrCaps&); 25 26 const char* name() const override { return "Tessellation"; } 27 28private: 29 StencilSupport onGetStencilSupport(const GrStyledShape&) const override; 30 CanDrawPath onCanDrawPath(const CanDrawPathArgs&) const override; 31 bool onDrawPath(const DrawPathArgs&) override; 32 void onStencilPath(const StencilPathArgs&) override; 33}; 34 35} // namespace skgpu::v1 36 37#endif // TessellationPathRenderer_DEFINED 38