OLD | NEW |
---|---|
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/quads/render_pass.h" | 5 #include "cc/quads/render_pass.h" |
6 | 6 |
7 #include "base/values.h" | 7 #include "base/values.h" |
8 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
9 #include "cc/debug/traced_value.h" | 9 #include "cc/debug/traced_value.h" |
10 #include "cc/output/copy_output_request.h" | 10 #include "cc/output/copy_output_request.h" |
11 #include "cc/quads/checkerboard_draw_quad.h" | |
12 #include "cc/quads/debug_border_draw_quad.h" | |
11 #include "cc/quads/draw_quad.h" | 13 #include "cc/quads/draw_quad.h" |
14 #include "cc/quads/io_surface_draw_quad.h" | |
15 #include "cc/quads/picture_draw_quad.h" | |
12 #include "cc/quads/render_pass_draw_quad.h" | 16 #include "cc/quads/render_pass_draw_quad.h" |
13 #include "cc/quads/shared_quad_state.h" | 17 #include "cc/quads/shared_quad_state.h" |
18 #include "cc/quads/solid_color_draw_quad.h" | |
19 #include "cc/quads/stream_video_draw_quad.h" | |
20 #include "cc/quads/surface_draw_quad.h" | |
21 #include "cc/quads/texture_draw_quad.h" | |
22 #include "cc/quads/tile_draw_quad.h" | |
23 #include "cc/quads/yuv_video_draw_quad.h" | |
14 | 24 |
15 namespace { | 25 namespace { |
16 const size_t kDefaultNumSharedQuadStatesToReserve = 32; | 26 const size_t kDefaultNumSharedQuadStatesToReserve = 32; |
17 const size_t kDefaultNumQuadsToReserve = 128; | 27 const size_t kDefaultNumQuadsToReserve = 128; |
18 } | 28 } |
19 | 29 |
20 namespace cc { | 30 namespace cc { |
21 | 31 |
22 void* RenderPass::Id::AsTracingId() const { | 32 void* RenderPass::Id::AsTracingId() const { |
23 COMPILE_ASSERT(sizeof(size_t) <= sizeof(void*), // NOLINT | 33 COMPILE_ASSERT(sizeof(size_t) <= sizeof(void*), // NOLINT |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
167 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), | 177 TRACE_DISABLED_BY_DEFAULT("cc.debug.quads"), |
168 value.get(), "cc::RenderPass", id.AsTracingId()); | 178 value.get(), "cc::RenderPass", id.AsTracingId()); |
169 return value.PassAs<base::Value>(); | 179 return value.PassAs<base::Value>(); |
170 } | 180 } |
171 | 181 |
172 SharedQuadState* RenderPass::CreateAndAppendSharedQuadState() { | 182 SharedQuadState* RenderPass::CreateAndAppendSharedQuadState() { |
173 shared_quad_state_list.push_back(make_scoped_ptr(new SharedQuadState)); | 183 shared_quad_state_list.push_back(make_scoped_ptr(new SharedQuadState)); |
174 return shared_quad_state_list.back(); | 184 return shared_quad_state_list.back(); |
175 } | 185 } |
176 | 186 |
187 RenderPassDrawQuad* RenderPass::CopyFromAndAppendRenderPassDrawQuad( | |
188 const RenderPassDrawQuad* quad, | |
189 const SharedQuadState* shared_quad_state, | |
190 RenderPass::Id render_pass_id) { | |
191 RenderPassDrawQuad* copy_quad = | |
192 CopyFromAndAppendTypedDrawQuad<RenderPassDrawQuad>(quad); | |
193 copy_quad->shared_quad_state = shared_quad_state; | |
194 copy_quad->render_pass_id = render_pass_id; | |
195 return copy_quad; | |
196 } | |
197 | |
198 DrawQuad* RenderPass::CopyFromAndAppendDrawQuad( | |
199 const DrawQuad* quad, | |
200 const SharedQuadState* shared_quad_state) { | |
201 switch (quad->material) { | |
202 case DrawQuad::CHECKERBOARD: { | |
danakj
2014/07/09 17:59:14
don't need the {}'s for each of these cases
weiliangc
2014/07/09 20:59:09
Done.
| |
203 CopyFromAndAppendTypedDrawQuad<CheckerboardDrawQuad>(quad); | |
204 break; | |
205 } | |
206 case DrawQuad::DEBUG_BORDER: { | |
207 CopyFromAndAppendTypedDrawQuad<DebugBorderDrawQuad>(quad); | |
208 break; | |
209 } | |
210 case DrawQuad::IO_SURFACE_CONTENT: { | |
211 CopyFromAndAppendTypedDrawQuad<IOSurfaceDrawQuad>(quad); | |
212 break; | |
213 } | |
214 case DrawQuad::PICTURE_CONTENT: { | |
215 CopyFromAndAppendTypedDrawQuad<PictureDrawQuad>(quad); | |
216 break; | |
217 } | |
218 case DrawQuad::TEXTURE_CONTENT: { | |
219 CopyFromAndAppendTypedDrawQuad<TextureDrawQuad>(quad); | |
220 break; | |
221 } | |
222 case DrawQuad::SOLID_COLOR: { | |
223 CopyFromAndAppendTypedDrawQuad<SolidColorDrawQuad>(quad); | |
224 break; | |
225 } | |
226 case DrawQuad::TILED_CONTENT: { | |
227 CopyFromAndAppendTypedDrawQuad<TileDrawQuad>(quad); | |
228 break; | |
229 } | |
230 case DrawQuad::STREAM_VIDEO_CONTENT: { | |
231 CopyFromAndAppendTypedDrawQuad<StreamVideoDrawQuad>(quad); | |
232 break; | |
233 } | |
234 case DrawQuad::SURFACE_CONTENT: { | |
235 CopyFromAndAppendTypedDrawQuad<SurfaceDrawQuad>(quad); | |
236 break; | |
237 } | |
238 case DrawQuad::YUV_VIDEO_CONTENT: { | |
239 CopyFromAndAppendTypedDrawQuad<YUVVideoDrawQuad>(quad); | |
240 break; | |
241 } | |
242 case DrawQuad::RENDER_PASS | |
243 : // RenderPass quads need to use typed copy from function. | |
danakj
2014/07/09 17:59:14
errr can this : be on the previous line?
weiliangc
2014/07/09 20:59:09
Done.
| |
244 case DrawQuad::INVALID: | |
245 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; | |
246 break; | |
247 } | |
248 quad_list.back()->shared_quad_state = shared_quad_state; | |
249 return quad_list.back(); | |
250 } | |
251 | |
177 } // namespace cc | 252 } // namespace cc |
OLD | NEW |