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

Unified Diff: src/gpu/GrStrokeInfo.h

Issue 311183002: Push dash checks into GrContext. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Changes from reviewers comments Created 6 years, 6 months 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 side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrStrokeInfo.h
diff --git a/src/gpu/GrStrokeInfo.h b/src/gpu/GrStrokeInfo.h
new file mode 100644
index 0000000000000000000000000000000000000000..03e9a234d773443bc84a2b536c563e9887147464
--- /dev/null
+++ b/src/gpu/GrStrokeInfo.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrStrokeInfo_DEFINED
+#define GrStrokeInfo_DEFINED
+
+#include "SkStrokeRec.h"
+#include "SkPathEffect.h"
+
robertphillips 2014/06/05 18:28:01 // GrStrokeInfo encapsulates ... ?
egdaniel 2014/06/05 19:07:24 Will add description
+class GrStrokeInfo {
+public:
+ GrStrokeInfo(SkStrokeRec::InitStyle style) :
robertphillips 2014/06/05 18:28:01 We usually don't put default ctors in the initiali
egdaniel 2014/06/05 19:07:24 removed
+ fStroke(style), fDashInfo(), fDashType(SkPathEffect::kNone_DashType) {}
+
+ GrStrokeInfo(const GrStrokeInfo& src, bool includeDash = true) : fStroke(src.fStroke) {
+ if (includeDash) {
robertphillips 2014/06/05 18:28:01 We don't usually put "this->" in this context (acc
+ this->fDashInfo = src.fDashInfo;
+ this->fDashType = src.fDashType;
+ } else {
+ this->fDashType = SkPathEffect::kNone_DashType;
+ }
+ }
+
+ explicit GrStrokeInfo(const SkPaint& paint) :
robertphillips 2014/06/05 18:28:01 same here (r.e. default ctor).
+ fStroke(paint), fDashInfo(), fDashType(SkPathEffect::kNone_DashType) {}
+
+ const SkStrokeRec& getStrokeRec() const { return fStroke; }
+
+ SkStrokeRec* getStrokeRecPtr() { return &fStroke; }
+
+ void setFillStyle() { fStroke.setFillStyle(); }
+
+ // This should be used in the same fashion as asADash is used from a path effect.
+ // First call it once with no interval pointer, call isDashed to see if the stroke is dashed,
+ // call dashCount to get num of dash intervals, create an array of that size,
+ // and then recall setDashInfo with a pointer to the array. Returns true if the path effect
+ // is a dashed effect and we are stroking, otherwise it retruns false.
robertphillips 2014/06/05 18:28:01 Can 'pe' be const ?
egdaniel 2014/06/05 19:07:24 yes
+ bool setDashInfo(SkPathEffect* pe, SkScalar* intervals = NULL) {
robertphillips 2014/06/05 18:28:01 NULL != pe ?
+ if (pe && !fStroke.isFillStyle()) {
robertphillips 2014/06/05 18:28:02 NULL !=
+ if (intervals) {
+ fDashInfo.fIntervals = intervals;
+ }
+ fDashType = pe->asADash(&fDashInfo);
+ return true;
+ }
+ return false;
+ }
+
+ bool isDashed() const {
+ return (!fStroke.isFillStyle() && SkPathEffect::kDash_DashType == fDashType);
+ }
+
+ int32_t dashCount() const {
+ return fDashInfo.fCount;
+ }
+
+ const SkPathEffect::DashInfo& getDashInfo() const { return fDashInfo; }
+
+private:
robertphillips 2014/06/05 18:28:02 line these guys up?
+ SkStrokeRec fStroke;
+ SkPathEffect::DashInfo fDashInfo;
+ SkPathEffect::DashType fDashType;
+};
+
+#endif

Powered by Google App Engine
This is Rietveld 408576698