|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // 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() { | 
|  | } | 
|  |  | 
|  | void DebugMarkerManager::Group::SetMarker(const std::string& marker) { | 
|  | marker_ = name_ + "." + marker; | 
|  | } | 
|  |  | 
|  | DebugMarkerManager::DebugMarkerManager() { | 
|  | // Push root group. | 
|  | group_stack_.push(Group(std::string())); | 
|  | } | 
|  |  | 
|  | DebugMarkerManager::~DebugMarkerManager() { | 
|  | } | 
|  |  | 
|  | 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 | 
|  |  | 
|  |  |