Index: gpu/command_buffer/service/gpu_tracer.h |
diff --git a/gpu/command_buffer/service/gpu_tracer.h b/gpu/command_buffer/service/gpu_tracer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5aeab176ed6fef00217ee1b577770a253f0c1495 |
--- /dev/null |
+++ b/gpu/command_buffer/service/gpu_tracer.h |
@@ -0,0 +1,57 @@ |
+// 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. |
+ |
+// This file contains the GPUTrace class. |
+#ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_TRACER_H_ |
+#define GPU_COMMAND_BUFFER_SERVICE_GPU_TRACER_H_ |
+ |
+#include <deque> |
+#include <stack> |
+#include <string> |
+ |
+#include "base/basictypes.h" |
+#include "base/memory/linked_ptr.h" |
+#include "base/memory/scoped_ptr.h" |
+ |
+namespace gpu { |
+namespace gles2 { |
+ |
+// Traces GPU Commands. |
+class GPUTracer { |
+ public: |
+ class Outputter; |
+ class Trace; |
+ |
+ static scoped_ptr<GPUTracer> create(); |
jonathan.backer
2012/11/23 18:55:41
nit: Create()
I think that we only use C style fo
dsinclair
2012/11/23 21:13:56
Done.
|
+ |
+ virtual ~GPUTracer(); |
+ |
+ // Begin a trace. |
+ bool Begin(const std::string& name); |
jonathan.backer
2012/11/23 18:55:41
This is good. But eventually you'll want an interf
dsinclair
2012/11/23 21:13:56
Done.
|
+ |
+ // End the last started trace. |
+ bool End(); |
+ |
+ // Process any completed traces. |
+ void Process(); |
+ |
+ protected: |
+ GPUTracer(); |
+ |
+ // Create a new trace. |
+ virtual linked_ptr<GPUTracer::Trace> CreateTrace(const std::string& name) = 0; |
+ |
+ linked_ptr<GPUTracer::Outputter> output_; |
+ |
+ private: |
+ linked_ptr<Trace> current_trace_; |
+ std::deque<linked_ptr<Trace> > traces_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(GPUTracer); |
+}; |
+ |
+} // namespace gles2 |
+} // namespace gpu |
+ |
+#endif // GPU_COMMAND_BUFFER_SERVICE_GPU_TRACER_H_ |