| // Copyright 2012 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "gpu/command_buffer/common/debug_marker_manager.h" | |
| namespace gpu { | |
| namespace gles2 { | |
| DebugMarkerManager::Group::Group(const std::string& name) | |
| : name_(name), | |
| marker_(name) { | |
| } | |
| DebugMarkerManager::Group::~Group() = default; | |
| void DebugMarkerManager::Group::SetMarker(const std::string& marker) { | |
| marker_ = name_ + "." + marker; | |
| } | |
| DebugMarkerManager::DebugMarkerManager() { | |
| // Push root group. | |
| group_stack_.push(Group(std::string())); | |
| } | |
| DebugMarkerManager::~DebugMarkerManager() = default; | |
| void DebugMarkerManager::SetMarker(const std::string& marker) { | |
| group_stack_.top().SetMarker(marker); | |
| } | |
| const std::string& DebugMarkerManager::GetMarker() const { | |
| return group_stack_.top().marker(); | |
| } | |
| void DebugMarkerManager::PushGroup(const std::string& name) { | |
| group_stack_.push(Group(group_stack_.top().name() + "." + name)); | |
| } | |
| void DebugMarkerManager::PopGroup(void) { | |
| if (group_stack_.size() > 1) { | |
| group_stack_.pop(); | |
| } | |
| } | |
| } // namespace gles2 | |
| } // namespace gpu | |