OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkDrawCommand.h" | 8 #include "SkDrawCommand.h" |
9 | 9 |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
(...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1109 static void apply_paint_shader(const SkPaint& paint, Json::Value* target, | 1109 static void apply_paint_shader(const SkPaint& paint, Json::Value* target, |
1110 UrlDataManager& urlDataManager) { | 1110 UrlDataManager& urlDataManager) { |
1111 SkFlattenable* shader = paint.getShader(); | 1111 SkFlattenable* shader = paint.getShader(); |
1112 if (shader != nullptr) { | 1112 if (shader != nullptr) { |
1113 Json::Value jsonShader; | 1113 Json::Value jsonShader; |
1114 SkDrawCommand::flatten(shader, &jsonShader, urlDataManager); | 1114 SkDrawCommand::flatten(shader, &jsonShader, urlDataManager); |
1115 (*target)[SKDEBUGCANVAS_ATTRIBUTE_SHADER] = jsonShader; | 1115 (*target)[SKDEBUGCANVAS_ATTRIBUTE_SHADER] = jsonShader; |
1116 } | 1116 } |
1117 } | 1117 } |
1118 | 1118 |
1119 static void apply_paint_xfermode(const SkPaint& paint, Json::Value* target, | |
1120 UrlDataManager& urlDataManager) { | |
1121 SkFlattenable* xfermode = paint.getXfermode(); | |
1122 if (xfermode != nullptr) { | |
1123 Json::Value jsonXfermode; | |
1124 SkDrawCommand::flatten(xfermode, &jsonXfermode, urlDataManager); | |
1125 (*target)[SKDEBUGCANVAS_ATTRIBUTE_XFERMODE] = jsonXfermode; | |
1126 } | |
1127 } | |
1128 | |
1129 static void apply_paint_imagefilter(const SkPaint& paint, Json::Value* target, | 1119 static void apply_paint_imagefilter(const SkPaint& paint, Json::Value* target, |
1130 UrlDataManager& urlDataManager) { | 1120 UrlDataManager& urlDataManager) { |
1131 SkFlattenable* imageFilter = paint.getImageFilter(); | 1121 SkFlattenable* imageFilter = paint.getImageFilter(); |
1132 if (imageFilter != nullptr) { | 1122 if (imageFilter != nullptr) { |
1133 Json::Value jsonImageFilter; | 1123 Json::Value jsonImageFilter; |
1134 SkDrawCommand::flatten(imageFilter, &jsonImageFilter, urlDataManager); | 1124 SkDrawCommand::flatten(imageFilter, &jsonImageFilter, urlDataManager); |
1135 (*target)[SKDEBUGCANVAS_ATTRIBUTE_IMAGEFILTER] = jsonImageFilter; | 1125 (*target)[SKDEBUGCANVAS_ATTRIBUTE_IMAGEFILTER] = jsonImageFilter; |
1136 } | 1126 } |
1137 } | 1127 } |
1138 | 1128 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1170 apply_paint_hinting(paint, &result); | 1160 apply_paint_hinting(paint, &result); |
1171 apply_paint_color(paint, &result); | 1161 apply_paint_color(paint, &result); |
1172 apply_paint_style(paint, &result); | 1162 apply_paint_style(paint, &result); |
1173 apply_paint_cap(paint, &result); | 1163 apply_paint_cap(paint, &result); |
1174 apply_paint_join(paint, &result); | 1164 apply_paint_join(paint, &result); |
1175 apply_paint_filterquality(paint, &result); | 1165 apply_paint_filterquality(paint, &result); |
1176 apply_paint_textalign(paint, &result); | 1166 apply_paint_textalign(paint, &result); |
1177 apply_paint_patheffect(paint, &result, urlDataManager); | 1167 apply_paint_patheffect(paint, &result, urlDataManager); |
1178 apply_paint_maskfilter(paint, &result, urlDataManager); | 1168 apply_paint_maskfilter(paint, &result, urlDataManager); |
1179 apply_paint_shader(paint, &result, urlDataManager); | 1169 apply_paint_shader(paint, &result, urlDataManager); |
1180 apply_paint_xfermode(paint, &result, urlDataManager); | |
1181 apply_paint_looper(paint, &result, urlDataManager); | 1170 apply_paint_looper(paint, &result, urlDataManager); |
1182 apply_paint_imagefilter(paint, &result, urlDataManager); | 1171 apply_paint_imagefilter(paint, &result, urlDataManager); |
1183 apply_paint_colorfilter(paint, &result, urlDataManager); | 1172 apply_paint_colorfilter(paint, &result, urlDataManager); |
1184 apply_paint_typeface(paint, &result, urlDataManager); | 1173 apply_paint_typeface(paint, &result, urlDataManager); |
1185 return result; | 1174 return result; |
1186 } | 1175 } |
1187 | 1176 |
1188 static SkPoint get_json_point(Json::Value point) { | 1177 static SkPoint get_json_point(Json::Value point) { |
1189 return SkPoint::Make(point[0].asFloat(), point[1].asFloat()); | 1178 return SkPoint::Make(point[0].asFloat(), point[1].asFloat()); |
1190 } | 1179 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1239 if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_COLORFILTER)) { | 1228 if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_COLORFILTER)) { |
1240 Json::Value jsonColorFilter = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_COLORFIL
TER]; | 1229 Json::Value jsonColorFilter = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_COLORFIL
TER]; |
1241 sk_sp<SkColorFilter> colorFilter((SkColorFilter*)load_flattenable(jsonCo
lorFilter, | 1230 sk_sp<SkColorFilter> colorFilter((SkColorFilter*)load_flattenable(jsonCo
lorFilter, |
1242 urlDat
aManager)); | 1231 urlDat
aManager)); |
1243 if (colorFilter != nullptr) { | 1232 if (colorFilter != nullptr) { |
1244 target->setColorFilter(colorFilter); | 1233 target->setColorFilter(colorFilter); |
1245 } | 1234 } |
1246 } | 1235 } |
1247 } | 1236 } |
1248 | 1237 |
1249 static void extract_json_paint_xfermode(Json::Value& jsonPaint, UrlDataManager&
urlDataManager, | |
1250 SkPaint* target) { | |
1251 if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_XFERMODE)) { | |
1252 Json::Value jsonXfermode = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_XFERMODE]; | |
1253 sk_sp<SkXfermode> xfermode((SkXfermode*) load_flattenable(jsonXfermode,
urlDataManager)); | |
1254 if (xfermode != nullptr) { | |
1255 target->setXfermode(xfermode); | |
1256 } | |
1257 } | |
1258 } | |
1259 | |
1260 static void extract_json_paint_looper(Json::Value& jsonPaint, UrlDataManager& ur
lDataManager, | 1238 static void extract_json_paint_looper(Json::Value& jsonPaint, UrlDataManager& ur
lDataManager, |
1261 SkPaint* target) { | 1239 SkPaint* target) { |
1262 if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_LOOPER)) { | 1240 if (jsonPaint.isMember(SKDEBUGCANVAS_ATTRIBUTE_LOOPER)) { |
1263 Json::Value jsonLooper = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_LOOPER]; | 1241 Json::Value jsonLooper = jsonPaint[SKDEBUGCANVAS_ATTRIBUTE_LOOPER]; |
1264 sk_sp<SkDrawLooper> looper((SkDrawLooper*) load_flattenable(jsonLooper,
urlDataManager)); | 1242 sk_sp<SkDrawLooper> looper((SkDrawLooper*) load_flattenable(jsonLooper,
urlDataManager)); |
1265 if (looper != nullptr) { | 1243 if (looper != nullptr) { |
1266 target->setLooper(std::move(looper)); | 1244 target->setLooper(std::move(looper)); |
1267 } | 1245 } |
1268 } | 1246 } |
1269 } | 1247 } |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1496 } | 1474 } |
1497 | 1475 |
1498 static void extract_json_paint(Json::Value& paint, UrlDataManager& urlDataManage
r, | 1476 static void extract_json_paint(Json::Value& paint, UrlDataManager& urlDataManage
r, |
1499 SkPaint* result) { | 1477 SkPaint* result) { |
1500 extract_json_paint_hinting(paint, result); | 1478 extract_json_paint_hinting(paint, result); |
1501 extract_json_paint_color(paint, result); | 1479 extract_json_paint_color(paint, result); |
1502 extract_json_paint_shader(paint, urlDataManager, result); | 1480 extract_json_paint_shader(paint, urlDataManager, result); |
1503 extract_json_paint_patheffect(paint, urlDataManager, result); | 1481 extract_json_paint_patheffect(paint, urlDataManager, result); |
1504 extract_json_paint_maskfilter(paint, urlDataManager, result); | 1482 extract_json_paint_maskfilter(paint, urlDataManager, result); |
1505 extract_json_paint_colorfilter(paint, urlDataManager, result); | 1483 extract_json_paint_colorfilter(paint, urlDataManager, result); |
1506 extract_json_paint_xfermode(paint, urlDataManager, result); | |
1507 extract_json_paint_looper(paint, urlDataManager, result); | 1484 extract_json_paint_looper(paint, urlDataManager, result); |
1508 extract_json_paint_imagefilter(paint, urlDataManager, result); | 1485 extract_json_paint_imagefilter(paint, urlDataManager, result); |
1509 extract_json_paint_typeface(paint, urlDataManager, result); | 1486 extract_json_paint_typeface(paint, urlDataManager, result); |
1510 extract_json_paint_style(paint, result); | 1487 extract_json_paint_style(paint, result); |
1511 extract_json_paint_strokewidth(paint, result); | 1488 extract_json_paint_strokewidth(paint, result); |
1512 extract_json_paint_strokemiter(paint, result); | 1489 extract_json_paint_strokemiter(paint, result); |
1513 extract_json_paint_strokejoin(paint, result); | 1490 extract_json_paint_strokejoin(paint, result); |
1514 extract_json_paint_cap(paint, result); | 1491 extract_json_paint_cap(paint, result); |
1515 extract_json_paint_filterquality(paint, result); | 1492 extract_json_paint_filterquality(paint, result); |
1516 extract_json_paint_antialias(paint, result); | 1493 extract_json_paint_antialias(paint, result); |
(...skipping 2039 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3556 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command, | 3533 SkTranslateZCommand* SkTranslateZCommand::fromJSON(Json::Value& command, |
3557 UrlDataManager& urlDataManager) { | 3534 UrlDataManager& urlDataManager) { |
3558 SkScalar z; | 3535 SkScalar z; |
3559 #ifdef SK_EXPERIMENTAL_SHADOWING | 3536 #ifdef SK_EXPERIMENTAL_SHADOWING |
3560 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z); | 3537 extract_json_scalar(command[SKDEBUGCANVAS_ATTRIBUTE_DRAWDEPTHTRANS], &z); |
3561 #else | 3538 #else |
3562 z = 0; | 3539 z = 0; |
3563 #endif | 3540 #endif |
3564 return new SkTranslateZCommand(z); | 3541 return new SkTranslateZCommand(z); |
3565 } | 3542 } |
OLD | NEW |