aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/batches/GrRectOpFactory.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2016-12-14 11:08:17 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-14 19:27:40 +0000
commit6a639040bc3ee5369d86c9cb5b9047208beb5206 (patch)
tree8498b5e6ce910868b3c9943ec708406219c8fcca /src/gpu/batches/GrRectOpFactory.cpp
parentb7ce80b7149209dfcdb8757d39a627e8dcccefea (diff)
Update rect ops to use "op" in their name and return sk_sp.
Change-Id: I757c33d1cd17a7a7dda858f0fc5ab1094e3c2472 Reviewed-on: https://skia-review.googlesource.com/5985 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/batches/GrRectOpFactory.cpp')
-rw-r--r--src/gpu/batches/GrRectOpFactory.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/gpu/batches/GrRectOpFactory.cpp b/src/gpu/batches/GrRectOpFactory.cpp
new file mode 100644
index 0000000000..fd73624254
--- /dev/null
+++ b/src/gpu/batches/GrRectOpFactory.cpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "GrRectOpFactory.h"
+
+#include "GrAAStrokeRectOp.h"
+
+#include "SkStrokeRec.h"
+
+namespace GrRectOpFactory {
+
+sk_sp<GrDrawOp> MakeAAFillNestedRects(GrColor color,
+ const SkMatrix& viewMatrix,
+ const SkRect rects[2]) {
+ SkASSERT(viewMatrix.rectStaysRect());
+ SkASSERT(!rects[0].isEmpty() && !rects[1].isEmpty());
+
+ SkRect devOutside, devInside;
+ viewMatrix.mapRect(&devOutside, rects[0]);
+ viewMatrix.mapRect(&devInside, rects[1]);
+ if (devInside.isEmpty()) {
+ if (devOutside.isEmpty()) {
+ return nullptr;
+ }
+ return GrAAFillRectOp::Make(color, viewMatrix, devOutside, devOutside);
+ }
+
+ return GrAAStrokeRectOp::MakeFillBetweenRects(color, viewMatrix, devOutside, devInside);
+}
+};