blob: af12083e6b9efb11fa1945f2014ea7f94f748912 [file] [log] [blame]
chudy@google.com902ebe52012-06-29 14:21:22 +00001
2/*
3 * Copyright 2012 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9#include "SkObjectParser.h"
10
11/* TODO(chudy): Replace all std::strings with char */
12
chudy@google.com97cee972012-08-07 20:41:37 +000013SkString* SkObjectParser::BitmapToString(const SkBitmap& bitmap) {
14 SkString* mBitmap = new SkString("SkBitmap: Data unavailable");
chudy@google.com902ebe52012-06-29 14:21:22 +000015 return mBitmap;
16}
17
chudy@google.com97cee972012-08-07 20:41:37 +000018SkString* SkObjectParser::BoolToString(bool doAA) {
19 SkString* mBool = new SkString("Bool doAA: ");
chudy@google.com902ebe52012-06-29 14:21:22 +000020 if (doAA) {
chudy@google.com97cee972012-08-07 20:41:37 +000021 mBool->append("True");
chudy@google.com902ebe52012-06-29 14:21:22 +000022 } else {
chudy@google.com97cee972012-08-07 20:41:37 +000023 mBool->append("False");
chudy@google.com902ebe52012-06-29 14:21:22 +000024 }
chudy@google.com97cee972012-08-07 20:41:37 +000025 return mBool;
chudy@google.com902ebe52012-06-29 14:21:22 +000026}
27
chudy@google.com97cee972012-08-07 20:41:37 +000028SkString* SkObjectParser::CustomTextToString(const char* text) {
29 SkString* mText = new SkString(text);
30 return mText;
chudy@google.com902ebe52012-06-29 14:21:22 +000031}
32
chudy@google.com97cee972012-08-07 20:41:37 +000033SkString* SkObjectParser::IntToString(int x, const char* text) {
34 SkString* mInt = new SkString(text);
35 mInt->append(" ");
36 mInt->appendScalar(SkIntToScalar(x));
37 return mInt;
chudy@google.com902ebe52012-06-29 14:21:22 +000038}
39
chudy@google.com97cee972012-08-07 20:41:37 +000040SkString* SkObjectParser::IRectToString(const SkIRect& rect) {
41 SkString* mRect = new SkString("SkIRect: ");
42 mRect->append("L: ");
43 mRect->appendScalar(rect.left());
44 mRect->append(", T: ");
45 mRect->appendScalar(rect.top());
46 mRect->append(", R: ");
47 mRect->appendScalar(rect.right());
48 mRect->append(", B: ");
49 mRect->appendScalar(rect.bottom());
chudy@google.com902ebe52012-06-29 14:21:22 +000050 return mRect;
51}
52
chudy@google.com97cee972012-08-07 20:41:37 +000053SkString* SkObjectParser::MatrixToString(const SkMatrix& matrix) {
54 SkString* mMatrix = new SkString("SkMatrix: (");
55 for (int i = 0; i < 8; i++) {
56 mMatrix->appendScalar(matrix.get(i));
57 mMatrix->append("), (");
chudy@google.com902ebe52012-06-29 14:21:22 +000058 }
chudy@google.com97cee972012-08-07 20:41:37 +000059 mMatrix->appendScalar(matrix.get(8));
60 mMatrix->append(")");
61 return mMatrix;
62}
chudy@google.com902ebe52012-06-29 14:21:22 +000063
chudy@google.com97cee972012-08-07 20:41:37 +000064SkString* SkObjectParser::PaintToString(const SkPaint& paint) {
65 SkColor color = paint.getColor();
66 SkString* mPaint = new SkString("SkPaint: 0x");
67 mPaint->appendHex(color);
68 return mPaint;
69}
70
71SkString* SkObjectParser::PathToString(const SkPath& path) {
72 SkString* mPath = new SkString("SkPath: ");
73 for (int i = 0; i < path.countPoints(); i++) {
74 mPath->append("(");
75 mPath->appendScalar(path.getPoint(i).fX);
76 mPath->append(", ");
77 mPath->appendScalar(path.getPoint(i).fY);
78 mPath->append(") ");
79 }
80 return mPath;
81}
82
83SkString* SkObjectParser::PointsToString(const SkPoint pts[], size_t count) {
84 SkString* mPoints = new SkString("SkPoints pts[]: ");
85 for (unsigned int i = 0; i < count; i++) {
86 mPoints->append("(");
87 mPoints->appendScalar(pts[i].fX);
88 mPoints->append(",");
89 mPoints->appendScalar(pts[i].fY);
90 mPoints->append(")");
91 }
92 return mPoints;
93}
94
95SkString* SkObjectParser::PointModeToString(SkCanvas::PointMode mode) {
96 SkString* mMode = new SkString("SkCanvas::PointMode: ");
97 if (mode == SkCanvas::kPoints_PointMode) {
98 mMode->append("kPoints_PointMode");
99 } else if (mode == SkCanvas::kLines_PointMode) {
100 mMode->append("kLines_Mode");
101 } else if (mode == SkCanvas::kPolygon_PointMode) {
102 mMode->append("kPolygon_PointMode");
103 }
104 return mMode;
105}
106
107SkString* SkObjectParser::RectToString(const SkRect& rect) {
108 SkString* mRect = new SkString("SkRect: ");
109 mRect->append("(");
110 mRect->appendScalar(rect.left());
111 mRect->append(", ");
112 mRect->appendScalar(rect.top());
113 mRect->append(", ");
114 mRect->appendScalar(rect.right());
115 mRect->append(", ");
116 mRect->appendScalar(rect.bottom());
117 mRect->append(")");
118 return mRect;
119}
120
121SkString* SkObjectParser::RegionOpToString(SkRegion::Op op) {
122 SkString* mOp = new SkString("SkRegion::Op: ");
123 if (op == SkRegion::kDifference_Op) {
124 mOp->append("kDifference_Op");
125 } else if (op == SkRegion::kIntersect_Op) {
126 mOp->append("kIntersect_Op");
127 } else if (op == SkRegion::kUnion_Op) {
128 mOp->append("kUnion_Op");
129 } else if (op == SkRegion::kXOR_Op) {
130 mOp->append("kXOR_Op");
131 } else if (op == SkRegion::kReverseDifference_Op) {
132 mOp->append("kReverseDifference_Op");
133 } else if (op == SkRegion::kReplace_Op) {
134 mOp->append("kReplace_Op");
135 } else {
136 mOp->append("Unknown Type");
137 }
chudy@google.com902ebe52012-06-29 14:21:22 +0000138 return mOp;
139}
140
chudy@google.com97cee972012-08-07 20:41:37 +0000141SkString* SkObjectParser::RegionToString(const SkRegion& region) {
142 SkString* mRegion = new SkString("SkRegion: Data unavailable.");
143 return mRegion;
chudy@google.com902ebe52012-06-29 14:21:22 +0000144}
145
chudy@google.com97cee972012-08-07 20:41:37 +0000146SkString* SkObjectParser::SaveFlagsToString(SkCanvas::SaveFlags flags) {
147 SkString* mFlags = new SkString("SkCanvas::SaveFlags: ");
chudy@google.com902ebe52012-06-29 14:21:22 +0000148 if(flags == SkCanvas::kMatrixClip_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000149 mFlags->append("kMatrixClip_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000150 } else if (flags == SkCanvas::kClip_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000151 mFlags->append("kClip_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000152 } else if (flags == SkCanvas::kHasAlphaLayer_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000153 mFlags->append("kHasAlphaLayer_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000154 } else if (flags == SkCanvas::kFullColorLayer_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000155 mFlags->append("kFullColorLayer_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000156 } else if (flags == SkCanvas::kClipToLayer_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000157 mFlags->append("kClipToLayer_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000158 } else if (flags == SkCanvas::kMatrixClip_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000159 mFlags->append("kMatrixClip_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000160 } else if (flags == SkCanvas::kARGB_NoClipLayer_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000161 mFlags->append("kARGB_NoClipLayer_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000162 } else if (flags == SkCanvas::kARGB_ClipLayer_SaveFlag) {
chudy@google.com97cee972012-08-07 20:41:37 +0000163 mFlags->append("kARGB_ClipLayer_SaveFlag");
chudy@google.com902ebe52012-06-29 14:21:22 +0000164 } else {
chudy@google.com97cee972012-08-07 20:41:37 +0000165 mFlags->append("Data Unavailable");
chudy@google.com902ebe52012-06-29 14:21:22 +0000166 }
chudy@google.com902ebe52012-06-29 14:21:22 +0000167 return mFlags;
168}
169
chudy@google.com97cee972012-08-07 20:41:37 +0000170SkString* SkObjectParser::ScalarToString(SkScalar x, const char* text) {
171 SkString* mScalar = new SkString(text);
172 mScalar->append(" ");
173 mScalar->appendScalar(x);
chudy@google.com902ebe52012-06-29 14:21:22 +0000174 return mScalar;
175}
176
chudy@google.com97cee972012-08-07 20:41:37 +0000177SkString* SkObjectParser::TextToString(const void* text, size_t byteLength) {
chudy@google.com902ebe52012-06-29 14:21:22 +0000178 char result[6+byteLength];
179 strcpy(result,"Text: ");
180 strcat(result, (char*)text);
chudy@google.com97cee972012-08-07 20:41:37 +0000181 SkString* mText = new SkString(result);
182 return mText;
chudy@google.com902ebe52012-06-29 14:21:22 +0000183}