OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google, Inc. | 3 * Copyright 2013 Google, Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #ifndef SkDebugUtils_DEFINED | 10 #ifndef SkDebugUtils_DEFINED |
11 #define SkDebugUtils_DEFINED | 11 #define SkDebugUtils_DEFINED |
12 | 12 |
13 #include "SkTypes.h" | 13 #include "SkTypes.h" |
14 | 14 |
15 // These functions dump 0, 1, and 2d arrays of data in a format that's | 15 // These functions dump 0, 1, and 2d arrays of data in a format that's |
16 // compatible with Mathematica for quick visualization | 16 // compatible with Mathematica for quick visualization |
17 | 17 |
18 | 18 |
19 template<class T> | 19 template<class T> |
20 inline void SkDebugDumpMathematica( const T val ) { | 20 inline void SkDebugDumpMathematica( const T val ) { |
21 SkDEBUGFAIL("Need to specialize SkDebugDumpMathematica for your type, sorry.
"); | 21 SkDEBUGFAIL("Need to specialize SkDebugDumpMathematica for your type, sorry.
"); |
22 } | 22 } |
23 | 23 |
24 template<class T> | 24 template<class T> |
25 inline void SkDebugDumpMathematica(const char *name, const T *array, int size) { | 25 inline void SkDebugDumpMathematica(const char *name, const T *array, int size) { |
26 SkDebugf(name); | 26 SkDebugf("%s", name); |
27 SkDebugf(" = {"); | 27 SkDebugf(" = {"); |
28 for (int i=0 ; i < size ; i++) { | 28 for (int i=0 ; i < size ; i++) { |
29 SkDebugDumpMathematica<T>(array[i]); | 29 SkDebugDumpMathematica<T>(array[i]); |
30 if (i != size-1) SkDebugf(", "); | 30 if (i != size-1) SkDebugf(", "); |
31 } | 31 } |
32 SkDebugf("};\n"); | 32 SkDebugf("};\n"); |
33 } | 33 } |
34 | 34 |
35 template<class T> | 35 template<class T> |
36 inline void SkDebugDumpMathematica(const char *name, const T *array, int width,
int height) { | 36 inline void SkDebugDumpMathematica(const char *name, const T *array, int width,
int height) { |
37 SkDebugf(name); | 37 SkDebugf("%s", name); |
38 SkDebugf(" = {\n"); | 38 SkDebugf(" = {\n"); |
39 for (int i=0 ; i < height ; i++) { | 39 for (int i=0 ; i < height ; i++) { |
40 SkDebugf(" {"); | 40 SkDebugf(" {"); |
41 for (int j = 0 ; j < width ; j++) { | 41 for (int j = 0 ; j < width ; j++) { |
42 SkDebugDumpMathematica<T>(array[i*width + j]); | 42 SkDebugDumpMathematica<T>(array[i*width + j]); |
43 if (j != width-1) { | 43 if (j != width-1) { |
44 SkDebugf(", "); | 44 SkDebugf(", "); |
45 } | 45 } |
46 } | 46 } |
47 SkDebugf("}"); | 47 SkDebugf("}"); |
48 if (i != height-1) { | 48 if (i != height-1) { |
49 SkDebugf(", \n"); | 49 SkDebugf(", \n"); |
50 } | 50 } |
51 } | 51 } |
52 SkDebugf("\n};\n"); | 52 SkDebugf("\n};\n"); |
53 } | 53 } |
54 | 54 |
55 template<class T> | 55 template<class T> |
56 inline void SkDebugDumpMathematica( const char *name, const T val ) { | 56 inline void SkDebugDumpMathematica( const char *name, const T val ) { |
57 SkDebugf(name); | 57 SkDebugf("%s", name); |
58 SkDebugf(" = "); | 58 SkDebugf(" = "); |
59 SkDebugDumpMathematica<T>(val); | 59 SkDebugDumpMathematica<T>(val); |
60 SkDebugf(";\n"); | 60 SkDebugf(";\n"); |
61 } | 61 } |
62 | 62 |
63 template<> | 63 template<> |
64 inline void SkDebugDumpMathematica<uint8_t>( const uint8_t val ) { | 64 inline void SkDebugDumpMathematica<uint8_t>( const uint8_t val ) { |
65 SkDebugf("%u", val); | 65 SkDebugf("%u", val); |
66 } | 66 } |
67 | 67 |
(...skipping 17 matching lines...) Expand all Loading... |
85 SkDebugf("%s", val); | 85 SkDebugf("%s", val); |
86 } | 86 } |
87 | 87 |
88 template<> | 88 template<> |
89 inline void SkDebugDumpMathematica<float>( float val ) { | 89 inline void SkDebugDumpMathematica<float>( float val ) { |
90 SkDebugf("%f", val); | 90 SkDebugf("%f", val); |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 #endif | 94 #endif |
OLD | NEW |