Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: src/gpu/GrPath.h

Issue 1504753003: Use correct fill type and bounds for NVPR paths that are stroked with Skia (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/gpu/batches/GrStencilAndCoverPathRenderer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrPath_DEFINED 8 #ifndef GrPath_DEFINED
9 #define GrPath_DEFINED 9 #define GrPath_DEFINED
10 10
11 #include "GrGpuResource.h" 11 #include "GrGpuResource.h"
12 #include "GrStrokeInfo.h" 12 #include "GrStrokeInfo.h"
13 #include "GrPathRendering.h"
13 #include "SkPath.h" 14 #include "SkPath.h"
14 #include "SkRect.h" 15 #include "SkRect.h"
15 16
16 class GrPath : public GrGpuResource { 17 class GrPath : public GrGpuResource {
17 public: 18 public:
18
19
20 /** 19 /**
21 * Initialize to a path with a fixed stroke. Stroke must not be hairline. 20 * Initialize to a path with a fixed stroke. Stroke must not be hairline.
22 */ 21 */
23 GrPath(GrGpu* gpu, const SkPath& skPath, const GrStrokeInfo& stroke) 22 GrPath(GrGpu* gpu, const SkPath& skPath, const GrStrokeInfo& stroke)
24 : INHERITED(gpu, kCached_LifeCycle) 23 : INHERITED(gpu, kCached_LifeCycle)
25 , fBounds(skPath.getBounds()) 24 , fBounds(SkRect::MakeEmpty())
25 , fFillType(GrPathRendering::kWinding_FillType)
26 #ifdef SK_DEBUG 26 #ifdef SK_DEBUG
27 , fSkPath(skPath) 27 , fSkPath(skPath)
28 , fStroke(stroke) 28 , fStroke(stroke)
29 #endif 29 #endif
30 { 30 {
31 } 31 }
32 32
33 static void ComputeKey(const SkPath& path, const GrStrokeInfo& stroke, GrUni queKey* key, 33 static void ComputeKey(const SkPath& path, const GrStrokeInfo& stroke, GrUni queKey* key,
34 bool* outIsVolatile); 34 bool* outIsVolatile);
35 35
36 const SkRect& getBounds() const { return fBounds; } 36 const SkRect& getBounds() const { return fBounds; }
37 37
38 GrPathRendering::FillType getFillType() const { return fFillType; }
38 #ifdef SK_DEBUG 39 #ifdef SK_DEBUG
39 bool isEqualTo(const SkPath& path, const GrStrokeInfo& stroke) const; 40 bool isEqualTo(const SkPath& path, const GrStrokeInfo& stroke) const;
40 #endif 41 #endif
41 42
42 protected: 43 protected:
44 // Subclass should init these.
43 SkRect fBounds; 45 SkRect fBounds;
46 GrPathRendering::FillType fFillType;
44 #ifdef SK_DEBUG 47 #ifdef SK_DEBUG
45 SkPath fSkPath; 48 SkPath fSkPath;
46 GrStrokeInfo fStroke; 49 GrStrokeInfo fStroke;
47 #endif 50 #endif
48 51
49 private: 52 private:
50 typedef GrGpuResource INHERITED; 53 typedef GrGpuResource INHERITED;
51 }; 54 };
52 55
53 #endif 56 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/batches/GrStencilAndCoverPathRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698