OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/test/render_pass_test_common.h" | 5 #include "cc/test/render_pass_test_common.h" |
6 | 6 |
7 #include "cc/checkerboard_draw_quad.h" | 7 #include "cc/checkerboard_draw_quad.h" |
8 #include "cc/debug_border_draw_quad.h" | 8 #include "cc/debug_border_draw_quad.h" |
9 #include "cc/io_surface_draw_quad.h" | 9 #include "cc/io_surface_draw_quad.h" |
10 #include "cc/render_pass_draw_quad.h" | 10 #include "cc/render_pass_draw_quad.h" |
11 #include "cc/solid_color_draw_quad.h" | 11 #include "cc/solid_color_draw_quad.h" |
12 #include "cc/shared_quad_state.h" | 12 #include "cc/shared_quad_state.h" |
13 #include "cc/stream_video_draw_quad.h" | 13 #include "cc/stream_video_draw_quad.h" |
14 #include "cc/texture_draw_quad.h" | 14 #include "cc/texture_draw_quad.h" |
15 #include "cc/tile_draw_quad.h" | 15 #include "cc/tile_draw_quad.h" |
16 #include "cc/yuv_video_draw_quad.h" | 16 #include "cc/yuv_video_draw_quad.h" |
17 #include "cc/resource_provider.h" | 17 #include "cc/resource_provider.h" |
18 #include "ui/gfx/transform.h" | 18 #include "ui/gfx/transform.h" |
19 | 19 |
20 namespace cc { | 20 namespace cc { |
21 | 21 |
22 void TestRenderPass::AppendOneOfEveryQuadType( | 22 void TestRenderPass::AppendOneOfEveryQuadType( |
23 cc::ResourceProvider* resourceProvider) { | 23 cc::ResourceProvider* resourceProvider, RenderPass::Id childPass) { |
24 gfx::Rect rect(0, 0, 100, 100); | 24 gfx::Rect rect(0, 0, 100, 100); |
25 gfx::Rect opaque_rect(10, 10, 80, 80); | 25 gfx::Rect opaque_rect(10, 10, 80, 80); |
26 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; | 26 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |
27 cc::ResourceProvider::ResourceId texture_resource = | 27 cc::ResourceProvider::ResourceId texture_resource = |
28 resourceProvider->createResource( | 28 resourceProvider->createResource( |
29 gfx::Size(20, 12), | 29 gfx::Size(20, 12), |
30 resourceProvider->bestTextureFormat(), | 30 resourceProvider->bestTextureFormat(), |
31 ResourceProvider::TextureUsageAny); | 31 ResourceProvider::TextureUsageAny); |
32 unsigned texture_id = ResourceProvider::ScopedReadLockGL( | 32 unsigned texture_id = ResourceProvider::ScopedReadLockGL( |
33 resourceProvider, texture_resource).textureId(); | 33 resourceProvider, texture_resource).textureId(); |
| 34 cc::ResourceProvider::ResourceId resource1 = |
| 35 resourceProvider->createResource( |
| 36 gfx::Size(45, 5), |
| 37 resourceProvider->bestTextureFormat(), |
| 38 ResourceProvider::TextureUsageAny); |
| 39 cc::ResourceProvider::ResourceId resource2 = |
| 40 resourceProvider->createResource( |
| 41 gfx::Size(346, 61), |
| 42 resourceProvider->bestTextureFormat(), |
| 43 ResourceProvider::TextureUsageAny); |
| 44 cc::ResourceProvider::ResourceId resource3 = |
| 45 resourceProvider->createResource( |
| 46 gfx::Size(12, 134), |
| 47 resourceProvider->bestTextureFormat(), |
| 48 ResourceProvider::TextureUsageAny); |
| 49 cc::ResourceProvider::ResourceId resource4 = |
| 50 resourceProvider->createResource( |
| 51 gfx::Size(56, 12), |
| 52 resourceProvider->bestTextureFormat(), |
| 53 ResourceProvider::TextureUsageAny); |
| 54 cc::ResourceProvider::ResourceId resource5 = |
| 55 resourceProvider->createResource( |
| 56 gfx::Size(73, 26), |
| 57 resourceProvider->bestTextureFormat(), |
| 58 ResourceProvider::TextureUsageAny); |
34 | 59 |
35 scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); | 60 scoped_ptr<cc::SharedQuadState> shared_state = cc::SharedQuadState::Create(); |
36 shared_state->SetAll(gfx::Transform(), | 61 shared_state->SetAll(gfx::Transform(), |
37 rect, | 62 rect, |
38 rect, | 63 rect, |
39 rect, | 64 rect, |
40 false, | 65 false, |
41 1); | 66 1); |
42 | 67 |
43 scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad = | 68 scoped_ptr<cc::CheckerboardDrawQuad> checkerboard_quad = |
(...skipping 14 matching lines...) Expand all Loading... |
58 scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad = | 83 scoped_ptr<cc::IOSurfaceDrawQuad> io_surface_quad = |
59 cc::IOSurfaceDrawQuad::Create(); | 84 cc::IOSurfaceDrawQuad::Create(); |
60 io_surface_quad->SetNew(shared_state.get(), | 85 io_surface_quad->SetNew(shared_state.get(), |
61 rect, | 86 rect, |
62 opaque_rect, | 87 opaque_rect, |
63 gfx::Size(50, 50), | 88 gfx::Size(50, 50), |
64 texture_id, | 89 texture_id, |
65 cc::IOSurfaceDrawQuad::FLIPPED); | 90 cc::IOSurfaceDrawQuad::FLIPPED); |
66 AppendQuad(io_surface_quad.PassAs<DrawQuad>()); | 91 AppendQuad(io_surface_quad.PassAs<DrawQuad>()); |
67 | 92 |
68 scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = | 93 if (childPass.layer_id) { |
69 cc::RenderPassDrawQuad::Create(); | 94 scoped_ptr<cc::RenderPassDrawQuad> render_pass_quad = |
70 render_pass_quad->SetNew(shared_state.get(), | 95 cc::RenderPassDrawQuad::Create(); |
71 rect, | 96 render_pass_quad->SetNew(shared_state.get(), |
72 cc::RenderPass::Id(1, 1), | 97 rect, |
73 false, | 98 childPass, |
74 0, | 99 false, |
75 rect, | 100 resource5, |
76 gfx::RectF(), | 101 rect, |
77 WebKit::WebFilterOperations(), | 102 gfx::RectF(), |
78 skia::RefPtr<SkImageFilter>(), | 103 WebKit::WebFilterOperations(), |
79 WebKit::WebFilterOperations()); | 104 skia::RefPtr<SkImageFilter>(), |
80 AppendQuad(render_pass_quad.PassAs<DrawQuad>()); | 105 WebKit::WebFilterOperations()); |
| 106 AppendQuad(render_pass_quad.PassAs<DrawQuad>()); |
| 107 |
| 108 scoped_ptr<cc::RenderPassDrawQuad> render_pass_replica_quad = |
| 109 cc::RenderPassDrawQuad::Create(); |
| 110 render_pass_replica_quad->SetNew(shared_state.get(), |
| 111 rect, |
| 112 childPass, |
| 113 true, |
| 114 resource5, |
| 115 rect, |
| 116 gfx::RectF(), |
| 117 WebKit::WebFilterOperations(), |
| 118 skia::RefPtr<SkImageFilter>(), |
| 119 WebKit::WebFilterOperations()); |
| 120 AppendQuad(render_pass_replica_quad.PassAs<DrawQuad>()); |
| 121 } |
81 | 122 |
82 scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = | 123 scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad = |
83 cc::SolidColorDrawQuad::Create(); | 124 cc::SolidColorDrawQuad::Create(); |
84 solid_color_quad->SetNew(shared_state.get(), | 125 solid_color_quad->SetNew(shared_state.get(), |
85 rect, | 126 rect, |
86 SK_ColorRED); | 127 SK_ColorRED); |
87 AppendQuad(solid_color_quad.PassAs<DrawQuad>()); | 128 AppendQuad(solid_color_quad.PassAs<DrawQuad>()); |
88 | 129 |
89 scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad = | 130 scoped_ptr<cc::StreamVideoDrawQuad> stream_video_quad = |
90 cc::StreamVideoDrawQuad::Create(); | 131 cc::StreamVideoDrawQuad::Create(); |
91 stream_video_quad->SetNew(shared_state.get(), | 132 stream_video_quad->SetNew(shared_state.get(), |
92 rect, | 133 rect, |
93 opaque_rect, | 134 opaque_rect, |
94 texture_id, | 135 texture_id, |
95 gfx::Transform()); | 136 gfx::Transform()); |
96 AppendQuad(stream_video_quad.PassAs<DrawQuad>()); | 137 AppendQuad(stream_video_quad.PassAs<DrawQuad>()); |
97 | 138 |
98 scoped_ptr<cc::TextureDrawQuad> texture_quad = | 139 scoped_ptr<cc::TextureDrawQuad> texture_quad = |
99 cc::TextureDrawQuad::Create(); | 140 cc::TextureDrawQuad::Create(); |
100 texture_quad->SetNew(shared_state.get(), | 141 texture_quad->SetNew(shared_state.get(), |
101 rect, | 142 rect, |
102 opaque_rect, | 143 opaque_rect, |
103 texture_resource, | 144 resource1, |
104 false, | 145 false, |
105 rect, | 146 rect, |
106 vertex_opacity, | 147 vertex_opacity, |
107 false); | 148 false); |
108 AppendQuad(texture_quad.PassAs<DrawQuad>()); | 149 AppendQuad(texture_quad.PassAs<DrawQuad>()); |
109 | 150 |
110 scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = | 151 scoped_ptr<cc::TileDrawQuad> scaled_tile_quad = |
111 cc::TileDrawQuad::Create(); | 152 cc::TileDrawQuad::Create(); |
112 scaled_tile_quad->SetNew(shared_state.get(), | 153 scaled_tile_quad->SetNew(shared_state.get(), |
113 rect, | 154 rect, |
114 opaque_rect, | 155 opaque_rect, |
115 texture_resource, | 156 resource2, |
116 gfx::RectF(0, 0, 50, 50), | 157 gfx::RectF(0, 0, 50, 50), |
117 gfx::Size(50, 50), | 158 gfx::Size(50, 50), |
118 false, | 159 false, |
119 false, | 160 false, |
120 false, | 161 false, |
121 false, | 162 false, |
122 false); | 163 false); |
123 AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); | 164 AppendQuad(scaled_tile_quad.PassAs<DrawQuad>()); |
124 | 165 |
125 scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); | 166 scoped_ptr<cc::SharedQuadState> transformed_state = shared_state->Copy(); |
126 gfx::Transform rotation; | 167 gfx::Transform rotation; |
127 rotation.Rotate(45); | 168 rotation.Rotate(45); |
128 transformed_state->content_to_target_transform = transformed_state->content_to
_target_transform * rotation; | 169 transformed_state->content_to_target_transform = transformed_state->content_to
_target_transform * rotation; |
129 scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = | 170 scoped_ptr<cc::TileDrawQuad> transformed_tile_quad = |
130 cc::TileDrawQuad::Create(); | 171 cc::TileDrawQuad::Create(); |
131 transformed_tile_quad->SetNew(transformed_state.get(), | 172 transformed_tile_quad->SetNew(transformed_state.get(), |
132 rect, | 173 rect, |
133 opaque_rect, | 174 opaque_rect, |
134 texture_resource, | 175 resource3, |
135 gfx::RectF(0, 0, 100, 100), | 176 gfx::RectF(0, 0, 100, 100), |
136 gfx::Size(100, 100), | 177 gfx::Size(100, 100), |
137 false, | 178 false, |
138 false, | 179 false, |
139 false, | 180 false, |
140 false, | 181 false, |
141 false); | 182 false); |
142 AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); | 183 AppendQuad(transformed_tile_quad.PassAs<DrawQuad>()); |
143 | 184 |
144 scoped_ptr<cc::TileDrawQuad> tile_quad = | 185 scoped_ptr<cc::TileDrawQuad> tile_quad = |
145 cc::TileDrawQuad::Create(); | 186 cc::TileDrawQuad::Create(); |
146 tile_quad->SetNew(shared_state.get(), | 187 tile_quad->SetNew(shared_state.get(), |
147 rect, | 188 rect, |
148 opaque_rect, | 189 opaque_rect, |
149 texture_resource, | 190 resource4, |
150 gfx::RectF(0, 0, 100, 100), | 191 gfx::RectF(0, 0, 100, 100), |
151 gfx::Size(100, 100), | 192 gfx::Size(100, 100), |
152 false, | 193 false, |
153 false, | 194 false, |
154 false, | 195 false, |
155 false, | 196 false, |
156 false); | 197 false); |
157 AppendQuad(tile_quad.PassAs<DrawQuad>()); | 198 AppendQuad(tile_quad.PassAs<DrawQuad>()); |
158 | 199 |
159 cc::VideoLayerImpl::FramePlane planes[3]; | 200 cc::VideoLayerImpl::FramePlane planes[3]; |
(...skipping 15 matching lines...) Expand all Loading... |
175 planes[0], | 216 planes[0], |
176 planes[1], | 217 planes[1], |
177 planes[2]); | 218 planes[2]); |
178 AppendQuad(yuv_quad.PassAs<DrawQuad>()); | 219 AppendQuad(yuv_quad.PassAs<DrawQuad>()); |
179 | 220 |
180 AppendSharedQuadState(transformed_state.Pass()); | 221 AppendSharedQuadState(transformed_state.Pass()); |
181 AppendSharedQuadState(shared_state.Pass()); | 222 AppendSharedQuadState(shared_state.Pass()); |
182 } | 223 } |
183 | 224 |
184 } // namespace cc | 225 } // namespace cc |
OLD | NEW |