1 // Copyright 2012 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_MOCK_QUAD_CULLER_H_
6 #define CC_TEST_MOCK_QUAD_CULLER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "cc/layers/quad_sink.h"
10 #include "cc/quads/draw_quad.h"
11 #include "cc/quads/render_pass.h"
15 class MockQuadCuller
: public QuadSink
{
18 virtual ~MockQuadCuller();
20 MockQuadCuller(QuadList
* external_quad_list
,
21 SharedQuadStateList
* external_shared_quad_state_list
);
23 // QuadSink interface.
24 virtual SharedQuadState
* UseSharedQuadState(
25 scoped_ptr
<SharedQuadState
> shared_quad_state
) OVERRIDE
;
26 virtual gfx::Rect
UnoccludedContentRect(const gfx::Rect
& content_rect
,
27 const gfx::Transform
& draw_transform
)
29 virtual gfx::Rect
UnoccludedContributingSurfaceContentRect(
30 const gfx::Rect
& content_rect
,
31 const gfx::Transform
& draw_transform
) OVERRIDE
;
32 virtual bool MaybeAppend(scoped_ptr
<DrawQuad
> draw_quad
) OVERRIDE
;
33 virtual void Append(scoped_ptr
<DrawQuad
> draw_quad
) OVERRIDE
;
35 const QuadList
& quad_list() const { return *active_quad_list_
; }
36 const SharedQuadStateList
& shared_quad_state_list() const {
37 return *active_shared_quad_state_list_
;
40 void set_occluded_target_rect(const gfx::Rect
& occluded
) {
41 occluded_target_rect_
= occluded
;
44 void set_occluded_target_rect_for_contributing_surface(
45 const gfx::Rect
& occluded
) {
46 occluded_target_rect_for_contributing_surface_
= occluded
;
50 active_quad_list_
->clear();
51 active_shared_quad_state_list_
->clear();
55 QuadList
* active_quad_list_
;
56 QuadList quad_list_storage_
;
57 SharedQuadStateList
* active_shared_quad_state_list_
;
58 SharedQuadStateList shared_quad_state_storage_
;
59 gfx::Rect occluded_target_rect_
;
60 gfx::Rect occluded_target_rect_for_contributing_surface_
;
65 #endif // CC_TEST_MOCK_QUAD_CULLER_H_