| 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
|
|
|