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: |
| 203 CopyFromAndAppendTypedDrawQuad<CheckerboardDrawQuad>(quad); |
| 204 break; |
| 205 case DrawQuad::DEBUG_BORDER: |
| 206 CopyFromAndAppendTypedDrawQuad<DebugBorderDrawQuad>(quad); |
| 207 break; |
| 208 case DrawQuad::IO_SURFACE_CONTENT: |
| 209 CopyFromAndAppendTypedDrawQuad<IOSurfaceDrawQuad>(quad); |
| 210 break; |
| 211 case DrawQuad::PICTURE_CONTENT: |
| 212 CopyFromAndAppendTypedDrawQuad<PictureDrawQuad>(quad); |
| 213 break; |
| 214 case DrawQuad::TEXTURE_CONTENT: |
| 215 CopyFromAndAppendTypedDrawQuad<TextureDrawQuad>(quad); |
| 216 break; |
| 217 case DrawQuad::SOLID_COLOR: |
| 218 CopyFromAndAppendTypedDrawQuad<SolidColorDrawQuad>(quad); |
| 219 break; |
| 220 case DrawQuad::TILED_CONTENT: |
| 221 CopyFromAndAppendTypedDrawQuad<TileDrawQuad>(quad); |
| 222 break; |
| 223 case DrawQuad::STREAM_VIDEO_CONTENT: |
| 224 CopyFromAndAppendTypedDrawQuad<StreamVideoDrawQuad>(quad); |
| 225 break; |
| 226 case DrawQuad::SURFACE_CONTENT: |
| 227 CopyFromAndAppendTypedDrawQuad<SurfaceDrawQuad>(quad); |
| 228 break; |
| 229 case DrawQuad::YUV_VIDEO_CONTENT: |
| 230 CopyFromAndAppendTypedDrawQuad<YUVVideoDrawQuad>(quad); |
| 231 break; |
| 232 // RenderPass quads need to use specific CopyFrom function. |
| 233 case DrawQuad::RENDER_PASS: |
| 234 case DrawQuad::INVALID: |
| 235 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; |
| 236 break; |
| 237 } |
| 238 quad_list.back()->shared_quad_state = shared_quad_state; |
| 239 return quad_list.back(); |
| 240 } |
| 241 |
177 } // namespace cc | 242 } // namespace cc |
OLD | NEW |