Index: cc/quads/largest_draw_quad.cc |
diff --git a/cc/quads/largest_draw_quad.cc b/cc/quads/largest_draw_quad.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fd7fdb34778828a979f2ba15e273635a370c22aa |
--- /dev/null |
+++ b/cc/quads/largest_draw_quad.cc |
@@ -0,0 +1,63 @@ |
+// 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/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(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 |