summaryrefslogtreecommitdiff
path: root/pipe/SkGPipeRead.cpp
diff options
context:
space:
mode:
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-12-12 20:48:18 +0000
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-12-12 20:48:18 +0000
commit7a7e655343617093a5eea37c7a556602a1bb0576 (patch)
treec404aebcbe8345df8e2d28dd13b9c87c6328bafd /pipe/SkGPipeRead.cpp
parent7954ac06ca868007cae83863c0ba546a85607751 (diff)
downloadsrc-7a7e655343617093a5eea37c7a556602a1bb0576.tar.gz
revert 6766, thereby re-landing 6762-6763 now that the bots are ready
git-svn-id: http://skia.googlecode.com/svn/trunk/src@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'pipe/SkGPipeRead.cpp')
-rw-r--r--pipe/SkGPipeRead.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/pipe/SkGPipeRead.cpp b/pipe/SkGPipeRead.cpp
index 1f13dafa..8a86c582 100644
--- a/pipe/SkGPipeRead.cpp
+++ b/pipe/SkGPipeRead.cpp
@@ -21,6 +21,7 @@
#include "SkOrderedReadBuffer.h"
#include "SkPathEffect.h"
#include "SkRasterizer.h"
+#include "SkRRect.h"
#include "SkShader.h"
#include "SkTypeface.h"
#include "SkXfermode.h"
@@ -237,6 +238,14 @@ static void clipRect_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
canvas->clipRect(*rect, (SkRegion::Op)DrawOp_unpackData(op32), doAA);
}
+static void clipRRect_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
+ SkGPipeState* state) {
+ SkRRect rrect;
+ reader->readRRect(&rrect);
+ bool doAA = SkToBool(DrawOp_unpackFlags(op32) & kClip_HasAntiAlias_DrawOpFlag);
+ canvas->clipRRect(rrect, (SkRegion::Op)DrawOp_unpackData(op32), doAA);
+}
+
///////////////////////////////////////////////////////////////////////////////
static void setMatrix_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
@@ -332,6 +341,14 @@ static void drawPoints_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
}
}
+static void drawOval_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
+ SkGPipeState* state) {
+ const SkRect* rect = skip<SkRect>(reader);
+ if (state->shouldDraw()) {
+ canvas->drawOval(*rect, state->paint());
+ }
+}
+
static void drawRect_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
SkGPipeState* state) {
const SkRect* rect = skip<SkRect>(reader);
@@ -340,6 +357,15 @@ static void drawRect_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
}
}
+static void drawRRect_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
+ SkGPipeState* state) {
+ SkRRect rrect;
+ reader->readRRect(&rrect);
+ if (state->shouldDraw()) {
+ canvas->drawRRect(rrect, state->paint());
+ }
+}
+
static void drawPath_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
SkGPipeState* state) {
SkPath path;
@@ -677,6 +703,7 @@ static const ReadProc gReadTable[] = {
clipPath_rp,
clipRegion_rp,
clipRect_rp,
+ clipRRect_rp,
concat_rp,
drawBitmap_rp,
drawBitmapMatrix_rp,
@@ -684,6 +711,7 @@ static const ReadProc gReadTable[] = {
drawBitmapRect_rp,
drawClear_rp,
drawData_rp,
+ drawOval_rp,
drawPaint_rp,
drawPath_rp,
drawPicture_rp,
@@ -691,6 +719,7 @@ static const ReadProc gReadTable[] = {
drawPosText_rp,
drawPosTextH_rp,
drawRect_rp,
+ drawRRect_rp,
drawSprite_rp,
drawText_rp,
drawTextOnPath_rp,