OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #include "gpu/command_buffer/service/logger.h" | 5 #include "gpu/command_buffer/service/logger.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "gpu/command_buffer/common/debug_marker_manager.h" | 10 #include "gpu/command_buffer/common/debug_marker_manager.h" |
11 #include "gpu/command_buffer/service/gpu_switches.h" | 11 #include "gpu/command_buffer/service/gpu_preferences.h" |
12 | 12 |
13 namespace gpu { | 13 namespace gpu { |
14 namespace gles2 { | 14 namespace gles2 { |
15 | 15 |
16 Logger::Logger(const DebugMarkerManager* debug_marker_manager) | 16 Logger::Logger(const DebugMarkerManager* debug_marker_manager) |
17 : debug_marker_manager_(debug_marker_manager), | 17 : debug_marker_manager_(debug_marker_manager), |
18 log_message_count_(0), | 18 log_message_count_(0), |
19 log_synthesized_gl_errors_(true) { | 19 log_synthesized_gl_errors_(true) { |
20 Logger* this_temp = this; | 20 Logger* this_temp = this; |
21 this_in_hex_ = std::string("GroupMarkerNotSet(crbug.com/242999)!:") + | 21 this_in_hex_ = std::string("GroupMarkerNotSet(crbug.com/242999)!:") + |
22 base::HexEncode(&this_temp, sizeof(this_temp)); | 22 base::HexEncode(&this_temp, sizeof(this_temp)); |
23 } | 23 } |
24 | 24 |
25 Logger::~Logger() {} | 25 Logger::~Logger() {} |
26 | 26 |
27 void Logger::LogMessage( | 27 void Logger::LogMessage( |
28 const char* filename, int line, const std::string& msg) { | 28 const char* filename, int line, const std::string& msg) { |
29 if (log_message_count_ < kMaxLogMessages || | 29 if (log_message_count_ < kMaxLogMessages || |
30 base::CommandLine::ForCurrentProcess()->HasSwitch( | 30 GpuPreferences::GetInstance()->disable_gl_error_limit) { |
31 switches::kDisableGLErrorLimit)) { | |
32 std::string prefixed_msg(std::string("[") + GetLogPrefix() + "]" + msg); | 31 std::string prefixed_msg(std::string("[") + GetLogPrefix() + "]" + msg); |
33 ++log_message_count_; | 32 ++log_message_count_; |
34 // LOG this unless logging is turned off as any chromium code that | 33 // LOG this unless logging is turned off as any chromium code that |
35 // generates these errors probably has a bug. | 34 // generates these errors probably has a bug. |
36 if (log_synthesized_gl_errors_) { | 35 if (log_synthesized_gl_errors_) { |
37 ::logging::LogMessage( | 36 ::logging::LogMessage( |
38 filename, line, ::logging::LOG_ERROR).stream() << prefixed_msg; | 37 filename, line, ::logging::LOG_ERROR).stream() << prefixed_msg; |
39 } | 38 } |
40 if (!msg_callback_.is_null()) { | 39 if (!msg_callback_.is_null()) { |
41 msg_callback_.Run(0, prefixed_msg); | 40 msg_callback_.Run(0, prefixed_msg); |
(...skipping 13 matching lines...) Expand all Loading... |
55 return prefix.empty() ? this_in_hex_ : prefix; | 54 return prefix.empty() ? this_in_hex_ : prefix; |
56 } | 55 } |
57 | 56 |
58 void Logger::SetMsgCallback(const MsgCallback& callback) { | 57 void Logger::SetMsgCallback(const MsgCallback& callback) { |
59 msg_callback_ = callback; | 58 msg_callback_ = callback; |
60 } | 59 } |
61 | 60 |
62 } // namespace gles2 | 61 } // namespace gles2 |
63 } // namespace gpu | 62 } // namespace gpu |
64 | 63 |
OLD | NEW |