Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / test / test_context_support.h
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.
4
5 #ifndef CC_TEST_TEST_CONTEXT_SUPPORT_H_
6 #define CC_TEST_TEST_CONTEXT_SUPPORT_H_
7
8 #include <vector>
9
10 #include "base/memory/weak_ptr.h"
11 #include "gpu/command_buffer/client/context_support.h"
12
13 namespace cc {
14
15 class TestContextSupport : public gpu::ContextSupport {
16  public:
17   TestContextSupport();
18   ~TestContextSupport() override;
19
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;
34
35   void CallAllSyncPointCallbacks();
36
37   typedef base::Callback<void(bool visible)> SurfaceVisibleCallback;
38   void SetSurfaceVisibleCallback(
39       const SurfaceVisibleCallback& set_visible_callback);
40
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);
49
50  private:
51   std::vector<base::Closure> sync_point_callbacks_;
52   SurfaceVisibleCallback set_visible_callback_;
53   ScheduleOverlayPlaneCallback schedule_overlay_plane_callback_;
54
55   base::WeakPtrFactory<TestContextSupport> weak_ptr_factory_;
56
57   DISALLOW_COPY_AND_ASSIGN(TestContextSupport);
58 };
59
60 }  // namespace cc
61
62 #endif  // CC_TEST_TEST_CONTEXT_SUPPORT_H_