| // | |
| // Copyright 2017 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // LoggingAnnotator.cpp: DebugAnnotator implementing logging | |
| // | |
| #include "libANGLE/LoggingAnnotator.h" | |
| #include "libANGLE/trace.h" | |
| #include "platform/PlatformMethods.h" | |
| namespace angle | |
| { | |
| bool LoggingAnnotator::getStatus(const gl::Context *context) | |
| { | |
| return false; | |
| } | |
| void LoggingAnnotator::beginEvent(gl::Context *context, | |
| EntryPoint entryPoint, | |
| const char *eventName, | |
| const char *eventMessage) | |
| { | |
| ANGLE_TRACE_EVENT_BEGIN("gpu.angle", perfetto::DynamicString(eventName)); | |
| } | |
| void LoggingAnnotator::endEvent(gl::Context *context, const char *eventName, EntryPoint entryPoint) | |
| { | |
| ANGLE_TRACE_EVENT_END("gpu.angle"); | |
| } | |
| void LoggingAnnotator::setMarker(gl::Context *context, const char *markerName) | |
| { | |
| ANGLE_TRACE_EVENT_INSTANT("gpu.angle", perfetto::DynamicString(markerName)); | |
| } | |
| void LoggingAnnotator::logMessage(const gl::LogMessage &msg) const | |
| { | |
| auto *plat = ANGLEPlatformCurrent(); | |
| if (plat != nullptr) | |
| { | |
| switch (msg.getSeverity()) | |
| { | |
| case gl::LOG_FATAL: | |
| case gl::LOG_ERR: | |
| plat->logError(plat, msg.getMessage().c_str()); | |
| break; | |
| case gl::LOG_WARN: | |
| plat->logWarning(plat, msg.getMessage().c_str()); | |
| break; | |
| case gl::LOG_INFO: | |
| plat->logInfo(plat, msg.getMessage().c_str()); | |
| break; | |
| default: | |
| UNREACHABLE(); | |
| } | |
| } | |
| gl::Trace(msg.getSeverity(), msg.getMessage().c_str()); | |
| } | |
| } // namespace angle |