Index: gpu/command_buffer/common/debug_marker_manager.h |
diff --git a/gpu/command_buffer/common/debug_marker_manager.h b/gpu/command_buffer/common/debug_marker_manager.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d7f83896e2775a486e3e56e1dd90d4fc435f5284 |
--- /dev/null |
+++ b/gpu/command_buffer/common/debug_marker_manager.h |
@@ -0,0 +1,62 @@ |
+// 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. |
+ |
+#ifndef GPU_COMMAND_BUFFER_SERVICE_DEBUG_MARKER_MANAGER_H_ |
+#define GPU_COMMAND_BUFFER_SERVICE_DEBUG_MARKER_MANAGER_H_ |
+ |
+#include <stack> |
+#include <string> |
+#include "../../gpu_export.h" |
+ |
+namespace gpu { |
+namespace gles2 { |
+ |
+// Tracks debug marker. |
+class GPU_EXPORT DebugMarkerManager { |
+ public: |
+ DebugMarkerManager(); |
+ ~DebugMarkerManager(); |
+ |
+ // Gets the current marker on the top group. |
+ const std::string& GetMarker() const; |
+ // Sets the current marker on the top group. |
+ void SetMarker(const std::string& marker); |
+ // Pushes a new group. |
+ void PushGroup(const std::string& name); |
+ // Removes the top group. This is safe to call even when stack is empty. |
+ void PopGroup(void); |
+ |
+ private: |
+ // Info about Buffers currently in the system. |
+ class Group { |
+ public: |
+ explicit Group(const std::string& name); |
+ ~Group(); |
+ |
+ const std::string& name() const { |
+ return name_; |
+ } |
+ |
+ void SetMarker(const std::string& marker); |
+ |
+ const std::string& marker() const { |
+ return marker_; |
+ } |
+ |
+ private: |
+ std::string name_; |
+ std::string marker_; |
+ }; |
+ |
+ typedef std::stack<Group> GroupStack; |
+ |
+ GroupStack group_stack_; |
+ std::string empty_; |
apatrick_chromium
2012/08/10 19:29:31
Is this used for anything?
greggman
2012/08/11 00:17:30
Done.
|
+}; |
apatrick_chromium
2012/08/10 19:29:31
DISALLOW_COPY_AND_ASSIGN
greggman
2012/08/11 00:17:30
can't use base here
|
+ |
+} // namespace gles2 |
+} // namespace gpu |
+ |
+#endif // GPU_COMMAND_BUFFER_SERVICE_DEBUG_MARKER_MANAGER_H_ |
+ |