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 |
106 | 117 |
107 /////////////////////////////////////////////////////////////////////////////// | 118 /////////////////////////////////////////////////////////////////////////////// |
108 | 119 |
109 #ifdef SK_BUILD_FOR_WIN | 120 #ifdef SK_BUILD_FOR_WIN |
110 # ifndef WIN32_LEAN_AND_MEAN | 121 # ifndef WIN32_LEAN_AND_MEAN |
111 # define WIN32_LEAN_AND_MEAN | 122 # define WIN32_LEAN_AND_MEAN |
112 # define WIN32_IS_MEAN_WAS_LOCALLY_DEFINED | 123 # define WIN32_IS_MEAN_WAS_LOCALLY_DEFINED |
113 # endif | 124 # endif |
114 # ifndef NOMINMAX | 125 # ifndef NOMINMAX |
115 # define NOMINMAX | 126 # define NOMINMAX |
(...skipping 14 matching lines...) Expand all Loading... |
130 # ifndef SK_A32_SHIFT | 141 # ifndef SK_A32_SHIFT |
131 # define SK_A32_SHIFT 24 | 142 # define SK_A32_SHIFT 24 |
132 # define SK_R32_SHIFT 16 | 143 # define SK_R32_SHIFT 16 |
133 # define SK_G32_SHIFT 8 | 144 # define SK_G32_SHIFT 8 |
134 # define SK_B32_SHIFT 0 | 145 # define SK_B32_SHIFT 0 |
135 # endif | 146 # endif |
136 # | 147 # |
137 #endif | 148 #endif |
138 | 149 |
139 #if defined(GOOGLE3) | 150 #if defined(GOOGLE3) |
| 151 // Used as argument to DumpStackTrace in SK_ALWAYSBREAK. |
140 void SkDebugfForDumpStackTrace(const char* data, void* unused); | 152 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() | |
145 #endif | 153 #endif |
146 | 154 |
147 #ifndef SK_ABORT | 155 #ifndef SK_ALWAYSBREAK |
148 # define SK_ABORT(msg) \ | 156 # if defined(GOOGLE3) |
149 do { \ | 157 void DumpStackTrace(int skip_count, void w(const char*, void*), |
150 SkNO_RETURN_HINT(); \ | 158 void* arg); |
151 SkDebugf("%s:%d: fatal error: \"%s\"\n", __FILE__, __LINE__, #msg); \ | 159 # define SK_ALWAYSBREAK(cond) do { \ |
152 SK_DUMP_GOOGLE3_STACK(); \ | 160 if (cond) break; \ |
153 sk_abort_no_print(); \ | 161 SkNO_RETURN_HINT(); \ |
154 } while (false) | 162 SkDebugf("%s:%d: failed assertion \"%s\"\n", __FILE__, __LINE__, #
cond); \ |
| 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 |
155 #endif | 176 #endif |
156 | 177 |
157 /** | 178 /** |
158 * We check to see if the SHIFT value has already been defined. | 179 * We check to see if the SHIFT value has already been defined. |
159 * if not, we define it ourself to some default values. We default to OpenGL | 180 * if not, we define it ourself to some default values. We default to OpenGL |
160 * order (in memory: r,g,b,a) | 181 * order (in memory: r,g,b,a) |
161 */ | 182 */ |
162 #ifndef SK_A32_SHIFT | 183 #ifndef SK_A32_SHIFT |
163 # ifdef SK_CPU_BENDIAN | 184 # ifdef SK_CPU_BENDIAN |
164 # define SK_R32_SHIFT 24 | 185 # define SK_R32_SHIFT 24 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 # define SK_GAMMA_EXPONENT (2.2f) | 359 # define SK_GAMMA_EXPONENT (2.2f) |
339 #endif | 360 #endif |
340 | 361 |
341 ////////////////////////////////////////////////////////////////////// | 362 ////////////////////////////////////////////////////////////////////// |
342 | 363 |
343 #ifndef GR_TEST_UTILS | 364 #ifndef GR_TEST_UTILS |
344 # define GR_TEST_UTILS 1 | 365 # define GR_TEST_UTILS 1 |
345 #endif | 366 #endif |
346 | 367 |
347 #endif // SkPostConfig_DEFINED | 368 #endif // SkPostConfig_DEFINED |
OLD | NEW |