Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "gpu/command_buffer/common/debug_marker_manager.h"
      6 
      7 namespace gpu {
      8 namespace gles2 {
      9 
     10 DebugMarkerManager::Group::Group(const std::string& name)
     11     : name_(name),
     12       marker_(name) {
     13 }
     14 
     15 DebugMarkerManager::Group::~Group() {
     16 }
     17 
     18 void DebugMarkerManager::Group::SetMarker(const std::string& marker) {
     19   marker_ = name_ + "." + marker;
     20 }
     21 
     22 DebugMarkerManager::DebugMarkerManager() {
     23   // Push root group.
     24   group_stack_.push(Group(std::string("")));
     25 }
     26 
     27 DebugMarkerManager::~DebugMarkerManager() {
     28 }
     29 
     30 void DebugMarkerManager::SetMarker(const std::string& marker) {
     31   group_stack_.top().SetMarker(marker);
     32 }
     33 
     34 const std::string& DebugMarkerManager::GetMarker() const {
     35   return group_stack_.top().marker();
     36 }
     37 
     38 void DebugMarkerManager::PushGroup(const std::string& name) {
     39   group_stack_.push(Group(group_stack_.top().name() + "." + name));
     40 }
     41 
     42 void DebugMarkerManager::PopGroup(void) {
     43   if (group_stack_.size() > 1) {
     44     group_stack_.pop();
     45   }
     46 }
     47 
     48 }  // namespace gles2
     49 }  // namespace gpu
     50 
     51 
     52