OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ | 5 #ifndef GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ |
6 #define GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ | 6 #define GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ |
7 | 7 |
8 #include <assert.h> | 8 #include <assert.h> |
9 | 9 |
10 #include <ostream> | 10 #include <ostream> |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 private: | 149 private: |
150 Logger(const Logger& logger) | 150 Logger(const Logger& logger) |
151 : condition_(logger.condition_), | 151 : condition_(logger.condition_), |
152 level_(logger.level_) { | 152 level_(logger.level_) { |
153 } | 153 } |
154 | 154 |
155 const bool condition_; | 155 const bool condition_; |
156 const LogLevel level_; | 156 const LogLevel level_; |
157 }; | 157 }; |
158 | 158 |
159 // This is a logger that does not do anything for release builds. | |
160 class NoLogger { | |
161 public: | |
162 template <typename T> | |
163 NoLogger& operator<<(const T& value) { | |
164 return *this; | |
165 } | |
166 }; | |
167 | |
168 } // namespace gpu | 159 } // namespace gpu |
169 | 160 |
170 #define GPU_CHECK(X) ::gpu::Logger::CheckTrue( \ | 161 #define GPU_CHECK(X) ::gpu::Logger::CheckTrue( \ |
171 (X), __FILE__, __LINE__, #X, "GPU_CHECK") | 162 (X), __FILE__, __LINE__, #X, "GPU_CHECK") |
172 #define GPU_CHECK_EQ(X, Y) ::gpu::Logger::CheckEqual( \ | 163 #define GPU_CHECK_EQ(X, Y) ::gpu::Logger::CheckEqual( \ |
173 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_EQ") | 164 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_EQ") |
174 #define GPU_CHECK_NE(X, Y) ::gpu::Logger::CheckNotEqual( \ | 165 #define GPU_CHECK_NE(X, Y) ::gpu::Logger::CheckNotEqual( \ |
175 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_NE") | 166 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_NE") |
176 #define GPU_CHECK_GT(X, Y) ::gpu::Logger::CheckGreaterThan( \ | 167 #define GPU_CHECK_GT(X, Y) ::gpu::Logger::CheckGreaterThan( \ |
177 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_GT") | 168 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_GT") |
178 #define GPU_CHECK_LT(X, Y) ::gpu::Logger::CheckLessThan( \ | 169 #define GPU_CHECK_LT(X, Y) ::gpu::Logger::CheckLessThan( \ |
179 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_LT") | 170 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_LT") |
180 #define GPU_CHECK_GE(X, Y) ::gpu::Logger::CheckGreaterEqual( \ | 171 #define GPU_CHECK_GE(X, Y) ::gpu::Logger::CheckGreaterEqual( \ |
181 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_GE") | 172 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_GE") |
182 #define GPU_CHECK_LE(X, Y) ::gpu::Logger::CheckLessEqual( \ | 173 #define GPU_CHECK_LE(X, Y) ::gpu::Logger::CheckLessEqual( \ |
183 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_LE") | 174 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_CHECK_LE") |
184 #define GPU_LOG(LEVEL) ::gpu::Logger(false, LEVEL) | 175 #define GPU_LOG(LEVEL) ::gpu::Logger(false, LEVEL) |
185 | 176 |
| 177 |
186 #if defined(NDEBUG) | 178 #if defined(NDEBUG) |
| 179 #define GPU_DEBUG_IS_ON false |
| 180 #else |
| 181 #define GPU_DEBUG_IS_ON true |
| 182 #endif |
187 | 183 |
188 #define GPU_DCHECK(X) ::gpu::NoLogger() | |
189 #define GPU_DCHECK_EQ(X, Y) ::gpu::NoLogger() | |
190 #define GPU_DCHECK_NE(X, Y) ::gpu::NoLogger() | |
191 #define GPU_DCHECK_GT(X, Y) ::gpu::NoLogger() | |
192 #define GPU_DCHECK_LT(X, Y) ::gpu::NoLogger() | |
193 #define GPU_DCHECK_GE(X, Y) ::gpu::NoLogger() | |
194 #define GPU_DCHECK_LE(X, Y) ::gpu::NoLogger() | |
195 #define GPU_DLOG(LEVEL) ::gpu::NoLogger() | |
196 | 184 |
197 #else // NDEBUG | 185 #define GPU_DCHECK(X) \ |
| 186 if (GPU_DEBUG_IS_ON) \ |
| 187 ::gpu::Logger::CheckTrue( \ |
| 188 (X), __FILE__, __LINE__, #X, "GPU_DCHECK") |
| 189 #define GPU_DCHECK_EQ(X, Y) \ |
| 190 if (GPU_DEBUG_IS_ON) \ |
| 191 ::gpu::Logger::CheckEqual( \ |
| 192 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_EQ") |
| 193 #define GPU_DCHECK_NE(X, Y) \ |
| 194 if (GPU_DEBUG_IS_ON) \ |
| 195 ::gpu::Logger::CheckNotEqual( \ |
| 196 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_NE") |
| 197 #define GPU_DCHECK_GT(X, Y) \ |
| 198 if (GPU_DEBUG_IS_ON) \ |
| 199 ::gpu::Logger::CheckGreaterThan( \ |
| 200 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_GT") |
| 201 #define GPU_DCHECK_LT(X, Y) \ |
| 202 if (GPU_DEBUG_IS_ON) \ |
| 203 ::gpu::Logger::CheckLessThan( \ |
| 204 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_LT") |
| 205 #define GPU_DCHECK_GE(X, Y) \ |
| 206 if (GPU_DEBUG_IS_ON) \ |
| 207 ::gpu::Logger::CheckGreaterEqual( \ |
| 208 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_GE") |
| 209 #define GPU_DCHECK_LE(X, Y) \ |
| 210 if (GPU_DEBUG_IS_ON) \ |
| 211 ::gpu::Logger::CheckLessEqual( \ |
| 212 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_LE") |
| 213 #define GPU_DLOG(LEVEL) if (GPU_DEBUG_IS_ON) ::gpu::Logger(true, LEVEL) |
198 | 214 |
199 #define GPU_DCHECK(X) ::gpu::Logger::CheckTrue( \ | |
200 (X), __FILE__, __LINE__, #X, "GPU_DCHECK") | |
201 #define GPU_DCHECK_EQ(X, Y) ::gpu::Logger::CheckEqual( \ | |
202 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_EQ") | |
203 #define GPU_DCHECK_NE(X, Y) ::gpu::Logger::CheckNotEqual( \ | |
204 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_NE") | |
205 #define GPU_DCHECK_GT(X, Y) ::gpu::Logger::CheckGreaterThan( \ | |
206 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_GT") | |
207 #define GPU_DCHECK_LT(X, Y) ::gpu::Logger::CheckLessThan( \ | |
208 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_LT") | |
209 #define GPU_DCHECK_GE(X, Y) ::gpu::Logger::CheckGreaterEqual( \ | |
210 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_GE") | |
211 #define GPU_DCHECK_LE(X, Y) ::gpu::Logger::CheckLessEqual( \ | |
212 (X), (Y), __FILE__, __LINE__, #X, #Y, "GPU_DCHECK_LE") | |
213 #define GPU_DLOG(LEVEL) ::gpu::Logger(true, LEVEL) | |
214 | 215 |
215 #endif // NDEBUG | |
216 | 216 |
217 #define GPU_NOTREACHED() GPU_DCHECK(false) | 217 #define GPU_NOTREACHED() GPU_DCHECK(false) |
218 | 218 |
219 #endif // GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ | 219 #endif // GPU_COMMAND_BUFFER_COMMON_LOGGING_H_ |
OLD | NEW |