diff options
Diffstat (limited to 'gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp')
-rw-r--r-- | gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp b/gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp new file mode 100644 index 0000000000..b3721aceca --- /dev/null +++ b/gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp @@ -0,0 +1,63 @@ +// +// 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" + +namespace angle +{ + +bool LoggingAnnotator::getStatus() +{ + return false; +} + +void LoggingAnnotator::beginEvent(const char *eventName, const char *eventMessage) +{ + ANGLE_TRACE_EVENT_BEGIN0("gpu.angle", eventName); +} + +void LoggingAnnotator::endEvent(const char *eventName) +{ + ANGLE_TRACE_EVENT_END0("gpu.angle", eventName); +} + +void LoggingAnnotator::setMarker(const char *markerName) +{ + ANGLE_TRACE_EVENT_INSTANT0("gpu.angle", 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(); + } + } + else + { + gl::Trace(msg.getSeverity(), msg.getMessage().c_str()); + } +} + +} // namespace angle |