diff options
author | Mike Reed <reed@google.com> | 2016-10-05 19:59:51 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-05 20:20:14 +0000 |
commit | c245574ba3d0e2ade6c94b2812de3baa383bf4c4 (patch) | |
tree | e008f8500d56d8487a2941cb217c5ff8d1151dcf /tools | |
parent | 62f6856ebe003743192508653914b5e01ffcc857 (diff) |
Revert[7] "replace SkXfermode obj with SkBlendMode enum in paints"
This reverts commit Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8.
Reason for revert: new assert from 100K bot
Original change's description:
> Revert[6] "replace SkXfermode obj with SkBlendMode enum in paints"
>
> - perform version check in CreateProc for XfermodeImageFilter and ArithmeticImageFilter
> This reverts commit 3ed485f4249e17abb4b11f5018d03175fd1afb44.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2992
>
> Change-Id: Ib4a154cdd5f5d1dcac921ef50d53b79a2d6a1be8
> Reviewed-on: https://skia-review.googlesource.com/2992
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>
TBR=reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I848e5a69c5cd67f2c14889f4f0a346652578c4ff
Reviewed-on: https://skia-review.googlesource.com/3023
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/debugger/SkDebugCanvas.cpp | 3 | ||||
-rw-r--r-- | tools/debugger/SkDrawCommand.cpp | 23 | ||||
-rw-r--r-- | tools/sk_tool_utils.cpp | 2 | ||||
-rw-r--r-- | tools/viewer/sk_app/mac/RasterWindowContext_mac.cpp | 2 |
4 files changed, 26 insertions, 4 deletions
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp index 1da995b284..f15c68c869 100644 --- a/tools/debugger/SkDebugCanvas.cpp +++ b/tools/debugger/SkDebugCanvas.cpp @@ -42,8 +42,7 @@ protected: if (*paint) { if (nullptr != fOverdrawXfermode.get()) { paint->writable()->setAntiAlias(false); - // TODO: replace overdraw mode with something else -// paint->writable()->setXfermode(fOverdrawXfermode); + paint->writable()->setXfermode(fOverdrawXfermode); } if (fOverrideFilterQuality) { diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp index 156ca4f74d..ba6302ca3a 100644 --- a/tools/debugger/SkDrawCommand.cpp +++ b/tools/debugger/SkDrawCommand.cpp @@ -1116,6 +1116,16 @@ static void apply_paint_shader(const SkPaint& paint, Json::Value* target, } } +static void apply_paint_xfermode(const SkPaint& paint, Json::Value* target, + UrlDataManager& urlDataManager) { + SkFlattenable* xfermode = paint.getXfermode(); + if (xfermode != nullptr) { + Json::Value jsonXfermode; + SkDrawCommand::flatten(xfermode, &jsonXfermode, urlDataManager); + (*target)[SKDEBUGCANVAS_ATTRIBUTE_XFERMODE] = jsonXfermode; + } +} + static void apply_paint_imagefilter(const SkPaint& paint, Json::Value* target, UrlDataManager& urlDataManager) { SkFlattenable* imageFilter = paint.getImageFilter(); @@ -1167,6 +1177,7 @@ Json::Value SkDrawCommand::MakeJsonPaint(const SkPaint& paint, UrlDataManager& u apply_paint_patheffect(paint, &result, urlDataManager); apply_paint_maskfilter(paint, &result, urlDataManager); apply_paint_shader(paint, &result, urlDataManager); + apply_paint_xfermode(paint, &result, urlDataManager); apply_paint_looper(paint, &result, urlDataManager); apply_paint_imagefilter(paint, &result, urlDataManager); apply_paint_colorfilter(paint, &result, urlDataManager); @@ -1235,6 +1246,17 @@ static void extract_json_paint_colorfilter(Json::Value& jsonPaint, UrlDataManage } } +static void extract_json_paint_xfermode(Json::Value& jsonPaint, UrlDataManager& urlDataManager, + SkPaint* target) { + if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_XFERMODE)) { + Json::Value jsonXfermode = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_XFERMODE]; + sk_sp<SkXfermode> xfermode((SkXfermode*) load_flattenable(jsonXfermode, urlDataManager)); + if (xfermode != nullptr) { + target->setXfermode(xfermode); + } + } +} + static void extract_json_paint_looper(Json::Value& jsonPaint, UrlDataManager& urlDataManager, SkPaint* target) { if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_LOOPER)) { @@ -1481,6 +1503,7 @@ static void extract_json_paint(Json::Value& paint, UrlDataManager& urlDataManage extract_json_paint_patheffect(paint, urlDataManager, result); extract_json_paint_maskfilter(paint, urlDataManager, result); extract_json_paint_colorfilter(paint, urlDataManager, result); + extract_json_paint_xfermode(paint, urlDataManager, result); extract_json_paint_looper(paint, urlDataManager, result); extract_json_paint_imagefilter(paint, urlDataManager, result); extract_json_paint_typeface(paint, urlDataManager, result); diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp index c84d452b92..72d1af5083 100644 --- a/tools/sk_tool_utils.cpp +++ b/tools/sk_tool_utils.cpp @@ -220,7 +220,7 @@ SkBitmap create_checkerboard_bitmap(int w, int h, SkColor c1, SkColor c2, int ch void draw_checkerboard(SkCanvas* canvas, SkColor c1, SkColor c2, int size) { SkPaint paint; paint.setShader(create_checkerboard_shader(c1, c2, size)); - paint.setBlendMode(SkBlendMode::kSrc); + paint.setXfermodeMode(SkXfermode::kSrc_Mode); canvas->drawPaint(paint); } diff --git a/tools/viewer/sk_app/mac/RasterWindowContext_mac.cpp b/tools/viewer/sk_app/mac/RasterWindowContext_mac.cpp index fd2f2effb1..47f349b2eb 100644 --- a/tools/viewer/sk_app/mac/RasterWindowContext_mac.cpp +++ b/tools/viewer/sk_app/mac/RasterWindowContext_mac.cpp @@ -121,7 +121,7 @@ void RasterWindowContext_mac::onSwapBuffers() { (fDisplayParams.fColorSpace != nullptr || kRGBA_F16_SkColorType == fDisplayParams.fColorType); SkPaint gammaPaint; - gammaPaint.setBlendMode(SkBlendMode::kSrc); + gammaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); if (doGamma) { gammaPaint.setColorFilter(SkGammaColorFilter::Make(1.0f / 2.2f)); } |