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_
10 #include "base/memory/weak_ptr.h"
11 #include "gpu/command_buffer/client/context_support.h"
15 class TestContextSupport
: public gpu::ContextSupport
{
18 virtual ~TestContextSupport();
20 // gpu::ContextSupport implementation.
21 virtual void SignalSyncPoint(uint32 sync_point
,
22 const base::Closure
& callback
) OVERRIDE
;
23 virtual void SignalQuery(uint32 query
,
24 const base::Closure
& callback
) OVERRIDE
;
25 virtual void SetSurfaceVisible(bool visible
) OVERRIDE
;
26 virtual void Swap() OVERRIDE
;
27 virtual void PartialSwapBuffers(const gfx::Rect
& sub_buffer
) OVERRIDE
;
28 virtual uint32
InsertFutureSyncPointCHROMIUM() OVERRIDE
;
29 virtual void RetireSyncPointCHROMIUM(uint32 sync_point
) OVERRIDE
;
30 virtual void SetSwapBuffersCompleteCallback(
31 const base::Closure
& callback
) OVERRIDE
;
32 virtual void ScheduleOverlayPlane(int plane_z_order
,
33 gfx::OverlayTransform plane_transform
,
34 unsigned overlay_texture_id
,
35 const gfx::Rect
& display_bounds
,
36 const gfx::RectF
& uv_rect
) OVERRIDE
;
38 void CallAllSyncPointCallbacks();
40 typedef base::Callback
<void(bool visible
)> SurfaceVisibleCallback
;
41 void SetSurfaceVisibleCallback(
42 const SurfaceVisibleCallback
& set_visible_callback
);
44 typedef base::Callback
<void(int plane_z_order
,
45 gfx::OverlayTransform plane_transform
,
46 unsigned overlay_texture_id
,
47 const gfx::Rect
& display_bounds
,
48 const gfx::RectF
& crop_rect
)>
49 ScheduleOverlayPlaneCallback
;
50 void SetScheduleOverlayPlaneCallback(
51 const ScheduleOverlayPlaneCallback
& schedule_overlay_plane_callback
);
59 SwapType
last_swap_type() const { return last_swap_type_
; }
60 gfx::Rect
last_partial_swap_rect() const {
61 return last_partial_swap_rect_
;
65 void OnSwapBuffersComplete();
67 std::vector
<base::Closure
> sync_point_callbacks_
;
68 SurfaceVisibleCallback set_visible_callback_
;
69 ScheduleOverlayPlaneCallback schedule_overlay_plane_callback_
;
71 base::Closure swap_buffers_complete_callback_
;
73 SwapType last_swap_type_
;
74 gfx::Rect last_partial_swap_rect_
;
76 base::WeakPtrFactory
<TestContextSupport
> weak_ptr_factory_
;
78 DISALLOW_COPY_AND_ASSIGN(TestContextSupport
);
83 #endif // CC_TEST_TEST_CONTEXT_SUPPORT_H_