• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 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 
8 #ifndef GrCCPerOpListPaths_DEFINED
9 #define GrCCPerOpListPaths_DEFINED
10 
11 #include "include/core/SkRefCnt.h"
12 #include "src/core/SkArenaAlloc.h"
13 #include "src/core/SkTInternalLList.h"
14 #include "src/gpu/ccpr/GrCCClipPath.h"
15 
16 #include <map>
17 
18 class GrCCDrawPathsOp;
19 class GrCCPerFlushResources;
20 
21 /**
22  * Tracks all the CCPR paths in a given opList that will be drawn when it flushes.
23  */
24 // DDL TODO: given the usage pattern in DDL mode, this could probably be non-atomic refcounting.
25 struct GrCCPerOpListPaths : public SkRefCnt {
26     SkTInternalLList<GrCCDrawPathsOp> fDrawOps;  // This class does not own these ops.
27     std::map<uint32_t, GrCCClipPath> fClipPaths;
28     SkSTArenaAlloc<10 * 1024> fAllocator{10 * 1024 * 2};
29     sk_sp<const GrCCPerFlushResources> fFlushResources;
30 };
31 
32 #endif
33