Chromium Code Reviews| 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 const CheckerboardDrawQuad* original_quad = | |
|
danakj
2014/07/09 17:12:09
I think you can move this material cast into the C
| |
| 204 CheckerboardDrawQuad::MaterialCast(quad); | |
| 205 CopyFromAndAppendTypedDrawQuad<CheckerboardDrawQuad>(original_quad); | |
| 206 break; | |
| 207 } | |
| 208 case DrawQuad::DEBUG_BORDER: { | |
| 209 const DebugBorderDrawQuad* original_quad = | |
| 210 DebugBorderDrawQuad::MaterialCast(quad); | |
| 211 CopyFromAndAppendTypedDrawQuad<DebugBorderDrawQuad>(original_quad); | |
| 212 break; | |
| 213 } | |
| 214 case DrawQuad::IO_SURFACE_CONTENT: { | |
| 215 const IOSurfaceDrawQuad* original_quad = | |
| 216 IOSurfaceDrawQuad::MaterialCast(quad); | |
| 217 CopyFromAndAppendTypedDrawQuad<IOSurfaceDrawQuad>(original_quad); | |
| 218 break; | |
| 219 } | |
| 220 case DrawQuad::PICTURE_CONTENT: { | |
| 221 const PictureDrawQuad* original_quad = | |
| 222 PictureDrawQuad::MaterialCast(quad); | |
| 223 CopyFromAndAppendTypedDrawQuad<PictureDrawQuad>(original_quad); | |
| 224 break; | |
| 225 } | |
| 226 case DrawQuad::TEXTURE_CONTENT: { | |
| 227 const TextureDrawQuad* original_quad = | |
| 228 TextureDrawQuad::MaterialCast(quad); | |
| 229 CopyFromAndAppendTypedDrawQuad<TextureDrawQuad>(original_quad); | |
| 230 break; | |
| 231 } | |
| 232 case DrawQuad::SOLID_COLOR: { | |
| 233 const SolidColorDrawQuad* original_quad = | |
| 234 SolidColorDrawQuad::MaterialCast(quad); | |
| 235 CopyFromAndAppendTypedDrawQuad<SolidColorDrawQuad>(original_quad); | |
| 236 break; | |
| 237 } | |
| 238 case DrawQuad::TILED_CONTENT: { | |
| 239 const TileDrawQuad* original_quad = TileDrawQuad::MaterialCast(quad); | |
| 240 CopyFromAndAppendTypedDrawQuad<TileDrawQuad>(original_quad); | |
| 241 break; | |
| 242 } | |
| 243 case DrawQuad::STREAM_VIDEO_CONTENT: { | |
| 244 const StreamVideoDrawQuad* original_quad = | |
| 245 StreamVideoDrawQuad::MaterialCast(quad); | |
| 246 CopyFromAndAppendTypedDrawQuad<StreamVideoDrawQuad>(original_quad); | |
| 247 break; | |
| 248 } | |
| 249 case DrawQuad::SURFACE_CONTENT: { | |
| 250 const SurfaceDrawQuad* original_quad = | |
| 251 SurfaceDrawQuad::MaterialCast(quad); | |
| 252 CopyFromAndAppendTypedDrawQuad<SurfaceDrawQuad>(original_quad); | |
| 253 break; | |
| 254 } | |
| 255 case DrawQuad::YUV_VIDEO_CONTENT: { | |
| 256 const YUVVideoDrawQuad* original_quad = | |
| 257 YUVVideoDrawQuad::MaterialCast(quad); | |
| 258 CopyFromAndAppendTypedDrawQuad<YUVVideoDrawQuad>(original_quad); | |
| 259 break; | |
| 260 } | |
| 261 case DrawQuad::RENDER_PASS | |
| 262 : // RenderPass quads need to use typed copy from function. | |
| 263 case DrawQuad::INVALID: | |
| 264 LOG(FATAL) << "Invalid DrawQuad material " << quad->material; | |
| 265 break; | |
| 266 } | |
| 267 quad_list.back()->shared_quad_state = shared_quad_state; | |
| 268 return quad_list.back(); | |
| 269 } | |
| 270 | |
| 177 } // namespace cc | 271 } // namespace cc |
| OLD | NEW |