Index: cc/quads/largest_draw_quad.cc |
diff --git a/cc/quads/largest_draw_quad.cc b/cc/quads/largest_draw_quad.cc |
index 55fcb22f43d50e619826c474d175f6c7e4c7453a..6445204bd192d6796f26d4eb6268fd8312892745 100644 |
--- a/cc/quads/largest_draw_quad.cc |
+++ b/cc/quads/largest_draw_quad.cc |
@@ -6,15 +6,62 @@ |
#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() { |
- // The largest quad is either a RenderPassDrawQuad or a StreamVideoDrawQuad |
- // depends on hardware structure. |
- return std::max(sizeof(RenderPassDrawQuad), sizeof(StreamVideoDrawQuad)); |
+ // 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. |
+ COMPILE_ASSERT(sizeof(CheckerboardDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. CheckerboardDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(DebugBorderDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. DebugBorderDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(IOSurfaceDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. IOSurfaceDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(PictureDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. PictureDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(TextureDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. TextureDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(SolidColorDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. SolidColorDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(SurfaceDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. SurfaceDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(TileDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. TileDrawQuad is " |
+ "currently largest."); |
+ COMPILE_ASSERT(sizeof(YUVVideoDrawQuad) <= kLargestDrawQuadSize, |
+ "Largest Draw Quad size needs update. YUVVideoDrawQuad is " |
+ "currently largest."); |
+ |
+ return kLargestDrawQuadSize; |
} |
} // namespace cc |