Setup a experiment to enable background tracing.
[chromium-blink-merge.git] / cc / test / test_context_support.h
blob307b8819cd996baeb6114d18218c3ee525219283
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_TEST_TEST_CONTEXT_SUPPORT_H_
6 #define CC_TEST_TEST_CONTEXT_SUPPORT_H_
8 #include <vector>
10 #include "base/memory/weak_ptr.h"
11 #include "gpu/command_buffer/client/context_support.h"
13 namespace cc {
15 class TestContextSupport : public gpu::ContextSupport {
16 public:
17 TestContextSupport();
18 ~TestContextSupport() override;
20 // gpu::ContextSupport implementation.
21 void SignalSyncPoint(uint32 sync_point,
22 const base::Closure& callback) override;
23 void SignalQuery(uint32 query, const base::Closure& callback) override;
24 void SetSurfaceVisible(bool visible) override;
25 void Swap() override;
26 void PartialSwapBuffers(const gfx::Rect& sub_buffer) override;
27 uint32 InsertFutureSyncPointCHROMIUM() override;
28 void RetireSyncPointCHROMIUM(uint32 sync_point) override;
29 void ScheduleOverlayPlane(int plane_z_order,
30 gfx::OverlayTransform plane_transform,
31 unsigned overlay_texture_id,
32 const gfx::Rect& display_bounds,
33 const gfx::RectF& uv_rect) override;
35 void CallAllSyncPointCallbacks();
37 typedef base::Callback<void(bool visible)> SurfaceVisibleCallback;
38 void SetSurfaceVisibleCallback(
39 const SurfaceVisibleCallback& set_visible_callback);
41 typedef base::Callback<void(int plane_z_order,
42 gfx::OverlayTransform plane_transform,
43 unsigned overlay_texture_id,
44 const gfx::Rect& display_bounds,
45 const gfx::RectF& crop_rect)>
46 ScheduleOverlayPlaneCallback;
47 void SetScheduleOverlayPlaneCallback(
48 const ScheduleOverlayPlaneCallback& schedule_overlay_plane_callback);
50 private:
51 std::vector<base::Closure> sync_point_callbacks_;
52 SurfaceVisibleCallback set_visible_callback_;
53 ScheduleOverlayPlaneCallback schedule_overlay_plane_callback_;
55 base::WeakPtrFactory<TestContextSupport> weak_ptr_factory_;
57 DISALLOW_COPY_AND_ASSIGN(TestContextSupport);
60 } // namespace cc
62 #endif // CC_TEST_TEST_CONTEXT_SUPPORT_H_