blob: 68774c2682d4cf698119e7433be6eba9bc629a56 [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
13std::string SkObjectParser::BitmapToString(const SkBitmap& bitmap) {
14 const char* mBitmap("SkBitmap: Data unavailable");
15 return mBitmap;
16}
17
18std::string SkObjectParser::BoolToString(bool doAA) {
19 if (doAA) {
20 return "bool doAA: True";
21 } else {
22 return "bool doAA: False";
23 }
24}
25
26std::string SkObjectParser::IntToString(int x, const char* text) {
27 std::stringstream ss;
28 ss << text << x;
29 return ss.str();
30}
31
32std::string SkObjectParser::IRectToString(const SkIRect& rect) {
33 std::stringstream ss;
34 ss << "SkIRect: ";
35 ss << "L: " << rect.left() << ",";
36 ss << "T: " << rect.top() << ",";
37 ss << "R: " << rect.right() << ",";
38 ss << "B: " << rect.bottom();
39 return ss.str();
40}
41
42std::string SkObjectParser::MatrixToString(const SkMatrix& matrix) {
43 std::stringstream ss;
44 /* NOTE(chudy): Cleaner looking than loops. */
45 /* TODO(chudy): Decide whether to remove html part in order to really
46 * seperate view / model. */
47 ss << "SkMatrix:<br/>(";
48 ss << matrix.get(0) << "), (";
49 ss << matrix.get(1) << "), (";
50 ss << matrix.get(2) << "), <br/>(";
51 ss << matrix.get(3) << "), (";
52 ss << matrix.get(4) << "), (";
53 ss << matrix.get(5) << "), <br/>(";
54 ss << matrix.get(6) << "), (";
55 ss << matrix.get(7) << "), (";
56 ss << matrix.get(8) << ")";
57 return ss.str();
58}
59
60std::string SkObjectParser::PaintToString(const SkPaint& paint) {
61 std::stringstream ss;
62 SkColor color = paint.getColor();
63 ss << "SkPaint: 0x" << std::hex << std::uppercase << color;
64 return ss.str();
65}
66
67std::string SkObjectParser::PathToString(const SkPath& path) {
68 std::string mPath;
69 std::stringstream ss;
70 mPath.append("SkPath: ");
71
72 for (int i=0; i<path.countPoints(); i++) {
73 ss << "(" << path.getPoint(i).fX << ", " << path.getPoint(i).fY << ") ";
74 mPath.append(ss.str());
75 ss.str("");
76 }
77
78 return mPath;
79}
80
81std::string SkObjectParser::PointsToString(const SkPoint pts[], size_t count) {
82 std::stringstream ss;
83 ss << "SkPoint pts[]: ";
84 for (unsigned int i = 0; i < count; i++) {
85 ss << "(" << pts[i].fX << "," << pts[i].fY << ") ";
86 }
87 return ss.str();
88}
89
chudy@google.com92b11f62012-08-01 16:10:06 +000090std::string SkObjectParser::PointModeToString(SkCanvas::PointMode mode) {
91 std::string mMode("SkCanvas::PointMode: ");
92 if (mode == SkCanvas::kPoints_PointMode) {
93 mMode.append("kPoints_PointMode");
94 } else if (mode == SkCanvas::kLines_PointMode) {
95 mMode.append("kLines_Mode");
96 } else if (mode == SkCanvas::kPolygon_PointMode) {
97 mMode.append("kPolygon_PointMode");
98 }
99
100 return mMode;
101}
102
chudy@google.com902ebe52012-06-29 14:21:22 +0000103std::string SkObjectParser::RectToString(const SkRect& rect) {
104 std::string mRect("SkRect: ");
105 std::stringstream ss;
106
107 mRect.append("(");
108 ss << rect.left();
109 mRect.append(ss.str());
110
111 ss.str("");
112 mRect.append(", ");
113 ss << rect.top();
114 mRect.append(ss.str());
115
116 ss.str("");
117 mRect.append(", ");
118 ss << rect.right();
119 mRect.append(ss.str());
120
121 ss.str("");
122 mRect.append(", ");
123 ss << rect.bottom();
124 mRect.append(ss.str());
125 mRect.append(")");
126
127 return mRect;
128}
129
130std::string SkObjectParser::RegionOpToString(SkRegion::Op op) {
131 std::string mOp("SkRegion::Op: ");
132
133 if (op == SkRegion::kDifference_Op) {
134 mOp.append("kDifference_Op");
135 } else if (op == SkRegion::kIntersect_Op) {
136 mOp.append("kIntersect_Op");
137 } else if (op == SkRegion::kUnion_Op) {
138 mOp.append("kUnion_Op");
139 } else if (op == SkRegion::kXOR_Op) {
140 mOp.append("kXOR_Op");
141 } else if (op == SkRegion::kReverseDifference_Op) {
142 mOp.append("kReverseDifference_Op");
143 } else if (op == SkRegion::kReplace_Op) {
144 mOp.append("kReplace_Op");
145 } else {
146 mOp.append("Unknown Type");
147 }
148
149 return mOp;
150}
151
152std::string SkObjectParser::RegionToString(const SkRegion& region) {
153 return "SkRegion: Data unavailable.";
154}
155
156std::string SkObjectParser::SaveFlagsToString(SkCanvas::SaveFlags flags) {
157 std::string mFlags;
158 mFlags.append("SkCanvas::SaveFlags: ");
159
160 if(flags == SkCanvas::kMatrixClip_SaveFlag) {
161 mFlags.append("kMatrixClip_SaveFlag");
162 } else if (flags == SkCanvas::kClip_SaveFlag) {
163 mFlags.append("kClip_SaveFlag");
164 } else if (flags == SkCanvas::kHasAlphaLayer_SaveFlag) {
165 mFlags.append("kHasAlphaLayer_SaveFlag");
166 } else if (flags == SkCanvas::kFullColorLayer_SaveFlag) {
167 mFlags.append("kFullColorLayer_SaveFlag");
168 } else if (flags == SkCanvas::kClipToLayer_SaveFlag) {
169 mFlags.append("kClipToLayer_SaveFlag");
170 } else if (flags == SkCanvas::kMatrixClip_SaveFlag) {
171 mFlags.append("kMatrixClip_SaveFlag");
172 } else if (flags == SkCanvas::kARGB_NoClipLayer_SaveFlag) {
173 mFlags.append("kARGB_NoClipLayer_SaveFlag");
174 } else if (flags == SkCanvas::kARGB_ClipLayer_SaveFlag) {
175 mFlags.append("kARGB_ClipLayer_SaveFlag");
176 } else {
177 mFlags.append("Data Unavailable");
178 }
179
180 return mFlags;
181}
182
183std::string SkObjectParser::ScalarToString(SkScalar x, const char* text) {
184 std::string mScalar;
185 mScalar.append(text);
186
187 std::stringstream ss;
188 ss << x;
189 mScalar.append(ss.str());
190 return mScalar;
191}
192
193std::string SkObjectParser::TextToString(const void* text, size_t byteLength) {
194 char result[6+byteLength];
195 strcpy(result,"Text: ");
196 strcat(result, (char*)text);
197 return result;
198}