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 17class GrPath : public GrGpuResource { 18public: 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 42protected: 43 SkPath fSkPath; 44 SkStrokeRec fStroke; 45 SkRect fBounds; 46 47private: 48 typedef GrGpuResource INHERITED; 49}; 50 51#endif 52