1/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SKOBJECTPARSER_H_
9#define SKOBJECTPARSER_H_
10
11#include "SkCanvas.h"
12#include "SkString.h"
13
14/** \class SkObjectParser
15
16    The ObjectParser is used to return string information about parameters
17    in each draw command.
18 */
19class SkObjectParser {
20public:
21
22    /**
23        Returns a string about a bitmap's bounds and colortype.
24        @param bitmap  SkBitmap
25    */
26    static SkString* BitmapToString(const SkBitmap& bitmap);
27
28    /**
29        Returns a string about a image
30        @param image   SkImage
31    */
32    static SkString* ImageToString(const SkImage* image);
33
34    /**
35        Returns a string representation of a boolean.
36        @param doAA  boolean
37     */
38    static SkString* BoolToString(bool doAA);
39
40    /**
41        Returns a string representation of the text pointer passed in.
42     */
43    static SkString* CustomTextToString(const char* text);
44
45    /**
46        Returns a string representation of an integer with the text parameter
47        at the front of the string.
48        @param x  integer
49        @param text
50     */
51    static SkString* IntToString(int x, const char* text);
52    /**
53        Returns a string representation of the SkIRects coordinates.
54        @param rect  SkIRect
55     */
56    static SkString* IRectToString(const SkIRect& rect);
57
58    /**
59        Returns a string representation of an SkMatrix's contents
60        @param matrix  SkMatrix
61     */
62    static SkString* MatrixToString(const SkMatrix& matrix);
63
64    /**
65        Returns a string representation of an SkPaint's color
66        @param paint  SkPaint
67     */
68    static SkString* PaintToString(const SkPaint& paint);
69
70    /**
71        Returns a string representation of a SkPath's points.
72        @param path  SkPath
73     */
74    static SkString* PathToString(const SkPath& path);
75
76    /**
77        Returns a string representation of the points in the point array.
78        @param pts[]  Array of SkPoints
79        @param count
80     */
81    static SkString* PointsToString(const SkPoint pts[], size_t count);
82
83    /**
84        Returns a string representation of the SkCanvas PointMode enum.
85     */
86    static SkString* PointModeToString(SkCanvas::PointMode mode);
87
88    /**
89        Returns a string representation of the SkRects coordinates.
90        @param rect  SkRect
91     */
92    static SkString* RectToString(const SkRect& rect, const char* title = nullptr);
93
94    /**
95        Returns a string representation of an SkRRect.
96        @param rrect  SkRRect
97     */
98    static SkString* RRectToString(const SkRRect& rrect, const char* title = nullptr);
99
100    /**
101        Returns a string representation of the SkRegion enum.
102        @param op  SkRegion::op enum
103     */
104    static SkString* ClipOpToString(SkClipOp op);
105
106    /**
107        Returns a string representation of the SkRegion.
108        @param region  SkRegion
109     */
110    static SkString* RegionToString(const SkRegion& region);
111
112    /**
113        Returns a string representation of the SkCanvas::SaveLayerFlags enum.
114        @param flags  SkCanvas::SaveLayerFlags enum
115     */
116    static SkString* SaveLayerFlagsToString(uint32_t saveLayerFlags);
117
118    /**
119        Returns a string representation of an SkScalar with the text parameter
120        at the front of the string.
121        @param x  SkScalar
122        @param text
123     */
124    static SkString* ScalarToString(SkScalar x, const char* text);
125
126    /**
127        Returns a string representation of the char pointer passed in.
128        @param text  const void* that will be cast to a char*
129     */
130    static SkString* TextToString(const void* text, size_t byteLength,
131                                  SkPaint::TextEncoding encoding);
132
133    /**
134        Returns a string representation of the SkCanvas::Lattice.
135        @param lattice  SkCanvas::Lattice
136     */
137    static SkString* LatticeToString(const SkCanvas::Lattice& lattice);
138};
139
140#endif
141