OLD | NEW |
| (Empty) |
1 | |
2 /* | |
3 * Copyright 2013 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 | |
10 #ifndef SkDebugUtils_DEFINED | |
11 #define SkDebugUtils_DEFINED | |
12 | |
13 #include "SkTypes.h" | |
14 | |
15 // These functions dump 0, 1, and 2d arrays of data in a format that's | |
16 // compatible with Mathematica for quick visualization | |
17 | |
18 | |
19 template<class T> | |
20 inline void SkDebugDumpMathematica( const T val ) { | |
21 SkDEBUGFAIL("Need to specialize SkDebugDumpMathematica for your type, sorry.
"); | |
22 } | |
23 | |
24 template<class T> | |
25 inline void SkDebugDumpMathematica(const char *name, const T *array, int size) { | |
26 SkDebugf("%s", name); | |
27 SkDebugf(" = {"); | |
28 for (int i=0 ; i < size ; i++) { | |
29 SkDebugDumpMathematica<T>(array[i]); | |
30 if (i != size-1) SkDebugf(", "); | |
31 } | |
32 SkDebugf("};\n"); | |
33 } | |
34 | |
35 template<class T> | |
36 inline void SkDebugDumpMathematica(const char *name, const T *array, int width,
int height) { | |
37 SkDebugf("%s", name); | |
38 SkDebugf(" = {\n"); | |
39 for (int i=0 ; i < height ; i++) { | |
40 SkDebugf(" {"); | |
41 for (int j = 0 ; j < width ; j++) { | |
42 SkDebugDumpMathematica<T>(array[i*width + j]); | |
43 if (j != width-1) { | |
44 SkDebugf(", "); | |
45 } | |
46 } | |
47 SkDebugf("}"); | |
48 if (i != height-1) { | |
49 SkDebugf(", \n"); | |
50 } | |
51 } | |
52 SkDebugf("\n};\n"); | |
53 } | |
54 | |
55 template<class T> | |
56 inline void SkDebugDumpMathematica( const char *name, const T val ) { | |
57 SkDebugf("%s", name); | |
58 SkDebugf(" = "); | |
59 SkDebugDumpMathematica<T>(val); | |
60 SkDebugf(";\n"); | |
61 } | |
62 | |
63 template<> | |
64 inline void SkDebugDumpMathematica<uint8_t>( const uint8_t val ) { | |
65 SkDebugf("%u", val); | |
66 } | |
67 | |
68 template<> | |
69 inline void SkDebugDumpMathematica<unsigned int>( const unsigned int val ) { | |
70 SkDebugf("%u", val); | |
71 } | |
72 | |
73 template<> | |
74 inline void SkDebugDumpMathematica<int>( const int val ) { | |
75 SkDebugf("%d", val); | |
76 } | |
77 | |
78 template<> | |
79 inline void SkDebugDumpMathematica<size_t>( const size_t val ) { | |
80 SkDebugf("%u", val); | |
81 } | |
82 | |
83 template<> | |
84 inline void SkDebugDumpMathematica<const char *>( const char * val ) { | |
85 SkDebugf("%s", val); | |
86 } | |
87 | |
88 template<> | |
89 inline void SkDebugDumpMathematica<float>( float val ) { | |
90 SkDebugf("%f", val); | |
91 } | |
92 | |
93 | |
94 #endif | |
OLD | NEW |