| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "cc/quads/largest_draw_quad.h" |
| |
| #include <algorithm> |
| |
| #include "cc/quads/checkerboard_draw_quad.h" |
| #include "cc/quads/debug_border_draw_quad.h" |
| #include "cc/quads/io_surface_draw_quad.h" |
| #include "cc/quads/picture_draw_quad.h" |
| #include "cc/quads/render_pass_draw_quad.h" |
| #include "cc/quads/solid_color_draw_quad.h" |
| #include "cc/quads/stream_video_draw_quad.h" |
| #include "cc/quads/surface_draw_quad.h" |
| #include "cc/quads/texture_draw_quad.h" |
| #include "cc/quads/tile_draw_quad.h" |
| #include "cc/quads/yuv_video_draw_quad.h" |
| |
| namespace { |
| const size_t kLargestDrawQuadSize = |
| sizeof(cc::RenderPassDrawQuad) > sizeof(cc::StreamVideoDrawQuad) |
| ? sizeof(cc::RenderPassDrawQuad) |
| : sizeof(cc::StreamVideoDrawQuad); |
| } // namespace |
| |
| namespace cc { |
| |
| size_t LargestDrawQuadSize() { |
| // Currently the largest quad is either a RenderPassDrawQuad or a |
| // StreamVideoDrawQuad depends on hardware structure. |
| |
| // Use compile assert to make sure largest is actually larger than all other |
| // type of draw quads. |
| static_assert(sizeof(CheckerboardDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. CheckerboardDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(DebugBorderDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. DebugBorderDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(IOSurfaceDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. IOSurfaceDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(PictureDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. PictureDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(TextureDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. TextureDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(SolidColorDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. SolidColorDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(SurfaceDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. SurfaceDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(TileDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. TileDrawQuad is " |
| "currently largest."); |
| static_assert(sizeof(YUVVideoDrawQuad) <= kLargestDrawQuadSize, |
| "Largest Draw Quad size needs update. YUVVideoDrawQuad is " |
| "currently largest."); |
| |
| return kLargestDrawQuadSize; |
| } |
| |
| } // namespace cc |