Lines Matching refs:writer

258 void DrawCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
259 writer.appendString(DEBUGCANVAS_ATTRIBUTE_COMMAND, this->GetCommandString(fOpType));
260 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_VISIBLE, this->isVisible());
382 void apply_paint_blend_mode(const SkPaint& paint, SkJSONWriter& writer) {
386 writer.appendString(DEBUGCANVAS_ATTRIBUTE_BLENDMODE,
393 void DrawCommand::MakeJsonColor(SkJSONWriter& writer, const SkColor color) {
394 writer.beginArray(nullptr, false);
395 writer.appendS32(SkColorGetA(color));
396 writer.appendS32(SkColorGetR(color));
397 writer.appendS32(SkColorGetG(color));
398 writer.appendS32(SkColorGetB(color));
399 writer.endArray();
402 void DrawCommand::MakeJsonColor4f(SkJSONWriter& writer, const SkColor4f& color) {
403 writer.beginArray(nullptr, false);
404 writer.appendFloat(color.fA);
405 writer.appendFloat(color.fR);
406 writer.appendFloat(color.fG);
407 writer.appendFloat(color.fB);
408 writer.endArray();
411 void DrawCommand::MakeJsonPoint(SkJSONWriter& writer, const SkPoint& point) {
412 writer.beginArray(nullptr, false);
413 writer.appendFloat(point.x());
414 writer.appendFloat(point.y());
415 writer.endArray();
418 void DrawCommand::MakeJsonPoint(SkJSONWriter& writer, SkScalar x, SkScalar y) {
419 writer.beginArray(nullptr, false);
420 writer.appendFloat(x);
421 writer.appendFloat(y);
422 writer.endArray();
425 void DrawCommand::MakeJsonPoint3(SkJSONWriter& writer, const SkPoint3& point) {
426 writer.beginArray(nullptr, false);
427 writer.appendFloat(point.x());
428 writer.appendFloat(point.y());
429 writer.appendFloat(point.z());
430 writer.endArray();
433 void DrawCommand::MakeJsonRect(SkJSONWriter& writer, const SkRect& rect) {
434 writer.beginArray(nullptr, false);
435 writer.appendFloat(rect.left());
436 writer.appendFloat(rect.top());
437 writer.appendFloat(rect.right());
438 writer.appendFloat(rect.bottom());
439 writer.endArray();
442 void DrawCommand::MakeJsonIRect(SkJSONWriter& writer, const SkIRect& rect) {
443 writer.beginArray(nullptr, false);
444 writer.appendS32(rect.left());
445 writer.appendS32(rect.top());
446 writer.appendS32(rect.right());
447 writer.appendS32(rect.bottom());
448 writer.endArray();
451 static void make_json_rrect(SkJSONWriter& writer, const SkRRect& rrect) {
452 writer.beginArray(nullptr, false);
453 DrawCommand::MakeJsonRect(writer, rrect.rect());
454 DrawCommand::MakeJsonPoint(writer, rrect.radii(SkRRect::kUpperLeft_Corner));
455 DrawCommand::MakeJsonPoint(writer, rrect.radii(SkRRect::kUpperRight_Corner));
456 DrawCommand::MakeJsonPoint(writer, rrect.radii(SkRRect::kLowerRight_Corner));
457 DrawCommand::MakeJsonPoint(writer, rrect.radii(SkRRect::kLowerLeft_Corner));
458 writer.endArray();
461 void DrawCommand::MakeJsonMatrix(SkJSONWriter& writer, const SkMatrix& matrix) {
462 writer.beginArray();
464 writer.beginArray(nullptr, false);
466 writer.appendFloat(matrix[r * 3 + c]);
468 writer.endArray();
470 writer.endArray();
473 void DrawCommand::MakeJsonMatrix44(SkJSONWriter& writer, const SkM44& matrix) {
474 writer.beginArray();
476 writer.beginArray(nullptr, false);
478 writer.appendFloat(matrix.rc(r, c));
480 writer.endArray();
482 writer.endArray();
485 void DrawCommand::MakeJsonPath(SkJSONWriter& writer, const SkPath& path) {
486 writer.beginObject();
489 writer.appendString(DEBUGCANVAS_ATTRIBUTE_FILLTYPE, DEBUGCANVAS_FILLTYPE_WINDING);
492 writer.appendString(DEBUGCANVAS_ATTRIBUTE_FILLTYPE, DEBUGCANVAS_FILLTYPE_EVENODD);
495 writer.appendString(DEBUGCANVAS_ATTRIBUTE_FILLTYPE,
499 writer.appendString(DEBUGCANVAS_ATTRIBUTE_FILLTYPE,
503 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_VERBS);
509 writer.appendString(DEBUGCANVAS_VERB_CLOSE);
512 writer.beginObject(); // verb
515 writer.appendName(DEBUGCANVAS_VERB_LINE);
516 MakeJsonPoint(writer, pts[1]);
520 writer.beginArray(DEBUGCANVAS_VERB_QUAD);
521 MakeJsonPoint(writer, pts[1]);
522 MakeJsonPoint(writer, pts[2]);
523 writer.endArray(); // quad coords
527 writer.beginArray(DEBUGCANVAS_VERB_CUBIC);
528 MakeJsonPoint(writer, pts[1]);
529 MakeJsonPoint(writer, pts[2]);
530 MakeJsonPoint(writer, pts[3]);
531 writer.endArray(); // cubic coords
535 writer.beginArray(DEBUGCANVAS_VERB_CONIC);
536 MakeJsonPoint(writer, pts[1]);
537 MakeJsonPoint(writer, pts[2]);
538 writer.appendFloat(iter.conicWeight());
539 writer.endArray(); // conic coords
543 writer.appendName(DEBUGCANVAS_VERB_MOVE);
544 MakeJsonPoint(writer, pts[0]);
552 writer.endObject(); // verb
554 writer.endArray(); // verbs
555 writer.endObject(); // path
558 void DrawCommand::MakeJsonRegion(SkJSONWriter& writer, const SkRegion& region) {
562 MakeJsonPath(writer, path);
582 static void store_scalar(SkJSONWriter& writer,
587 writer.appendFloat(key, value);
591 static void store_bool(SkJSONWriter& writer, const char* key, bool value, bool defaultValue) {
593 writer.appendBool(key, value);
606 SkJSONWriter& writer,
614 writer.appendString(DEBUGCANVAS_ATTRIBUTE_NAME, flattenable->getTypeName());
615 writer.appendString(DEBUGCANVAS_ATTRIBUTE_DATA, url.c_str());
617 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_VALUES);
618 JsonWriteBuffer jsonBuffer(&writer, &urlDataManager);
620 writer.endObject(); // values
637 SkJSONWriter& writer,
642 writer.appendName(DEBUGCANVAS_ATTRIBUTE_IMAGE_INDEX);
643 writer.appendU64(urlDataManager.lookupImage(&image));
647 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_IMAGE);
659 writer.endObject();
671 writer.endObject();
677 writer.endObject();
681 writer.appendString(DEBUGCANVAS_ATTRIBUTE_DATA, url.c_str());
682 writer.endObject();
708 SkJSONWriter& writer,
711 writer.appendString(DEBUGCANVAS_ATTRIBUTE_COLOR, color_type_name(bitmap.colorType()));
712 writer.appendString(DEBUGCANVAS_ATTRIBUTE_ALPHA, alpha_type_name(bitmap.alphaType()));
714 bool success = flatten(*image, writer, urlDataManager);
718 static void apply_font_hinting(const SkFont& font, SkJSONWriter& writer) {
723 writer.appendString(DEBUGCANVAS_ATTRIBUTE_HINTING, DEBUGCANVAS_HINTING_NONE);
726 writer.appendString(DEBUGCANVAS_ATTRIBUTE_HINTING, DEBUGCANVAS_HINTING_SLIGHT);
729 writer.appendString(DEBUGCANVAS_ATTRIBUTE_HINTING, DEBUGCANVAS_HINTING_NORMAL);
732 writer.appendString(DEBUGCANVAS_ATTRIBUTE_HINTING, DEBUGCANVAS_HINTING_FULL);
738 static void apply_font_edging(const SkFont& font, SkJSONWriter& writer) {
741 writer.appendString(DEBUGCANVAS_ATTRIBUTE_EDGING, DEBUGCANVAS_EDGING_ALIAS);
744 writer.appendString(DEBUGCANVAS_ATTRIBUTE_EDGING, DEBUGCANVAS_EDGING_ANTIALIAS);
747 writer.appendString(DEBUGCANVAS_ATTRIBUTE_EDGING, DEBUGCANVAS_EDGING_SUBPIXELANTIALIAS);
752 static void apply_paint_color(const SkPaint& paint, SkJSONWriter& writer) {
755 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COLOR);
756 DrawCommand::MakeJsonColor(writer, color);
760 static void apply_paint_style(const SkPaint& paint, SkJSONWriter& writer) {
765 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_STYLE_STROKE);
769 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_STYLE_STROKEANDFILL);
777 static void apply_paint_cap(const SkPaint& paint, SkJSONWriter& writer) {
782 writer.appendString(DEBUGCANVAS_ATTRIBUTE_CAP, DEBUGCANVAS_CAP_BUTT);
785 writer.appendString(DEBUGCANVAS_ATTRIBUTE_CAP, DEBUGCANVAS_CAP_ROUND);
788 writer.appendString(DEBUGCANVAS_ATTRIBUTE_CAP, DEBUGCANVAS_CAP_SQUARE);
795 static void apply_paint_join(const SkPaint& paint, SkJSONWriter& writer) {
800 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STROKEJOIN, DEBUGCANVAS_MITER_JOIN);
803 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STROKEJOIN, DEBUGCANVAS_ROUND_JOIN);
806 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STROKEJOIN, DEBUGCANVAS_BEVEL_JOIN);
814 SkJSONWriter& writer,
820 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_BLUR);
821 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_SIGMA, blurRec.fSigma);
824 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_BLURSTYLE_NORMAL);
827 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_BLURSTYLE_SOLID);
830 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_BLURSTYLE_OUTER);
833 writer.appendString(DEBUGCANVAS_ATTRIBUTE_STYLE, DEBUGCANVAS_BLURSTYLE_INNER);
837 writer.endObject(); // blur
839 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_MASKFILTER);
840 DrawCommand::flatten(maskFilter, writer, urlDataManager);
841 writer.endObject(); // maskFilter
847 SkJSONWriter& writer,
856 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_DASHING);
857 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_INTERVALS, false);
859 writer.appendFloat(dashInfo.fIntervals[i]);
861 writer.endArray(); // intervals
863 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_PHASE, dashInfo.fPhase);
864 writer.endObject(); // dashing
866 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_PATHEFFECT);
867 DrawCommand::flatten(pathEffect, writer, urlDataManager);
868 writer.endObject(); // pathEffect
874 SkJSONWriter& writer,
878 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_TYPEFACE);
885 writer.appendString(DEBUGCANVAS_ATTRIBUTE_DATA, url.c_str());
887 writer.endObject();
893 SkJSONWriter& writer,
896 writer.beginObject(key);
897 DrawCommand::flatten(flattenable, writer, urlDataManager);
898 writer.endObject();
902 void DrawCommand::MakeJsonPaint(SkJSONWriter& writer,
905 writer.beginObject();
906 store_scalar(writer, DEBUGCANVAS_ATTRIBUTE_STROKEWIDTH, paint.getStrokeWidth(), 0.0f);
907 store_scalar(writer,
911 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_ANTIALIAS, paint.isAntiAlias(), false);
912 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_DITHER, paint.isDither(), false);
914 apply_paint_color(paint, writer);
915 apply_paint_style(paint, writer);
916 apply_paint_blend_mode(paint, writer);
917 apply_paint_cap(paint, writer);
918 apply_paint_join(paint, writer);
919 apply_paint_patheffect(paint, writer, urlDataManager);
920 apply_paint_maskfilter(paint, writer, urlDataManager);
921 apply_flattenable(DEBUGCANVAS_ATTRIBUTE_SHADER, paint.getShader(), writer, urlDataManager);
923 DEBUGCANVAS_ATTRIBUTE_IMAGEFILTER, paint.getImageFilter(), writer, urlDataManager);
925 DEBUGCANVAS_ATTRIBUTE_COLORFILTER, paint.getColorFilter(), writer, urlDataManager);
926 writer.endObject(); // paint
929 static void MakeJsonFont(const SkFont& font, SkJSONWriter& writer, UrlDataManager& urlDataManager) {
930 writer.beginObject();
931 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_FAKEBOLDTEXT, font.isEmbolden(), false);
932 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_LINEARTEXT, font.isLinearMetrics(), false);
933 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_SUBPIXELTEXT, font.isSubpixel(), false);
934 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_EMBEDDEDBITMAPTEXT, font.isEmbeddedBitmaps(), false);
935 store_bool(writer, DEBUGCANVAS_ATTRIBUTE_AUTOHINTING, font.isForceAutoHinting(), false);
937 store_scalar(writer, DEBUGCANVAS_ATTRIBUTE_TEXTSIZE, font.getSize(), SkPaintDefaults_TextSize);
938 store_scalar(writer, DEBUGCANVAS_ATTRIBUTE_TEXTSCALEX, font.getScaleX(), SK_Scalar1);
939 store_scalar(writer, DEBUGCANVAS_ATTRIBUTE_TEXTSCALEX, font.getSkewX(), 0.0f);
940 apply_font_edging(font, writer);
941 apply_font_hinting(font, writer);
942 apply_font_typeface(font, writer, urlDataManager);
943 writer.endObject(); // font
946 void DrawCommand::MakeJsonLattice(SkJSONWriter& writer, const SkCanvas::Lattice& lattice) {
947 writer.beginObject();
948 writer.appendS32(DEBUGCANVAS_ATTRIBUTE_LATTICEXCOUNT, lattice.fXCount);
949 writer.appendS32(DEBUGCANVAS_ATTRIBUTE_LATTICEYCOUNT, lattice.fYCount);
951 writer.appendName(DEBUGCANVAS_ATTRIBUTE_BOUNDS);
952 MakeJsonIRect(writer, *lattice.fBounds);
954 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_LATTICEXDIVS);
956 writer.appendS32(lattice.fXDivs[i]);
958 writer.endArray(); // xdivs
959 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_LATTICEYDIVS);
961 writer.appendS32(lattice.fYDivs[i]);
963 writer.endArray(); // ydivs
965 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_LATTICEFLAGS);
968 writer.beginArray();
970 writer.appendS32(lattice.fRectTypes[flagCount++]);
972 writer.endArray(); // row
974 writer.endArray();
976 writer.endObject();
983 void ClearCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
984 INHERITED::toJSON(writer, urlDataManager);
985 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COLOR);
986 MakeJsonColor(writer, fColor);
1003 void ClipPathCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1004 INHERITED::toJSON(writer, urlDataManager);
1005 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PATH);
1006 MakeJsonPath(writer, fPath);
1007 writer.appendString(DEBUGCANVAS_ATTRIBUTE_REGIONOP, clipop_name(fOp));
1008 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_ANTIALIAS, fDoAA);
1019 void ClipRegionCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1020 INHERITED::toJSON(writer, urlDataManager);
1021 writer.appendName(DEBUGCANVAS_ATTRIBUTE_REGION);
1022 MakeJsonRegion(writer, fRegion);
1023 writer.appendString(DEBUGCANVAS_ATTRIBUTE_REGIONOP, clipop_name(fOp));
1035 void ClipRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1036 INHERITED::toJSON(writer, urlDataManager);
1037 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1038 MakeJsonRect(writer, fRect);
1039 writer.appendString(DEBUGCANVAS_ATTRIBUTE_REGIONOP, clipop_name(fOp));
1040 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_ANTIALIAS, fDoAA);
1043 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, fRect)->c_str());
1060 void ClipRRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1061 INHERITED::toJSON(writer, urlDataManager);
1062 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1063 make_json_rrect(writer, fRRect);
1064 writer.appendString(DEBUGCANVAS_ATTRIBUTE_REGIONOP, clipop_name(fOp));
1065 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_ANTIALIAS, fDoAA);
1083 void ClipShaderCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1084 INHERITED::toJSON(writer, urlDataManager);
1085 apply_flattenable(DEBUGCANVAS_ATTRIBUTE_SHADER, fShader.get(), writer, urlDataManager);
1086 writer.appendString(DEBUGCANVAS_ATTRIBUTE_REGIONOP, clipop_name(fOp));
1100 void writeMatrixType(SkJSONWriter& writer, const SkMatrix& m) {
1103 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, " (translate)");
1106 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, " (scale)");
1109 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, " (rotation or skew)");
1112 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, " (perspective)");
1120 void ConcatCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1121 INHERITED::toJSON(writer, urlDataManager);
1122 writer.appendName(DEBUGCANVAS_ATTRIBUTE_MATRIX);
1123 MakeJsonMatrix(writer, fMatrix);
1124 writeMatrixType(writer, fMatrix);
1133 void Concat44Command::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1134 INHERITED::toJSON(writer, urlDataManager);
1135 writer.appendName(DEBUGCANVAS_ATTRIBUTE_MATRIX);
1136 MakeJsonMatrix44(writer, fMatrix);
1150 void DrawAnnotationCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1151 INHERITED::toJSON(writer, urlDataManager);
1153 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1154 MakeJsonRect(writer, fRect);
1155 writer.appendString("key", fKey.c_str());
1157 writer.appendString("value", std::string(
1164 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, desc.c_str());
1201 void DrawImageCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1202 INHERITED::toJSON(writer, urlDataManager);
1203 flatten(*fImage, writer, urlDataManager);
1204 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1205 MakeJsonPoint(writer, fLeft, fTop);
1207 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1208 MakeJsonPaint(writer, *fPaint, urlDataManager);
1211 writer.appendU32(DEBUGCANVAS_ATTRIBUTE_UNIQUE_ID, fImage->uniqueID());
1212 writer.appendS32(DEBUGCANVAS_ATTRIBUTE_WIDTH, fImage->width());
1213 writer.appendS32(DEBUGCANVAS_ATTRIBUTE_HEIGHT, fImage->height());
1216 writer.appendString(DEBUGCANVAS_ATTRIBUTE_ALPHA, DEBUGCANVAS_ALPHATYPE_OPAQUE);
1219 writer.appendString(DEBUGCANVAS_ATTRIBUTE_ALPHA, DEBUGCANVAS_ALPHATYPE_PREMUL);
1222 writer.appendString(DEBUGCANVAS_ATTRIBUTE_ALPHA, DEBUGCANVAS_ALPHATYPE_UNPREMUL);
1225 writer.appendString(DEBUGCANVAS_ATTRIBUTE_ALPHA, DEBUGCANVAS_ALPHATYPE_UNKNOWN);
1260 void DrawImageLatticeCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1261 INHERITED::toJSON(writer, urlDataManager);
1262 flatten(*fImage, writer, urlDataManager);
1263 writer.appendName(DEBUGCANVAS_ATTRIBUTE_LATTICE);
1264 MakeJsonLattice(writer, fLattice);
1265 writer.appendName(DEBUGCANVAS_ATTRIBUTE_DST);
1266 MakeJsonRect(writer, fDst);
1268 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1269 MakeJsonPaint(writer, *fPaint, urlDataManager);
1273 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, fDst)->c_str());
1308 void DrawImageRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1309 INHERITED::toJSON(writer, urlDataManager);
1310 flatten(*fImage, writer, urlDataManager);
1311 writer.appendName(DEBUGCANVAS_ATTRIBUTE_SRC);
1312 MakeJsonRect(writer, fSrc);
1313 writer.appendName(DEBUGCANVAS_ATTRIBUTE_DST);
1314 MakeJsonRect(writer, fDst);
1316 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1317 MakeJsonPaint(writer, *fPaint, urlDataManager);
1320 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_STRICT, true);
1324 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, fDst)->c_str());
1360 void DrawImageRectLayerCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1361 INHERITED::toJSON(writer, urlDataManager);
1367 writer.appendS64(DEBUGCANVAS_ATTRIBUTE_LAYERNODEID, fNodeId);
1369 writer.appendName(DEBUGCANVAS_ATTRIBUTE_SRC);
1370 MakeJsonRect(writer, fSrc);
1372 writer.appendName(DEBUGCANVAS_ATTRIBUTE_DST);
1373 MakeJsonRect(writer, fDst);
1375 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1376 MakeJsonPaint(writer, *fPaint, urlDataManager);
1379 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_STRICT, true);
1383 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, fDst)->c_str());
1410 void DrawOvalCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1411 INHERITED::toJSON(writer, urlDataManager);
1412 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1413 MakeJsonRect(writer, fOval);
1414 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1415 MakeJsonPaint(writer, fPaint, urlDataManager);
1451 void DrawArcCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1452 INHERITED::toJSON(writer, urlDataManager);
1453 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1454 MakeJsonRect(writer, fOval);
1455 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_STARTANGLE, fStartAngle);
1456 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_SWEEPANGLE, fSweepAngle);
1457 writer.appendBool(DEBUGCANVAS_ATTRIBUTE_USECENTER, fUseCenter);
1458 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1459 MakeJsonPaint(writer, fPaint, urlDataManager);
1474 void DrawPaintCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1475 INHERITED::toJSON(writer, urlDataManager);
1476 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1477 MakeJsonPaint(writer, fPaint, urlDataManager);
1494 void DrawBehindCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1495 INHERITED::toJSON(writer, urlDataManager);
1496 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1497 MakeJsonPaint(writer, fPaint, urlDataManager);
1513 void DrawPathCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1514 INHERITED::toJSON(writer, urlDataManager);
1515 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PATH);
1516 MakeJsonPath(writer, fPath);
1517 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1518 MakeJsonPaint(writer, fPaint, urlDataManager);
1534 void DrawRegionCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1535 INHERITED::toJSON(writer, urlDataManager);
1536 writer.appendName(DEBUGCANVAS_ATTRIBUTE_REGION);
1537 MakeJsonRegion(writer, fRegion);
1538 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1539 MakeJsonPaint(writer, fPaint, urlDataManager);
1622 void DrawPointsCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1623 INHERITED::toJSON(writer, urlDataManager);
1624 writer.appendString(DEBUGCANVAS_ATTRIBUTE_MODE, pointmode_name(fMode));
1625 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_POINTS);
1627 MakeJsonPoint(writer, fPts[i]);
1629 writer.endArray(); // points
1630 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1631 MakeJsonPaint(writer, fPaint, urlDataManager);
1662 void DrawTextBlobCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1663 INHERITED::toJSON(writer, urlDataManager);
1664 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_RUNS);
1667 writer.beginObject(); // run
1668 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_GLYPHS);
1670 writer.appendU32(iter.glyphs()[i]);
1672 writer.endArray(); // glyphs
1674 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_POSITIONS);
1679 MakeJsonPoint(writer, iterPositions[i * 2], iterPositions[i * 2 + 1]);
1682 writer.appendFloat(iterPositions[i]);
1690 writer.endArray(); // positions
1692 writer.appendName(DEBUGCANVAS_ATTRIBUTE_FONT);
1693 MakeJsonFont(iter.font(), writer, urlDataManager);
1694 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1695 MakeJsonPoint(writer, iter.offset());
1697 writer.endObject(); // run
1700 writer.endArray(); // runs
1701 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_X, fXPos);
1702 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_Y, fYPos);
1704 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1705 MakeJsonRect(writer, bounds);
1706 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1707 MakeJsonPaint(writer, fPaint, urlDataManager);
1712 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, bounds)->c_str());
1741 void DrawPatchCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1742 INHERITED::toJSON(writer, urlDataManager);
1743 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_CUBICS);
1745 MakeJsonPoint(writer, fCubics[i]);
1747 writer.endArray(); // cubics
1749 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_COLORS);
1751 MakeJsonColor(writer, fColorsPtr[i]);
1753 writer.endArray(); // colors
1756 writer.beginArray(DEBUGCANVAS_ATTRIBUTE_TEXTURECOORDS);
1758 MakeJsonPoint(writer, fTexCoords[i]);
1760 writer.endArray(); // texCoords
1773 void DrawRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1774 INHERITED::toJSON(writer, urlDataManager);
1775 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1776 MakeJsonRect(writer, fRect);
1777 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1778 MakeJsonPaint(writer, fPaint, urlDataManager);
1781 writer.appendString(DEBUGCANVAS_ATTRIBUTE_SHORTDESC, str_append(&desc, fRect)->c_str());
1797 void DrawRRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1798 INHERITED::toJSON(writer, urlDataManager);
1799 writer.appendName(DEBUGCANVAS_ATTRIBUTE_COORDS);
1800 make_json_rrect(writer, fRRect);
1801 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1802 MakeJsonPaint(writer, fPaint, urlDataManager);
1823 void DrawDRRectCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1824 INHERITED::toJSON(writer, urlDataManager);
1825 writer.appendName(DEBUGCANVAS_ATTRIBUTE_OUTER);
1826 make_json_rrect(writer, fOuter);
1827 writer.appendName(DEBUGCANVAS_ATTRIBUTE_INNER);
1828 make_json_rrect(writer, fInner);
1829 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
1830 MakeJsonPaint(writer, fPaint, urlDataManager);
1848 void DrawShadowCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
1849 INHERITED::toJSON(writer, urlDataManager);
1855 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PATH);
1856 MakeJsonPath(writer, fPath);
1857 writer.appendName(DEBUGCANVAS_ATTRIBUTE_ZPLANE);
1858 MakeJsonPoint3(writer, fShadowRec.fZPlaneParams);
1859 writer.appendName(DEBUGCANVAS_ATTRIBUTE_LIGHTPOSITION);
1860 MakeJsonPoint3(writer, fShadowRec.fLightPos);
1861 writer.appendFloat(DEBUGCANVAS_ATTRIBUTE_LIGHTRADIUS, fShadowRec.fLightRadius);
1862 writer.appendName(DEBUGCANVAS_ATTRIBUTE_AMBIENTCOLOR);
1863 MakeJsonColor(writer, fShadowRec.fAmbientColor);
1864 writer.appendName(DEBUGCANVAS_ATTRIBUTE_SPOTCOLOR);
1865 MakeJsonColor(writer, fShadowRec.fSpotColor);
1866 store_bool(writer, DEBUGCANVAS_SHADOWFLAG_TRANSPARENT_OCC, transparentOccluder, false);
1867 store_bool(writer, DEBUGCANVAS_SHADOWFLAG_GEOMETRIC_ONLY, geometricOnly, false);
2010 void SaveLayerCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
2011 INHERITED::toJSON(writer, urlDataManager);
2013 writer.appendName(DEBUGCANVAS_ATTRIBUTE_BOUNDS);
2014 MakeJsonRect(writer, *fBounds);
2017 writer.appendName(DEBUGCANVAS_ATTRIBUTE_PAINT);
2018 MakeJsonPaint(writer, *fPaint, urlDataManager);
2021 writer.beginObject(DEBUGCANVAS_ATTRIBUTE_BACKDROP);
2022 flatten(fBackdrop.get(), writer, urlDataManager);
2023 writer.endObject(); // backdrop
2037 void SetMatrixCommand::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
2038 INHERITED::toJSON(writer, urlDataManager);
2039 writer.appendName(DEBUGCANVAS_ATTRIBUTE_MATRIX);
2040 MakeJsonMatrix(writer, fMatrix);
2041 writeMatrixType(writer, fMatrix);
2050 void SetM44Command::toJSON(SkJSONWriter& writer, UrlDataManager& urlDataManager) const {
2051 INHERITED::toJSON(writer, urlDataManager);
2052 writer.appendName(DEBUGCANVAS_ATTRIBUTE_MATRIX);
2053 MakeJsonMatrix44(writer, fMatrix);