OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 // IWYU pragma: private, include "SkTypes.h" | 8 // IWYU pragma: private, include "SkTypes.h" |
9 | 9 |
10 #ifndef SkPostConfig_DEFINED | 10 #ifndef SkPostConfig_DEFINED |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 # else | 96 # else |
97 # define SkNO_RETURN_HINT() do {} while (false) | 97 # define SkNO_RETURN_HINT() do {} while (false) |
98 # endif | 98 # endif |
99 #endif | 99 #endif |
100 | 100 |
101 /////////////////////////////////////////////////////////////////////////////// | 101 /////////////////////////////////////////////////////////////////////////////// |
102 | 102 |
103 // TODO(mdempsky): Move elsewhere as appropriate. | 103 // TODO(mdempsky): Move elsewhere as appropriate. |
104 #include <new> | 104 #include <new> |
105 | 105 |
106 #ifndef SK_CRASH | |
107 # ifdef SK_BUILD_FOR_WIN | |
108 # define SK_CRASH() __debugbreak() | |
109 # else | |
110 # if 1 // set to 0 for infinite loop, which can help connecting gdb | |
111 # define SK_CRASH() do { SkNO_RETURN_HINT(); *(int *)(uintptr_t)0xbbadbeef
= 0; } while (false) | |
112 # else | |
113 # define SK_CRASH() do { SkNO_RETURN_HINT(); } while (true) | |
114 # endif | |
115 # endif | |
116 #endif | |
117 | 106 |
118 /////////////////////////////////////////////////////////////////////////////// | 107 /////////////////////////////////////////////////////////////////////////////// |
119 | 108 |
120 #ifdef SK_BUILD_FOR_WIN | 109 #ifdef SK_BUILD_FOR_WIN |
121 # ifndef WIN32_LEAN_AND_MEAN | 110 # ifndef WIN32_LEAN_AND_MEAN |
122 # define WIN32_LEAN_AND_MEAN | 111 # define WIN32_LEAN_AND_MEAN |
123 # define WIN32_IS_MEAN_WAS_LOCALLY_DEFINED | 112 # define WIN32_IS_MEAN_WAS_LOCALLY_DEFINED |
124 # endif | 113 # endif |
125 # ifndef NOMINMAX | 114 # ifndef NOMINMAX |
126 # define NOMINMAX | 115 # define NOMINMAX |
(...skipping 14 matching lines...) Expand all Loading... |
141 # ifndef SK_A32_SHIFT | 130 # ifndef SK_A32_SHIFT |
142 # define SK_A32_SHIFT 24 | 131 # define SK_A32_SHIFT 24 |
143 # define SK_R32_SHIFT 16 | 132 # define SK_R32_SHIFT 16 |
144 # define SK_G32_SHIFT 8 | 133 # define SK_G32_SHIFT 8 |
145 # define SK_B32_SHIFT 0 | 134 # define SK_B32_SHIFT 0 |
146 # endif | 135 # endif |
147 # | 136 # |
148 #endif | 137 #endif |
149 | 138 |
150 #if defined(GOOGLE3) | 139 #if defined(GOOGLE3) |
151 // Used as argument to DumpStackTrace in SK_ALWAYSBREAK. | |
152 void SkDebugfForDumpStackTrace(const char* data, void* unused); | 140 void SkDebugfForDumpStackTrace(const char* data, void* unused); |
| 141 void DumpStackTrace(int skip_count, void w(const char*, void*), void* arg); |
| 142 # define SK_DUMP_GOOGLE3_STACK() DumpStackTrace(0, SkDebugfForDumpStackTrace, n
ullptr) |
| 143 #else |
| 144 # define SK_DUMP_GOOGLE3_STACK() |
153 #endif | 145 #endif |
154 | 146 |
155 #ifndef SK_ALWAYSBREAK | 147 #ifndef SK_ABORT |
156 # if defined(GOOGLE3) | 148 # define SK_ABORT(msg) \ |
157 void DumpStackTrace(int skip_count, void w(const char*, void*), | 149 do { \ |
158 void* arg); | 150 SkNO_RETURN_HINT(); \ |
159 # define SK_ALWAYSBREAK(cond) do { \ | 151 SkDebugf("%s:%d: fatal error: \"%s\"\n", __FILE__, __LINE__, #msg); \ |
160 if (cond) break; \ | 152 SK_DUMP_GOOGLE3_STACK(); \ |
161 SkNO_RETURN_HINT(); \ | 153 sk_abort_no_print(); \ |
162 SkDebugf("%s:%d: failed assertion \"%s\"\n", __FILE__, __LINE__, #
cond); \ | 154 } while (false) |
163 DumpStackTrace(0, SkDebugfForDumpStackTrace, nullptr); \ | |
164 SK_CRASH(); \ | |
165 } while (false) | |
166 # elif defined(SK_DEBUG) | |
167 # define SK_ALWAYSBREAK(cond) do { \ | |
168 if (cond) break; \ | |
169 SkNO_RETURN_HINT(); \ | |
170 SkDebugf("%s:%d: failed assertion \"%s\"\n", __FILE__, __LINE__, #
cond); \ | |
171 SK_CRASH(); \ | |
172 } while (false) | |
173 # else | |
174 # define SK_ALWAYSBREAK(cond) do { if (cond) break; SK_CRASH(); } while (fals
e) | |
175 # endif | |
176 #endif | 155 #endif |
177 | 156 |
178 /** | 157 /** |
179 * We check to see if the SHIFT value has already been defined. | 158 * We check to see if the SHIFT value has already been defined. |
180 * if not, we define it ourself to some default values. We default to OpenGL | 159 * if not, we define it ourself to some default values. We default to OpenGL |
181 * order (in memory: r,g,b,a) | 160 * order (in memory: r,g,b,a) |
182 */ | 161 */ |
183 #ifndef SK_A32_SHIFT | 162 #ifndef SK_A32_SHIFT |
184 # ifdef SK_CPU_BENDIAN | 163 # ifdef SK_CPU_BENDIAN |
185 # define SK_R32_SHIFT 24 | 164 # define SK_R32_SHIFT 24 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 # define SK_GAMMA_EXPONENT (2.2f) | 338 # define SK_GAMMA_EXPONENT (2.2f) |
360 #endif | 339 #endif |
361 | 340 |
362 ////////////////////////////////////////////////////////////////////// | 341 ////////////////////////////////////////////////////////////////////// |
363 | 342 |
364 #ifndef GR_TEST_UTILS | 343 #ifndef GR_TEST_UTILS |
365 # define GR_TEST_UTILS 1 | 344 # define GR_TEST_UTILS 1 |
366 #endif | 345 #endif |
367 | 346 |
368 #endif // SkPostConfig_DEFINED | 347 #endif // SkPostConfig_DEFINED |
OLD | NEW |