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