1 /* 2 * Copyright 2012 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 GrPath_DEFINED 9 #define GrPath_DEFINED 10 11 #include "GrGpuResource.h" 12 #include "GrResourceCache.h" 13 #include "SkPath.h" 14 #include "SkRect.h" 15 #include "SkStrokeRec.h" 16 17 class GrPath : public GrGpuResource { 18 public: 19 SK_DECLARE_INST_COUNT(GrPath); 20 21 /** 22 * Initialize to a path with a fixed stroke. Stroke must not be hairline. 23 */ 24 GrPath(GrGpu* gpu, bool isWrapped, const SkPath& skPath, const SkStrokeRec& stroke) 25 : INHERITED(gpu, isWrapped), 26 fSkPath(skPath), 27 fStroke(stroke), 28 fBounds(skPath.getBounds()) { 29 } 30 31 static GrResourceKey ComputeKey(const SkPath& path, const SkStrokeRec& stroke); 32 static uint64_t ComputeStrokeKey(const SkStrokeRec&); 33 34 bool isEqualTo(const SkPath& path, const SkStrokeRec& stroke) { 35 return fSkPath == path && fStroke == stroke; 36 } 37 38 const SkRect& getBounds() const { return fBounds; } 39 40 const SkStrokeRec& getStroke() const { return fStroke; } 41 42 protected: 43 SkPath fSkPath; 44 SkStrokeRec fStroke; 45 SkRect fBounds; 46 47 private: 48 typedef GrGpuResource INHERITED; 49 }; 50 51 #endif 52