18a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 38a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 68a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkStroke_DEFINED 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkStroke_DEFINED 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1104fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com#include "SkPath.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkPoint.h" 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkPaint.h" 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/** \class SkStroke 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkStroke is the utility class that constructs paths by stroking 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com geometries (lines, rects, ovals, roundrects, paths). This is 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com invoked when a geometry or text is drawn in a canvas with the 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kStroke_Mask bit set in the paint. 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com*/ 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkStroke { 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkStroke(); 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkStroke(const SkPaint&); 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkStroke(const SkPaint&, SkScalar width); // width overrides paint.getStrokeWidth() 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPaint::Cap getCap() const { return (SkPaint::Cap)fCap; } 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setCap(SkPaint::Cap); 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkPaint::Join getJoin() const { return (SkPaint::Join)fJoin; } 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setJoin(SkPaint::Join); 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setMiterLimit(SkScalar); 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setWidth(SkScalar); 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool getDoFill() const { return SkToBool(fDoFill); } 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setDoFill(bool doFill) { fDoFill = SkToU8(doFill); } 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 3904fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com /** 4004fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com * Stroke the specified rect, winding it in the specified direction.. 4104fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com */ 4204fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com void strokeRect(const SkRect& rect, SkPath* result, 4304fdaa1afed8687a3b15226ddebcb798c94ddac5reed@google.com SkPath::Direction = SkPath::kCW_Direction) const; 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void strokePath(const SkPath& path, SkPath*) const; 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com //////////////////////////////////////////////////////////////// 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkScalar fWidth, fMiterLimit; 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com uint8_t fCap, fJoin; 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool8 fDoFill; 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com friend class SkPaint; 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 57