1 // Copyright 2013 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.
5 #ifndef CC_DEBUG_MICRO_BENCHMARK_IMPL_H_
6 #define CC_DEBUG_MICRO_BENCHMARK_IMPL_H_
8 #include "base/callback.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "cc/base/cc_export.h"
14 class MessageLoopProxy
;
19 class LayerTreeHostImpl
;
21 class PictureLayerImpl
;
22 class CC_EXPORT MicroBenchmarkImpl
{
24 typedef base::Callback
<void(scoped_ptr
<base::Value
>)> DoneCallback
;
26 explicit MicroBenchmarkImpl(
27 const DoneCallback
& callback
,
28 scoped_refptr
<base::MessageLoopProxy
> origin_loop
);
29 virtual ~MicroBenchmarkImpl();
32 virtual void DidCompleteCommit(LayerTreeHostImpl
* host
);
34 virtual void RunOnLayer(LayerImpl
* layer
);
35 virtual void RunOnLayer(PictureLayerImpl
* layer
);
38 void NotifyDone(scoped_ptr
<base::Value
> result
);
41 DoneCallback callback_
;
43 scoped_refptr
<base::MessageLoopProxy
> origin_loop_
;
48 #endif // CC_DEBUG_MICRO_BENCHMARK_IMPL_H_